just-the-docs 0.2.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,58 @@
1
+ ---
2
+ permalink: /assets/js/search-data.json
3
+ ---
4
+ {
5
+ {%- assign i = 0 -%}
6
+ {% for page in site.html_pages %}
7
+ {%- if page.title and page.search_exclude != true -%}
8
+ {%- assign page_content = page.content -%}
9
+ {%- assign heading_level = site.search.heading_level | default: 2 -%}
10
+ {%- for j in (2..heading_level) -%}
11
+ {%- assign tag = '<h' | append: j -%}
12
+ {%- assign closing_tag = '</h' | append: j -%}
13
+ {%- assign page_content = page_content | replace: tag, '<h1' | replace: closing_tag, '</h1' -%}
14
+ {%- endfor -%}
15
+ {%- assign parts = page_content | split: '<h1' -%}
16
+ {%- assign title_found = false -%}
17
+ {% for part in parts offset: 1 %}
18
+ {%- assign titleAndContent = part | split: '</h1>' -%}
19
+ {%- assign title = titleAndContent[0] | replace_first: '>', '<h1>' | split: '<h1>' -%}
20
+ {%- assign title = title[1] | strip_html -%}
21
+ {%- assign content = titleAndContent[1] -%}
22
+ {%- assign url = page.url -%}
23
+ {%- if title == page.title and parts[0] == '' -%}
24
+ {%- assign title_found = true -%}
25
+ {%- else -%}
26
+ {%- assign id = titleAndContent[0] -%}
27
+ {%- assign id = id | split: 'id="' -%}
28
+ {%- if id.size == 2 -%}
29
+ {%- assign id = id[1] -%}
30
+ {%- assign id = id | split: '"' -%}
31
+ {%- assign id = id[0] -%}
32
+ {%- capture url -%}{{ url | append: '#' | append: id }}{%- endcapture -%}
33
+ {%- endif -%}
34
+ {%- endif -%}
35
+ {%- unless i == 0 -%},{%- endunless -%}
36
+ "{{ i }}": {
37
+ "doc": {{ page.title | jsonify }},
38
+ "title": {{ title | jsonify }},
39
+ "content": {{ content | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '<ul', ' . <ul' | replace: '</ul', ' . </ul' | replace: '<ol', ' . <ol' | replace: '</ol', ' . </ol' | replace: '</tr', ' . </tr' | replace: '<li', ' | <li' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | replace: '<td', ' | <td' | replace: '</th', ' | </th' | replace: '<th', ' | <th' | strip_html | remove: 'Table of contents' | normalize_whitespace | replace: '. . .', '.' | replace: '. .', '.' | replace: '| |', '|' | append: ' ' | jsonify }},
40
+ "url": "{{ url | absolute_url }}",
41
+ "relUrl": "{{ url }}"
42
+ }
43
+ {%- assign i = i | plus: 1 -%}
44
+ {%- endfor -%}
45
+ {%- unless title_found -%}
46
+ {%- unless i == 0 -%},{%- endunless -%}
47
+ "{{ i }}": {
48
+ "doc": {{ page.title | jsonify }},
49
+ "title": {{ page.title | jsonify }},
50
+ "content": {{ parts[0] | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '<ul', ' . <ul' | replace: '</ul', ' . </ul' | replace: '<ol', ' . <ol' | replace: '</ol', ' . </ol' | replace: '</tr', ' . </tr' | replace: '<li', ' | <li' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | replace: '<td', ' | <td' | replace: '</th', ' | </th' | replace: '<th', ' | <th' | strip_html | remove: 'Table of contents' | normalize_whitespace | replace: '. . .', '.' | replace: '. .', '.' | replace: '| |', '|' | append: ' ' | jsonify }},
51
+ "url": "{{ page.url | absolute_url }}",
52
+ "relUrl": "{{ page.url }}"
53
+ }
54
+ {%- assign i = i | plus: 1 -%}
55
+ {%- endunless -%}
56
+ {%- endif -%}
57
+ {% endfor %}
58
+ }
@@ -3,23 +3,68 @@ namespace :search do
3
3
  task :init do
