just-the-docs 0.10.0 → 0.10.2

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.
data/README.md CHANGED
@@ -32,7 +32,7 @@ More specifically, the created site:
32
32
 
33
33
  Other than that, you're free to customize sites that you create with the template, however you like. You can easily change the versions of `just-the-docs` and Jekyll it uses, as well as adding further plugins.
34
34
 
35
- ### Use RubyGems
35
+ ### Use as a Ruby Gem
36
36
 
37
37
  Alternatively, you can install the theme as a Ruby Gem, without creating a new site.
38
38
 
@@ -48,17 +48,11 @@ And add this line to your Jekyll site's `_config.yml`:
48
48
  theme: just-the-docs
49
49
  ```
50
50
 
51
- And then execute:
51
+ And then install all relevant dependencies:
52
52
 
53
- $ bundle
54
-
55
- Or install it yourself as:
56
-
57
- $ gem install just-the-docs
58
-
59
- Alternatively, you can run it inside Docker while developing your site
60
-
61
- $ docker-compose up
53
+ ```shell
54
+ $ bundle
55
+ ```
62
56
 
63
57
  ## Usage
64
58
 
@@ -88,8 +82,6 @@ Bug reports, proposals of new features, and pull requests are welcome on GitHub
88
82
 
89
83
  To set up your environment to develop this theme: fork this repo, the run `bundle install` from the root directory.
90
84
 
91
- A modern [devcontainer configuration](https://code.visualstudio.com/docs/remote/containers) for VSCode is included.
92
-
93
85
  Your theme is set up just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
94
86
 
95
87
  When this theme is released, only the files in `_layouts`, `_includes`, and `_sass` tracked with Git will be included in the gem.
@@ -11,14 +11,14 @@
11
11
 
12
12
  {%- if page.url != "/" and page.parent and page.title -%}
13
13
 
14
- {%- capture nav_list_link -%}
15
- <a href="{{ page.url | relative_url }}" class="nav-list-link">
16
- {%- endcapture -%}
17
-
18
14
  {%- capture site_nav -%}
19
15
  {%- include_cached components/site_nav.html all=true -%}
20
16
  {%- endcapture -%}
21
17
 
18
+ {%- capture nav_list_link -%}
19
+ <a href="{{ page.url | relative_url }}" class="nav-list-link">
20
+ {%- endcapture -%}
21
+
22
22
  {%- capture nav_list_simple -%}
23
23
  <ul class="nav-list">
24
24
  {%- endcapture -%}
@@ -11,23 +11,24 @@
11
11
  {%- comment -%}
12
12
  Whether a page has any children is checked efficiently by inspecting the cached
13
13
  site_nav. If the page has no children, nav_children is set to an empty array;
14
- otherwise nav_children is left unset.
14
+ otherwise nav_children is left unset. (The site_nav is rendered the first time
15
+ it is included, and that may overwrite various variables.)
15
16
  {%- endcomment -%}
16
17
 
17
18
  {%- if page.has_children == false -%}
18
19
  {%- assign nav_children = "" | split: "" -%}
19
20
  {%- else -%}
20
21
 
22
+ {%- capture site_nav -%}
23
+ {%- include_cached components/site_nav.html all=true -%}
24
+ {%- endcapture -%}
25
+
21
26
  {%- assign nav_children = nil -%}
22
27
 
23
28
  {%- capture nav_list_link -%}
24
29
  <a href="{{ page.url | relative_url }}" class="nav-list-link">
25
30
  {%- endcapture -%}
26
31
 
27
- {%- capture site_nav -%}
28
- {%- include_cached components/site_nav.html all=true -%}
29
- {%- endcapture -%}
30
-
31
32
  {%- capture nav_list_simple -%}
32
33
  <ul class="nav-list">
33
34
  {%- endcapture -%}
@@ -1,7 +1,7 @@
1
1
  {% capture footer_custom %}
2
2
  {%- include footer_custom.html -%}
3
3
  {% endcapture %}
4
- {% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %}
4
+ {% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link or site.back_to_top %}
5
5
  <hr>
6
6
  <footer>
7
7
  {% if site.back_to_top %}
@@ -13,7 +13,7 @@
13
13
  {%- if include.all == true or node.nav_exclude != true -%}
14
14
 
15
15
  {%- if include.ancestors contains node.title -%}
16
-
16
+
17
17
  <li class="nav-list-item">
18
18
  <a href="{{ node.url | relative_url }}" class="nav-list-link"> ∞ </a>
19
19
  </li>
@@ -26,12 +26,12 @@
26
26
  {%- endcapture -%}
27
27
 
28
28
  {%- else -%}
29
-
29
+
30
30
  {%- include components/nav/children.html node=node ancestors=include.ancestors all=include.all -%}
31
31
 
32
32
  <li class="nav-list-item">
33
33
  {%- if nav_children.size >= 1 -%}
34
- <button class="nav-list-expander btn-reset" aria-label="toggle items in {{ node.title }} category" aria-pressed="false">
34
+ <button class="nav-list-expander btn-reset" aria-label="{{ node.title }} submenu" aria-expanded="false">
35
35
  <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
36
36
  </button>
37
37
  {%- endif -%}
@@ -44,9 +44,9 @@
44
44
  {%- include components/nav/links.html pages=nav_children ancestors=nav_ancestors all=include.all -%}
45
45
  {%- endif -%}
46
46
  </li>
47
-
47
+
48
48
  {%- endif -%}
49
-
49
+
50
50
  {%- endif -%}
51
51
  {%- endfor -%}
52
52
  </ul>
@@ -2,8 +2,11 @@
2
2
 
3
3
  <div class="search" role="search">
4
4
  <div class="search-input-wrap">
5
- <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="{{ search_placeholder | strip_html | strip }}" aria-label="{{ search_placeholder | strip_html| strip }}" autocomplete="off">
6
- <label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
5
+ <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="{{ search_placeholder | strip_html | strip }}" autocomplete="off">
6
+ <label for="search-input" class="search-label">
7
+ <span class="sr-only">{{ search_placeholder | strip_html | strip }}</span>
8
+ <svg viewBox="0 0 24 24" class="search-icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg>
9
+ </label>
7
10
  </div>
8
11
  <div id="search-results" class="search-results"></div>
9
12
  </div>
@@ -12,7 +12,7 @@
12
12
  <div class="side-bar">
13
13
  <div class="site-header" role="banner">
14
14
  <a href="{{ '/' | relative_url }}" class="site-title lh-tight">{% include title.html %}</a>
15
- <button id="menu-button" class="site-button btn-reset" aria-label="Toggle menu" aria-pressed="false">
15
+ <button id="menu-button" class="site-button btn-reset" aria-label="Menu" aria-expanded="false">
16
16
  <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg>
17
17
  </button>
18
18
  </div>
@@ -47,7 +47,7 @@
47
47
  <ul class="nav-list nav-category-list">
48
48
  <li class="nav-list-item">
49
49
  {%- if collection.size > 0 -%}
50
- <button class="nav-list-expander btn-reset" aria-label="Toggle collection {{ collection_value.name }}" aria-pressed="false">
50
+ <button class="nav-list-expander btn-reset" aria-label="{{ collection_value.name }} collection" aria-expanded="false">
51
51
  <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
52
52
  </button>
53
53
  {%- endif -%}
@@ -20,6 +20,10 @@
20
20
  - The other two rules ensure that all folding collections are expanded.
21
21
  {%- endcomment -%}
22
22
 
23
+ {%- capture site_nav -%}
24
+ {%- include_cached components/site_nav.html -%}
25
+ {%- endcapture -%}
26
+
23
27
  {%- capture activation_no_nav_link %}
24
28
  .site-nav ul li a {
25
29
  background-image: none;
@@ -39,10 +43,6 @@
39
43
  <a href="{{ page.url | relative_url }}" class="nav-list-link">
40
44
  {%- endcapture -%}
41
45
 
42
- {%- capture site_nav -%}
43
- {%- include_cached components/site_nav.html -%}
44
- {%- endcapture -%}
45
-
46
46
  {%- if site_nav contains nav_list_link -%}
47
47
 
48
48
  {%- capture nav_list -%}
@@ -12,7 +12,7 @@ $code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid
12
12
  $feedback-color: darken($sidebar-color, 3%);
13
13
  $table-background-color: $grey-dk-250;
14
14
  $search-background-color: $grey-dk-250;
15
- $search-result-preview-color: $grey-dk-000;
15
+ $search-result-preview-color: $grey-lt-300;
16
16
  $border-color: $grey-dk-200;
17
17
 
18
18
  @import "./vendor/OneDarkJekyll/syntax"; // this is the one-dark-vivid atom syntax theme
@@ -11,6 +11,6 @@ $code-background-color: $grey-lt-000 !default;
11
11
  $feedback-color: darken($sidebar-color, 3%) !default;
12
12
  $table-background-color: $white !default;
13
13
  $search-background-color: $white !default;
14
- $search-result-preview-color: $grey-dk-000 !default;
14
+ $search-result-preview-color: $grey-dk-100 !default;
15
15
 
16
16
  @import "./vendor/OneLightJekyll/syntax";
data/_sass/layout.scss CHANGED
@@ -206,7 +206,6 @@ body {
206
206
  left: 0;
207
207
  padding-top: $sp-4;
208
208
  padding-bottom: $sp-4;
209
- color: $grey-dk-000;
210
209
 
211
210
  @include container;
212
211
 
data/_sass/print.scss CHANGED
@@ -10,6 +10,11 @@
10
10
  display: none !important;
11
11
  }
12
12
 
13
+ hr {
14
+ margin-top: 1rem;
15
+ margin-bottom: 1rem;
16
+ }
17
+
13
18
  .side-bar {
14
19
  width: 100%;
15
20
  height: auto;
data/_sass/search.scss CHANGED
@@ -61,7 +61,8 @@
61
61
  }
62
62
 
63
63
  &:focus {
64
- outline: 0;
64
+ outline: 2px solid $link-color;
65
+ outline-offset: -2px;
65
66
 
66
67
  + .search-label .search-icon {
67
68
  color: $link-color;
@@ -22,6 +22,20 @@
22
22
  display: none !important;
23
23
  }
24
24
 
25
+ // Screenreader-only
26
+
27
+ .sr-only {
28
+ position: absolute;
29
+ width: 1px;
30
+ height: 1px;
31
+ padding: 0;
32
+ margin: -1px;
33
+ overflow: hidden;
34
+ clip: rect(0, 0, 0, 0);
35
+ white-space: nowrap;
36
+ border-width: 0;
37
+ }
38
+
25
39
  @each $media-query in map-keys($media-queries) {
26
40
  @for $i from 1 through length($spacers) {
27
41
  @include mq($media-query) {
@@ -32,7 +32,7 @@ function initNav() {
32
32
  }
33
33
  if (target) {
34
34
  e.preventDefault();
35
- target.ariaPressed = target.parentNode.classList.toggle('active');
35
+ target.ariaExpanded = target.parentNode.classList.toggle('active');
36
36
  }
37
37
  });
38
38
 
@@ -48,11 +48,11 @@ function initNav() {
48
48
  if (menuButton.classList.toggle('nav-open')) {
49
49
  siteNav.classList.add('nav-open');
50
50
  mainHeader.classList.add('nav-open');
51
- menuButton.ariaPressed = true;
51
+ menuButton.ariaExpanded = true;
52
52
  } else {
53
53
  siteNav.classList.remove('nav-open');
54
54
  mainHeader.classList.remove('nav-open');
55
- menuButton.ariaPressed = false;
55
+ menuButton.ariaExpanded = false;
56
56
  }
57
57
  });
58
58
 
@@ -258,7 +258,7 @@ function searchLoaded(index, docs) {
258
258
  // note: the SVG svg-doc is only loaded as a Jekyll include if site.search_enabled is true; see _includes/icons/icons.html
259
259
  var resultDoc = document.createElement('div');
260
260
  resultDoc.classList.add('search-result-doc');
261
- resultDoc.innerHTML = '<svg viewBox="0 0 24 24" class="search-result-icon"><use xlink:href="#svg-doc"></use></svg>';
261
+ resultDoc.innerHTML = '<svg viewBox="0 0 24 24" class="search-result-icon" aria-hidden="true"><use xlink:href="#svg-doc"></use></svg>';
262
262
  resultTitle.appendChild(resultDoc);
263
263
 
264
264
  var resultDocTitle = document.createElement('div');
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.10.0
4
+ version: 0.10.2
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: 2024-09-09 00:00:00.000000000 Z
12
+ date: 2026-01-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -212,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
212
  - !ruby/object:Gem::Version
213
213
  version: '0'
214
214
  requirements: []
215
- rubygems_version: 3.5.11
215
+ rubygems_version: 3.5.22
216
216
  signing_key:
217
217
  specification_version: 4
218
218
  summary: A modern, highly customizable, and responsive Jekyll theme for documentation