just-the-docs 0.6.2 → 0.8.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +129 -6
- data/_includes/components/breadcrumbs.html +125 -24
- data/_includes/{nav.html → components/nav.html} +1 -1
- data/_includes/components/sidebar.html +5 -56
- data/_includes/components/site_nav.html +67 -0
- data/_includes/css/activation.scss.liquid +302 -142
- data/_includes/fix_linenos.html +20 -12
- data/_includes/head.html +8 -4
- data/assets/css/just-the-docs-head-nav.css +24 -0
- data/assets/js/just-the-docs.js +53 -14
- metadata +5 -4
- data/_includes/head_nav.html +0 -48
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c8593eb0f4214116b46db9b1904d2585e794db893633690a78e5d77ad12c2b4f
|
|
4
|
+
data.tar.gz: dc7aa12e6092af9eabe4a5fd5509df6270fb197abcadff2bb4c4cb0a23993b25
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c7673a1920061a093328ab384a5a23b25f5e7ec0a1759d09280aa89d07fe63e4df66ce343cd27265d7774ebf431cf45bd45b8ef44f91656371a9e121efd22d41
|
|
7
|
+
data.tar.gz: 39cf8e32b64c2973e9b463c52799c7d56ef57b42d06e46d97d3b92034ccfb131826f6e502e24528051dd067f926cbe5a8373af16a28f1bb0993c960a62e30c7e
|
data/CHANGELOG.md
CHANGED
|
@@ -19,6 +19,129 @@ Code changes to `main` that are *not* in the latest release:
|
|
|
19
19
|
|
|
20
20
|
- N/A
|
|
21
21
|
|
|
22
|
+
Docs changes made since the latest release:
|
|
23
|
+
|
|
24
|
+
- N/A
|
|
25
|
+
|
|
26
|
+
## Release v0.8.0
|
|
27
|
+
|
|
28
|
+
Hi folks! This first minor release of 2024 has a short number of changes: a large improvement of build times for large sites, a new keyboard shortcut to focus the search bar, and sidebar navigation bugfixes for "pretty" URLs (with `.html` omitted) and the clickable area on Safari. This release has no explicit breaking changes and should be a straightforward upgrade for most (if not all) users.
|
|
29
|
+
|
|
30
|
+
### Using Release `v0.8.0`
|
|
31
|
+
|
|
32
|
+
Users who have not pinned the theme version will be **automatically upgraded to `v0.8.0` the next time they build their site**.
|
|
33
|
+
|
|
34
|
+
To use this release explicitly as a remote theme:
|
|
35
|
+
|
|
36
|
+
```yml
|
|
37
|
+
remote_theme: just-the-docs/just-the-docs@v0.8.0
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
To use this version explicitly as a gem-based theme, pin the version in your `Gemfile` and re-run `bundle install` or `bundle update just-the-docs`:
|
|
41
|
+
|
|
42
|
+
```ruby
|
|
43
|
+
gem "just-the-docs", "0.8.0"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
To use and pin a previous version of the theme, replace the `0.8.0` with the desired release tag.
|
|
47
|
+
|
|
48
|
+
### New Features
|
|
49
|
+
|
|
50
|
+
- Added: configurable keyboard shortcut to focus search input by [@kcromanpl-bajra] in [#1411]
|
|
51
|
+
|
|
52
|
+
### Bugfixes
|
|
53
|
+
|
|
54
|
+
- Fixed: quicker build by [@pdmosses] in [#1397]
|
|
55
|
+
- Fixed: incorrect navigation when `.html` omitted from URL by [@pdmosses] in [#1374]
|
|
56
|
+
- Fixed: incorrect positioning of clickable area for navigation links on Safari by [@mattxwang] in [#1403]
|
|
57
|
+
|
|
58
|
+
### Documentation
|
|
59
|
+
|
|
60
|
+
- Add documentation to "Navigation Structure" on grouping pages with collections by [@mitchnemirov] in [#1390]
|
|
61
|
+
|
|
62
|
+
### New Contributors
|
|
63
|
+
|
|
64
|
+
- [@mitchnemirov] made their first contribution in [#1390]
|
|
65
|
+
- [@kcromanpl-bajra] made their first contribution in [#1411]
|
|
66
|
+
|
|
67
|
+
[@mitchnemirov]: https://github.com/mitchnemirov
|
|
68
|
+
[@kcromanpl-bajra]: https://github.com/kcromanpl-bajra
|
|
69
|
+
|
|
70
|
+
[#1374]: https://github.com/just-the-docs/just-the-docs/pull/1374
|
|
71
|
+
[#1390]: https://github.com/just-the-docs/just-the-docs/pull/1390
|
|
72
|
+
[#1397]: https://github.com/just-the-docs/just-the-docs/pull/1397
|
|
73
|
+
[#1403]: https://github.com/just-the-docs/just-the-docs/pull/1403
|
|
74
|
+
[#1411]: https://github.com/just-the-docs/just-the-docs/pull/1411
|
|
75
|
+
|
|
76
|
+
## Release v0.7.0
|
|
77
|
+
|
|
78
|
+
Hi folks! This is a minor release that adds a new configuration option for opening external links in a new tab and provides many bugfixes (in both correctness and performance) for Just the Docs users with large sites. We anticipate that for most users, this is a straightforward upgrade. However, it introduces some potentially-breaking *internal* changes to undocumented features of the theme.
|
|
79
|
+
|
|
80
|
+
### Migrating to `v0.7.0`
|
|
81
|
+
|
|
82
|
+
**Migration**: users will need to migrate if:
|
|
83
|
+
|
|
84
|
+
- they overrode `_includes/nav.html`, which has moved to `_includes/components/nav.html`
|
|
85
|
+
- they have an element with the IDs `jtd-nav-activation` or `jtd-head-nav-stylesheet`
|
|
86
|
+
|
|
87
|
+
For more, refer to the [migration guide](https://just-the-docs.com/MIGRATION/).
|
|
88
|
+
|
|
89
|
+
### Using Release `v0.7.0`
|
|
90
|
+
|
|
91
|
+
Users who have not pinned the theme version will be **automatically upgraded to `v0.7.0` the next time they build their site**.
|
|
92
|
+
|
|
93
|
+
To use this release explicitly as a remote theme:
|
|
94
|
+
|
|
95
|
+
```yml
|
|
96
|
+
remote_theme: just-the-docs/just-the-docs@v0.7.0
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
To use this version explicitly as a gem-based theme, pin the version in your `Gemfile` and re-run `bundle install` or `bundle update just-the-docs`:
|
|
100
|
+
|
|
101
|
+
```ruby
|
|
102
|
+
gem "just-the-docs", "0.7.0"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
To use and pin a previous version of the theme, replace the `0.7.0` with the desired release tag.
|
|
106
|
+
|
|
107
|
+
### New Features
|
|
108
|
+
|
|
109
|
+
- Added: configuration options for opening external links in new tab by [@CarbonNeuron] in [#1360]
|
|
110
|
+
|
|
111
|
+
### Bugfixes
|
|
112
|
+
|
|
113
|
+
- Fixed: remove href from the navigation link to the current page by [@pdmosses] in [#1356]
|
|
114
|
+
- Fixed: improve build time by [@pdmosses] in [#1358]
|
|
115
|
+
- Fixed: erroneous parentheses in `site_nav` conditional by [@mattxwang] in [#1366]
|
|
116
|
+
- Fixed: navigation scroll to active link regression by [@pdmosses] in [#1367]
|
|
117
|
+
- Fixed: invalid CSS rules in head elements by [@pdmosses] in [#1368]
|
|
118
|
+
- Fixed: accidental disabling of forward-declared stylesheets by [@mattxwang] in [#1373]
|
|
119
|
+
|
|
120
|
+
{: .warning }
|
|
121
|
+
[#1358] moved `_includes/nav.html` to the `_includes/components` directory,
|
|
122
|
+
Users who were overriding that file will need to adjust their sites accordingly.
|
|
123
|
+
|
|
124
|
+
### Documentation:
|
|
125
|
+
|
|
126
|
+
- Docs: fix typos in `CHANGELOG` and `MIGRATION` by [@thapasusheel] in [#1377]
|
|
127
|
+
|
|
128
|
+
### New Contributors
|
|
129
|
+
|
|
130
|
+
- [@CarbonNeuron] made their first contribution in [#1360]
|
|
131
|
+
- [@thapasusheel] made their first contribution in [#1377]
|
|
132
|
+
|
|
133
|
+
[@CarbonNeuron]: https://github.com/CarbonNeuron
|
|
134
|
+
[@thapasusheel]: https://github.com/thapasusheel
|
|
135
|
+
|
|
136
|
+
[#1356]: https://github.com/just-the-docs/just-the-docs/pull/1356
|
|
137
|
+
[#1358]: https://github.com/just-the-docs/just-the-docs/pull/1358
|
|
138
|
+
[#1360]: https://github.com/just-the-docs/just-the-docs/pull/1360
|
|
139
|
+
[#1366]: https://github.com/just-the-docs/just-the-docs/pull/1366
|
|
140
|
+
[#1367]: https://github.com/just-the-docs/just-the-docs/pull/1367
|
|
141
|
+
[#1368]: https://github.com/just-the-docs/just-the-docs/pull/1368
|
|
142
|
+
[#1373]: https://github.com/just-the-docs/just-the-docs/pull/1373
|
|
143
|
+
[#1377]: https://github.com/just-the-docs/just-the-docs/pull/1377
|
|
144
|
+
|
|
22
145
|
## Release v0.6.2
|
|
23
146
|
|
|
24
147
|
Hi all, this is a small patch release that includes two changes: adding a missing Windows emoji font fallback, and removing some (now-unused) code introduced in 0.6.
|
|
@@ -644,7 +767,7 @@ This RC does not introduce any major user-facing features. It adds more customiz
|
|
|
644
767
|
|
|
645
768
|
### Trying out pre-release `v0.4.0.rc5`
|
|
646
769
|
|
|
647
|
-
|
|
770
|
+
Similar to the prior release, `v0.4.0.rc5` is a **release candidate** for the theme (i.e., a pre-release) with release `v0.4.0` following immediately after. While we don't anticipate many users using this RC, it is still possible to opt-in.
|
|
648
771
|
|
|
649
772
|
To use this RC explicitly as a remote theme:
|
|
650
773
|
|
|
@@ -745,7 +868,7 @@ Have any questions, thoughts, or concerns? We'd love to hear from you! Please [o
|
|
|
745
868
|
|
|
746
869
|
### Trying out pre-release `v0.4.0.rc4`
|
|
747
870
|
|
|
748
|
-
|
|
871
|
+
Similar to the prior release, `v0.4.0.rc4` is a **release candidate** for the theme (i.e., a pre-release) with release `v0.4.0` coming soon. We want your help in testing the changes! As of now, the gem on RubyGems and the repository are updated to `v0.4.0.rc4`.
|
|
749
872
|
|
|
750
873
|
To use this RC explicitly as a remote theme:
|
|
751
874
|
|
|
@@ -866,7 +989,7 @@ As soon as we get stable test results from major downstream users, we'll push ou
|
|
|
866
989
|
|
|
867
990
|
### Trying out pre-release `v0.4.0.rc3`
|
|
868
991
|
|
|
869
|
-
|
|
992
|
+
Similar to the prior release, `v0.4.0.rc3` is a **release candidate** for the theme (i.e., a pre-release) with release `v0.4.0` coming soon. We want your help in testing the changes! As of now, the gem on RubyGems and the repository are updated to `v0.4.0.rc3`.
|
|
870
993
|
|
|
871
994
|
To use this RC explicitly as a remote theme:
|
|
872
995
|
|
|
@@ -942,7 +1065,7 @@ The intention of this release candidate is to gather even more feedback on a pot
|
|
|
942
1065
|
|
|
943
1066
|
### Trying out pre-release `v0.4.0.rc2`
|
|
944
1067
|
|
|
945
|
-
|
|
1068
|
+
Similar to the prior release, `v0.4.0.rc2` is a **release candidate** for the theme (i.e., a pre-release) with release `v0.4.0` coming soon. We want your help in testing the changes! As of now, the gem on RubyGems and the repository are updated to `v0.4.0.rc2`.
|
|
946
1069
|
|
|
947
1070
|
To use this RC explicitly as a remote theme:
|
|
948
1071
|
|
|
@@ -1030,7 +1153,7 @@ We want your feedback! Are these changes helpful? Are our docs easy to understan
|
|
|
1030
1153
|
|
|
1031
1154
|
### Trying out pre-release `v0.4.0.rc1`
|
|
1032
1155
|
|
|
1033
|
-
Due to the massive scope of these changes, we're making `v0.4.0.rc1`
|
|
1156
|
+
Due to the massive scope of these changes, we're making `v0.4.0.rc1` available as a **release candidate** for the theme (i.e., a pre-release) with release `v0.4.0` coming soon. We want your help in testing the changes! As of now, the gem on RubyGems and the repository are updated to `v0.4.0.rc1`.
|
|
1034
1157
|
|
|
1035
1158
|
To use this RC explicitly as a remote theme:
|
|
1036
1159
|
|
|
@@ -1542,7 +1665,7 @@ fixes #291 #256 #293 #177
|
|
|
1542
1665
|
|
|
1543
1666
|
## v0.2.1
|
|
1544
1667
|
|
|
1545
|
-
This update fixes security
|
|
1668
|
+
This update fixes security vulnerabilities in the lodash sub-dependency and bumps other dev dependencies to their latest version.
|
|
1546
1669
|
|
|
1547
1670
|
## v0.2.0
|
|
1548
1671
|
|
|
@@ -3,39 +3,140 @@
|
|
|
3
3
|
Depends on: page, site.
|
|
4
4
|
Results in: HTML for the breadcrumbs component.
|
|
5
5
|
Overwrites:
|
|
6
|
-
pages_list, parent_page, grandparent_page.
|
|
6
|
+
node, pages_list, parent_page, grandparent_page.
|
|
7
7
|
{%- endcomment -%}
|
|
8
8
|
|
|
9
9
|
{%- if page.url != "/" and page.parent -%}
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
{%- capture nav_list_link -%}
|
|
12
|
+
<a href="{{ page.url | relative_url }}" class="nav-list-link">
|
|
13
|
+
{%- endcapture -%}
|
|
14
|
+
|
|
15
|
+
{%- capture site_nav -%}
|
|
16
|
+
{%- include_cached components/site_nav.html -%}
|
|
17
|
+
{%- endcapture -%}
|
|
18
|
+
|
|
19
|
+
{%- if site_nav contains nav_list_link -%}
|
|
20
|
+
|
|
21
|
+
{%- capture nav_list_simple -%}
|
|
22
|
+
<ul class="nav-list">
|
|
23
|
+
{%- endcapture -%}
|
|
24
|
+
|
|
25
|
+
{%- capture nav_list_link_class %} class="nav-list-link">
|
|
26
|
+
{%- endcapture -%}
|
|
27
|
+
|
|
28
|
+
{%- capture nav_category -%}
|
|
29
|
+
<div class="nav-category">
|
|
30
|
+
{%- endcapture -%}
|
|
31
|
+
|
|
32
|
+
{%- assign nav_anchor_splits =
|
|
33
|
+
site_nav | split: nav_list_link |
|
|
34
|
+
first | split: nav_category |
|
|
35
|
+
last | split: "</a>" -%}
|
|
36
|
+
|
|
37
|
+
{%- comment -%}
|
|
38
|
+
The ordinary pages (if any) and the collections pages (if any) are separated by
|
|
39
|
+
occurrences of nav_category.
|
|
40
|
+
|
|
41
|
+
Any ancestor nav-links of the page are contained in the last group of pages,
|
|
42
|
+
immediately preceding nav-lists. After splitting at "</a>", the anchor that
|
|
43
|
+
was split is a potential ancestor link when the following split starts with
|
|
44
|
+
a nav-list.
|
|
45
|
+
|
|
46
|
+
The array nav_breadcrumbs is the stack of current potential ancestors of the
|
|
47
|
+
current page. A split that contains one or more "</ul>"s requires that number
|
|
48
|
+
of potential ancestors to be popped from the stack.
|
|
49
|
+
|
|
50
|
+
The number of occurrences of a string in nav_split_next is computed by removing
|
|
51
|
+
them all, then dividing the resulting size difference by the length of the string.
|
|
52
|
+
{%- endcomment %}
|
|
53
|
+
|
|
54
|
+
{%- assign nav_breadcrumbs = "" | split: "" -%}
|
|
55
|
+
|
|
56
|
+
{%- for nav_split in nav_anchor_splits -%}
|
|
57
|
+
{%- unless forloop.last -%}
|
|
58
|
+
|
|
59
|
+
{%- assign nav_split_next = nav_anchor_splits[forloop.index] | trim -%}
|
|
60
|
+
|
|
61
|
+
{%- assign nav_split_test =
|
|
62
|
+
nav_split_next | remove_first: nav_list_simple | prepend: nav_list_simple -%}
|
|
63
|
+
{%- if nav_split_test == nav_split_next -%}
|
|
64
|
+
{%- assign nav_breadcrumb_link =
|
|
65
|
+
nav_split | split: "<a " | last | prepend: "<a " |
|
|
66
|
+
replace: nav_list_link_class, ">" | append: "</a>" -%}
|
|
67
|
+
{%- assign nav_breadcrumbs = nav_breadcrumbs | push: nav_breadcrumb_link -%}
|
|
68
|
+
{%- endif -%}
|
|
69
|
+
|
|
70
|
+
{%- if nav_split_next contains "</ul>" -%}
|
|
71
|
+
{%- assign nav_list_end_less = nav_split_next | remove: "</ul>" -%}
|
|
72
|
+
{%- assign nav_list_end_count =
|
|
73
|
+
nav_split_next.size | minus: nav_list_end_less.size | divided_by: 5 -%}
|
|
74
|
+
{% for nav_end_index in (1..nav_list_end_count) %}
|
|
75
|
+
{%- assign nav_breadcrumbs = nav_breadcrumbs | pop -%}
|
|
76
|
+
{%- endfor -%}
|
|
77
|
+
{%- endif -%}
|
|
78
|
+
|
|
79
|
+
{%- endunless -%}
|
|
80
|
+
{%- endfor -%}
|
|
81
|
+
|
|
82
|
+
{%- assign nav_parent_link = nav_breadcrumbs[-1] -%}
|
|
83
|
+
{%- assign nav_grandparent_link = nav_breadcrumbs[-2] -%}
|
|
84
|
+
|
|
85
|
+
{%- else -%}
|
|
86
|
+
|
|
87
|
+
{%- comment -%}
|
|
88
|
+
Pages whose links are excluded from the main navigation may still have
|
|
89
|
+
breadcrumbs. Determining them appears to require inspecting the front matter
|
|
90
|
+
of all the pages in the same group. For sites with 100s of pages, this is too
|
|
91
|
+
inefficient in Jekyll 3 (also when the for-loop is replaced by where-filters).
|
|
92
|
+
{%- endcomment -%}
|
|
93
|
+
|
|
94
|
+
{%- assign pages_list = site[page.collection] | default: site.html_pages -%}
|
|
95
|
+
|
|
96
|
+
{%- assign parent_page = nil -%}
|
|
97
|
+
{%- assign grandparent_page = nil -%}
|
|
98
|
+
|
|
99
|
+
{%- for node in pages_list -%}
|
|
100
|
+
|
|
101
|
+
{%- if node.has_children and page.grand_parent -%}
|
|
102
|
+
|
|
103
|
+
{%- if node.title == page.parent and node.parent == page.grand_parent -%}
|
|
104
|
+
{%- assign parent_page = node -%}
|
|
105
|
+
{%- endif -%}
|
|
106
|
+
{%- if node.title == page.grand_parent -%}
|
|
107
|
+
{%- assign grandparent_page = node -%}
|
|
108
|
+
{%- endif -%}
|
|
109
|
+
{%- if parent_page and grandparent_page -%}
|
|
110
|
+
{%- break -%}
|
|
111
|
+
{%- endif -%}
|
|
112
|
+
|
|
113
|
+
{%- elsif node.has_children and node.title == page.parent and node.parent == nil -%}
|
|
114
|
+
|
|
115
|
+
{%- assign parent_page = node -%}
|
|
116
|
+
{%- break -%}
|
|
117
|
+
|
|
118
|
+
{%- endif -%}
|
|
119
|
+
|
|
120
|
+
{%- endfor -%}
|
|
121
|
+
|
|
122
|
+
{%- capture nav_parent_link -%}
|
|
123
|
+
<a href="{{ parent_page.url | relative_url }}">{{ page.parent }}</a>
|
|
124
|
+
{%- endcapture -%}
|
|
125
|
+
|
|
126
|
+
{%- if page.grand_parent %}
|
|
127
|
+
{%- capture nav_grandparent_link -%}
|
|
128
|
+
<a href="{{ grandparent_page.url | relative_url }}">{{ page.grand_parent }}</a>
|
|
129
|
+
{%- endcapture -%}
|
|
29
130
|
{%- endif -%}
|
|
30
131
|
|
|
132
|
+
{%- endif -%}
|
|
133
|
+
|
|
31
134
|
<nav aria-label="Breadcrumb" class="breadcrumb-nav">
|
|
32
135
|
<ol class="breadcrumb-nav-list">
|
|
33
|
-
{
|
|
34
|
-
|
|
35
|
-
<li class="breadcrumb-nav-list-item"><a href="{{ grandparent_page.url | relative_url }}">{{ page.grand_parent }}</a></li>
|
|
136
|
+
{%- if nav_grandparent_link %}
|
|
137
|
+
<li class="breadcrumb-nav-list-item">{{ nav_grandparent_link }}</li>
|
|
36
138
|
{%- endif %}
|
|
37
|
-
<li class="breadcrumb-nav-list-item"
|
|
38
|
-
{% endif -%}
|
|
139
|
+
<li class="breadcrumb-nav-list-item">{{ nav_parent_link }}</li>
|
|
39
140
|
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
|
|
40
141
|
</ol>
|
|
41
142
|
</nav>
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
Depends on: page(?), site.
|
|
4
4
|
Results in: HTML for the side bar.
|
|
5
5
|
Includes:
|
|
6
|
-
title.html,
|
|
7
|
-
Overwrites:
|
|
8
|
-
|
|
9
|
-
collection_key, collection_value, collection, nav_footer_custom.
|
|
6
|
+
title.html, components/site_nav.html, nav_footer_custom.html
|
|
7
|
+
Overwrites:
|
|
8
|
+
nav_footer_custom.
|
|
10
9
|
Should not be cached, because nav_footer_custom.html might depend on page.
|
|
11
10
|
{%- endcomment -%}
|
|
12
11
|
|
|
@@ -17,58 +16,8 @@
|
|
|
17
16
|
<svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg>
|
|
18
17
|
</button>
|
|
19
18
|
</div>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
| where_exp:"item", "item.title != nil"
|
|
23
|
-
| where_exp:"item", "item.parent == nil"
|
|
24
|
-
| where_exp:"item", "item.nav_exclude != true"
|
|
25
|
-
| size %}
|
|
26
|
-
{% if pages_top_size > 0 %}
|
|
27
|
-
{% include_cached nav.html pages=site.html_pages %}
|
|
28
|
-
{% endif %}
|
|
29
|
-
{%- if site.nav_external_links -%}
|
|
30
|
-
<ul class="nav-list">
|
|
31
|
-
{%- for node in site.nav_external_links -%}
|
|
32
|
-
<li class="nav-list-item external">
|
|
33
|
-
<a href="{{ node.url | absolute_url }}" class="nav-list-link external">
|
|
34
|
-
{{ node.title }}
|
|
35
|
-
{% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
|
|
36
|
-
</a>
|
|
37
|
-
</li>
|
|
38
|
-
{%- endfor -%}
|
|
39
|
-
</ul>
|
|
40
|
-
{%- endif -%}
|
|
41
|
-
{% if site.just_the_docs.collections %}
|
|
42
|
-
{% assign collections_size = site.just_the_docs.collections | size %}
|
|
43
|
-
{% for collection_entry in site.just_the_docs.collections %}
|
|
44
|
-
{% assign collection_key = collection_entry[0] %}
|
|
45
|
-
{% assign collection_value = collection_entry[1] %}
|
|
46
|
-
{% assign collection = site[collection_key] %}
|
|
47
|
-
{% if collection_value.nav_exclude != true %}
|
|
48
|
-
{% if collections_size > 1 or pages_top_size > 0 %}
|
|
49
|
-
{% if collection_value.nav_fold == true %}
|
|
50
|
-
<ul class="nav-list nav-category-list">
|
|
51
|
-
<li class="nav-list-item{% if page.collection == collection_key %} active{% endif %}">
|
|
52
|
-
{%- if collection.size > 0 -%}
|
|
53
|
-
<button class="nav-list-expander btn-reset" aria-label="Toggle collection {{ collection_value.name }}" aria-pressed="{% if page.collection == collection_key %}true{% else %}false{% endif %}">
|
|
54
|
-
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
|
|
55
|
-
</button>
|
|
56
|
-
{%- endif -%}
|
|
57
|
-
<div class="nav-category">{{ collection_value.name }}</div>
|
|
58
|
-
{% include_cached nav.html pages=collection %}
|
|
59
|
-
</li>
|
|
60
|
-
</ul>
|
|
61
|
-
{% else %}
|
|
62
|
-
<div class="nav-category">{{ collection_value.name }}</div>
|
|
63
|
-
{% include_cached nav.html pages=collection %}
|
|
64
|
-
{% endif %}
|
|
65
|
-
{% else %}
|
|
66
|
-
{% include_cached nav.html pages=collection %}
|
|
67
|
-
{% endif %}
|
|
68
|
-
{% endif %}
|
|
69
|
-
{% endfor %}
|
|
70
|
-
{% endif %}
|
|
71
|
-
</nav>
|
|
19
|
+
|
|
20
|
+
{% include_cached components/site_nav.html %}
|
|
72
21
|
|
|
73
22
|
{% capture nav_footer_custom %}
|
|
74
23
|
{%- include nav_footer_custom.html -%}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Include as: {%- include_cached components/site_nav.html -%}
|
|
3
|
+
Depends on: site.
|
|
4
|
+
Results in: HTML for the site-nav.
|
|
5
|
+
Includes:
|
|
6
|
+
components/nav.html
|
|
7
|
+
Overwrites:
|
|
8
|
+
pages_top_size, collections_size, collection_entry,
|
|
9
|
+
collection_key, collection_value, collection.
|
|
10
|
+
{%- endcomment -%}
|
|
11
|
+
|
|
12
|
+
<nav aria-label="Main" id="site-nav" class="site-nav">
|
|
13
|
+
{% assign pages_top_size = site.html_pages
|
|
14
|
+
| where_exp:"item", "item.title != nil"
|
|
15
|
+
| where_exp:"item", "item.parent == nil"
|
|
16
|
+
| where_exp:"item", "item.nav_exclude != true"
|
|
17
|
+
| size %}
|
|
18
|
+
{% if pages_top_size > 0 %}
|
|
19
|
+
{% include components/nav.html pages=site.html_pages %}
|
|
20
|
+
{% endif %}
|
|
21
|
+
{%- if site.nav_external_links -%}
|
|
22
|
+
<ul class="nav-list">
|
|
23
|
+
{%- for node in site.nav_external_links -%}
|
|
24
|
+
<li class="nav-list-item external">
|
|
25
|
+
<a href="{{ node.url | absolute_url }}" class="nav-list-link external"
|
|
26
|
+
{% if node.opens_in_new_tab or node.opens_in_new_tab == nil and site.nav_external_links_new_tab %}
|
|
27
|
+
target="_blank" rel="noopener noreferrer"
|
|
28
|
+
{% endif %}
|
|
29
|
+
>
|
|
30
|
+
{{ node.title }}
|
|
31
|
+
{% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
|
|
32
|
+
</a>
|
|
33
|
+
</li>
|
|
34
|
+
{%- endfor -%}
|
|
35
|
+
</ul>
|
|
36
|
+
{%- endif -%}
|
|
37
|
+
{% if site.just_the_docs.collections %}
|
|
38
|
+
{% assign collections_size = site.just_the_docs.collections | size %}
|
|
39
|
+
{% for collection_entry in site.just_the_docs.collections %}
|
|
40
|
+
{% assign collection_key = collection_entry[0] %}
|
|
41
|
+
{% assign collection_value = collection_entry[1] %}
|
|
42
|
+
{% assign collection = site[collection_key] %}
|
|
43
|
+
{% if collection_value.nav_exclude != true %}
|
|
44
|
+
{% if collections_size > 1 or pages_top_size > 0 %}
|
|
45
|
+
{% if collection_value.nav_fold == true %}
|
|
46
|
+
<ul class="nav-list nav-category-list">
|
|
47
|
+
<li class="nav-list-item">
|
|
48
|
+
{%- if collection.size > 0 -%}
|
|
49
|
+
<button class="nav-list-expander btn-reset" aria-label="Toggle collection {{ collection_value.name }}" aria-pressed="false">
|
|
50
|
+
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
|
|
51
|
+
</button>
|
|
52
|
+
{%- endif -%}
|
|
53
|
+
<div class="nav-category">{{ collection_value.name }}</div>
|
|
54
|
+
{% include components/nav.html pages=collection %}
|
|
55
|
+
</li>
|
|
56
|
+
</ul>
|
|
57
|
+
{% else %}
|
|
58
|
+
<div class="nav-category">{{ collection_value.name }}</div>
|
|
59
|
+
{% include components/nav.html pages=collection %}
|
|
60
|
+
{% endif %}
|
|
61
|
+
{% else %}
|
|
62
|
+
{% include components/nav.html pages=collection %}
|
|
63
|
+
{% endif %}
|
|
64
|
+
{% endif %}
|
|
65
|
+
{% endfor %}
|
|
66
|
+
{% endif %}
|
|
67
|
+
</nav>
|
|
@@ -1,172 +1,332 @@
|
|
|
1
1
|
{%- comment -%}
|
|
2
2
|
Include as: {%- include css/activation.scss.liquid -%}
|
|
3
|
-
Depends on: page
|
|
4
|
-
Results in: page-dependent
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Depends on: page.
|
|
4
|
+
Results in: page-dependent CSS rules for inclusion in a style element,
|
|
5
|
+
which needs to be disabled when JS is enabled.
|
|
6
|
+
Includes: components/site_nav.html.
|
|
7
7
|
Overwrites:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
activation_no_nav_link, nav_list_link, site_nav,
|
|
9
|
+
nav_list, nav_list_end, nav_list_item, nav_category_list,
|
|
10
|
+
nav_list_link_prefix, nav_splits, nav_split, nav_levels,
|
|
11
|
+
nav_list_less, nav_list_count, nav_end_less, nav_end_count,
|
|
12
|
+
nav_index, nav_slice_size,
|
|
13
|
+
activation_collection_prefix, activation_other_collection_prefix.
|
|
12
14
|
Should not be cached, because it depends on page.
|
|
13
|
-
(For a site with only top-level pages, the rendering of this file is always empty.
|
|
14
|
-
This property could be detected, and might halve the build time for such sites.)
|
|
15
15
|
{%- endcomment -%}
|
|
16
16
|
|
|
17
|
-
{%-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
| where_exp: "item", "item.nav_exclude != true" -%}
|
|
23
|
-
|
|
24
|
-
{%- assign activation_first_level_index = nil -%}
|
|
25
|
-
{%- assign activation_second_level_index = nil -%}
|
|
26
|
-
{%- assign activation_third_level_index = nil -%}
|
|
27
|
-
{%- assign activation_first_level_reversed = nil -%}
|
|
28
|
-
{%- assign activation_second_level_reversed = nil -%}
|
|
29
|
-
|
|
30
|
-
{%- assign activation_title = page.grand_parent | default: page.parent | default: page.title -%}
|
|
31
|
-
{%- assign activation_first_level = activation_pages
|
|
32
|
-
| where_exp: "item", "item.parent == nil" -%}
|
|
33
|
-
{%- include sorted_pages.html pages = activation_first_level -%}
|
|
34
|
-
{%- for activation_page in sorted_pages -%}
|
|
35
|
-
{%- if activation_page.title == activation_title -%}
|
|
36
|
-
{%- assign activation_first_level_index = forloop.index -%}
|
|
37
|
-
{%- assign activation_first_level_reversed = activation_page.child_nav_order -%}
|
|
38
|
-
{%- break -%}
|
|
39
|
-
{%- endif -%}
|
|
40
|
-
{%- endfor -%}
|
|
17
|
+
{%- comment -%}
|
|
18
|
+
The CSS rules in activation_no_nav_link are for use on pages excluded from the main navigation.
|
|
19
|
+
- The first rule ensures that no nav-link has a background image.
|
|
20
|
+
- The other two rules ensure that all folding collections are expanded.
|
|
21
|
+
{%- endcomment -%}
|
|
41
22
|
|
|
42
|
-
{%-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{%- endif
|
|
55
|
-
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
23
|
+
{%- capture activation_no_nav_link %}
|
|
24
|
+
.site-nav ul li a {
|
|
25
|
+
background-image: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
{%- if site.just_the_docs.collections %}
|
|
29
|
+
.site-nav > ul.nav-category-list > li > button svg {
|
|
30
|
+
transform: rotate(-90deg);
|
|
31
|
+
}
|
|
32
|
+
.site-nav > ul.nav-category-list > li.nav-list-item > ul.nav-list {
|
|
33
|
+
display: block;
|
|
34
|
+
}
|
|
35
|
+
{%- endif %}
|
|
36
|
+
{% endcapture -%}
|
|
37
|
+
|
|
38
|
+
{%- capture nav_list_link -%}
|
|
39
|
+
<a href="{{ page.url | relative_url }}" class="nav-list-link">
|
|
40
|
+
{%- endcapture -%}
|
|
41
|
+
|
|
42
|
+
{%- capture site_nav -%}
|
|
43
|
+
{%- include_cached components/site_nav.html -%}
|
|
44
|
+
{%- endcapture -%}
|
|
45
|
+
|
|
46
|
+
{%- if site_nav contains nav_list_link -%}
|
|
47
|
+
|
|
48
|
+
{%- capture nav_list -%}
|
|
49
|
+
<ul class="nav-list
|
|
50
|
+
{%- endcapture -%}
|
|
51
|
+
|
|
52
|
+
{%- assign nav_list_end = "</ul>" -%}
|
|
53
|
+
|
|
54
|
+
{%- capture nav_list_item -%}
|
|
55
|
+
<li class="nav-list-item
|
|
56
|
+
{%- endcapture -%}
|
|
57
|
+
|
|
58
|
+
{%- capture nav_category_list -%}
|
|
59
|
+
<ul class="nav-list nav-category-list">
|
|
60
|
+
{%- endcapture -%}
|
|
61
|
+
|
|
62
|
+
{%- assign nav_list_link_prefix =
|
|
63
|
+
site_nav | split: nav_list_link | first | append: nav_list_link -%}
|
|
64
|
+
|
|
65
|
+
{%- assign nav_splits =
|
|
66
|
+
nav_list_link_prefix | split: nav_list_item | pop -%}
|
|
67
|
+
|
|
68
|
+
{%- assign nav_levels = "" | split: "" | push: 1 -%}
|
|
69
|
+
|
|
70
|
+
{%- comment -%}
|
|
71
|
+
The pattern of occurrences of list and list-item tags in the site_nav string
|
|
72
|
+
is included in the language defined by the following context-free grammar:
|
|
73
|
+
|
|
74
|
+
site_nav = PAGES? EXTERNALS? COLLECTION*
|
|
75
|
+
|
|
76
|
+
PAGES = nav_list (nav_list_item PAGES?)+ nav_list_end
|
|
77
|
+
|
|
78
|
+
EXTERNALS = nav_list nav_list_item+ nav_list_end
|
|
79
|
+
|
|
80
|
+
COLLECTION = nav_list (nav_list_item PAGES?)* nav_list_end
|
|
81
|
+
| nav_category_list
|
|
82
|
+
nav_list_item nav_list (nav_list_item PAGES?)* nav_list_end
|
|
83
|
+
nav_list_end
|
|
84
|
+
|
|
85
|
+
To determine the path in the site_nav to the nav_list_link for the current page,
|
|
86
|
+
the prefix of nav_list_link in site_nav is split at each nav_list_item to give
|
|
87
|
+
an array of nav_splits.
|
|
88
|
+
|
|
89
|
+
In site_nav, occurrences of nav_list must be separated by at least one
|
|
90
|
+
nav_list_item or nav_list_end. Moreover, when a nav_list_end is followed by a
|
|
91
|
+
nav_list without an intervening nav_list_item, that nav_list must start either
|
|
92
|
+
a list of external links or a collection. And when a nav_list is followed by a
|
|
93
|
+
nav_list_end without an intervening nav_list_item, they form an empty collection.
|
|
94
|
+
|
|
95
|
+
nav_levels is the path determined by the previously inspected nav_splits.
|
|
96
|
+
How many times nav_list and nav_list_end occur in the current nav_split
|
|
97
|
+
determines how to update the path.
|
|
98
|
+
|
|
99
|
+
A nav_split can contain any number of empty non-foldable collections.
|
|
100
|
+
The path element produced by the outer nav_list of a foldable collection is
|
|
101
|
+
irrelevant; it is set to zero and subsequently removed.
|
|
102
|
+
|
|
103
|
+
The number of occurrences of a string in a nav_split is computed by removing
|
|
104
|
+
them all, then dividing the resulting size difference by the length of the string.
|
|
105
|
+
|
|
106
|
+
Case analysis on (nav_list_count, nav_list_end_count):
|
|
107
|
+
|
|
108
|
+
- when (0, 0), the nav_split was between two nav_list_items at the same level;
|
|
109
|
+
|
|
110
|
+
- when (0, N+1), all the nav_list_ends in the nav_split are in PAGES or in one
|
|
111
|
+
COLLECTION;
|
|
112
|
+
|
|
113
|
+
- when (M+1, 0), M must be 0 (because two nav_lists in the same nav_split must
|
|
114
|
+
be separated by at least one nav_list_end);
|
|
115
|
+
|
|
116
|
+
- when (M+1, N+1), the nav_split must contain either:
|
|
117
|
+
- the end of PAGES followed by the start of EXTERNALS, or
|
|
118
|
+
- the end of PAGES followed by the start of a COLLECTION, or
|
|
119
|
+
- the end of EXTERNALS followed by the start of a COLLECTION, or
|
|
120
|
+
- the end of one COLLECTION followed by the start of another, or
|
|
121
|
+
- (in the first nav_split) one or more empty non-foldable COLLECTIONS
|
|
122
|
+
followed by the start of a COLLECTION.
|
|
123
|
+
In general, nav_levels[0] here needs to be incremented by nav_list_count.
|
|
124
|
+
However, a nav_split that contains the end of an empty foldable collection
|
|
125
|
+
followed by the just the start of a collection has two occurrences of nav_list,
|
|
126
|
+
and the increment needs to be one less; similarly when the first nav_split
|
|
127
|
+
starts with an empty non-foldable collection.
|
|
128
|
+
{%- endcomment %}
|
|
129
|
+
|
|
130
|
+
{%- for nav_split in nav_splits -%}
|
|
131
|
+
|
|
132
|
+
{%- assign nav_list_less = nav_split | remove: nav_list -%}
|
|
133
|
+
{%- assign nav_list_count =
|
|
134
|
+
nav_split.size | minus: nav_list_less.size |
|
|
135
|
+
divided_by: nav_list.size -%}
|
|
136
|
+
|
|
137
|
+
{%- assign nav_list_end_less = nav_split | remove: nav_list_end -%}
|
|
138
|
+
{%- assign nav_list_end_count =
|
|
139
|
+
nav_split.size | minus: nav_list_end_less.size |
|
|
140
|
+
divided_by: nav_list_end.size -%}
|
|
141
|
+
|
|
142
|
+
{%- if nav_list_count == 0 and nav_list_end_count == 0 -%}
|
|
143
|
+
|
|
144
|
+
{%- assign nav_index = nav_levels[-1] | plus: 1 -%}
|
|
145
|
+
{%- assign nav_levels = nav_levels | pop | push: nav_index -%}
|
|
146
|
+
|
|
147
|
+
{%- elsif nav_list_count == 0 and nav_list_end_count >= 1 -%}
|
|
148
|
+
|
|
149
|
+
{%- assign nav_slice_size = nav_levels.size | minus: nav_list_end_count -%}
|
|
150
|
+
{%- assign nav_levels = nav_levels | slice: 0, nav_slice_size -%}
|
|
151
|
+
{%- assign nav_index = nav_levels[-1] | plus: 1 -%}
|
|
152
|
+
{%- assign nav_levels = nav_levels | pop | push: nav_index -%}
|
|
153
|
+
|
|
154
|
+
{%- elsif nav_list_count == 1 and nav_list_end_count == 0 -%}
|
|
155
|
+
|
|
156
|
+
{%- if nav_split contains nav_category_list -%}
|
|
157
|
+
{%- assign nav_levels = nav_levels | push: 0 -%}
|
|
158
|
+
{%- else -%}
|
|
159
|
+
{%- assign nav_levels = nav_levels | push: 1 -%}
|
|
65
160
|
{%- endif -%}
|
|
66
|
-
{%- endfor -%}
|
|
67
|
-
{%- endif -%}
|
|
68
161
|
|
|
69
|
-
{%-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
{%- if
|
|
77
|
-
{%- assign
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
{%- endif -%}
|
|
81
|
-
{%- break -%}
|
|
162
|
+
{%- elsif nav_list_count >= 1 and nav_list_end_count >= 1 -%}
|
|
163
|
+
|
|
164
|
+
{%- assign nav_index = nav_levels[0] | plus: nav_list_count -%}
|
|
165
|
+
{%- if nav_levels[-1] == 0 or forloop.first -%}
|
|
166
|
+
{%- assign nav_index = nav_index | minus: 1 -%}
|
|
167
|
+
{%- endif -%}
|
|
168
|
+
{%- assign nav_levels = nav_levels | slice: 0, 0 | push: nav_index -%}
|
|
169
|
+
{%- if nav_split contains nav_category_list -%}
|
|
170
|
+
{%- assign nav_levels = nav_levels | push: 0 -%}
|
|
171
|
+
{%- else -%}
|
|
172
|
+
{%- assign nav_levels = nav_levels | push: 1 -%}
|
|
82
173
|
{%- endif -%}
|
|
83
|
-
|
|
174
|
+
|
|
175
|
+
{%- endif -%}
|
|
176
|
+
|
|
177
|
+
{%- endfor -%}
|
|
178
|
+
|
|
179
|
+
{%- assign nav_levels = nav_levels | where_exp: "item", "item >= 1" -%}
|
|
180
|
+
|
|
84
181
|
{%- endif -%}
|
|
85
182
|
|
|
86
|
-
{%-
|
|
183
|
+
{%- comment -%}
|
|
184
|
+
The generated CSS depends on the position of the current page in each level in
|
|
185
|
+
the navigation.
|
|
186
|
+
{%- endcomment -%}
|
|
187
|
+
|
|
188
|
+
{%- if nav_levels[1] == nil -%}
|
|
189
|
+
|
|
190
|
+
{{ activation_no_nav_link }}
|
|
191
|
+
|
|
192
|
+
{%- else -%}
|
|
193
|
+
|
|
194
|
+
{%- if nav_levels[2] == nil and nav_levels[3] -%}
|
|
195
|
+
|
|
196
|
+
{{ activation_no_nav_link }}
|
|
197
|
+
|
|
198
|
+
{%- else -%}
|
|
199
|
+
|
|
200
|
+
{%- comment -%}
|
|
201
|
+
The site-nav is:
|
|
202
|
+
- an optional ul.nav-list with li.nav-list-items for non-collection top-level pages
|
|
203
|
+
- an optional ul.nav-list with li.nav-list-item.externals
|
|
204
|
+
- any number of just-the-docs.collections
|
|
205
|
+
|
|
206
|
+
A non-foldable collection is:
|
|
207
|
+
- a div.nav-category with the collection name, followed by:
|
|
208
|
+
- a ul.nav-list with li.nav-list-items for its top-level pages
|
|
209
|
+
|
|
210
|
+
A foldable collection is:
|
|
211
|
+
- a ul.nav-list.nav-category-list with a single li.nav-list-item containing:
|
|
212
|
+
- an optional button with the expander svg
|
|
213
|
+
- a div.nav-category with the collection name
|
|
214
|
+
- a ul.nav-list with li.nav-list-items for its top-level pages
|
|
215
|
+
|
|
216
|
+
The generated CSS uses:
|
|
217
|
+
- activation_collection_prefix, to select the site-nav > ul.nav-list for the page
|
|
218
|
+
- activation_other_collection_prefix, to select all the other site-nav > ul.nav-lists
|
|
219
|
+
{%- endcomment -%}
|
|
87
220
|
|
|
88
221
|
{%- if page.collection == nil -%}
|
|
89
222
|
|
|
90
223
|
{%- capture activation_collection_prefix -%}
|
|
91
|
-
.site-nav > .nav-list:
|
|
224
|
+
.site-nav > ul.nav-list:first-child
|
|
225
|
+
{%- endcapture -%}
|
|
226
|
+
|
|
227
|
+
{%- capture activation_other_collection_prefix -%}
|
|
228
|
+
.site-nav > ul.nav-list:not(:first-child)
|
|
92
229
|
{%- endcapture -%}
|
|
93
230
|
|
|
94
231
|
{%- else -%}
|
|
95
232
|
|
|
96
|
-
{%- for activation_collection in site.just_the_docs.collections -%}
|
|
97
|
-
{%- if activation_collection[0] == page.collection -%}
|
|
98
|
-
{%- assign activation_collection_index = forloop.index -%}
|
|
99
|
-
{%- break -%}
|
|
100
|
-
{%- endif -%}
|
|
101
|
-
{%- endfor -%}
|
|
102
|
-
{%- assign activation_index = activation_collection_index -%}
|
|
103
|
-
{%- assign activation_pages_top_size = site.html_pages
|
|
104
|
-
| where_exp:"item", "item.title != nil"
|
|
105
|
-
| where_exp:"item", "item.parent == nil"
|
|
106
|
-
| where_exp:"item", "item.nav_exclude != true"
|
|
107
|
-
| size -%}
|
|
108
|
-
{%- if activation_pages_top_size > 0 -%}
|
|
109
|
-
{%- assign activation_index = activation_index | plus: 1 -%}
|
|
110
|
-
{%- endif -%}
|
|
111
|
-
{%- if site.nav_external_links -%}
|
|
112
|
-
{%- assign activation_index = activation_index | plus: 1 -%}
|
|
113
|
-
{%- endif -%}
|
|
114
233
|
{%- capture activation_collection_prefix -%}
|
|
115
|
-
.site-nav >
|
|
234
|
+
.site-nav > ul:nth-of-type({{ nav_levels[0] }})
|
|
235
|
+
{%- if site.just_the_docs.collections[page.collection].nav_fold %} > li > ul
|
|
236
|
+
{%- endif -%}
|
|
116
237
|
{%- endcapture -%}
|
|
117
|
-
|
|
238
|
+
|
|
239
|
+
{%- capture activation_other_collection_prefix -%}
|
|
240
|
+
.site-nav > ul:not(:nth-of-type({{ nav_levels[0] }}))
|
|
241
|
+
{%- endcapture -%}
|
|
242
|
+
|
|
118
243
|
{%- endif -%}
|
|
119
244
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
}
|
|
245
|
+
{%- comment -%}
|
|
246
|
+
The required background image of the link to the current page may involve SCSS.
|
|
247
|
+
To avoid page-dependent SCSS, all nav links initially have that background image.
|
|
248
|
+
The following rule removes the image from the links to all parents, siblings,
|
|
249
|
+
and children of the current page.
|
|
250
|
+
{%- endcomment %}
|
|
251
|
+
|
|
252
|
+
{% if nav_levels[3] -%}
|
|
253
|
+
|
|
254
|
+
{{ activation_collection_prefix }} > li > a,
|
|
255
|
+
{{ activation_collection_prefix }} > li > ul > li > a,
|
|
256
|
+
{{ activation_collection_prefix }} > li > ul > li > ul > li:not(:nth-child({{ nav_levels[3] }})) > a {
|
|
257
|
+
background-image: none;
|
|
135
258
|
}
|
|
136
259
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
transform: rotate(-90deg);
|
|
144
|
-
} @else {
|
|
145
|
-
transform: rotate(90deg);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
> .nav-list {
|
|
150
|
-
display: block;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
260
|
+
{%- elsif nav_levels[2] -%}
|
|
261
|
+
|
|
262
|
+
{{ activation_collection_prefix }} > li > a,
|
|
263
|
+
{{ activation_collection_prefix }} > li > ul > li:not(:nth-child({{ nav_levels[2] }})) > a,
|
|
264
|
+
{{ activation_collection_prefix }} > li > ul > li > ul > li > a {
|
|
265
|
+
background-image: none;
|
|
153
266
|
}
|
|
154
267
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
transform: rotate(90deg);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
> .nav-list {
|
|
166
|
-
display: block;
|
|
167
|
-
}
|
|
268
|
+
{%- else -%}
|
|
269
|
+
|
|
270
|
+
{{ activation_collection_prefix }} > li:not(:nth-child({{ nav_levels[1] }})) > a,
|
|
271
|
+
{{ activation_collection_prefix }} > li > ul > li > a,
|
|
272
|
+
{{ activation_collection_prefix }} > li > ul > li > ul > li > a {
|
|
273
|
+
background-image: none;
|
|
168
274
|
}
|
|
169
275
|
|
|
170
|
-
{%-
|
|
171
|
-
|
|
172
|
-
{%-
|
|
276
|
+
{%- endif %}
|
|
277
|
+
|
|
278
|
+
{%- comment -%}
|
|
279
|
+
The following rule removes the image from the links to pages in other collections.
|
|
280
|
+
{%- endcomment %}
|
|
281
|
+
|
|
282
|
+
{{ activation_other_collection_prefix }} a,
|
|
283
|
+
.site-nav li.external a {
|
|
284
|
+
background-image: none;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
{%- comment -%}
|
|
288
|
+
The following rule styles the link to the current page.
|
|
289
|
+
{%- endcomment %}
|
|
290
|
+
|
|
291
|
+
{{ activation_collection_prefix }} > li:nth-child({{ nav_levels[1] }})
|
|
292
|
+
{%- if nav_levels[2] %} > ul > li:nth-child({{ nav_levels[2] }})
|
|
293
|
+
{%- if nav_levels[3] %} > ul > li:nth-child({{ nav_levels[3] }})
|
|
294
|
+
{%- endif -%}
|
|
295
|
+
{%- endif %} > a {
|
|
296
|
+
font-weight: 600;
|
|
297
|
+
text-decoration: none;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
{%- comment -%}
|
|
301
|
+
The following rules unfold all collections, and display the links to any children
|
|
302
|
+
of the current page.
|
|
303
|
+
|
|
304
|
+
To avoid dependence on the SCSS variable nav-list-expander-right, the direction
|
|
305
|
+
of the rotation of the expander icon is fixed, and corresponds to the appearance
|
|
306
|
+
when nav-list-expander-right is true. This results in a minor visual difference
|
|
307
|
+
between the appearance of active expander icons when JS is enabled/disabled and
|
|
308
|
+
nav-list-expander-right is false, which seems unavoidable.
|
|
309
|
+
{%- endcomment %}
|
|
310
|
+
|
|
311
|
+
{%- if site.just_the_docs.collections %}
|
|
312
|
+
.site-nav > ul.nav-category-list > li > button svg,
|
|
313
|
+
{% endif -%}
|
|
314
|
+
{{ activation_collection_prefix }} > li:nth-child({{ nav_levels[1] }}) > button svg
|
|
315
|
+
{%- if nav_levels[2] -%},
|
|
316
|
+
{{ activation_collection_prefix }} > li:nth-child({{ nav_levels[1] }}) > ul > li:nth-child({{ nav_levels[2] }}) > button svg
|
|
317
|
+
{%- endif %} {
|
|
318
|
+
transform: rotate(-90deg);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
{%- if site.just_the_docs.collections %}
|
|
322
|
+
.site-nav > ul.nav-category-list > li.nav-list-item > ul.nav-list,
|
|
323
|
+
{% endif -%}
|
|
324
|
+
{{ activation_collection_prefix }} > li.nav-list-item:nth-child({{ nav_levels[1] }}) > ul.nav-list
|
|
325
|
+
{%- if nav_levels[2] %},
|
|
326
|
+
{{ activation_collection_prefix }} > li.nav-list-item:nth-child({{ nav_levels[1] }}) > ul.nav-list > li.nav-list-item:nth-child({{ nav_levels[2] }}) > ul.nav-list
|
|
327
|
+
{%- endif %} {
|
|
328
|
+
display: block;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
{%- endif -%}
|
|
332
|
+
{%- endif -%}
|
data/_includes/fix_linenos.html
CHANGED
|
@@ -1,29 +1,37 @@
|
|
|
1
1
|
{%- comment -%}
|
|
2
|
-
This file
|
|
3
|
-
code with line numbers.
|
|
2
|
+
This file was previously used to "fix" the HTML produced by Jekyll for
|
|
3
|
+
highlighted code with line numbers. While it often resolves layout issues
|
|
4
|
+
from the missing HTML tags, it still generates invalid HTML (by placing
|
|
5
|
+
a `<table>` element within a `<code>` block). As such, we no longer
|
|
6
|
+
recommend using this workaround. For more information, see the
|
|
7
|
+
"Code snippets with line numbers" docs page:
|
|
8
|
+
https://just-the-docs.com/docs/ui-components/code/line-numbers/
|
|
9
|
+
(or, docs/ui-components/line-nos.md/)
|
|
4
10
|
|
|
5
|
-
|
|
6
|
-
|
|
11
|
+
The next portion of this file, including the comments and the workaround,
|
|
12
|
+
are preserved for backwards comptability.
|
|
7
13
|
|
|
8
|
-
|
|
14
|
+
ACKNOWLEDGEMENTS
|
|
15
|
+
|
|
16
|
+
The implementation was derived from the workaround provided by
|
|
9
17
|
Dmitry Hrabrov (DeXP) at
|
|
10
18
|
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901
|
|
11
19
|
|
|
12
|
-
EXPLANATION
|
|
20
|
+
EXPLANATION (OLD)
|
|
13
21
|
|
|
14
|
-
The HTML produced by Rouge highlighting with
|
|
15
|
-
`code table`. Jekyll
|
|
22
|
+
The HTML produced by Rouge highlighting with line numbers is of the form
|
|
23
|
+
`code table`. Jekyll always wraps the highlighted HTML
|
|
16
24
|
with `pre`. This wrapping is not only unnecessary, but also transforms
|
|
17
25
|
the conforming HTML produced by Rouge to non-conforming HTML, which
|
|
18
|
-
results in HTML validation error reports.
|
|
26
|
+
results in HTML validation error reports.
|
|
19
27
|
|
|
20
28
|
The fix removes the outer `pre` tags whenever they contain the pattern
|
|
21
29
|
`<table class="rouge-table">`.
|
|
22
|
-
|
|
30
|
+
|
|
23
31
|
Apart from avoiding HTML validation errors, the fix allows the use of
|
|
24
32
|
the [Jekyll layout for compressing HTML](http://jch.penibelst.de),
|
|
25
33
|
which relies on `pre` tags not being nested, according to
|
|
26
|
-
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-172069842
|
|
34
|
+
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-172069842
|
|
27
35
|
|
|
28
36
|
USAGE
|
|
29
37
|
|
|
@@ -48,7 +56,7 @@ Some code
|
|
|
48
56
|
|
|
49
57
|
CAVEATS
|
|
50
58
|
|
|
51
|
-
The above does not work when `Some code` happens to contain the matched string
|
|
59
|
+
The above does not work when `Some code` happens to contain the matched string
|
|
52
60
|
`<table class="rouge-table">`.
|
|
53
61
|
|
|
54
62
|
The use of this file overwrites the variable `fix_linenos_code` with `nil`.
|
data/_includes/head.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
site.search_enabled, site.static_files, site.favicon_ico.
|
|
5
5
|
Results in: HTML for the head element.
|
|
6
6
|
Includes:
|
|
7
|
-
|
|
8
|
-
Overwrites:
|
|
7
|
+
css/activation.scss.liquid, head_custom.html.
|
|
8
|
+
Overwrites:
|
|
9
9
|
ga_tracking_ids, ga_property, file, favicon.
|
|
10
10
|
Should not be cached, because included files depend on page.
|
|
11
11
|
{%- endcomment -%}
|
|
@@ -15,8 +15,12 @@
|
|
|
15
15
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
|
16
16
|
|
|
17
17
|
<link rel="stylesheet" href="{{ '/assets/css/just-the-docs-default.css' | relative_url }}">
|
|
18
|
-
|
|
19
|
-
{
|
|
18
|
+
|
|
19
|
+
<link rel="stylesheet" href="{{ '/assets/css/just-the-docs-head-nav.css' | relative_url }}" id="jtd-head-nav-stylesheet">
|
|
20
|
+
|
|
21
|
+
<style id="jtd-nav-activation">
|
|
22
|
+
{% include css/activation.scss.liquid %}
|
|
23
|
+
</style>
|
|
20
24
|
|
|
21
25
|
{% if site.ga_tracking != nil %}
|
|
22
26
|
{% assign ga_tracking_ids = site.ga_tracking | split: "," %}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
{%- if site.color_scheme and site.color_scheme != "nil" -%}
|
|
4
|
+
{%- assign color_scheme = site.color_scheme -%}
|
|
5
|
+
{%- else -%}
|
|
6
|
+
{%- assign color_scheme = "light" -%}
|
|
7
|
+
{%- endif -%}
|
|
8
|
+
|
|
9
|
+
{%- capture newline %}
|
|
10
|
+
{% endcapture -%}
|
|
11
|
+
|
|
12
|
+
{%- capture scss -%}
|
|
13
|
+
{% include css/just-the-docs.scss.liquid color_scheme=color_scheme %}
|
|
14
|
+
.site-nav ul li a {
|
|
15
|
+
background-image: linear-gradient(
|
|
16
|
+
-90deg,
|
|
17
|
+
rgba($feedback-color, 1) 0%,
|
|
18
|
+
rgba($feedback-color, 0.8) 80%,
|
|
19
|
+
rgba($feedback-color, 0) 100%
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
{%- endcapture -%}
|
|
23
|
+
|
|
24
|
+
{{ scss | scssify | split: newline | slice: -3, 3 | join: newline }}
|
data/assets/js/just-the-docs.js
CHANGED
|
@@ -38,8 +38,8 @@ function initNav() {
|
|
|
38
38
|
const siteNav = document.getElementById('site-nav');
|
|
39
39
|
const mainHeader = document.getElementById('main-header');
|
|
40
40
|
const menuButton = document.getElementById('menu-button');
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
|
|
42
|
+
disableHeadStyleSheets();
|
|
43
43
|
|
|
44
44
|
jtd.addEvent(menuButton, 'click', function(e){
|
|
45
45
|
e.preventDefault();
|
|
@@ -68,13 +68,23 @@ function initNav() {
|
|
|
68
68
|
{%- endif %}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
// The
|
|
72
|
-
//
|
|
73
|
-
//
|
|
71
|
+
// The <head> element is assumed to include the following stylesheets:
|
|
72
|
+
// - a <link> to /assets/css/just-the-docs-head-nav.css,
|
|
73
|
+
// with id 'jtd-head-nav-stylesheet'
|
|
74
|
+
// - a <style> containing the result of _includes/css/activation.scss.liquid.
|
|
75
|
+
// To avoid relying on the order of stylesheets (which can change with HTML
|
|
76
|
+
// compression, user-added JavaScript, and other side effects), stylesheets
|
|
77
|
+
// are only interacted with via ID
|
|
78
|
+
|
|
79
|
+
function disableHeadStyleSheets() {
|
|
80
|
+
const headNav = document.getElementById('jtd-head-nav-stylesheet');
|
|
81
|
+
if (headNav) {
|
|
82
|
+
headNav.disabled = true;
|
|
83
|
+
}
|
|
74
84
|
|
|
75
|
-
|
|
76
|
-
if (
|
|
77
|
-
|
|
85
|
+
const activation = document.getElementById('jtd-nav-activation');
|
|
86
|
+
if (activation) {
|
|
87
|
+
activation.disabled = true;
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
|
|
@@ -135,6 +145,18 @@ function searchLoaded(index, docs) {
|
|
|
135
145
|
var currentInput;
|
|
136
146
|
var currentSearchIndex = 0;
|
|
137
147
|
|
|
148
|
+
{%- if site.search.focus_shortcut_key %}
|
|
149
|
+
// add event listener on ctrl + <focus_shortcut_key> for showing the search input
|
|
150
|
+
jtd.addEvent(document, 'keydown', function (e) {
|
|
151
|
+
if ((e.ctrlKey || e.metaKey) && e.key === '{{ site.search.focus_shortcut_key }}') {
|
|
152
|
+
e.preventDefault();
|
|
153
|
+
|
|
154
|
+
mainHeader.classList.add('nav-open');
|
|
155
|
+
searchInput.focus();
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
{%- endif %}
|
|
159
|
+
|
|
138
160
|
function showSearch() {
|
|
139
161
|
document.documentElement.classList.add('search-active');
|
|
140
162
|
}
|
|
@@ -477,11 +499,28 @@ jtd.setTheme = function(theme) {
|
|
|
477
499
|
// and not have the slash on GitHub Pages
|
|
478
500
|
|
|
479
501
|
function navLink() {
|
|
480
|
-
var
|
|
481
|
-
|
|
482
|
-
|
|
502
|
+
var pathname = document.location.pathname;
|
|
503
|
+
|
|
504
|
+
var navLink = document.getElementById('site-nav').querySelector('a[href="' + pathname + '"]');
|
|
505
|
+
if (navLink) {
|
|
506
|
+
return navLink;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
// The `permalink` setting may produce navigation links whose `href` ends with `/` or `.html`.
|
|
510
|
+
// To find these links when `/` is omitted from or added to pathname, or `.html` is omitted:
|
|
511
|
+
|
|
512
|
+
if (pathname.endsWith('/') && pathname != '/') {
|
|
513
|
+
pathname = pathname.slice(0, -1);
|
|
483
514
|
}
|
|
484
|
-
|
|
515
|
+
|
|
516
|
+
if (pathname != '/') {
|
|
517
|
+
navLink = document.getElementById('site-nav').querySelector('a[href="' + pathname + '"], a[href="' + pathname + '/"], a[href="' + pathname + '.html"]');
|
|
518
|
+
if (navLink) {
|
|
519
|
+
return navLink;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
return null; // avoids `undefined`
|
|
485
524
|
}
|
|
486
525
|
|
|
487
526
|
// Scroll site-nav to ensure the link to the current page is visible
|
|
@@ -489,8 +528,8 @@ function navLink() {
|
|
|
489
528
|
function scrollNav() {
|
|
490
529
|
const targetLink = navLink();
|
|
491
530
|
if (targetLink) {
|
|
492
|
-
|
|
493
|
-
|
|
531
|
+
targetLink.scrollIntoView({ block: "center" });
|
|
532
|
+
targetLink.removeAttribute('href');
|
|
494
533
|
}
|
|
495
534
|
}
|
|
496
535
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Patrick Marsceill
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2024-02-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
@@ -100,9 +100,11 @@ files:
|
|
|
100
100
|
- _includes/components/footer.html
|
|
101
101
|
- _includes/components/header.html
|
|
102
102
|
- _includes/components/mermaid.html
|
|
103
|
+
- _includes/components/nav.html
|
|
103
104
|
- _includes/components/search_footer.html
|
|
104
105
|
- _includes/components/search_header.html
|
|
105
106
|
- _includes/components/sidebar.html
|
|
107
|
+
- _includes/components/site_nav.html
|
|
106
108
|
- _includes/css/activation.scss.liquid
|
|
107
109
|
- _includes/css/callouts.scss.liquid
|
|
108
110
|
- _includes/css/custom.scss.liquid
|
|
@@ -112,7 +114,6 @@ files:
|
|
|
112
114
|
- _includes/footer_custom.html
|
|
113
115
|
- _includes/head.html
|
|
114
116
|
- _includes/head_custom.html
|
|
115
|
-
- _includes/head_nav.html
|
|
116
117
|
- _includes/header_custom.html
|
|
117
118
|
- _includes/icons/code_copy.html
|
|
118
119
|
- _includes/icons/document.html
|
|
@@ -126,7 +127,6 @@ files:
|
|
|
126
127
|
- _includes/lunr/custom-data.json
|
|
127
128
|
- _includes/lunr/custom-index.js
|
|
128
129
|
- _includes/mermaid_config.js
|
|
129
|
-
- _includes/nav.html
|
|
130
130
|
- _includes/nav_footer_custom.html
|
|
131
131
|
- _includes/search_placeholder_custom.html
|
|
132
132
|
- _includes/sorted_pages.html
|
|
@@ -179,6 +179,7 @@ files:
|
|
|
179
179
|
- _sass/vendor/normalize.scss/normalize.scss
|
|
180
180
|
- assets/css/just-the-docs-dark.scss
|
|
181
181
|
- assets/css/just-the-docs-default.scss
|
|
182
|
+
- assets/css/just-the-docs-head-nav.css
|
|
182
183
|
- assets/css/just-the-docs-light.scss
|
|
183
184
|
- assets/js/just-the-docs.js
|
|
184
185
|
- assets/js/vendor/lunr.min.js
|
data/_includes/head_nav.html
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
{%- comment -%}
|
|
2
|
-
Include as: {%- include head_nav.html -%}
|
|
3
|
-
Depends on: site.color_scheme.
|
|
4
|
-
Results in: HTML for a page-specific style element.
|
|
5
|
-
Includes:
|
|
6
|
-
css/activation.scss.liquid.
|
|
7
|
-
Overwrites:
|
|
8
|
-
activation, test_scss, scss, css, index, count.
|
|
9
|
-
Should not be cached, because css/activation.scss.liquid depends on page.
|
|
10
|
-
{%- endcomment -%}
|
|
11
|
-
|
|
12
|
-
{% capture activation %}
|
|
13
|
-
{% include css/activation.scss.liquid %}
|
|
14
|
-
{%- endcapture -%}
|
|
15
|
-
|
|
16
|
-
{% capture test_scss %}
|
|
17
|
-
@import "./support/support";
|
|
18
|
-
@import "./color_schemes/light";
|
|
19
|
-
{{ activation }}
|
|
20
|
-
{%- endcapture -%}
|
|
21
|
-
|
|
22
|
-
{%- capture scss -%}
|
|
23
|
-
@import "./support/support";
|
|
24
|
-
@import "./custom/setup";
|
|
25
|
-
{% if site.color_scheme and site.color_scheme != "nil" -%}
|
|
26
|
-
{%- assign color_scheme = site.color_scheme -%}
|
|
27
|
-
{%- else -%}
|
|
28
|
-
{%- assign color_scheme = "light" -%}
|
|
29
|
-
{%- endif %}
|
|
30
|
-
@import "./color_schemes/light";
|
|
31
|
-
{% unless color_scheme == "light" %}
|
|
32
|
-
@import "./color_schemes/{{ color_scheme }}";
|
|
33
|
-
{% endunless %}
|
|
34
|
-
{{ activation }}
|
|
35
|
-
{%- endcapture -%}
|
|
36
|
-
|
|
37
|
-
{%- comment -%}
|
|
38
|
-
Convert to CSS, then remove the color_scheme import rules to avoid duplication.
|
|
39
|
-
The value of count is page-dependent, but independent of custom color schemes.
|
|
40
|
-
{%- endcomment -%}
|
|
41
|
-
{%- assign count = test_scss | scssify | split: ".site-nav" | size -%}
|
|
42
|
-
{%- unless count == 1 %}
|
|
43
|
-
{%- assign index = 1 | minus: count -%}
|
|
44
|
-
{%- assign css = scss | scssify | split: ".site-nav" | slice: index, count | join: ".site-nav" -%}
|
|
45
|
-
<style type="text/css">
|
|
46
|
-
{{ css | prepend: ".site-nav" }}
|
|
47
|
-
</style>
|
|
48
|
-
{%- endunless %}
|