4
4
  puts 'Creating search data json file...'
5
5
  mkdir_p 'assets/js'
6
- touch 'assets/js/search-data.json'
7
- content = %Q[{{ page.content | markdownify | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '</ul', ' . </ul' | replace: '</tr', ' . </tr' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | strip_html | escape_once | remove: 'Table of contents' | remove: '```' | remove: '---' | replace: '\\', ' ' | replace: ' . . . ', ' . ' | replace: ' . . ', ' . ' | normalize_whitespace }}]
6
+ touch 'assets/js/zzzz-search-data.json'
8
7
  puts 'Done.'
9
8
  puts 'Generating content...'
10
9
 
11
- File.open('assets/js/search-data.json', 'w') do |f|
10
+ File.open('assets/js/zzzz-search-data.json', 'w') do |f|
12
11
  f.puts '---
12
+ permalink: /assets/js/search-data.json
13
13
  ---
14
14
  {
15
- {% assign comma = false %}
16
- {% for page in site.html_pages %}{% if page.search_exclude != true %}{% if comma == true%},{% endif %}"{{ forloop.index0 }}": {
17
- "title": "{{ page.title | replace: \'&amp;\', \'&\' }}",
18
- "content": "'+content+'",
15
+ {%- assign i = 0 -%}
16
+ {% for page in site.html_pages %}
17
+ {%- if page.title and page.search_exclude != true -%}
18
+ {%- assign page_content = page.content -%}
19
+ {%- assign heading_level = site.search.heading_level | default: 2 -%}
20
+ {%- for j in (2..heading_level) -%}
21
+ {%- assign tag = \'<h\' | append: j -%}
22
+ {%- assign closing_tag = \'</h\' | append: j -%}
23
+ {%- assign page_content = page_content | replace: tag, \'<h1\' | replace: closing_tag, \'</h1\' -%}
24
+ {%- endfor -%}
25
+ {%- assign parts = page_content | split: \'<h1\' -%}
26
+ {%- assign title_found = false -%}
27
+ {% for part in parts offset: 1 %}
28
+ {%- assign titleAndContent = part | split: \'</h1>\' -%}
29
+ {%- assign title = titleAndContent[0] | replace_first: \'>\', \'<h1>\' | split: \'<h1>\' -%}
30
+ {%- assign title = title[1] | strip_html -%}
31
+ {%- assign content = titleAndContent[1] -%}
32
+ {%- assign url = page.url -%}
33
+ {%- if title == page.title and parts[0] == \'\' -%}
34
+ {%- assign title_found = true -%}
35
+ {%- else -%}
36
+ {%- assign id = titleAndContent[0] -%}
37
+ {%- assign id = id | split: \'id="\' -%}
38
+ {%- if id.size == 2 -%}
39
+ {%- assign id = id[1] -%}
40
+ {%- assign id = id | split: \'"\' -%}
41
+ {%- assign id = id[0] -%}
42
+ {%- capture url -%}{{ url | append: \'#\' | append: id }}{%- endcapture -%}
43
+ {%- endif -%}
44
+ {%- endif -%}
45
+ {%- unless i == 0 -%},{%- endunless -%}
46
+ "{{ i }}": {
47
+ "doc": {{ page.title | jsonify }},
48
+ "title": {{ title | jsonify }},
49
+ "content": {{ content | replace: \'</h\', \' . </h\' | replace: \'<hr\', \' . <hr\' | replace: \'</p\', \' . </p\' | replace: \'<ul\', \' . <ul\' | replace: \'</ul\', \' . </ul\' | replace: \'<ol\', \' . <ol\' | replace: \'</ol\', \' . </ol\' | replace: \'</tr\', \' . </tr\' | replace: \'<li\', \' | <li\' | replace: \'</li\', \' | </li\' | replace: \'</td\', \' | </td\' | replace: \'<td\', \' | <td\' | replace: \'</th\', \' | </th\' | replace: \'<th\', \' | <th\' | strip_html | remove: \'Table of contents\' | normalize_whitespace | replace: \'. . .\', \'.\' | replace: \'. .\', \'.\' | replace: \'| |\', \'|\' | append: \' \' | jsonify }},
50
+ "url": "{{ url | absolute_url }}",
51
+ "relUrl": "{{ url }}"
52
+ }
53
+ {%- assign i = i | plus: 1 -%}
54
+ {%- endfor -%}
55
+ {%- unless title_found -%}
56
+ {%- unless i == 0 -%},{%- endunless -%}
57
+ "{{ i }}": {
58
+ "doc": {{ page.title | jsonify }},
59
+ "title": {{ page.title | jsonify }},
60
+ "content": {{ parts[0] | replace: \'</h\', \' . </h\' | replace: \'<hr\', \' . <hr\' | replace: \'</p\', \' . </p\' | replace: \'<ul\', \' . <ul\' | replace: \'</ul\', \' . </ul\' | replace: \'<ol\', \' . <ol\' | replace: \'</ol\', \' . </ol\' | replace: \'</tr\', \' . </tr\' | replace: \'<li\', \' | <li\' | replace: \'</li\', \' | </li\' | replace: \'</td\', \' | </td\' | replace: \'<td\', \' | <td\' | replace: \'</th\', \' | </th\' | replace: \'<th\', \' | <th\' | strip_html | remove: \'Table of contents\' | normalize_whitespace | replace: \'. . .\', \'.\' | replace: \'. .\', \'.\' | replace: \'| |\', \'|\' | append: \' \' | jsonify }},
19
61
  "url": "{{ page.url | absolute_url }}",
20
62
  "relUrl": "{{ page.url }}"
21
- }{% assign comma = true %}
22
- {% endif %}{% endfor %}
63
+ }
64
+ {%- assign i = i | plus: 1 -%}
65
+ {%- endunless -%}
66
+ {%- endif -%}
67
+ {% endfor %}
23
68
  }'
24
69
  end
25
70
  puts 'Done.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: just-the-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Marsceill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-23 00:00:00.000000000 Z
11
+ date: 2020-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -31,9 +31,6 @@ dependencies:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.8.5
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: 4.1.0
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -41,9 +38,6 @@ dependencies:
41
38
  - - ">="
42
39
  - !ruby/object:Gem::Version
43
40
  version: 3.8.5
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: 4.1.0
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: jekyll-seo-tag
49
43
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +109,7 @@ files:
115
109
  - _sass/layout.scss
116
110
  - _sass/modules.scss
117
111
  - _sass/navigation.scss
112
+ - _sass/print.scss
118
113
  - _sass/search.scss
119
114
  - _sass/support/_functions.scss
120
115
  - _sass/support/_variables.scss
@@ -140,8 +135,8 @@ files:
140
135
  - assets/images/just-the-docs.png
141
136
  - assets/images/search.svg
142
137
  - assets/js/just-the-docs.js
143
- - assets/js/search-data.json
144
138
  - assets/js/vendor/lunr.min.js
139
+ - assets/js/zzzz-search-data.json
145
140
  - bin/just-the-docs
146
141
  - lib/tasks/search.rake
147
142
  homepage: https://github.com/pmarsceill/just-the-docs
@@ -1,12 +0,0 @@
1
- ---
2
- ---
3
- {
4
- {% assign comma = false %}
5
- {% for page in site.html_pages %}{% if page.search_exclude != true %}{% if comma == true%},{% endif %}"{{ forloop.index0 }}": {
6
- "title": "{{ page.title | replace: '&amp;', '&' }}",
7
- "content": "{{ page.content | markdownify | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '</ul', ' . </ul' | replace: '</tr', ' . </tr' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | strip_html | escape_once | remove: 'Table of contents' | remove: '```' | remove: '---' | replace: '\', ' ' | replace: ' . . . ', ' . ' | replace: ' . . ', ' . ' | normalize_whitespace }}",
8
- "url": "{{ page.url | absolute_url }}",
9
- "relUrl": "{{ page.url }}"
10
- }{% assign comma = true %}
11
- {% endif %}{% endfor %}
12
- }