Compare commits

..

1 Commits

Author SHA1 Message Date
Matt Wang
b1e3394593 Add tabindex=0 to all code blocks
Note: this is a bit hacky. Ideally, I'd like to do this at the
markdown level, since this doesn't serve folks who have
JS disabled (among many other things).

Also, curious to see how this interacts with custom highlighters;
needs some more testing!
2024-09-06 12:29:57 -07:00
21 changed files with 1505 additions and 423 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -43,14 +43,6 @@ This document contains instructions on how to migrate and upgrade Just the Docs
[CHANGELOG]: {% link CHANGELOG.md %}
## v0.8.x - v0.9.0
There are no potentially-breaking changes in v0.9.0.
## v0.7.x - v0.8.0
There are no potentially-breaking changes in v0.8.0.
## v0.6.x - v0.7.0
### POTENTIALLY-BREAKING CHANGES in v0.7.0

View File

@@ -566,8 +566,17 @@ jtd.onReady(function(){
{%- endif %}
});
// Copy button on code
// Accessibility: set tabindex=0 on each code highlight block, so screenreaders
// can focus over (particularly important if there's horizontal scroll)
// see: https://dequeuniversity.com/rules/axe/4.9/scrollable-region-focusable?application=axeAPI
jtd.onReady(() => {
document
.querySelectorAll("div.highlight")
.forEach(codeBlock => codeBlock.setAttribute("tabindex", "0"));
});
// Copy button on code
{%- if site.enable_copy_code_button != false %}

View File

@@ -20,8 +20,8 @@ Just the Docs supports two color schemes: light (default), and dark.
To enable a color scheme, set the `color_scheme` parameter in your site's `_config.yml` file:
### Example: preview dark color scheme
{: .no_toc .text-delta }
#### Example
{: .no_toc }
```yaml
# Color scheme supports "light" (default) and "dark"
@@ -76,8 +76,8 @@ Available variables are listed in the [\_variables.scss](https://github.com/just
For example, to change the link color from the purple default to blue, include the following inside your scheme file:
#### Example: custom link color
{: .no_toc .text-delta }
#### Example
{: .no_toc }
```scss
$link-color: $blue-000;
@@ -142,11 +142,11 @@ Additionally, you may want to add completely custom CSS specific to your content
To do this, put your styles in the file `_sass/custom/custom.scss`.
This will allow for all overrides to be kept in a single file, and for any upstream changes to still be applied.
### Example: custom print styles
{: .no_toc .text-delta }
For example, if you'd like to add your own styles for printing a page, you could add the following styles.
#### Example
{: .no_toc }
```scss
// Print-only styles.
@media print {
@@ -179,7 +179,7 @@ New (v0.4.0)
If the page has any child pages, and `has_toc` is not set to `false`, this content appears as a heading above the [auto-generating list of child pages]({% link docs/navigation/children.md %}) after the page's content.
#### Example: changing TOC heading
#### Example
{: .no_toc }
To change the default TOC heading to "Contents", create `_includes/toc_heading_custom.html` and add:

View File

@@ -27,17 +27,17 @@ There should be whitespace between paragraphs.
There should be whitespace between paragraphs. We recommend including a README, or a file with information about your project.
# Header 1
# [](#header-1)Header 1
This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.
## Header 2
## [](#header-2)Header 2
> This is a blockquote following a header.
>
> When something is important enough, you do it even if the odds are not in your favor.
### Header 3
### [](#header-3)Header 3
```js
// Javascript code with syntax highlighting.
@@ -54,19 +54,19 @@ GitHubPages::Dependencies.gems.each do |gem, version|
end
```
#### Header 4 `with code not transformed`
#### [](#header-4-with-code-not-transformed)Header 4 `with code not transformed`
* This is an unordered list following a header.
* This is an unordered list following a header.
* This is an unordered list following a header.
##### Header 5
##### [](#header-5)Header 5
1. This is an ordered list following a header.
2. This is an ordered list following a header.
3. This is an ordered list following a header.
###### Header 6
###### [](#header-6)Header 6
[This is a very long link which wraps and therefore doesn't overflow
even when it comes at the beginning](.) of the line.
@@ -303,8 +303,6 @@ The following code is displayed as a diagram only when a `mermaid` key supplied
```mermaid
graph TD;
accTitle: the diamond pattern
accDescr: a graph with four nodes: A points to B and C, while B and C both point to D
A-->B;
A-->C;
B-->D;

View File

