just-the-docs 0.2.6 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/_includes/css/custom.scss.liquid +1 -0
- data/_includes/css/just-the-docs.scss.liquid +7 -0
- data/_includes/head.html +4 -4
- data/_includes/nav.html +55 -40
- data/_includes/title.html +5 -1
- data/_includes/vendor/anchor_headings.html +2 -2
- data/_layouts/default.html +146 -73
- data/_layouts/table_wrappers.html +1 -1
- data/_sass/base.scss +16 -18
- data/_sass/code.scss +209 -71
- data/_sass/color_schemes/dark.scss +1 -1
- data/_sass/color_schemes/light.scss +0 -0
- data/_sass/content.scss +53 -5
- data/_sass/custom/custom.scss +0 -129
- data/_sass/labels.scss +5 -4
- data/_sass/layout.scss +67 -55
- data/_sass/modules.scss +20 -0
- data/_sass/navigation.scss +129 -53
- data/_sass/print.scss +40 -0
- data/_sass/search.scss +204 -48
- data/_sass/support/_functions.scss +2 -3
- data/_sass/support/_variables.scss +15 -9
- data/_sass/support/mixins/_layout.scss +1 -3
- data/_sass/support/mixins/_typography.scss +6 -1
- data/_sass/typography.scss +9 -7
- data/_sass/utilities/_layout.scss +74 -17
- data/_sass/utilities/_lists.scss +7 -1
- data/_sass/utilities/_spacing.scss +69 -25
- data/assets/css/just-the-docs-dark.scss +3 -0
- data/assets/css/just-the-docs-default.scss +8 -0
- data/assets/css/just-the-docs-light.scss +3 -0
- data/assets/js/just-the-docs.js +374 -197
- data/assets/js/zzzz-search-data.json +58 -0
- data/lib/tasks/search.rake +54 -9
- metadata +36 -24
- data/assets/css/dark-mode-preview.scss +0 -41
- data/assets/css/just-the-docs.scss +0 -44
- data/assets/js/search-data.json +0 -11
@@ -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
|
+
}
|
data/lib/tasks/search.rake
CHANGED
@@ -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 | strip_html | escape_once | remove: 'Table of contents' | remove: '```' | remove: '---' | 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
|
-
{
|
16
|
-
|
17
|
-
|
18
|
-
|
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
|
-
}
|
22
|
-
|
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,27 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: just-the-docs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick Marsceill
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.1.4
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.1.4
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jekyll
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
18
32
|
- !ruby/object:Gem::Version
|
19
33
|
version: 3.8.5
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
|
-
- - "
|
38
|
+
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: 3.8.5
|
27
41
|
- !ruby/object:Gem::Dependency
|
@@ -42,30 +56,22 @@ dependencies:
|
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- - "
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: 12.3.1
|
62
|
+
- - "<"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 13.1.0
|
48
65
|
type: :runtime
|
49
66
|
prerelease: false
|
50
67
|
version_requirements: !ruby/object:Gem::Requirement
|
51
68
|
requirements:
|
52
|
-
- - "
|
69
|
+
- - ">="
|
53
70
|
- !ruby/object:Gem::Version
|
54
71
|
version: 12.3.1
|
55
|
-
-
|
56
|
-
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.0.1
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
72
|
+
- - "<"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
74
|
+
version: 13.1.0
|
69
75
|
description:
|
70
76
|
email:
|
71
77
|
- patrick.marsceill@gmail.com
|
@@ -77,6 +83,8 @@ files:
|
|
77
83
|
- LICENSE.txt
|
78
84
|
- README.md
|
79
85
|
- Rakefile
|
86
|
+
- _includes/css/custom.scss.liquid
|
87
|
+
- _includes/css/just-the-docs.scss.liquid
|
80
88
|
- _includes/head.html
|
81
89
|
- _includes/head_custom.html
|
82
90
|
- _includes/js/custom.js
|
@@ -94,11 +102,14 @@ files:
|
|
94
102
|
- _sass/buttons.scss
|
95
103
|
- _sass/code.scss
|
96
104
|
- _sass/color_schemes/dark.scss
|
105
|
+
- _sass/color_schemes/light.scss
|
97
106
|
- _sass/content.scss
|
98
107
|
- _sass/custom/custom.scss
|
99
108
|
- _sass/labels.scss
|
100
109
|
- _sass/layout.scss
|
110
|
+
- _sass/modules.scss
|
101
111
|
- _sass/navigation.scss
|
112
|
+
- _sass/print.scss
|
102
113
|
- _sass/search.scss
|
103
114
|
- _sass/support/_functions.scss
|
104
115
|
- _sass/support/_variables.scss
|
@@ -118,13 +129,14 @@ files:
|
|
118
129
|
- _sass/vendor/normalize.scss/README.md
|
119
130
|
- _sass/vendor/normalize.scss/normalize.scss
|
120
131
|
- _sass/vendor/normalize.scss/package.json
|
121
|
-
- assets/css/
|
122
|
-
- assets/css/just-the-docs.scss
|
132
|
+
- assets/css/just-the-docs-dark.scss
|
133
|
+
- assets/css/just-the-docs-default.scss
|
134
|
+
- assets/css/just-the-docs-light.scss
|
123
135
|
- assets/images/just-the-docs.png
|
124
136
|
- assets/images/search.svg
|
125
137
|
- assets/js/just-the-docs.js
|
126
|
-
- assets/js/search-data.json
|
127
138
|
- assets/js/vendor/lunr.min.js
|
139
|
+
- assets/js/zzzz-search-data.json
|
128
140
|
- bin/just-the-docs
|
129
141
|
- lib/tasks/search.rake
|
130
142
|
homepage: https://github.com/pmarsceill/just-the-docs
|
@@ -149,6 +161,6 @@ requirements: []
|
|
149
161
|
rubygems_version: 3.0.3
|
150
162
|
signing_key:
|
151
163
|
specification_version: 4
|
152
|
-
summary: A modern,
|
153
|
-
built-in search.
|
164
|
+
summary: A modern, highly customizable, and responsive Jekyll theme for documention
|
165
|
+
with built-in search.
|
154
166
|
test_files: []
|
@@ -1,41 +0,0 @@
|
|
1
|
-
---
|
2
|
-
# this ensures Jekyll reads the file to be transformed into CSS later
|
3
|
-
# only Main files contain this front matter, not partials.
|
4
|
-
---
|
5
|
-
|
6
|
-
//
|
7
|
-
// Import external dependencies
|
8
|
-
//
|
9
|
-
|
10
|
-
@import "./vendor/normalize.scss/normalize.scss";
|
11
|
-
|
12
|
-
//
|
13
|
-
// Import Just the Docs scss
|
14
|
-
//
|
15
|
-
|
16
|
-
// Support
|
17
|
-
@import "./support/support";
|
18
|
-
|
19
|
-
//
|
20
|
-
// Import custom color scheme scss
|
21
|
-
//
|
22
|
-
|
23
|
-
@import "./color_schemes/dark.scss";
|
24
|
-
|
25
|
-
// Modules
|
26
|
-
@import "./base";
|
27
|
-
@import "./layout";
|
28
|
-
@import "./content";
|
29
|
-
@import "./navigation";
|
30
|
-
@import "./typography";
|
31
|
-
@import "./labels";
|
32
|
-
@import "./buttons";
|
33
|
-
@import "./search";
|
34
|
-
@import "./tables";
|
35
|
-
@import "./code";
|
36
|
-
@import "./utilities/utilities";
|
37
|
-
|
38
|
-
//
|
39
|
-
// Import custom overrides
|
40
|
-
//
|
41
|
-
@import "./custom/custom";
|
@@ -1,44 +0,0 @@
|
|
1
|
-
---
|
2
|
-
# this ensures Jekyll reads the file to be transformed into CSS later
|
3
|
-
# only Main files contain this front matter, not partials.
|
4
|
-
---
|
5
|
-
|
6
|
-
//
|
7
|
-
// Import external dependencies
|
8
|
-
//
|
9
|
-
|
10
|
-
@import "./vendor/normalize.scss/normalize.scss";
|
11
|
-
|
12
|
-
//
|
13
|
-
// Import Just the Docs scss
|
14
|
-
//
|
15
|
-
|
16
|
-
// Support
|
17
|
-
@import "./support/support";
|
18
|
-
|
19
|
-
//
|
20
|
-
// Import custom overrides
|
21
|
-
//
|
22
|
-
|
23
|
-
@import "./custom/custom";
|
24
|
-
|
25
|
-
//
|
26
|
-
// Import custom color scheme scss
|
27
|
-
//
|
28
|
-
|
29
|
-
{% if site.color_scheme == "dark" %}
|
30
|
-
@import "./color_schemes/dark.scss";
|
31
|
-
{% endif %}
|
32
|
-
|
33
|
-
// Modules
|
34
|
-
@import "./base";
|
35
|
-
@import "./layout";
|
36
|
-
@import "./content";
|
37
|
-
@import "./navigation";
|
38
|
-
@import "./typography";
|
39
|
-
@import "./labels";
|
40
|
-
@import "./buttons";
|
41
|
-
@import "./search";
|
42
|
-
@import "./tables";
|
43
|
-
@import "./code";
|
44
|
-
@import "./utilities/utilities";
|
data/assets/js/search-data.json
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
---
|
3
|
-
{
|
4
|
-
{% for page in site.html_pages %}{% if page.search_exclude != true %}"{{ forloop.index0 }}": {
|
5
|
-
"title": "{{ page.title | replace: '&', '&' }}",
|
6
|
-
"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 }}",
|
7
|
-
"url": "{{ page.url | absolute_url }}",
|
8
|
-
"relUrl": "{{ page.url }}"
|
9
|
-
}{% unless forloop.last %},{% endunless %}
|
10
|
-
{% endif %}{% endfor %}
|
11
|
-
}
|