Compare commits

..

37 Commits

Author SHA1 Message Date
Matt Wang
720b0ebf9f Merge branch 'main' into custom-schemes 2023-10-25 14:52:10 -07:00
Matthew
870a6a4ff6 Fix Gemfile.lock post-release 2023-10-25 12:18:07 -07:00
Matthew
2ed7a7d0fc Version 0.7.0 2023-10-25 12:09:00 -07:00
Matthew
a387ea12a8 Prep 0.7.0 2023-10-25 12:03:04 -07:00
Matt Wang
80bd7bfc9f Fix accidental disabling of forward-declared stylesheets (#1373)
PR for the issue flagged in https://github.com/just-the-docs/just-the-docs/discussions/1359#discussioncomment-7267686 (and related to #1358, #1350, etc.). This PR essentially just disables the `head-nav` stylesheet by ID instead of relying on the index; this makes the code more robust against stylesheets that are arbitrarily entered into the document (such as by JavaScript, which is the case of #1359).
2023-10-25 11:52:44 -07:00
Peter Mosses
56e0f1c800 Fix invalid CSS rules in head elements (#1368)
Rectify and simplify CSS rules  used in the head element. The rules now avoid the invalid use of nested `:not()` pseudo-classes.

- Update CHANGELOG.md
- Remove ignore statements re CSS parse errors
- Add rules for excluded pages and simplify
- Add `activation_no_nav_link` with the rules for excluded pages
- Insert `activation_no_nav_link` when no other rules are generated
- Replace `:nth-child(1)` by `:first-child`
- Correct `:nth-child(n + {{ activation_index | plus: 1 }})` to `:not(:first-child)`
- Eliminate `activation_collection_index`
- Generate `.nav-category-list` selectors only for sites with collections

---------

Co-authored-by: Matt Wang <matt@matthewwang.me>
2023-10-25 18:22:18 +01:00
Matthew
fad37122ae Update Changelog 2023-10-20 15:36:25 -07:00
Susheel Thapa
cdae4f63d5 docs: fix typos in CHANGELOG and MIGRATION (#1377)
This PR fixed the typos in CHANGELOG and MIGRATION files

```pseudo
Simlar > Similar
avaialble > available
vulnerablities > vulnerabilities
concering > concerning
```
2023-10-20 11:34:40 -07:00
dependabot[bot]
b75fd5e824 Bump stylelint from 15.10.3 to 15.11.0 (#1375)
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.10.3 to 15.11.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.10.3...15.11.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-18 01:30:16 -07:00
Peter Mosses
ae52352eae Fixed: navigation scroll to active link regression (#1367)
* Defer removal of href

The `href` with the URL of the current page is inspected by `navLink()`, so it should not be removed until after the calls of `navLink()` in `scrollNav()` and `activateNav()`.

As `scrollNav()` follows `activateNav()`, the removal of `href` needs to be left to `scrollNav()`.

* Update CHANGELOG.md
2023-10-08 10:37:24 +02:00
dependabot[bot]
3d01bc9183 Bump postcss from 8.4.28 to 8.4.31 (#1369)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.28 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.28...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-07 20:11:33 -07:00
Matt Wang
66b84a03e7 Fixes erroneous parentheses in site_nav conditional (#1366)
Ref: https://github.com/just-the-docs/just-the-docs/pull/1360#issuecomment-1751358990.

I'm sorry for not catching this earlier; I'm surprised that this slipped my mind (maybe I'm juggling too many templating languages).

Though, also, I'm surprised that this doesn't flag as a compiler error?
2023-10-06 15:37:27 -07:00
Matt Wang
dfe751e45b docs: fix navigation structure header hierarchy, uniqueness (#1363)
This PR touches the "Navigation Structure" docs page, by:

- fixing the header hierarchy; we no longer jump from `h2` -> `h4`
    - this does technically result in a styling change, which I'm personally fine with. However, if we want to keep the old one, I can also do that!
- makes each header text unique, by annotating the "Example" with what the example is for
- adding a "New" label for the feature introduced in #1360

The main goal of this PR is to improve the accessibility of this docs page: the current generated markup will cause minor problems for screenreader users. If we like this change, I can then roll this out to the rest of the docs pages.
2023-10-05 10:13:39 -07:00
CarbonNeuron
33ba8d8eaa Add configuration options for opening external links in new tab (#1360)
I've whipped up a solution that solves #1103. I've added a config option `nav_external_links_new_tab`, which is off by default. When turned on, it'll pop external nav links into a new tab. The idea was borrowed from how [aux_nav.html](https://github.com/just-the-docs/just-the-docs/blob/main/_includes/components/aux_nav.html) does it with `aux_links_new_tab`.

---------

Co-authored-by: Matt Wang <matt@matthewwang.me>
2023-10-04 12:10:56 -07:00
Peter Mosses
2ccc451c2a Fix: improve build time (#1358)
* Remove "passive" toggle

PR #1244 introduced the "passive" toggle, but just-the-docs.js subsequently disabled the only styling that used it, so it became redundant.
This removes it.

* Reduce build time for page-dependent CSS

Fix #1323

- Remove `_includes/head_nav.html`.
- Generate page-independent SCSS in `assets/css/just-the-docs-head-nav.css`.
- Link to `/assets/css/just-the-docs-head-nav.css` in `head.html`.
- Disable the above stylesheet in `assets/js/just-the-docs.js`.
- Generate page-dependent CSS in `_includes/css/activation.scss.liquid` and include in `head.html`.

* No override svg rotate

* Disable both stylesheets safely

* Move the site nav to a new include

- Fix the complete site nav
- Move the site nav to `_includes/site_nav.html`
- Cache the site nav
- Uncache `nav.html`

* Move nav and site_nav to _includes/components

* Replace id prefix

* Update breadcrumbs.html

Replace several filters by a single loop through all the pages,
but breaking as soon as possible.

Profiling indicates that this saves up to 50% of the breadcrumbs build time for the filters.

* Update just-the-docs-head-nav.css

Adjust the number of lines to keep

* Update head.html

Remove superflous type.

* Update activation.scss.liquid

Remove a superfluous closing brace.
Adjust layout.

* Use `scssify` to remove nesting

Preliminary profiling indicates that using `scssify` on the small number of nested CSS rules produced by `activation.scss.liquid` is quick enough.

* Update head.scss

Manual attempt at prettier (pending installation in Atom).

* Avoid generation of nested CSS

Local profiling indicated that using `scssify` on each page takes about 1% of the build time.

- Update `_includes/css/activation.scss.liquid` to generate non-nested CSS.
- Remove use of `scssify` from `_includes/head.html`.

* Ignore false positives from validator

Ignores: `:1.810-1.823: error: CSS: Parse Error.` and `:1.811-1.824: error: CSS: Parse Error.`; had to shift things around since the local config overrides the CI flag.

* Inline `_sass/head.css`

* Update CHANGELOG.md

---------

Co-authored-by: Matthew Wang <matt@matthewwang.me>
2023-10-01 14:47:26 +02:00
Peter Mosses
cd4f1b02b2 Remove href from the navigation link to the current page (#1356)
* Remove href from link to active page

* Update CHANGELOG.md

Co-authored-by: Matt Wang <matt@matthewwang.me>

---------

Co-authored-by: Matt Wang <matt@matthewwang.me>
2023-09-29 22:33:15 +02:00
Matt Wang
b342531fe4 ci: update actions to latest major versions (#1361)
Most of these are motivated by the EOL for Node 16 (for more, see [GitHub's post on it](https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/)).
2023-09-27 09:40:09 -07:00
Matthew Wang
328b26abd2 Fix committed lockfile
Agh - shouldn't have made this mistake!
2023-09-19 17:28:04 -07:00
Matthew Wang
22fc061ef4 0.6.2 2023-09-19 17:26:18 -07:00
Matt Wang
200ae6e99d Create FUNDING.yml (#1348) 2023-09-12 00:27:10 -07:00
Peter Mosses
0964e1f8ae Remove the passive toggle (#1335)
* Remove "passive" toggle

PR #1244 introduced the "passive" toggle, but just-the-docs.js subsequently disabled the only styling that used it, so it became redundant.
This removes it.

* Update CHANGELOG.md

* Update CHANGELOG.md

Co-authored-by: Matt Wang <matt@matthewwang.me>

* Update CHANGELOG.md

Co-authored-by: Matt Wang <matt@matthewwang.me>

---------

Co-authored-by: Matt Wang <matt@matthewwang.me>
2023-09-06 22:20:26 +02:00
dependabot[bot]
2b434e5f82 Bump stylelint-config-standard-scss from 10.0.0 to 11.0.0 (#1342)
Bumps [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss) from 10.0.0 to 11.0.0.
- [Release notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-config-standard-scss/compare/v10.0.0...v11.0.0)

---
updated-dependencies:
- dependency-name: stylelint-config-standard-scss
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 12:57:10 -07:00
omahs
281839fa32 Fix docs typos (#1341) 2023-09-03 00:00:25 -07:00
Matt Wang
4556629454 Update .gitignore (#1327)
This PR moves over the changes from https://github.com/just-the-docs/just-the-docs/pull/1112, namely making the `.gitignore` more descriptive and bringing it to parity with the recommendations from Jekyll.

---------

Co-authored-by: Peter Mosses <18308236+pdmosses@users.noreply.github.com>
2023-08-30 10:22:08 -07:00
Matthew Wang
bebaee046a Update CHANGELOG.md 2023-08-30 10:14:43 -07:00
Michael Flanakin
c115932255 Fix Windows emoji font fallback (#1337) 2023-08-30 10:13:18 -07:00
dependabot[bot]
5deba46197 Bump prettier from 3.0.2 to 3.0.3 (#1338)
Bumps [prettier](https://github.com/prettier/prettier) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-30 09:43:03 -07:00
Matthew Wang
720dd430d7 Update outdated ruby workflow 2023-08-26 13:41:08 -04:00
Matthew Wang
3a205e545c Fix typo in Changelog 2023-08-26 13:36:37 -04:00
Matthew Wang
8f9c0c44e1 Fix lockfile after version bump 2023-08-26 13:35:24 -04:00
Matthew Wang
cef1203301 v0.6.1 2023-08-26 13:33:17 -04:00
Peter Mosses
6041c7cd8e Fix JS error for pages excluded from navigation (#1332)
Fix #1331

Pages excluded from the navigation do not have a second (page-specific) stylesheet in the head. When JS is enabled, an error arises when such a page is loaded, due to `initNav()` trying to disable a non-existent stylesheet.

This PR stops JS trying to disable the second stylesheet when it doesn't exist.

Note that issue #1331 was reported in connection with optimising the build of the endoflife.date site by following [my suggestion](https://github.com/just-the-docs/just-the-docs/pull/1244#issuecomment-1660246728) in #1244, but the bug also appears on the theme website at https://just-the-docs.com/404.html.
2023-08-26 13:30:53 -04:00
Matt Wang
8d8b444b46 ci: Add Internet Archive to ignored URLs (#1326) 2023-08-22 19:07:18 -04:00
Flo
3bfd1522da Add Gemfile.lock (#1307)
Co-authored-by: Matt Wang <matt@matthewwang.me>
2023-08-22 18:58:59 -04:00
Matt Wang
396613820f ci: bump Ruby to 3.2, changes core test matrix to 3.x (#1325)
Ruby 3.2 has stabilized (and the bug with Liquid has been patched). I think this is a good time for us to bump all of our versions, especially with the discussion in #1307.

Separately, I've:

- changed the core test matrix to be across `3.0`, `3.1`, and `3.2`. Ruby 2 has been EOL for ~ 4 months, while 3.0 is around for about 7 more months. 
- standardized the formatting of our CI ruby versions to be strings; this is because the number `3.0` gets YAML-casted to `3`
2023-08-22 18:49:39 -04:00
dependabot[bot]
82cd4d372d Bump stylelint from 15.10.2 to 15.10.3 (#1324)
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.10.2 to 15.10.3.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.10.2...15.10.3)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-21 10:48:21 -04:00
Matthew Wang
a2fcb2120e Sketch out site.custom_schemes 2023-04-19 23:10:53 -07:00
29 changed files with 921 additions and 446 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
github: just-the-docs
open_collective: just-the-docs

View File

@@ -16,10 +16,10 @@ jobs:
matrix: matrix:
jekyll-version: [3.9, 4.3] jekyll-version: [3.9, 4.3]
os: [ ubuntu-latest, macos-latest, windows-latest ] os: [ ubuntu-latest, macos-latest, windows-latest ]
ruby-version: [2.7, 3.1] ruby-version: ["3.0", "3.1", "3.2"]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Setup Ruby ${{ matrix.ruby-version }} - name: Setup Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
@@ -42,11 +42,11 @@ jobs:
name: Build (github-pages gem) name: Build (github-pages gem)
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Setup Ruby - name: Setup Ruby
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: '3.1' ruby-version: "3.2"
bundler-cache: false bundler-cache: false
- name: Bundle Install - name: Bundle Install
run: bundle install run: bundle install
@@ -62,11 +62,11 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
ruby-version: [3.1] ruby-version: ["3.2"]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Setup Ruby ${{ matrix.ruby-version }} - name: Setup Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
@@ -75,19 +75,18 @@ jobs:
cache-version: 0 # Increment this number if you need to re-download cached gems cache-version: 0 # Increment this number if you need to re-download cached gems
- name: Cache HTMLProofer - name: Cache HTMLProofer
id: cache-htmlproofer id: cache-htmlproofer
uses: actions/cache@v2 uses: actions/cache@v3
with: with:
path: tmp/.htmlproofer path: tmp/.htmlproofer
key: ${{ runner.os }}-htmlproofer key: ${{ runner.os }}-htmlproofer
- name: Build Site - name: Build Site
run: bundle exec jekyll build run: bundle exec jekyll build
- name: Test with Nu Validator - name: Test with Nu Validator
uses: Cyb3r-Jak3/html5validator-action@c7bb77a0fe3b0458583de50fd0f4dd819569b8a9 uses: Cyb3r-Jak3/html5validator-action@2a593a9f2c10593cbac84791a6fc4c47e9a106c8
with: with:
root: _site config: fixtures/html5validator-config.yml
blacklist: line-numbers
- name: Test with html-proofer - name: Test with html-proofer
run: bundle exec htmlproofer _site --ignore-urls "/github.com/" run: bundle exec htmlproofer _site --ignore-urls "/github.com/,/web.archive.org/"
env: env:
NOKOGIRI_USE_SYSTEM_LIBRARIES: true NOKOGIRI_USE_SYSTEM_LIBRARIES: true
@@ -100,9 +99,9 @@ jobs:
node-version: [18.x] node-version: [18.x]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v3
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- run: npm install - run: npm install

View File

@@ -30,16 +30,16 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v4
- name: Setup Ruby - name: Setup Ruby
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: '3.1' # Not needed with a .ruby-version file ruby-version: "3.2"
bundler-cache: true # runs 'bundle install' and caches installed gems automatically bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 0 # Increment this number if you need to re-download cached gems cache-version: 0 # Increment this number if you need to re-download cached gems
- name: Setup Pages - name: Setup Pages
id: pages id: pages
uses: actions/configure-pages@v2 uses: actions/configure-pages@v3
- name: Build with Jekyll - name: Build with Jekyll
# Outputs to the './_site' directory by default # Outputs to the './_site' directory by default
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
@@ -47,7 +47,7 @@ jobs:
JEKYLL_ENV: production JEKYLL_ENV: production
- name: Upload artifact - name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default # Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v1 uses: actions/upload-pages-artifact@v2
# Deployment job # Deployment job
deploy: deploy:
@@ -59,4 +59,4 @@ jobs:
steps: steps:
- name: Deploy to GitHub Pages - name: Deploy to GitHub Pages
id: deployment id: deployment
uses: actions/deploy-pages@v1 uses: actions/deploy-pages@v2

View File

@@ -9,11 +9,11 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Set up Ruby 3.1 - name: Setup Ruby 3.2
uses: actions/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: 3.1 ruby-version: "3.2"
- name: Publish to GPR - name: Publish to GPR
run: | run: |

33
.gitignore vendored
View File

@@ -1,9 +1,30 @@
# Not sure what a .gitignore is?
# See: https://git-scm.com/docs/gitignore
# The first files are directly copied from Jekyll's first-party docs on `.gitignore` files:
# https://jekyllrb.com/tutorials/using-jekyll-with-bundler/#commit-to-source-control
# Ignore the default location of the built site, and caches and metadata generated by Jekyll
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
# Ignore folders generated by Bundler
.bundle/
vendor/
# These next files are used by Just the Docs developers. They are not necessary for end users of the theme, only developers.
# We use Stylelint and Prettier, JavaScript tools, to lint and format our own code.
# We use Node.js as our runtime, so we ignore node_modules
node_modules
# .DS_Store is a macOS-only metadata file about directories. Convention is to not commit them.
# See: https://en.wikipedia.org/wiki/.DS_Store
.DS_Store
# These are legacy globs that typically target Ruby theme developers. We may change these at a later date.
*.gem *.gem
.bundle .bundle
.ruby-version .ruby-version
.jekyll-cache
.sass-cache
_site
Gemfile.lock
node_modules
.DS_Store

View File

@@ -19,6 +19,103 @@ Code changes to `main` that are *not* in the latest release:
- N/A - N/A
## Release v0.7.0
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.
### Migrating to `v0.7.0`
**Migration**: users will need to migrate if:
- they overrode `_includes/nav.html`, which has moved to `_includes/components/nav.html`
- they have an element with the IDs `jtd-nav-activation` or `jtd-head-nav-stylesheet`
For more, refer to the [migration guide](https://just-the-docs.com/MIGRATION/).
### Using Release `v0.7.0`
Users who have not pinned the theme version will be **automatically upgraded to `v0.7.0` the next time they build their site**.
To use this release explicitly as a remote theme:
```yml
remote_theme: just-the-docs/just-the-docs@v0.7.0
```
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`:
```ruby
gem "just-the-docs", "0.7.0"
```
To use and pin a previous version of the theme, replace the `0.7.0` with the desired release tag.
### New Features
- Added: configuration options for opening external links in new tab by [@CarbonNeuron] in [#1360]
### Bugfixes
- Fixed: remove href from the navigation link to the current page by [@pdmosses] in [#1356]
- Fixed: improve build time by [@pdmosses] in [#1358]
- Fixed: erroneous parentheses in `site_nav` conditional by [@mattxwang] in [#1366]
- Fixed: navigation scroll to active link regression by [@pdmosses] in [#1367]
- Fixed: invalid CSS rules in head elements by [@pdmosses] in [#1368]
- Fixed: accidental disabling of forward-declared stylesheets by [@mattxwang] in [#1373]
{: .warning }
[#1358] moved `_includes/nav.html` to the `_includes/components` directory,
Users who were overriding that file will need to adjust their sites accordingly.
### Documentation:
- Docs: fix typos in `CHANGELOG` and `MIGRATION` by [@thapasusheel] in [#1377]
### New Contributors
- [@CarbonNeuron] made their first contribution in [#1360]
- [@thapasusheel] made their first contribution in [#1377]
[@CarbonNeuron]: https://github.com/CarbonNeuron
[@thapasusheel]: https://github.com/thapasusheel
[#1356]: https://github.com/just-the-docs/just-the-docs/pull/1356
[#1358]: https://github.com/just-the-docs/just-the-docs/pull/1358
[#1360]: https://github.com/just-the-docs/just-the-docs/pull/1360
[#1366]: https://github.com/just-the-docs/just-the-docs/pull/1366
[#1367]: https://github.com/just-the-docs/just-the-docs/pull/1367
[#1368]: https://github.com/just-the-docs/just-the-docs/pull/1368
[#1373]: https://github.com/just-the-docs/just-the-docs/pull/1373
[#1377]: https://github.com/just-the-docs/just-the-docs/pull/1377
## Release v0.6.2
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.
### Bugfixes
- Fixed: Windows emoji font fallback by [@flanakin] in [#1337]
- Removed: unused `.passive` toggle in navigation by [@pdmosses] in [#1335]
[#1335]: https://github.com/just-the-docs/just-the-docs/pull/1335
[#1337]: https://github.com/just-the-docs/just-the-docs/pull/1337
### New Contributors
- [@flanakin] made their first contribution in [#1337]
[@flanakin]: https://github.com/flanakin
## Release v0.6.1
Hi all, this is a small patch release that only includes one change: resolving a bug introduced in 0.6.0 that causes a JS error for pages excluded from navigation.
### Bugfixes
- Fixed: JS error for pages excluded from navigation by [@pdmosses] in [#1332]
[#1332]: https://github.com/just-the-docs/just-the-docs/pull/1332
## Release v0.6.0 ## Release v0.6.0
Hi all, this is a minor release that introduces performance improvements for build times on large sites, correctly sets the `color-scheme` property, and fixes invalid HTML. However, it introduces some potentially-breaking *internal* changes to undocumented features of the theme. Hi all, this is a minor release that introduces performance improvements for build times on large sites, correctly sets the `color-scheme` property, and fixes invalid HTML. However, it introduces some potentially-breaking *internal* changes to undocumented features of the theme.
@@ -616,7 +713,7 @@ This RC does not introduce any major user-facing features. It adds more customiz
### Trying out pre-release `v0.4.0.rc5` ### Trying out pre-release `v0.4.0.rc5`
Simlar 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. 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.
To use this RC explicitly as a remote theme: To use this RC explicitly as a remote theme:
@@ -717,7 +814,7 @@ Have any questions, thoughts, or concerns? We'd love to hear from you! Please [o
### Trying out pre-release `v0.4.0.rc4` ### Trying out pre-release `v0.4.0.rc4`
Simlar 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`. 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`.
To use this RC explicitly as a remote theme: To use this RC explicitly as a remote theme:
@@ -838,7 +935,7 @@ As soon as we get stable test results from major downstream users, we'll push ou
### Trying out pre-release `v0.4.0.rc3` ### Trying out pre-release `v0.4.0.rc3`
Simlar 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`. 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`.
To use this RC explicitly as a remote theme: To use this RC explicitly as a remote theme:
@@ -914,7 +1011,7 @@ The intention of this release candidate is to gather even more feedback on a pot
### Trying out pre-release `v0.4.0.rc2` ### Trying out pre-release `v0.4.0.rc2`
Simlar 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`. 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`.
To use this RC explicitly as a remote theme: To use this RC explicitly as a remote theme:
@@ -1002,7 +1099,7 @@ We want your feedback! Are these changes helpful? Are our docs easy to understan
### Trying out pre-release `v0.4.0.rc1` ### Trying out pre-release `v0.4.0.rc1`
Due to the massive scope of these changes, we're making `v0.4.0.rc1` avaialble 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`. 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`.
To use this RC explicitly as a remote theme: To use this RC explicitly as a remote theme:
@@ -1514,7 +1611,7 @@ fixes #291 #256 #293 #177
## v0.2.1 ## v0.2.1
This update fixes security vulnerablities in the lodash sub-dependency and bumps other dev dependencies to their latest version. This update fixes security vulnerabilities in the lodash sub-dependency and bumps other dev dependencies to their latest version.
## v0.2.0 ## v0.2.0

View File

@@ -5,6 +5,4 @@ gem "jekyll-github-metadata", ">= 2.15"
gem "jekyll-include-cache", group: :jekyll_plugins gem "jekyll-include-cache", group: :jekyll_plugins
gem "webrick", "~> 1.7"
gem "html-proofer", "~> 5.0", :group => :development gem "html-proofer", "~> 5.0", :group => :development

150
Gemfile.lock Normal file
View File

@@ -0,0 +1,150 @@
PATH
remote: .
specs:
just-the-docs (0.7.0)
jekyll (>= 3.8.5)
jekyll-include-cache
jekyll-seo-tag (>= 2.0)
rake (>= 12.3.1)
GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
addressable (2.8.4)
public_suffix (>= 2.0.2, < 6.0)
afm (0.2.2)
async (2.6.3)
console (~> 1.10)
fiber-annotation
io-event (~> 1.1)
timers (~> 4.1)
colorator (1.1.0)
concurrent-ruby (1.2.2)
console (1.23.2)
fiber-annotation
fiber-local
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
faraday (2.7.10)
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2)
ffi (1.15.5)
fiber-annotation (0.2.0)
fiber-local (1.0.0)
forwardable-extended (2.6.0)
google-protobuf (3.23.4-arm64-darwin)
google-protobuf (3.23.4-x86_64-linux)
hashery (2.1.2)
html-proofer (5.0.8)
addressable (~> 2.3)
async (~> 2.1)
nokogiri (~> 1.13)
pdf-reader (~> 2.11)
rainbow (~> 3.0)
typhoeus (~> 1.3)
yell (~> 2.0)
zeitwerk (~> 2.5)
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
io-event (1.2.3)
jekyll (4.3.2)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-github-metadata (2.16.0)
jekyll (>= 3.4, < 5.0)
octokit (>= 4, < 7, != 4.4.0)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
nokogiri (1.15.4-arm64-darwin)
racc (~> 1.4)
nokogiri (1.15.4-x86_64-linux)
racc (~> 1.4)
octokit (6.1.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
pdf-reader (2.11.0)
Ascii85 (~> 1.0)
afm (~> 0.2.1)
hashery (~> 2.0)
ruby-rc4
ttfunk
public_suffix (5.0.3)
racc (1.7.1)
rainbow (3.1.1)
rake (13.0.6)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.6)
rouge (4.1.2)
ruby-rc4 (0.1.5)
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass-embedded (1.64.1-arm64-darwin)
google-protobuf (~> 3.23)
sass-embedded (1.64.1-x86_64-linux-gnu)
google-protobuf (~> 3.23)
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
timers (4.3.5)
ttfunk (1.7.0)
typhoeus (1.4.0)
ethon (>= 0.9.0)
unicode-display_width (2.4.2)
webrick (1.8.1)
yell (2.2.2)
zeitwerk (2.6.11)
PLATFORMS
arm64-darwin
x86_64-linux
DEPENDENCIES
bundler (>= 2.3.5)
html-proofer (~> 5.0)
jekyll-github-metadata (>= 2.15)
jekyll-include-cache
just-the-docs!
BUNDLED WITH
2.4.13

View File

@@ -43,6 +43,34 @@ This document contains instructions on how to migrate and upgrade Just the Docs
[CHANGELOG]: {{ site.baseurl }}{% link CHANGELOG.md %} [CHANGELOG]: {{ site.baseurl }}{% link CHANGELOG.md %}
## v0.6.x - v0.7.0
### POTENTIALLY-BREAKING CHANGES in v0.7.0
There are some *very minor* potentially-breaking changes for users in version `v0.7.0`. **They do not affect the vast majority of users**; however, this may affect users of (undocumented) internal theme structure. They concern:
1. the movement of `_includes/nav.html`, which has moved to `_includes/components/nav.html`
- **explicit migration only necessary if users have overridden `_includes/nav.html`**
2. the addition of `<script>` tags with `id`s `jtd-nav-activation` and `jtd-head-nav-stylesheet`
- **explicit migration only necessary if users have existing elements with those IDs**
#### Moved Include
Version `v0.7.0` has moved (and changed the contents of) `_includes/nav.html`; it is now in `_includes/components/nav.html`. This means that user overrides for the component will *no longer be loaded*, reverting to the Just the Docs default.
Users who have overridden this `_includes` should:
1. copy in the new upstream `_includes/components/nav.html` into their site
2. port over any changes from their custom `_includes/nav.html`
No other changes are necessary.
#### New Script IDs
Version `v0.7.0` adds the `id`s `jtd-nav-activation` and `jtd-head-nav-stylesheet` to some existing script tags. This will cause errors for users that have their own custom components with those IDs.
Users who have elements with those `id`s should rename their elements to avoid a collision.
## v0.5.x - v0.6.0 ## v0.5.x - v0.6.0
### POTENTIALLY-BREAKING CHANGES in v0.6.0 ### POTENTIALLY-BREAKING CHANGES in v0.6.0
@@ -119,7 +147,7 @@ However, some users may load different favicons for each page (and/or dynamicall
### POTENTIALLY-BREAKING CHANGES in v0.5.0 ### POTENTIALLY-BREAKING CHANGES in v0.5.0
There is one potentially-breaking change for users migrating from `v0.4.2` to `v0.5.0` concering `setup.scss`. To provide context: There is one potentially-breaking change for users migrating from `v0.4.2` to `v0.5.0` concerning `setup.scss`. To provide context:
1. `setup.scss` was introduced in `v0.4.0` 1. `setup.scss` was introduced in `v0.4.0`
2. in `v0.4.0` and `v0.4.1`, `setup.scss` was imported *before* color scheme SCSS code 2. in `v0.4.0` and `v0.4.1`, `setup.scss` was imported *before* color scheme SCSS code

View File

@@ -3,30 +3,38 @@
Depends on: page, site. Depends on: page, site.
Results in: HTML for the breadcrumbs component. Results in: HTML for the breadcrumbs component.
Overwrites: Overwrites:
pages_list, parent_page, grandparent_page. node, pages_list, parent_page, grandparent_page.
{%- endcomment -%} {%- endcomment -%}
{%- if page.url != "/" and page.parent -%} {%- if page.url != "/" and page.parent -%}
{%- assign pages_list = site[page.collection] {%- assign pages_list = site[page.collection] | default: site.html_pages -%}
| default: site.html_pages
| where_exp: "item", "item.title != nil"
| where_exp: "item", "item.has_children != nil" -%}
{%- if page.grand_parent -%} {%- assign parent_page = nil -%}
{%- assign parent_page = pages_list {%- assign grandparent_page = nil -%}
| where: "title", page.parent
| where: "parent", page.grand_parent {%- for node in pages_list -%}
| first -%}
{%- assign grandparent_page = pages_list {%- if node.has_children and page.grand_parent -%}
| where: "title", page.grand_parent
| first -%} {%- if node.title == page.parent and node.parent == page.grand_parent -%}
{%- else -%} {%- assign parent_page = node -%}
{%- assign parent_page = pages_list
| where: "title", page.parent
| where_exp: "item", "item.parent == nil"
| first -%}
{%- endif -%} {%- endif -%}
{%- if node.title == page.grand_parent -%}
{%- assign grandparent_page = node -%}
{%- endif -%}
{%- if parent_page and grandparent_page -%}
{%- break -%}
{%- endif -%}
{%- elsif node.has_children and node.title == page.parent and node.parent == nil -%}
{%- assign parent_page = node -%}
{%- break -%}
{%- endif -%}
{%- endfor -%}
<nav aria-label="Breadcrumb" class="breadcrumb-nav"> <nav aria-label="Breadcrumb" class="breadcrumb-nav">
<ol class="breadcrumb-nav-list"> <ol class="breadcrumb-nav-list">

View File

@@ -1,5 +1,5 @@
{%- comment -%} {%- comment -%}
Include as: {%- include_cached nav.html pages=pages -%} Include as: {%- include components/nav.html pages=pages -%}
Depends on: include.pages. Depends on: include.pages.
Results in: HTML for the navigation panel. Results in: HTML for the navigation panel.
Includes: Includes:

View File

@@ -3,10 +3,9 @@
Depends on: page(?), site. Depends on: page(?), site.
Results in: HTML for the side bar. Results in: HTML for the side bar.
Includes: Includes:
title.html, nav.html, nav_footer_custom.html title.html, components/site_nav.html, nav_footer_custom.html
Overwrites: Overwrites:
pages_top_size, collections_size, collection_entry, nav_footer_custom.
collection_key, collection_value, collection, nav_footer_custom.
Should not be cached, because nav_footer_custom.html might depend on page. Should not be cached, because nav_footer_custom.html might depend on page.
{%- endcomment -%} {%- endcomment -%}
@@ -17,58 +16,8 @@
<svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg> <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg>
</button> </button>
</div> </div>
<nav aria-label="Main" id="site-nav" class="site-nav">
{% assign pages_top_size = site.html_pages {% include_cached components/site_nav.html %}
| where_exp:"item", "item.title != nil"
| where_exp:"item", "item.parent == nil"
| where_exp:"item", "item.nav_exclude != true"
| size %}
{% if pages_top_size > 0 %}
{% include_cached nav.html pages=site.html_pages %}
{% endif %}
{%- if site.nav_external_links -%}
<ul class="nav-list">
{%- for node in site.nav_external_links -%}
<li class="nav-list-item external">
<a href="{{ node.url | absolute_url }}" class="nav-list-link external">
{{ node.title }}
{% 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 %}
</a>
</li>
{%- endfor -%}
</ul>
{%- endif -%}
{% if site.just_the_docs.collections %}
{% assign collections_size = site.just_the_docs.collections | size %}
{% for collection_entry in site.just_the_docs.collections %}
{% assign collection_key = collection_entry[0] %}
{% assign collection_value = collection_entry[1] %}
{% assign collection = site[collection_key] %}
{% if collection_value.nav_exclude != true %}
{% if collections_size > 1 or pages_top_size > 0 %}
{% if collection_value.nav_fold == true %}
<ul class="nav-list nav-category-list">
<li class="nav-list-item{% if page.collection == collection_key %} active{% endif %}">
{%- if collection.size > 0 -%}
<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 %}">
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
</button>
{%- endif -%}
<div class="nav-category">{{ collection_value.name }}</div>
{% include_cached nav.html pages=collection %}
</li>
</ul>
{% else %}
<div class="nav-category">{{ collection_value.name }}</div>
{% include_cached nav.html pages=collection %}
{% endif %}
{% else %}
{% include_cached nav.html pages=collection %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
</nav>
{% capture nav_footer_custom %} {% capture nav_footer_custom %}
{%- include nav_footer_custom.html -%} {%- include nav_footer_custom.html -%}

View File

@@ -0,0 +1,67 @@
{%- comment -%}
Include as: {%- include_cached components/site_nav.html -%}
Depends on: site.
Results in: HTML for the site-nav.
Includes:
components/nav.html
Overwrites:
pages_top_size, collections_size, collection_entry,
collection_key, collection_value, collection.
{%- endcomment -%}
<nav aria-label="Main" id="site-nav" class="site-nav">
{% assign pages_top_size = site.html_pages
| where_exp:"item", "item.title != nil"
| where_exp:"item", "item.parent == nil"
| where_exp:"item", "item.nav_exclude != true"
| size %}
{% if pages_top_size > 0 %}
{% include components/nav.html pages=site.html_pages %}
{% endif %}
{%- if site.nav_external_links -%}
<ul class="nav-list">
{%- for node in site.nav_external_links -%}
<li class="nav-list-item external">
<a href="{{ node.url | absolute_url }}" class="nav-list-link external"
{% if node.opens_in_new_tab or node.opens_in_new_tab == nil and site.nav_external_links_new_tab %}
target="_blank" rel="noopener noreferrer"
{% endif %}
>
{{ node.title }}
{% 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 %}
</a>
</li>
{%- endfor -%}
</ul>
{%- endif -%}
{% if site.just_the_docs.collections %}
{% assign collections_size = site.just_the_docs.collections | size %}
{% for collection_entry in site.just_the_docs.collections %}
{% assign collection_key = collection_entry[0] %}
{% assign collection_value = collection_entry[1] %}
{% assign collection = site[collection_key] %}
{% if collection_value.nav_exclude != true %}
{% if collections_size > 1 or pages_top_size > 0 %}
{% if collection_value.nav_fold == true %}
<ul class="nav-list nav-category-list">
<li class="nav-list-item">
{%- if collection.size > 0 -%}
<button class="nav-list-expander btn-reset" aria-label="Toggle collection {{ collection_value.name }}" aria-pressed="false">
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
</button>
{%- endif -%}
<div class="nav-category">{{ collection_value.name }}</div>
{% include components/nav.html pages=collection %}
</li>
</ul>
{% else %}
<div class="nav-category">{{ collection_value.name }}</div>
{% include components/nav.html pages=collection %}
{% endif %}
{% else %}
{% include components/nav.html pages=collection %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
</nav>

View File

@@ -1,20 +1,47 @@
{%- comment -%} {%- comment -%}
Include as: {%- include css/activation.scss.liquid -%} Include as: {%- include css/activation.scss.liquid -%}
Depends on: page, site. Depends on: page, site.
Results in: page-dependent SCSS rules for inclusion in a head style element. Results in: page-dependent (non-nested) CSS rules for inclusion in a head style element,
which needs to be suppressed when JS is enabled.
Includes: Includes:
sorted_pages.html. sorted_pages.html.
Overwrites: Overwrites:
activation_pages, activation_pages_top_size, activation_page, activation_title, activation_no_nav_link, activation_pages, activation_pages_top_size, activation_page, activation_title,
activation_first_level, activation_second_level, activation_third_level, activation_first_level, activation_second_level, activation_third_level,
activation_first_level_reversed, activation_second_level_reversed, activation_first_level_reversed, activation_second_level_reversed,
activation_first_level_index, activation_second_level_index, activation_third_level_index. activation_first_level_index, activation_second_level_index, activation_third_level_index,
activation_index, activation_collection_prefix, activation_other_collection_prefix.
Should not be cached, because it depends on page. Should not be cached, because it depends on page.
(For a site with only top-level pages, the rendering of this file is always empty. (For a site with only top-level pages, the rendering of this file is always empty.
This property could be detected, and might halve the build time for such sites.) This property could be detected, and used to reduce the build time for such sites.)
{%- endcomment -%} {%- endcomment -%}
{%- unless page.title == nil or page.nav_exclude == true -%} {%- comment -%}
The CSS rules in activation_no_nav_link are for use on pages excluded from the main navigation.
- The first rule ensures that no nav-link has a background image.
- The other two rules ensure that all folding collections are expanded.
{%- endcomment -%}
{%- capture activation_no_nav_link %}
.site-nav ul li a {
background-image: none;
}
{%- if site.just_the_docs.collections %}
.site-nav > ul.nav-category-list > li > button svg {
transform: rotate(-90deg);
}
.site-nav > ul.nav-category-list > li.nav-list-item > ul.nav-list {
display: block;
}
{%- endif %}
{% endcapture -%}
{%- if page.title == nil or page.nav_exclude == true -%}
{{ activation_no_nav_link }}
{%- else -%}
{%- assign activation_pages = site[page.collection] {%- assign activation_pages = site[page.collection]
| default: site.html_pages | default: site.html_pages
@@ -27,6 +54,11 @@
{%- assign activation_first_level_reversed = nil -%} {%- assign activation_first_level_reversed = nil -%}
{%- assign activation_second_level_reversed = nil -%} {%- assign activation_second_level_reversed = nil -%}
{%- comment -%}
The generated CSS depends on the position of the current page in each level in
the navigation.
{%- endcomment -%}
{%- assign activation_title = page.grand_parent | default: page.parent | default: page.title -%} {%- assign activation_title = page.grand_parent | default: page.parent | default: page.title -%}
{%- assign activation_first_level = activation_pages {%- assign activation_first_level = activation_pages
| where_exp: "item", "item.parent == nil" -%} | where_exp: "item", "item.parent == nil" -%}
@@ -39,7 +71,11 @@
{%- endif -%} {%- endif -%}
{%- endfor -%} {%- endfor -%}
{%- unless activation_first_level_index == nil -%} {%- if activation_first_level_index == nil -%}
{{ activation_no_nav_link }}
{%- else -%}
{%- if page.grand_parent -%} {%- if page.grand_parent -%}
{%- assign activation_title = page.parent -%} {%- assign activation_title = page.parent -%}
@@ -83,23 +119,52 @@
{%- endfor -%} {%- endfor -%}
{%- endif -%} {%- endif -%}
{%- unless activation_second_level_index == nil and activation_third_level_index -%} {%- if activation_second_level_index == nil and activation_third_level_index -%}
{{ activation_no_nav_link }}
{%- else -%}
{%- comment -%}
The site-nav is:
- an optional ul.nav-list with li.nav-list-items for non-collection top-level pages
- an optional ul.nav-list with li.nav-list-item.externals
- any number of just-the-docs.collections
A non-foldable collection is:
- a div.nav-category with the collection name, followed by:
- a ul.nav-list with li.nav-list-items for its top-level pages
A foldable collection is:
- a ul.nav-list.nav-category-list with a single li.nav-list-item containing:
- an optional button with the expander svg
- a div.nav-category with the collection name
- a ul.nav-list with li.nav-list-items for its top-level pages
The generated CSS uses:
- activation_collection_prefix, to select the site-nav > ul.nav-list for the page
- activation_other_collection_prefix, to select all the other site-nav > ul.nav-lists
{%- endcomment -%}
{%- if page.collection == nil -%} {%- if page.collection == nil -%}
{%- capture activation_collection_prefix -%} {%- capture activation_collection_prefix -%}
.site-nav > .nav-list:nth-child(1):not(.nav-category-list) .site-nav > ul.nav-list:first-child
{%- endcapture -%}
{%- capture activation_other_collection_prefix -%}
.site-nav > ul.nav-list:not(:first-child)
{%- endcapture -%} {%- endcapture -%}
{%- else -%} {%- else -%}
{%- for activation_collection in site.just_the_docs.collections -%} {%- for activation_collection in site.just_the_docs.collections -%}
{%- if activation_collection[0] == page.collection -%} {%- if activation_collection[0] == page.collection -%}
{%- assign activation_collection_index = forloop.index -%} {%- assign activation_index = forloop.index -%}
{%- break -%} {%- break -%}
{%- endif -%} {%- endif -%}
{%- endfor -%} {%- endfor -%}
{%- assign activation_index = activation_collection_index -%}
{%- assign activation_pages_top_size = site.html_pages {%- assign activation_pages_top_size = site.html_pages
| where_exp:"item", "item.title != nil" | where_exp:"item", "item.title != nil"
| where_exp:"item", "item.parent == nil" | where_exp:"item", "item.parent == nil"
@@ -108,66 +173,109 @@
{%- if activation_pages_top_size > 0 -%} {%- if activation_pages_top_size > 0 -%}
{%- assign activation_index = activation_index | plus: 1 -%} {%- assign activation_index = activation_index | plus: 1 -%}
{%- endif -%} {%- endif -%}
{%- if site.nav_external_links -%} {%- if site.nav_external_links -%}
{%- assign activation_index = activation_index | plus: 1 -%} {%- assign activation_index = activation_index | plus: 1 -%}
{%- endif -%} {%- endif -%}
{%- capture activation_collection_prefix -%} {%- capture activation_collection_prefix -%}
.site-nav > .nav-list:nth-of-type({{ activation_index }}){% if site.just_the_docs.collections[page.collection].nav_fold == true %} > .nav-list-item > .nav-list{% endif %} .site-nav > ul:nth-of-type({{ activation_index }})
{%- if site.just_the_docs.collections[page.collection].nav_fold %} > li > ul
{%- endif -%}
{%- endcapture -%}
{%- capture activation_other_collection_prefix -%}
.site-nav > ul:not(:nth-of-type({{ activation_index }}))
{%- endcapture -%} {%- endcapture -%}
{%- endif -%} {%- endif -%}
// Styling for the nav-list-link to the current page: {%- comment -%}
{{ activation_collection_prefix }} { The required background image of the link to the current page may involve SCSS.
> .nav-list-item:not(.external):nth-child({{ activation_first_level_index }}){%- if activation_second_level_index %} > .nav-list > .nav-list-item:nth-child({{ activation_second_level_index }}){%- if activation_third_level_index %} > .nav-list > .nav-list-item:nth-child({{ activation_third_level_index }}){% endif %}{% endif %} { To avoid page-dependent SCSS, all nav links initially have that background image.
> .nav-list-link { The following rule removes the image from the links to all parents, siblings,
display: block; and children of the current page.
{%- endcomment %}
{% if activation_third_level_index -%}
{{ activation_collection_prefix }} > li > a,
{{ activation_collection_prefix }} > li > ul > li > a,
{{ activation_collection_prefix }} > li > ul > li > ul > li:not(:nth-child({{ activation_third_level_index }})) > a {
background-image: none;
}
{%- elsif activation_second_level_index -%}
{{ activation_collection_prefix }} > li > a,
{{ activation_collection_prefix }} > li > ul > li:not(:nth-child({{ activation_second_level_index }})) > a,
{{ activation_collection_prefix }} > li > ul > li > ul > li > a {
background-image: none;
}
{%- else -%}
{{ activation_collection_prefix }} > li:not(:nth-child({{ activation_first_level_index }})) > a,
{{ activation_collection_prefix }} > li > ul > li > a,
{{ activation_collection_prefix }} > li > ul > li > ul > li > a {
background-image: none;
}
{%- endif %}
{%- comment -%}
The following rule removes the image from the links to pages in other collections.
{%- endcomment %}
{{ activation_other_collection_prefix }} a,
.site-nav li.external a {
background-image: none;
}
{%- comment -%}
The following rule styles the link to the current page.
{%- endcomment %}
{{ activation_collection_prefix }} > li:nth-child({{ activation_first_level_index }})
{%- if activation_second_level_index %} > ul > li:nth-child({{ activation_second_level_index }})
{%- if activation_third_level_index %} > ul > li:nth-child({{ activation_third_level_index }})
{%- endif -%}
{%- endif %} > a {
font-weight: 600; font-weight: 600;
text-decoration: none; text-decoration: none;
background-image: linear-gradient(
-90deg,
rgba($feedback-color, 1) 0%,
rgba($feedback-color, 0.8) 80%,
rgba($feedback-color, 0) 100%
);
}
}
} }
// Styling for nav-list-expanders at first and second levels, {%- comment -%}
// suppressed when a click has deactivated the expander (making the nav-list-item .passive): The following rules unfold all collections, and display the links to any children
{{ activation_collection_prefix }} { of the current page.
> .nav-list-item:not(.passive):nth-child({{ activation_first_level_index }}){%- if activation_second_level_index %},
> .nav-list-item:not(.passive):nth-child({{ activation_first_level_index }}) > .nav-list > .nav-list-item:not(.passive):nth-child({{ activation_second_level_index }}){% endif %} { To avoid dependence on the SCSS variable nav-list-expander-right, the direction
> .nav-list-expander svg { of the rotation of the expander icon is fixed, and corresponds to the appearance
@if $nav-list-expander-right { when nav-list-expander-right is true. This results in a minor visual difference
between the appearance of active expander icons when JS is enabled/disabled and
nav-list-expander-right is false, which seems unavoidable.
{%- endcomment %}
{%- if site.just_the_docs.collections %}
.site-nav > ul.nav-category-list > li > button svg,
{% endif -%}
{{ activation_collection_prefix }} > li:nth-child({{ activation_first_level_index }}) > button svg
{%- if activation_second_level_index -%},
{{ activation_collection_prefix }} > li:nth-child({{ activation_first_level_index }}) > ul > li:nth-child({{ activation_second_level_index }}) > button svg
{%- endif %} {
transform: rotate(-90deg); transform: rotate(-90deg);
} @else {
transform: rotate(90deg);
}
} }
> .nav-list { {%- if site.just_the_docs.collections %}
.site-nav > ul.nav-category-list > li.nav-list-item > ul.nav-list,
{% endif -%}
{{ activation_collection_prefix }} > li.nav-list-item:nth-child({{ activation_first_level_index }}) > ul.nav-list
{%- if activation_second_level_index %},
{{ activation_collection_prefix }} > li.nav-list-item:nth-child({{ activation_first_level_index }}) > ul.nav-list > li.nav-list-item:nth-child({{ activation_second_level_index }}) > ul.nav-list
{%- endif %} {
display: block; display: block;
} }
}
}
// Styling for nav-list-expander for categories: {%- endif -%}
.site-nav > .nav-category-list > .nav-list-item:not(.passive) { {%- endif -%}
> .nav-list-expander svg { {%- endif -%}
@if $nav-list-expander-right {
transform: rotate(-90deg);
} @else {
transform: rotate(90deg);
}
}
> .nav-list {
display: block;
}
}
{%- endunless -%}
{%- endunless -%}
{%- endunless -%}

View File

@@ -7,6 +7,11 @@ $logo: "{{ site.logo | relative_url }}";
{% unless include.color_scheme == "light" %} {% unless include.color_scheme == "light" %}
@import "./color_schemes/{{ include.color_scheme }}"; @import "./color_schemes/{{ include.color_scheme }}";
{% endunless %} {% endunless %}
{% if site.custom_schemes %}
{% for scheme in site.custom_schemes %}
@import "./custom_schemes/{{scheme}}";
{% endfor %}
{% endif %}
@import "./modules"; @import "./modules";
{% include css/callouts.scss.liquid color_scheme = include.color_scheme %} {% include css/callouts.scss.liquid color_scheme = include.color_scheme %}
{% include css/custom.scss.liquid %} {% include css/custom.scss.liquid %}

View File

@@ -4,7 +4,7 @@
site.search_enabled, site.static_files, site.favicon_ico. site.search_enabled, site.static_files, site.favicon_ico.
Results in: HTML for the head element. Results in: HTML for the head element.
Includes: Includes:
head_nav.html, head_custom.html. css/activation.scss.liquid, head_custom.html.
Overwrites: Overwrites:
ga_tracking_ids, ga_property, file, favicon. ga_tracking_ids, ga_property, file, favicon.
Should not be cached, because included files depend on page. Should not be cached, because included files depend on page.
@@ -16,7 +16,11 @@
<link rel="stylesheet" href="{{ '/assets/css/just-the-docs-default.css' | relative_url }}"> <link rel="stylesheet" href="{{ '/assets/css/just-the-docs-default.css' | relative_url }}">
{% include head_nav.html %} <link rel="stylesheet" href="{{ '/assets/css/just-the-docs-head-nav.css' | relative_url }}" id="jtd-head-nav-stylesheet">
<style id="jtd-nav-activation">
{% include css/activation.scss.liquid %}
</style>
{% if site.ga_tracking != nil %} {% if site.ga_tracking != nil %}
{% assign ga_tracking_ids = site.ga_tracking | split: "," %} {% assign ga_tracking_ids = site.ga_tracking | split: "," %}

View File

@@ -1,48 +0,0 @@
{%- comment -%}
Include as: {%- include head_nav.html -%}
Depends on: site.color_scheme.
Results in: HTML for a page-specific style element.
Includes:
css/activation.scss.liquid.
Overwrites:
activation, test_scss, scss, css, index, count.
Should not be cached, because css/activation.scss.liquid depends on page.
{%- endcomment -%}
{% capture activation %}
{% include css/activation.scss.liquid %}
{%- endcapture -%}
{% capture test_scss %}
@import "./support/support";
@import "./color_schemes/light";
{{ activation }}
{%- endcapture -%}
{%- capture scss -%}
@import "./support/support";
@import "./custom/setup";
{% if site.color_scheme and site.color_scheme != "nil" -%}
{%- assign color_scheme = site.color_scheme -%}
{%- else -%}
{%- assign color_scheme = "light" -%}
{%- endif %}
@import "./color_schemes/light";
{% unless color_scheme == "light" %}
@import "./color_schemes/{{ color_scheme }}";
{% endunless %}
{{ activation }}
{%- endcapture -%}
{%- comment -%}
Convert to CSS, then remove the color_scheme import rules to avoid duplication.
The value of count is page-dependent, but independent of custom color schemes.
{%- endcomment -%}
{%- assign count = test_scss | scssify | split: ".site-nav" | size -%}
{%- unless count == 1 %}
{%- assign index = 1 | minus: count -%}
{%- assign css = scss | scssify | split: ".site-nav" | slice: index, count | join: ".site-nav" -%}
<style type="text/css">
{{ css | prepend: ".site-nav" }}
</style>
{%- endunless %}

View File

@@ -2,7 +2,7 @@
// prettier-ignore // prettier-ignore
$body-font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", $body-font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI",
roboto, "Helvetica Neue", arial, sans-serif !default; roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji" !default;
$mono-font-family: "SFMono-Regular", menlo, consolas, monospace !default; $mono-font-family: "SFMono-Regular", menlo, consolas, monospace !default;
$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems $root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems
$body-line-height: 1.4 !default; $body-line-height: 1.4 !default;

View File

@@ -0,0 +1,24 @@
---
---
{%- if site.color_scheme and site.color_scheme != "nil" -%}
{%- assign color_scheme = site.color_scheme -%}
{%- else -%}
{%- assign color_scheme = "light" -%}
{%- endif -%}
{%- capture newline %}
{% endcapture -%}
{%- capture scss -%}
{% include css/just-the-docs.scss.liquid color_scheme=color_scheme %}
.site-nav ul li a {
background-image: linear-gradient(
-90deg,
rgba($feedback-color, 1) 0%,
rgba($feedback-color, 0.8) 80%,
rgba($feedback-color, 0) 100%
);
}
{%- endcapture -%}
{{ scss | scssify | split: newline | slice: -3, 3 | join: newline }}

View File

@@ -31,10 +31,7 @@ function initNav() {
} }
if (target) { if (target) {
e.preventDefault(); e.preventDefault();
const active = target.parentNode.classList.toggle('active'); target.ariaPressed = target.parentNode.classList.toggle('active');
const passive = target.parentNode.classList.toggle('passive');
if (active && passive) target.parentNode.classList.toggle('passive');
target.ariaPressed = active;
} }
}); });
@@ -42,7 +39,7 @@ function initNav() {
const mainHeader = document.getElementById('main-header'); const mainHeader = document.getElementById('main-header');
const menuButton = document.getElementById('menu-button'); const menuButton = document.getElementById('menu-button');
disableHeadStyleSheet(); disableHeadStyleSheets();
jtd.addEvent(menuButton, 'click', function(e){ jtd.addEvent(menuButton, 'click', function(e){
e.preventDefault(); e.preventDefault();
@@ -71,12 +68,24 @@ function initNav() {
{%- endif %} {%- endif %}
} }
// The page-specific <style> in the <head> is needed only when JS is disabled. // The <head> element is assumed to include the following stylesheets:
// Moreover, it incorrectly overrides dynamic stylesheets set by setTheme(theme). // - a <link> to /assets/css/just-the-docs-head-nav.css,
// The page-specific stylesheet is assumed to have index 1 in the list of stylesheets. // with id 'jtd-head-nav-stylesheet'
// - a <style> containing the result of _includes/css/activation.scss.liquid.
// To avoid relying on the order of stylesheets (which can change with HTML
// compression, user-added JavaScript, and other side effects), stylesheets
// are only interacted with via ID
function disableHeadStyleSheet() { function disableHeadStyleSheets() {
document.styleSheets[1].disabled = true; const headNav = document.getElementById('jtd-head-nav-stylesheet');
if (headNav) {
headNav.disabled = true;
}
const activation = document.getElementById('jtd-nav-activation');
if (activation) {
activation.disabled = true;
}
} }
{%- if site.search_enabled != false %} {%- if site.search_enabled != false %}
@@ -492,12 +501,12 @@ function scrollNav() {
if (targetLink) { if (targetLink) {
const rect = targetLink.getBoundingClientRect(); const rect = targetLink.getBoundingClientRect();
document.getElementById('site-nav').scrollBy(0, rect.top - 3*rect.height); document.getElementById('site-nav').scrollBy(0, rect.top - 3*rect.height);
targetLink.removeAttribute('href');
} }
} }
// Find the nav-list-link that refers to the current page // Find the nav-list-link that refers to the current page
// then make it and all enclosing nav-list-item elements active, // then make it and all enclosing nav-list-item elements active.
// and make all other folded collections passive
function activateNav() { function activateNav() {
var target = navLink(); var target = navLink();
@@ -513,17 +522,6 @@ function activateNav() {
target = target.parentNode; target = target.parentNode;
} }
} }
const elements = document.getElementsByClassName("nav-category-list");
for (const element of elements) {
const item = element.children[0];
const active = item.classList.toggle('active');
if (active) {
item.classList.toggle('active', false);
item.classList.toggle('passive', true);
} else {
item.classList.toggle('active', true);
}
}
} }
// Document ready // Document ready

View File

@@ -52,7 +52,7 @@ New (v0.4.2)
{: .label .label-green } {: .label .label-green }
In Just the Docs version `0.4.2`, we changed the default syntax highlighting theme for the `light` color scheme to have higher contrast. Users who are want to use the old highlighting need to explicitly opt-in with the deprecated `legacy_light` color scheme. In a future major release of Just the Docs, we will remove this color scheme. In Just the Docs version `0.4.2`, we changed the default syntax highlighting theme for the `light` color scheme to have higher contrast. Users who want to use the old highlighting need to explicitly opt-in with the deprecated `legacy_light` color scheme. In a future major release of Just the Docs, we will remove this color scheme.
## Custom schemes ## Custom schemes

View File

@@ -20,7 +20,7 @@ nav_order: 5
## Main navigation ## Main navigation
The main navigation for your Just the Docs site is on the left side of the page at large screens and on the top (behind a tap) on small screens. The main navigation can be structured to accommodate a multi-level menu system (pages with children and grandchildren). The main navigation for your Just the Docs site is on the left side of the page on large screens and on the top (behind a tap) on small screens. The main navigation can be structured to accommodate a multi-level menu system (pages with children and grandchildren).
By default, all pages will appear as top level pages in the main nav unless a parent page is defined (see [Pages with Children](#pages-with-children)). By default, all pages will appear as top level pages in the main nav unless a parent page is defined (see [Pages with Children](#pages-with-children)).
@@ -30,7 +30,7 @@ By default, all pages will appear as top level pages in the main nav unless a pa
To specify a page order, you can use the `nav_order` parameter in your pages' YAML front matter. To specify a page order, you can use the `nav_order` parameter in your pages' YAML front matter.
#### Example ### Example (ordering pages)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -55,7 +55,7 @@ By default, all Capital letters come before all lowercase letters; you can add `
For specific pages that you do not wish to include in the main navigation, e.g. a 404 page or a landing page, use the `nav_exclude: true` parameter in the YAML front matter for that page. For specific pages that you do not wish to include in the main navigation, e.g. a 404 page or a landing page, use the `nav_exclude: true` parameter in the YAML front matter for that page.
#### Example ### Example (excluding pages)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -108,7 +108,7 @@ On the parent pages, add this YAML front matter parameter:
- `has_children: true` (tells us that this is a parent page) - `has_children: true` (tells us that this is a parent page)
#### Example ### Example (parent pages)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -129,7 +129,7 @@ Here we're setting up the UI Components landing page that is available at `/docs
On child pages, simply set the `parent:` YAML front matter to whatever the parent's page title is and set a nav order (this number is now scoped within the section). On child pages, simply set the `parent:` YAML front matter to whatever the parent's page title is and set a nav order (this number is now scoped within the section).
#### Example #### Example (child pages)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -154,7 +154,7 @@ You can optionally add the following to the YAML front matter to reverse the def
- `child_nav_order: reversed` - `child_nav_order: reversed`
#### Example #### Example (ordering child pages)
{: .no_toc } {: .no_toc }
```yaml ```yaml
--- ---
@@ -168,7 +168,7 @@ child_nav_order: reversed
By default, all pages with children will automatically append a Table of Contents which lists the child pages after the parent page's content. To disable this auto Table of Contents, set `has_toc: false` in the parent page's YAML front matter. By default, all pages with children will automatically append a Table of Contents which lists the child pages after the parent page's content. To disable this auto Table of Contents, set `has_toc: false` in the parent page's YAML front matter.
#### Example #### Example (auto-generating Table of Contents)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -191,7 +191,7 @@ Child pages can also have children (grandchildren). This is achieved by using a
1. Add the `has_children` attribute to the child 1. Add the `has_children` attribute to the child
1. Add the `parent` and `grand_parent` attribute to the grandchild 1. Add the `parent` and `grand_parent` attribute to the grandchild
#### Example ##### Example (children within children)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -241,7 +241,7 @@ Currently, the navigation structure is limited to 3 levels: grandchild pages can
To add auxiliary links to your site (in the upper right on all pages), add it to the `aux_links` [configuration option]({% link docs/configuration.md %}#aux-links) in your site's `_config.yml` file. To add auxiliary links to your site (in the upper right on all pages), add it to the `aux_links` [configuration option]({% link docs/configuration.md %}#aux-links) in your site's `_config.yml` file.
#### Example ### Example (auxiliary links)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -262,7 +262,7 @@ New (v0.4.0)
To add external links to the navigation, add them to the `nav_external_links` [configuration]({% link docs/configuration.md %}) option in your site's `_config.yml` file. To add external links to the navigation, add them to the `nav_external_links` [configuration]({% link docs/configuration.md %}) option in your site's `_config.yml` file.
External links will appear in the navigation after the links to ordinary pages, but before any collections. External links will appear in the navigation after the links to ordinary pages, but before any collections.
#### Example ### Example (external navigation links)
{: .no_toc } {: .no_toc }
```yaml ```yaml
@@ -271,18 +271,32 @@ nav_external_links:
- title: Just the Docs on GitHub - title: Just the Docs on GitHub
url: https://github.com/just-the-docs/just-the-docs url: https://github.com/just-the-docs/just-the-docs
hide_icon: false # set to true to hide the external link icon - defaults to false hide_icon: false # set to true to hide the external link icon - defaults to false
opens_in_new_tab: false # set to true to open this link in a new tab - defaults to false
``` ```
### Opening external links in a new tab
{: .d-inline-block }
New (unreleased)
{: .label .label-green }
The external links are decorated by an icon, which distinguishes them from internal links. The external links are decorated by an icon, which distinguishes them from internal links.
You can suppress the icon by setting `hide_icon: true`. You can suppress the icon by setting `hide_icon: true`.
By default, external links are not opened in a new tab. However, this can be enabled by:
1. setting `opens_in_new_tab: true` in the link's configuration object
2. setting the configuration option `nav_external_links_new_tab: true` in `_config.yml`
When they conflict, `opens_in_new_tab` takes precedence.
--- ---
## In-page navigation with Table of Contents ## In-page navigation with Table of Contents
To generate a Table of Contents on your docs pages, you can use the `{:toc}` method from Kramdown, immediately after an `<ol>` in Markdown. This will automatically generate an ordered list of anchor links to various sections of the page based on headings and heading levels. There may be occasions where you're using a heading and you don't want it to show up in the TOC, so to skip a particular heading use the `{: .no_toc }` CSS class. To generate a Table of Contents on your docs pages, you can use the `{:toc}` method from Kramdown, immediately after an `<ol>` in Markdown. This will automatically generate an ordered list of anchor links to various sections of the page based on headings and heading levels. There may be occasions where you're using a heading and you don't want it to show up in the TOC, so to skip a particular heading use the `{: .no_toc }` CSS class.
#### Example ### Example (in-page navigation with Table of Contents)
{: .no_toc } {: .no_toc }
```markdown ```markdown

View File

@@ -21,7 +21,7 @@ nav_order: 1
By default, Just the Docs uses a native system font stack for sans-serif fonts: By default, Just the Docs uses a native system font stack for sans-serif fonts:
```scss ```scss
system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Segoe UI Emoji"
``` ```
ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ

View File

@@ -61,7 +61,7 @@ Use `mx-auto` to horizontally center elements.
In Markdown, use the `{: }` wrapper to apply custom classes: In Markdown, use the `{: }` wrapper to apply custom classes:
```markdown ```markdown
This paragraph will have a margin bottom of 1rem/16px at large screens. This paragraph will have a margin bottom of 1rem/16px on large screens.
{: .mb-lg-4 } {: .mb-lg-4 }
This paragraph will have 2rem/32px of padding on the right and left at all screen sizes. This paragraph will have 2rem/32px of padding on the right and left at all screen sizes.

View File

@@ -9,5 +9,5 @@ permalink: docs/utilities
# Utilities # Utilities
{: .no_toc } {: .no_toc }
CSS utility classes come in handy when you to want to override default styles to create additional whitespace (margins/padding), correct unexpected shifts in font size or weight, add color, or hide (or show) something at a specific screen size. CSS utility classes come in handy when you want to override default styles to create additional whitespace (margins/padding), correct unexpected shifts in font size or weight, add color, or hide (or show) something at a specific screen size.
{: .fs-6 .fw-300 } {: .fs-6 .fw-300 }

View File

@@ -0,0 +1,3 @@
root: _site
blacklist:
- "line-numbers"

View File

@@ -2,7 +2,7 @@
Gem::Specification.new do |spec| Gem::Specification.new do |spec|
spec.name = "just-the-docs" spec.name = "just-the-docs"
spec.version = "0.6.0" spec.version = "0.7.0"
spec.authors = ["Patrick Marsceill", "Matthew Wang"] spec.authors = ["Patrick Marsceill", "Matthew Wang"]
spec.email = ["patrick.marsceill@gmail.com", "matt@matthewwang.me"] spec.email = ["patrick.marsceill@gmail.com", "matt@matthewwang.me"]

400
package-lock.json generated
View File

@@ -10,9 +10,9 @@
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"prettier": "^3.0.2", "prettier": "^3.0.3",
"stylelint": "^15.10.2", "stylelint": "^15.11.0",
"stylelint-config-standard-scss": "^10.0.0" "stylelint-config-standard-scss": "^11.0.0"
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
@@ -51,9 +51,9 @@
} }
}, },
"node_modules/@csstools/css-parser-algorithms": { "node_modules/@csstools/css-parser-algorithms": {
"version": "2.3.0", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz",
"integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -69,26 +69,32 @@
"node": "^14 || ^16 || >=18" "node": "^14 || ^16 || >=18"
}, },
"peerDependencies": { "peerDependencies": {
"@csstools/css-tokenizer": "^2.1.1" "@csstools/css-tokenizer": "^2.2.0"
} }
}, },
"node_modules/@csstools/css-tokenizer": { "node_modules/@csstools/css-tokenizer": {
"version": "2.1.1", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz",
"integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==",
"dev": true, "dev": true,
"engines": { "funding": [
"node": "^14 || ^16 || >=18" {
"type": "github",
"url": "https://github.com/sponsors/csstools"
}, },
"funding": { {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/csstools" "url": "https://opencollective.com/csstools"
} }
],
"engines": {
"node": "^14 || ^16 || >=18"
}
}, },
"node_modules/@csstools/media-query-list-parser": { "node_modules/@csstools/media-query-list-parser": {
"version": "2.1.2", "version": "2.1.4",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz",
"integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -104,8 +110,8 @@
"node": "^14 || ^16 || >=18" "node": "^14 || ^16 || >=18"
}, },
"peerDependencies": { "peerDependencies": {
"@csstools/css-parser-algorithms": "^2.3.0", "@csstools/css-parser-algorithms": "^2.3.1",
"@csstools/css-tokenizer": "^2.1.1" "@csstools/css-tokenizer": "^2.2.0"
} }
}, },
"node_modules/@csstools/selector-specificity": { "node_modules/@csstools/selector-specificity": {
@@ -430,12 +436,12 @@
} }
}, },
"node_modules/css-functions-list": { "node_modules/css-functions-list": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
"integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=12.22" "node": ">=12 || >=16"
} }
}, },
"node_modules/css-tree": { "node_modules/css-tree": {
@@ -663,9 +669,9 @@
"dev": true "dev": true
}, },
"node_modules/fast-glob": { "node_modules/fast-glob": {
"version": "3.3.0", "version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
"integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.stat": "^2.0.2",
@@ -697,15 +703,15 @@
} }
}, },
"node_modules/file-entry-cache": { "node_modules/file-entry-cache": {
"version": "6.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz",
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"flat-cache": "^3.0.4" "flat-cache": "^3.1.1"
}, },
"engines": { "engines": {
"node": "^10.12.0 || >=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/fill-range": { "node_modules/fill-range": {
@@ -737,22 +743,23 @@
} }
}, },
"node_modules/flat-cache": { "node_modules/flat-cache": {
"version": "3.0.4", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"flatted": "^3.1.0", "flatted": "^3.2.9",
"keyv": "^4.5.3",
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
}, },
"engines": { "engines": {
"node": "^10.12.0 || >=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/flatted": { "node_modules/flatted": {
"version": "3.2.5", "version": "3.2.9",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true "dev": true
}, },
"node_modules/for-each": { "node_modules/for-each": {
@@ -767,7 +774,7 @@
"node_modules/fs.realpath": { "node_modules/fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true "dev": true
}, },
"node_modules/function-bind": { "node_modules/function-bind": {
@@ -834,15 +841,15 @@
} }
}, },
"node_modules/glob": { "node_modules/glob": {
"version": "7.2.0", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
"inherits": "2", "inherits": "2",
"minimatch": "^3.0.4", "minimatch": "^3.1.1",
"once": "^1.3.0", "once": "^1.3.0",
"path-is-absolute": "^1.0.0" "path-is-absolute": "^1.0.0"
}, },
@@ -1131,7 +1138,7 @@
"node_modules/inflight": { "node_modules/inflight": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"once": "^1.3.0", "once": "^1.3.0",
@@ -1448,6 +1455,12 @@
"js-yaml": "bin/js-yaml.js" "js-yaml": "bin/js-yaml.js"
} }
}, },
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true
},
"node_modules/json-parse-better-errors": { "node_modules/json-parse-better-errors": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -1466,6 +1479,15 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true "dev": true
}, },
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"dependencies": {
"json-buffer": "3.0.1"
}
},
"node_modules/kind-of": { "node_modules/kind-of": {
"version": "6.0.3", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -1476,9 +1498,9 @@
} }
}, },
"node_modules/known-css-properties": { "node_modules/known-css-properties": {
"version": "0.27.0", "version": "0.29.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
"integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
"dev": true "dev": true
}, },
"node_modules/lines-and-columns": { "node_modules/lines-and-columns": {
@@ -1839,7 +1861,7 @@
"node_modules/once": { "node_modules/once": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"wrappy": "1" "wrappy": "1"
@@ -1917,7 +1939,7 @@
"node_modules/path-is-absolute": { "node_modules/path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
@@ -1987,9 +2009,9 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.26", "version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -2017,7 +2039,7 @@
"node_modules/postcss-media-query-parser": { "node_modules/postcss-media-query-parser": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
"integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
"dev": true "dev": true
}, },
"node_modules/postcss-resolve-nested-selector": { "node_modules/postcss-resolve-nested-selector": {
@@ -2043,9 +2065,9 @@
} }
}, },
"node_modules/postcss-scss": { "node_modules/postcss-scss": {
"version": "4.0.6", "version": "4.0.7",
"resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.7.tgz",
"integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", "integrity": "sha512-xPv2GseoyXPa58Nro7M73ZntttusuCmZdeOojUFR5PZDz2BR62vfYx1w9TyOnp1+nYFowgOMipsCBhxzVkAEPw==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -2055,6 +2077,10 @@
{ {
"type": "tidelift", "type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss-scss" "url": "https://tidelift.com/funding/github/npm/postcss-scss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
} }
], ],
"engines": { "engines": {
@@ -2084,9 +2110,9 @@
"dev": true "dev": true
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
"integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==", "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin/prettier.cjs" "prettier": "bin/prettier.cjs"
@@ -2577,24 +2603,24 @@
"dev": true "dev": true
}, },
"node_modules/stylelint": { "node_modules/stylelint": {
"version": "15.10.2", "version": "15.11.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.2.tgz", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
"integrity": "sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg==", "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@csstools/css-parser-algorithms": "^2.3.0", "@csstools/css-parser-algorithms": "^2.3.1",
"@csstools/css-tokenizer": "^2.1.1", "@csstools/css-tokenizer": "^2.2.0",
"@csstools/media-query-list-parser": "^2.1.2", "@csstools/media-query-list-parser": "^2.1.4",
"@csstools/selector-specificity": "^3.0.0", "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0", "balanced-match": "^2.0.0",
"colord": "^2.9.3", "colord": "^2.9.3",
"cosmiconfig": "^8.2.0", "cosmiconfig": "^8.2.0",
"css-functions-list": "^3.2.0", "css-functions-list": "^3.2.1",
"css-tree": "^2.3.1", "css-tree": "^2.3.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-glob": "^3.3.0", "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16", "fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1", "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0", "global-modules": "^2.0.0",
"globby": "^11.1.0", "globby": "^11.1.0",
"globjoin": "^0.1.4", "globjoin": "^0.1.4",
@@ -2603,13 +2629,13 @@
"import-lazy": "^4.0.0", "import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4", "imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0", "is-plain-object": "^5.0.0",
"known-css-properties": "^0.27.0", "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3", "mathml-tag-names": "^2.1.3",
"meow": "^10.1.5", "meow": "^10.1.5",
"micromatch": "^4.0.5", "micromatch": "^4.0.5",
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"postcss": "^8.4.25", "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1", "postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0", "postcss-safe-parser": "^6.0.0",
"postcss-selector-parser": "^6.0.13", "postcss-selector-parser": "^6.0.13",
@@ -2635,27 +2661,30 @@
} }
}, },
"node_modules/stylelint-config-recommended": { "node_modules/stylelint-config-recommended": {
"version": "12.0.0", "version": "13.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz",
"integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==",
"dev": true, "dev": true,
"engines": {
"node": "^14.13.1 || >=16.0.0"
},
"peerDependencies": { "peerDependencies": {
"stylelint": "^15.5.0" "stylelint": "^15.10.0"
} }
}, },
"node_modules/stylelint-config-recommended-scss": { "node_modules/stylelint-config-recommended-scss": {
"version": "12.0.0", "version": "13.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-12.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-13.0.0.tgz",
"integrity": "sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==", "integrity": "sha512-7AmMIsHTsuwUQm7I+DD5BGeIgCvqYZ4BpeYJJpb1cUXQwrJAKjA+GBotFZgUEGP8lAM+wmd91ovzOi8xfAyWEw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss-scss": "^4.0.6", "postcss-scss": "^4.0.7",
"stylelint-config-recommended": "^12.0.0", "stylelint-config-recommended": "^13.0.0",
"stylelint-scss": "^5.0.0" "stylelint-scss": "^5.1.0"
}, },
"peerDependencies": { "peerDependencies": {
"postcss": "^8.3.3", "postcss": "^8.3.3",
"stylelint": "^15.5.0" "stylelint": "^15.10.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"postcss": { "postcss": {
@@ -2664,29 +2693,32 @@
} }
}, },
"node_modules/stylelint-config-standard": { "node_modules/stylelint-config-standard": {
"version": "33.0.0", "version": "34.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-33.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz",
"integrity": "sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==", "integrity": "sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"stylelint-config-recommended": "^12.0.0" "stylelint-config-recommended": "^13.0.0"
},
"engines": {
"node": "^14.13.1 || >=16.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"stylelint": "^15.5.0" "stylelint": "^15.10.0"
} }
}, },
"node_modules/stylelint-config-standard-scss": { "node_modules/stylelint-config-standard-scss": {
"version": "10.0.0", "version": "11.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-10.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-11.0.0.tgz",
"integrity": "sha512-bChBEo1p3xUVWh/wenJI+josoMk21f2yuLDGzGjmKYcALfl2u3DFltY+n4UHswYiXghqXaA8mRh+bFy/q1hQlg==", "integrity": "sha512-fGE79NBOLg09a9afqGH/guJulRULCaQWWv4cv1v2bMX92B+fGb0y56WqIguwvFcliPmmUXiAhKrrnXilIeXoHA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"stylelint-config-recommended-scss": "^12.0.0", "stylelint-config-recommended-scss": "^13.0.0",
"stylelint-config-standard": "^33.0.0" "stylelint-config-standard": "^34.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"postcss": "^8.3.3", "postcss": "^8.3.3",
"stylelint": "^15.5.0" "stylelint": "^15.10.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"postcss": { "postcss": {
@@ -2695,9 +2727,9 @@
} }
}, },
"node_modules/stylelint-scss": { "node_modules/stylelint-scss": {
"version": "5.0.1", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.0.1.tgz", "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.1.0.tgz",
"integrity": "sha512-n87iCRZrr2J7//I/QFsDXxFLnHKw633U4qvWZ+mOW6KDAp/HLj06H+6+f9zOuTYy+MdGdTuCSDROCpQIhw5fvQ==", "integrity": "sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss-media-query-parser": "^0.2.3", "postcss-media-query-parser": "^0.2.3",
@@ -2930,7 +2962,7 @@
"node_modules/wrappy": { "node_modules/wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true "dev": true
}, },
"node_modules/write-file-atomic": { "node_modules/write-file-atomic": {
@@ -3002,22 +3034,22 @@
} }
}, },
"@csstools/css-parser-algorithms": { "@csstools/css-parser-algorithms": {
"version": "2.3.0", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz",
"integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==",
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
"@csstools/css-tokenizer": { "@csstools/css-tokenizer": {
"version": "2.1.1", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz",
"integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==",
"dev": true "dev": true
}, },
"@csstools/media-query-list-parser": { "@csstools/media-query-list-parser": {
"version": "2.1.2", "version": "2.1.4",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz",
"integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==",
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
@@ -3262,9 +3294,9 @@
} }
}, },
"css-functions-list": { "css-functions-list": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
"integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
"dev": true "dev": true
}, },
"css-tree": { "css-tree": {
@@ -3432,9 +3464,9 @@
"dev": true "dev": true
}, },
"fast-glob": { "fast-glob": {
"version": "3.3.0", "version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
"integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.stat": "^2.0.2",
@@ -3460,12 +3492,12 @@
} }
}, },
"file-entry-cache": { "file-entry-cache": {
"version": "6.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz",
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"flat-cache": "^3.0.4" "flat-cache": "^3.1.1"
} }
}, },
"fill-range": { "fill-range": {
@@ -3488,19 +3520,20 @@
} }
}, },
"flat-cache": { "flat-cache": {
"version": "3.0.4", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"flatted": "^3.1.0", "flatted": "^3.2.9",
"keyv": "^4.5.3",
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
} }
}, },
"flatted": { "flatted": {
"version": "3.2.5", "version": "3.2.9",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true "dev": true
}, },
"for-each": { "for-each": {
@@ -3515,7 +3548,7 @@
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true "dev": true
}, },
"function-bind": { "function-bind": {
@@ -3564,15 +3597,15 @@
} }
}, },
"glob": { "glob": {
"version": "7.2.0", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
"inherits": "2", "inherits": "2",
"minimatch": "^3.0.4", "minimatch": "^3.1.1",
"once": "^1.3.0", "once": "^1.3.0",
"path-is-absolute": "^1.0.0" "path-is-absolute": "^1.0.0"
} }
@@ -3767,7 +3800,7 @@
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true, "dev": true,
"requires": { "requires": {
"once": "^1.3.0", "once": "^1.3.0",
@@ -3991,6 +4024,12 @@
"argparse": "^2.0.1" "argparse": "^2.0.1"
} }
}, },
"json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true
},
"json-parse-better-errors": { "json-parse-better-errors": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -4009,6 +4048,15 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true "dev": true
}, },
"keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"requires": {
"json-buffer": "3.0.1"
}
},
"kind-of": { "kind-of": {
"version": "6.0.3", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -4016,9 +4064,9 @@
"dev": true "dev": true
}, },
"known-css-properties": { "known-css-properties": {
"version": "0.27.0", "version": "0.29.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
"integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
"dev": true "dev": true
}, },
"lines-and-columns": { "lines-and-columns": {
@@ -4287,7 +4335,7 @@
"once": { "once": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true, "dev": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
@@ -4341,7 +4389,7 @@
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true "dev": true
}, },
"path-key": { "path-key": {
@@ -4387,9 +4435,9 @@
"dev": true "dev": true
}, },
"postcss": { "postcss": {
"version": "8.4.26", "version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"nanoid": "^3.3.6", "nanoid": "^3.3.6",
@@ -4400,7 +4448,7 @@
"postcss-media-query-parser": { "postcss-media-query-parser": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
"integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
"dev": true "dev": true
}, },
"postcss-resolve-nested-selector": { "postcss-resolve-nested-selector": {
@@ -4417,9 +4465,9 @@
"requires": {} "requires": {}
}, },
"postcss-scss": { "postcss-scss": {
"version": "4.0.6", "version": "4.0.7",
"resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.7.tgz",
"integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", "integrity": "sha512-xPv2GseoyXPa58Nro7M73ZntttusuCmZdeOojUFR5PZDz2BR62vfYx1w9TyOnp1+nYFowgOMipsCBhxzVkAEPw==",
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
@@ -4440,9 +4488,9 @@
"dev": true "dev": true
}, },
"prettier": { "prettier": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
"integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==", "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
"dev": true "dev": true
}, },
"punycode": { "punycode": {
@@ -4768,24 +4816,24 @@
"dev": true "dev": true
}, },
"stylelint": { "stylelint": {
"version": "15.10.2", "version": "15.11.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.2.tgz", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
"integrity": "sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg==", "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@csstools/css-parser-algorithms": "^2.3.0", "@csstools/css-parser-algorithms": "^2.3.1",
"@csstools/css-tokenizer": "^2.1.1", "@csstools/css-tokenizer": "^2.2.0",
"@csstools/media-query-list-parser": "^2.1.2", "@csstools/media-query-list-parser": "^2.1.4",
"@csstools/selector-specificity": "^3.0.0", "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0", "balanced-match": "^2.0.0",
"colord": "^2.9.3", "colord": "^2.9.3",
"cosmiconfig": "^8.2.0", "cosmiconfig": "^8.2.0",
"css-functions-list": "^3.2.0", "css-functions-list": "^3.2.1",
"css-tree": "^2.3.1", "css-tree": "^2.3.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-glob": "^3.3.0", "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16", "fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1", "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0", "global-modules": "^2.0.0",
"globby": "^11.1.0", "globby": "^11.1.0",
"globjoin": "^0.1.4", "globjoin": "^0.1.4",
@@ -4794,13 +4842,13 @@
"import-lazy": "^4.0.0", "import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4", "imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0", "is-plain-object": "^5.0.0",
"known-css-properties": "^0.27.0", "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3", "mathml-tag-names": "^2.1.3",
"meow": "^10.1.5", "meow": "^10.1.5",
"micromatch": "^4.0.5", "micromatch": "^4.0.5",
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"postcss": "^8.4.25", "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1", "postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0", "postcss-safe-parser": "^6.0.0",
"postcss-selector-parser": "^6.0.13", "postcss-selector-parser": "^6.0.13",
@@ -4816,46 +4864,46 @@
} }
}, },
"stylelint-config-recommended": { "stylelint-config-recommended": {
"version": "12.0.0", "version": "13.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz",
"integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==",
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
"stylelint-config-recommended-scss": { "stylelint-config-recommended-scss": {
"version": "12.0.0", "version": "13.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-12.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-13.0.0.tgz",
"integrity": "sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==", "integrity": "sha512-7AmMIsHTsuwUQm7I+DD5BGeIgCvqYZ4BpeYJJpb1cUXQwrJAKjA+GBotFZgUEGP8lAM+wmd91ovzOi8xfAyWEw==",
"dev": true, "dev": true,
"requires": { "requires": {
"postcss-scss": "^4.0.6", "postcss-scss": "^4.0.7",
"stylelint-config-recommended": "^12.0.0", "stylelint-config-recommended": "^13.0.0",
"stylelint-scss": "^5.0.0" "stylelint-scss": "^5.1.0"
} }
}, },
"stylelint-config-standard": { "stylelint-config-standard": {
"version": "33.0.0", "version": "34.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-33.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz",
"integrity": "sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==", "integrity": "sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"stylelint-config-recommended": "^12.0.0" "stylelint-config-recommended": "^13.0.0"
} }
}, },
"stylelint-config-standard-scss": { "stylelint-config-standard-scss": {
"version": "10.0.0", "version": "11.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-10.0.0.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-11.0.0.tgz",
"integrity": "sha512-bChBEo1p3xUVWh/wenJI+josoMk21f2yuLDGzGjmKYcALfl2u3DFltY+n4UHswYiXghqXaA8mRh+bFy/q1hQlg==", "integrity": "sha512-fGE79NBOLg09a9afqGH/guJulRULCaQWWv4cv1v2bMX92B+fGb0y56WqIguwvFcliPmmUXiAhKrrnXilIeXoHA==",
"dev": true, "dev": true,
"requires": { "requires": {
"stylelint-config-recommended-scss": "^12.0.0", "stylelint-config-recommended-scss": "^13.0.0",
"stylelint-config-standard": "^33.0.0" "stylelint-config-standard": "^34.0.0"
} }
}, },
"stylelint-scss": { "stylelint-scss": {
"version": "5.0.1", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.0.1.tgz", "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.1.0.tgz",
"integrity": "sha512-n87iCRZrr2J7//I/QFsDXxFLnHKw633U4qvWZ+mOW6KDAp/HLj06H+6+f9zOuTYy+MdGdTuCSDROCpQIhw5fvQ==", "integrity": "sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==",
"dev": true, "dev": true,
"requires": { "requires": {
"postcss-media-query-parser": "^0.2.3", "postcss-media-query-parser": "^0.2.3",
@@ -5033,7 +5081,7 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true "dev": true
}, },
"write-file-atomic": { "write-file-atomic": {

View File

@@ -7,9 +7,9 @@
"bugs": "https://github.com/just-the-docs/just-the-docs/issues", "bugs": "https://github.com/just-the-docs/just-the-docs/issues",
"devDependencies": { "devDependencies": {
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"prettier": "^3.0.2", "prettier": "^3.0.3",
"stylelint": "^15.10.2", "stylelint": "^15.11.0",
"stylelint-config-standard-scss": "^10.0.0" "stylelint-config-standard-scss": "^11.0.0"
}, },
"scripts": { "scripts": {
"lint": "npm-run-all --parallel --continue-on-error lint:*", "lint": "npm-run-all --parallel --continue-on-error lint:*",