@@ -1,10 +1,8 @@
---
title: Default layout child page
layout: default
parent: A minimal layout page
parent: A minimal layout page
grand_parent: Layout
---
# A minimal layout page
This is a child page that uses the same minimal layout as its parent page.

View File

@@ -5,6 +5,4 @@ parent: A minimal layout page
grand_parent: Layout
---
# Minimal layout child page
This is a child page that uses the same minimal layout as its parent page.

View File

@@ -4,8 +4,6 @@ title: Minimal layout test
nav_exclude: true
---
# Minimal Layout Test Page
[Return to main website]({{site.baseurl}}/).
This page demonstrates the packaged `minimal` layout, which does not render the sidebar or header. It can be used for standalone pages. It is also an example of using the new modular site components to define custom layouts; see ["Custom layouts and includes" in the customization docs]({{site.baseurl}}/docs/customization/#custom-layouts-and-includes) for more information.

View File

@@ -8,10 +8,7 @@ nav_order: 2
You can add a list of auxiliary links to your site, shown at the top right on all pages. You do this by including the `aux_links` [configuration option]({% link docs/configuration.md %}#aux-links) in your site's `_config.yml` file.
## Example Auxiliary Link
{: .text-delta }
This website has an auxiliary link: "Just the Docs on GitHub". It is rendered with the following code:
#### Example
```yaml
aux_links:

View File

@@ -10,8 +10,7 @@ By default, all parent pages will automatically have a so-called 'Table of Conte
To disable this automatic list, set `has_toc: false` in the parent page's front matter.
## Example: disabling table of contents
{: .text-delta }
#### Example
```yaml
---

View File

@@ -15,14 +15,15 @@ nav_order: 5
To support in-page navigation, you can generate a *Table of Contents* (TOC) with links to headings, like the one shown above, as well as a link to the top of the page.
## Generating Table of Contents
## Table of Contents
To generate a *Table of Contents* in a page, you use Kramdown's `{:toc}` method, immediately after the start of a list. This will automatically generate a list of anchor links to various sections of the page, based on headings and heading levels.
## Omitting Heading from Table of Contents
If you want to omit a particular heading from the TOC, follow it immediately by `{: .no_toc }` (possibly together with other CSS class names).
#### Example
{: .no_toc }
```markdown
# In-Page Navigation
{: .no_toc }
@@ -38,10 +39,13 @@ This example omits the top-level heading (`In-Page Navigation`) from the TOC, as
To get an unordered list, replace `1. TOC` by `- TOC` in the above example.
## Collapsible Table of Contents (with `<details>` and `<summary>`)
## Collapsible Table of Contents
You can make the Table of Contents collapsible using the `<details>` and `<summary>` elements, as in the following example.
#### Example
{: .no_toc }
```markdown
<details open markdown="block">
<summary>

View File

@@ -10,8 +10,7 @@ If no two pages on your website have the same `title`, you only need to set the
If two parents have the same `title`, but different grandparents, you can set their `grand_parent` titles to distinguish between their parents. The `grand_parent` title needs to be the same as the `parent` of the `parent`.
## Example: distinguishing parents with `grand_parent`
{: .text-delta }
#### Example
```yaml
---

View File

@@ -14,8 +14,7 @@ However, you can configure Just the Docs to include also pages from [Jekyll coll
[^1]: You can optionally specify a directory to store all your collections. For example, if you specify `collections_dir: my_collections` in `_config.yml`, you should then store the pages of the `tests` collection in the `my_collections/_tests` directory.
## Example: defining custom collections
{: .text-delta }
#### Example
To define a Jekyll `tests` collection named `Tests` in your main navigation, store its pages in the `_tests` directory, and add the following to `_config.yml`:
@@ -42,11 +41,10 @@ Together with the `name` to be used for a collection in the navigation, you can
The main navigation for all your normal pages (if any) is displayed before those in collections. When *all* your pages are in a single collection, its name is not displayed.
## Example: multiple collections
{: .text-delta }
You can configure multiple collections. This creates categories in the main navigation with the configured names.
#### Example
```yaml
collections:
tests:

View File

@@ -8,8 +8,7 @@ nav_order: 2
For specific pages that you do not wish to include in the main navigation (e.g., a 404 page or a landing page) set `nav_exclude: true` in their front matter.
## Example: using `nav_exclude`
{: .text-delta }
#### Example
```yaml
---
@@ -20,7 +19,7 @@ permalink: /404
---
```
The `nav_exclude` parameter does not affect the [breadcrumbs]({% link docs/navigation/parents.md %}), nor the [lists of child pages]({% link docs/navigation/children.md %}), which you can use to access pages excluded from the main navigation.
The `nav_exclude` parameter does not affect the [breadcrumbs]({% link docs/navigation/parents.md %}), nor the [lists of child pages]({% link docs/navigation/children.md %}), which you can use to access pages excluded from the main navigation.
Pages with no `title` are automatically excluded from the main navigation, except when they are in collections (where Jekyll provides default titles based on file names).

View File

@@ -9,8 +9,7 @@ nav_order: 6
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.
## Example: external links
{: .text-delta }
#### Example
```yaml
# External navigation links

View File

@@ -31,8 +31,7 @@ Sometimes you will want to create a page with many children. First, it is recomm
└─ ...
```
## Example: page with no parents
{: .text-delta }
#### Example
```yaml
---
@@ -43,14 +42,13 @@ nav_order: 3
Here we're setting up the UI Components landing page that is available at URL `/docs/ui-components`, which is ordered second in the main navigation.
The navigation links for all pages with children come with an expander. When you click the expander, the display of the children is toggled, so you can expand or collapse all the children displays, regardless of which page is currently active.
The navigation links for all pages with children come with an expander. When you click the expander, the display of the children is toggled, so you can expand or collapse all the children displays, regardless of which page is currently active.
## Child Pages
On child pages, simply set the `parent` front matter to the parent page's `title`, and set a navigation order (relative to pages having the same parent).
### Example: creating a child page
{: .text-delta }
#### Example
```yaml
---
@@ -69,10 +67,9 @@ The Buttons page appears as a child of UI Components and appears second in the U
## Multi-level Child Pages
Child pages can themselves have children, to any number of levels.
Child pages can themselves have children, to any number of levels.
### Example: pages with (recursive) children
{: .text-delta }
#### Example
```yaml
---

View File

@@ -8,8 +8,7 @@ nav_order: 1
To specify a page order, you can use the `nav_order` parameter in the front matter of the pages.
## Example: using `nav_order`
{: .text-delta }
#### Example
```yaml
---
@@ -31,6 +30,6 @@ Enclosing strings in quotation marks in front matter is optional, unless they co
----
[^floats]: Jekyll treats each integer *N* as equal to the corresponding float *N.0*.
[^floats]: Jekyll treats each integer *N* as equal to the corresponding float *N.0*.
[^case-insensitive]: *Note for users of previous versions of Just the Docs:* The option `nav_sort: case_insensitive` previously affected the ordering of numerical `nav_order` parameters: e.g., `10` came before `2`. Also, all pages with explicit `nav_order` parameters previously came before all pages with default parameters. Both were potentially confusing, and they have now been eliminated.
[^case-insensitive]: *Note for users of previous versions of Just the Docs:* The option `nav_sort: case_insensitive` previously affected the ordering of numerical `nav_order` parameters: e.g., `10` came before `2`. Also, all pages with explicit `nav_order` parameters previously came before all pages with default parameters. Both were potentially confusing, and they have now been eliminated.

View File

@@ -113,6 +113,8 @@ Will make <kbd>Ctrl</kbd> + <kbd>K</kbd> focus the search bar for Windows users
Sometimes you might have a page that you don't want to be indexed for the search nor to show up in search results, e.g., a 404 page.
To exclude a page from search, add the `search_exclude: true` parameter to the page's YAML front matter:
#### Example
{: .no_toc }
```yaml
@@ -156,8 +158,7 @@ By default, the search feature indexes a page's `.content`, `.title`, and *some*
2. Add a new file named `_includes/lunr/custom-data.json`. Insert custom Liquid code that reads your data (e.g. the page object at `include.page`) then generates custom Javascript fields that hold the custom data you want to index. Verify these fields in the generated `assets/js/search-data.json`.
3. Add a new file named `_includes/lunr/custom-index.js`. Insert custom Javascript code that reads your custom Javascript fields and inserts them into the search index. You may want to inspect `assets/js/just-the-docs.js` to better understand the code.
### Example: adding custom `usage` and `examples` fields
{: .text-delta }
#### Example
This example adds front matter `usage` and `examples` fields to the search index.

View File

@@ -22,8 +22,8 @@ When you have [configured]({% link docs/configuration.md %}#callouts) the `colo
[^postfix]:
You can put the callout markup either before or after its content.
## An untitled callout
{: .no_toc .text-delta }
#### An untitled callout
{: .no_toc }
```markdown
{: .highlight }
@@ -34,8 +34,8 @@ A paragraph
A paragraph
## A single paragraph callout
{: .no_toc .text-delta }
#### A single paragraph callout
{: .no_toc }
```markdown
{: .note }
@@ -57,8 +57,8 @@ A paragraph
>
> A paragraph with a custom title callout
## A multi-paragraph callout
{: .no_toc .text-delta }
#### A multi-paragraph callout
{: .no_toc }
```markdown
{: .important }
@@ -96,8 +96,8 @@ A paragraph
>
> The last paragraph
## An indented callout
{: .no_toc .text-delta }
#### An indented callout
{: .no_toc }
```markdown
> {: .highlight }
@@ -107,8 +107,8 @@ A paragraph
> {: .highlight }
A paragraph
## Indented multi-paragraph callouts
{: .no_toc .text-delta }
#### Indented multi-paragraph callouts
{: .no_toc }
```markdown
> {: .new }
@@ -127,8 +127,8 @@ A paragraph
> > The last paragraph
## Nested callouts
{: .no_toc .text-delta }
#### Nested callouts
{: .no_toc }
```markdown
{: .important }
@@ -140,8 +140,8 @@ A paragraph
> {: .warning }
> A paragraph
## Opaque background
{: .no_toc .text-delta }
#### Opaque background
{: .no_toc }
```markdown
{: .important }

View File

@@ -129,8 +129,6 @@ Once mermaid is installed, it can be used in markdown files. The markdown for a
{% highlight markdown %}
```mermaid
graph TD;
accTitle: the diamond pattern
accDescr: a graph with four nodes: A points to B and C, while B and C both point to D
A-->B;
A-->C;
B-->D;
@@ -142,8 +140,6 @@ which renders:
```mermaid
graph TD;
accTitle: the diamond pattern
accDescr: a graph with four nodes: A points to B and C, while B and C both point to D
A-->B;
A-->C;
B-->D;
@@ -181,8 +177,6 @@ By default, AsciiDoc generates HTML markup that mermaid cannot properly parse. T
++++
<pre class="language-mermaid">
graph TD;
accTitle: the diamond pattern
accDescr: a graph with four nodes: A points to B and C, while B and C both point to D
A-->B;
A-->C;
B-->D;

View File

@@ -18,7 +18,7 @@ parent: Utilities
These spacers are available to use for margins and padding with responsive utility classes. Combine these prefixes with a screen size and spacing scale to use them responsively.
| Classname prefix | Related CSS Property |
| Classname prefix | What it does |
|:-----------------|:------------------------------|
| `.m-` | `margin` |
| `.mx-` | `margin-left`, `margin-right` |
@@ -28,7 +28,7 @@ These spacers are available to use for margins and padding with responsive utili
| `.mb-` | `margin-bottom` |
| `.ml-` | `margin-left` |
| Classname prefix | Related CSS Property |
| Classname prefix | What it does |
|:-----------------|:--------------------------------|
| `.p-` | `padding` |
| `.px-` | `padding-left`, `padding-right` |
@@ -54,8 +54,8 @@ Spacing values are based on a `1rem = 16px` spacing scale, broken down into thes
Use `mx-auto` to horizontally center elements.
### Applying Spacing Utilities with `{: }`
{: .no_toc .text-delta }
#### Examples
{: .no_toc }
In Markdown, use the `{: }` wrapper to apply custom classes:
@@ -69,7 +69,7 @@ This paragraph will have 2rem/32px of padding on the right and left at all scree
## Horizontal Alignment
| CSS Class | Applied CSS Declaration |
| Classname | What it does |
|:------------------------|:---------------------------------|
| `.float-left` | `float: left` |
| `.float-right` | `float: right` |
@@ -82,7 +82,7 @@ _Note: any of the `flex-` classes must be used on a parent element that has `d-f
## Vertical Alignment
| CSS Class | Applied CSS Declaration |
| Classname | What it does |
|:-----------------------|:--------------------------------|
| `.v-align-baseline` | `vertical-align: baseline` |
| `.v-align-bottom` | `vertical-align: bottom` |
@@ -95,7 +95,7 @@ _Note: any of the `flex-` classes must be used on a parent element that has `d-f
Display classes aid in adapting the layout of the elements on a page:
| CSS Class | Applied CSS Declaration |
| Class | |
|:------------------|:------------------------|
| `.d-block` | `display: block` |
| `.d-flex` | `display: flex` |
@@ -105,8 +105,8 @@ Display classes aid in adapting the layout of the elements on a page:
Use these classes in conjunction with the responsive modifiers.
### Applying Display Utilities with `{: }`
{: .no_toc .text-delta }
#### Examples
{: .no_toc }
In Markdown, use the `{: }` wrapper to apply custom classes: