mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
Added documentation for sticky navigation tabs
This commit is contained in:
parent
dd530af687
commit
efacb5517e
BIN
docs/assets/screenshots/navigation-tabs-collapsed.png
Normal file
BIN
docs/assets/screenshots/navigation-tabs-collapsed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 197 KiB |
BIN
docs/assets/screenshots/navigation-tabs-sticky.png
Normal file
BIN
docs/assets/screenshots/navigation-tabs-sticky.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 179 KiB |
@ -125,7 +125,8 @@ for MkDocs Insiders. You can click on each feature to learn more about it:
|
|||||||
- [x] [Search suggestions help to save keystrokes][14]
|
- [x] [Search suggestions help to save keystrokes][14]
|
||||||
- [x] [Highlighting of matched search terms in content area][15]
|
- [x] [Highlighting of matched search terms in content area][15]
|
||||||
- [x] Search goes to first result on ++enter++ (I'm feeling lucky)
|
- [x] Search goes to first result on ++enter++ (I'm feeling lucky)
|
||||||
- [x] [Navigation can be grouped into sections][16]
|
- [x] [Navigation tabs can be made sticky][23]
|
||||||
|
- [x] [Navigation can be grouped into sections][17]
|
||||||
- [x] [Navigation can be always expanded][17]
|
- [x] [Navigation can be always expanded][17]
|
||||||
- [x] [Navigation and table of contents can be hidden][18]
|
- [x] [Navigation and table of contents can be hidden][18]
|
||||||
- [x] [Table of contents can be integrated into navigation][19]
|
- [x] [Table of contents can be integrated into navigation][19]
|
||||||
@ -144,14 +145,15 @@ for MkDocs Insiders. You can click on each feature to learn more about it:
|
|||||||
[20]: setup/setting-up-the-header.md#automatic-hiding
|
[20]: setup/setting-up-the-header.md#automatic-hiding
|
||||||
[21]: reference/admonitions.md#inline-blocks
|
[21]: reference/admonitions.md#inline-blocks
|
||||||
[22]: setup/changing-the-language.md#site-language-selector
|
[22]: setup/changing-the-language.md#site-language-selector
|
||||||
|
[23]: setup/setting-up-navigation.md#sticky-navigation-tabs
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
The following list of funding goals – named after varieties of chili peppers
|
The following list of funding goals – named after varieties of chili peppers
|
||||||
[I'm growing on my balcony][23] – shows which features are already available
|
[I'm growing on my balcony][24] – shows which features are already available
|
||||||
in Material for MkDocs Insiders.
|
in Material for MkDocs Insiders.
|
||||||
|
|
||||||
[23]: https://www.instagram.com/squidfunk/
|
[24]: https://www.instagram.com/squidfunk/
|
||||||
|
|
||||||
### Madame Jeanette
|
### Madame Jeanette
|
||||||
|
|
||||||
@ -208,6 +210,7 @@ in Material for MkDocs Insiders.
|
|||||||
[:octicons-flame-24: Funding goal: __$3,000__][6] ·
|
[:octicons-flame-24: Funding goal: __$3,000__][6] ·
|
||||||
:octicons-lock-24: Status: _Insiders only_
|
:octicons-lock-24: Status: _Insiders only_
|
||||||
|
|
||||||
|
- [x] [Navigation tabs can be made sticky][23]
|
||||||
- [x] [Remove _Made with Material for MkDocs_ from footer][11]
|
- [x] [Remove _Made with Material for MkDocs_ from footer][11]
|
||||||
- [ ] Brand-new and exclusive vertical layout
|
- [ ] Brand-new and exclusive vertical layout
|
||||||
|
|
||||||
@ -224,10 +227,10 @@ improvements (e.g. search) do not require any changes to existing configuration.
|
|||||||
This means that your users will be able to build the docs locally with the
|
This means that your users will be able to build the docs locally with the
|
||||||
regular version and when they push their changes to CI/CD, they will be built
|
regular version and when they push their changes to CI/CD, they will be built
|
||||||
with Material for MkDocs Insiders. For this reason, it's recommended to
|
with Material for MkDocs Insiders. For this reason, it's recommended to
|
||||||
[install Insiders][24] only in CI, as you don't want to expose your `GH_TOKEN`
|
[install Insiders][25] only in CI, as you don't want to expose your `GH_TOKEN`
|
||||||
to users.
|
to users.
|
||||||
|
|
||||||
[24]: publishing-your-site.md#github-pages
|
[25]: publishing-your-site.md#github-pages
|
||||||
|
|
||||||
### Terms
|
### Terms
|
||||||
|
|
||||||
@ -237,7 +240,7 @@ terms?_
|
|||||||
|
|
||||||
Yes. Whether you're an individual or a company, you may use _Material for MkDocs
|
Yes. Whether you're an individual or a company, you may use _Material for MkDocs
|
||||||
Insiders_ precisely under the same terms as Material for MkDocs, which are given
|
Insiders_ precisely under the same terms as Material for MkDocs, which are given
|
||||||
by the [MIT license][25]. However, we kindly ask you to respect the following
|
by the [MIT license][26]. However, we kindly ask you to respect the following
|
||||||
guidelines:
|
guidelines:
|
||||||
|
|
||||||
- Please __don't distribute the source code__ from Material for MkDocs Insiders.
|
- Please __don't distribute the source code__ from Material for MkDocs Insiders.
|
||||||
@ -248,7 +251,7 @@ guidelines:
|
|||||||
- If you cancel your subscription, you're removed as a collaborator and will
|
- If you cancel your subscription, you're removed as a collaborator and will
|
||||||
miss out on future updates of Material for MkDocs Insiders. However, you may
|
miss out on future updates of Material for MkDocs Insiders. However, you may
|
||||||
__use the latest version__ that's available to you __as long as you like__.
|
__use the latest version__ that's available to you __as long as you like__.
|
||||||
Just remember that __[GitHub deletes private forks][26]__.
|
Just remember that __[GitHub deletes private forks][27]__.
|
||||||
|
|
||||||
[25]: license.md
|
[26]: license.md
|
||||||
[26]: https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/removing-a-collaborator-from-a-personal-repository
|
[27]: https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/removing-a-collaborator-from-a-personal-repository
|
||||||
|
@ -111,6 +111,36 @@ navigation is plausible on mobile devices. As another example, see the
|
|||||||
[9]: https://www.mkdocs.org/user-guide/configuration/#nav
|
[9]: https://www.mkdocs.org/user-guide/configuration/#nav
|
||||||
[10]: https://github.com/squidfunk/mkdocs-material/blob/master/mkdocs.yml
|
[10]: https://github.com/squidfunk/mkdocs-material/blob/master/mkdocs.yml
|
||||||
|
|
||||||
|
#### Sticky navigation tabs
|
||||||
|
|
||||||
|
[:octicons-file-code-24: Source][11] ·
|
||||||
|
:octicons-unlock-24: Feature flag ·
|
||||||
|
:octicons-beaker-24: Experimental ·
|
||||||
|
[:octicons-heart-fill-24:{: .tx-heart } Insiders only][11]{: .tx-insiders }
|
||||||
|
|
||||||
|
When _sticky tabs_ are enabled, navigation tabs will lock below the header and
|
||||||
|
always remain visible when scrolling down. Just add the following two feature
|
||||||
|
flags to `mkdocs.yml`:
|
||||||
|
|
||||||
|
``` yaml
|
||||||
|
theme:
|
||||||
|
features:
|
||||||
|
- navigation.tabs
|
||||||
|
- navigation.tabs.sticky
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "With sticky tabs"
|
||||||
|
|
||||||
|
[![With sticky tabs][12]][12]
|
||||||
|
|
||||||
|
=== "Without sticky tabs"
|
||||||
|
|
||||||
|
[![Without sticky tabs][13]][13]
|
||||||
|
|
||||||
|
[11]: ../insiders.md
|
||||||
|
[12]: ../assets/screenshots/navigation-tabs-sticky.png
|
||||||
|
[13]: ../assets/screenshots/navigation-tabs-collapsed.png
|
||||||
|
|
||||||
### Navigation sections
|
### Navigation sections
|
||||||
|
|
||||||
[:octicons-file-code-24: Source][11] ·
|
[:octicons-file-code-24: Source][11] ·
|
||||||
@ -129,14 +159,13 @@ theme:
|
|||||||
|
|
||||||
=== "With sections"
|
=== "With sections"
|
||||||
|
|
||||||
[![With sections][12]][12]
|
[![With sections][14]][14]
|
||||||
|
|
||||||
=== "Without sections"
|
=== "Without sections"
|
||||||
|
|
||||||
[![Without sections][8]][8]
|
[![Without sections][8]][8]
|
||||||
|
|
||||||
[11]: ../insiders.md
|
[14]: ../assets/screenshots/navigation-sections.png
|
||||||
[12]: ../assets/screenshots/navigation-sections.png
|
|
||||||
|
|
||||||
Both feature flags, _tabs_ and _sections_, can be combined with each other. If
|
Both feature flags, _tabs_ and _sections_, can be combined with each other. If
|
||||||
both feature flags are enabled, sections are rendered for 2nd level navigation
|
both feature flags are enabled, sections are rendered for 2nd level navigation
|
||||||
@ -160,19 +189,19 @@ theme:
|
|||||||
|
|
||||||
=== "With expansion"
|
=== "With expansion"
|
||||||
|
|
||||||
[![With expansion][13]][13]
|
[![With expansion][15]][15]
|
||||||
|
|
||||||
=== "Without expansion"
|
=== "Without expansion"
|
||||||
|
|
||||||
[![Without expansion][8]][8]
|
[![Without expansion][8]][8]
|
||||||
|
|
||||||
[13]: ../assets/screenshots/navigation-expand.png
|
[15]: ../assets/screenshots/navigation-expand.png
|
||||||
|
|
||||||
### Table of contents
|
### Table of contents
|
||||||
|
|
||||||
[:octicons-file-code-24: Source][14] · [:octicons-workflow-24: Extension][15]
|
[:octicons-file-code-24: Source][16] · [:octicons-workflow-24: Extension][17]
|
||||||
|
|
||||||
The [Table of contents][16] extension, which is part of the standard Markdown
|
The [Table of contents][18] extension, which is part of the standard Markdown
|
||||||
library, provides some options that are supported by Material for MkDocs to
|
library, provides some options that are supported by Material for MkDocs to
|
||||||
customize its appearance:
|
customize its appearance:
|
||||||
|
|
||||||
@ -204,7 +233,7 @@ customize its appearance:
|
|||||||
: :octicons-milestone-24: Default: `headerid.slugify` – This option allows for
|
: :octicons-milestone-24: Default: `headerid.slugify` – This option allows for
|
||||||
customization of the slug function. For some languages, the default may not
|
customization of the slug function. For some languages, the default may not
|
||||||
produce good and readable identifiers. Consider using another slug function
|
produce good and readable identifiers. Consider using another slug function
|
||||||
like for example those from [Python Markdown Extensions][17]:
|
like for example those from [Python Markdown Extensions][19]:
|
||||||
|
|
||||||
=== "Unicode"
|
=== "Unicode"
|
||||||
|
|
||||||
@ -245,21 +274,21 @@ customize its appearance:
|
|||||||
toc_depth: 0
|
toc_depth: 0
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that MkDocs will not generate [anchor links][18] for levels outside
|
Note that MkDocs will not generate [anchor links][20] for levels outside
|
||||||
the range defined with `toc_depth`. However, Material for MkDocs also allows
|
the range defined with `toc_depth`. However, Material for MkDocs also allows
|
||||||
to [hide the table of contents][19] on a specific page while keeping
|
to [hide the table of contents][21] on a specific page while keeping
|
||||||
permalinks.
|
permalinks.
|
||||||
|
|
||||||
_Material for MkDocs doesn't provide official support for the other options of
|
_Material for MkDocs doesn't provide official support for the other options of
|
||||||
this extension, so they may be supported but can also yield weird results. Use
|
this extension, so they may be supported but can also yield weird results. Use
|
||||||
them at your own risk._
|
them at your own risk._
|
||||||
|
|
||||||
[14]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/toc.html
|
[16]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/toc.html
|
||||||
[15]: https://python-markdown.github.io/extensions/toc/
|
[17]: https://python-markdown.github.io/extensions/toc/
|
||||||
[16]: https://python-markdown.github.io/extensions/toc/#usage
|
[18]: https://python-markdown.github.io/extensions/toc/#usage
|
||||||
[17]: https://facelessuser.github.io/pymdown-extensions/extras/slugs/
|
[19]: https://facelessuser.github.io/pymdown-extensions/extras/slugs/
|
||||||
[18]: #permalink
|
[20]: #permalink
|
||||||
[19]: #hide-the-sidebars
|
[21]: #hide-the-sidebars
|
||||||
|
|
||||||
#### Navigation integration
|
#### Navigation integration
|
||||||
|
|
||||||
@ -279,13 +308,13 @@ theme:
|
|||||||
|
|
||||||
=== "Integrate table of contents"
|
=== "Integrate table of contents"
|
||||||
|
|
||||||
[![Integrate table of contents][20]][20]
|
[![Integrate table of contents][22]][22]
|
||||||
|
|
||||||
=== "Separate table of contents"
|
=== "Separate table of contents"
|
||||||
|
|
||||||
[![Separate table of contents][8]][8]
|
[![Separate table of contents][8]][8]
|
||||||
|
|
||||||
[20]: ../assets/screenshots/toc-integrate.png
|
[22]: ../assets/screenshots/toc-integrate.png
|
||||||
|
|
||||||
The content section will now always stretch to the right side, resulting in
|
The content section will now always stretch to the right side, resulting in
|
||||||
more space for your content. This feature flag can be combined with all other
|
more space for your content. This feature flag can be combined with all other
|
||||||
@ -298,7 +327,7 @@ feature flags, e.g. [tabs][1] and [sections][2].
|
|||||||
|
|
||||||
Sometimes it's desirable to hide the navigation and/or table of contents
|
Sometimes it's desirable to hide the navigation and/or table of contents
|
||||||
sidebar, especially when there's a single navigation item. This can be done for
|
sidebar, especially when there's a single navigation item. This can be done for
|
||||||
any page using the [Metadata][21] extension:
|
any page using the [Metadata][23] extension:
|
||||||
|
|
||||||
``` yaml
|
``` yaml
|
||||||
---
|
---
|
||||||
@ -312,26 +341,26 @@ hide:
|
|||||||
|
|
||||||
=== "Hide navigation"
|
=== "Hide navigation"
|
||||||
|
|
||||||
[![Hide navigation][22]][22]
|
[![Hide navigation][24]][24]
|
||||||
|
|
||||||
=== "Hide table of contents"
|
=== "Hide table of contents"
|
||||||
|
|
||||||
[![Hide table of contents][23]][23]
|
[![Hide table of contents][25]][25]
|
||||||
|
|
||||||
=== "Hide both"
|
=== "Hide both"
|
||||||
|
|
||||||
[![Hide navigation and table of contents][24]][24]
|
[![Hide navigation and table of contents][26]][26]
|
||||||
|
|
||||||
[21]: ../../reference/meta-tags/#metadata
|
[23]: ../../reference/meta-tags/#metadata
|
||||||
[22]: ../assets/screenshots/hide-navigation.png
|
[24]: ../assets/screenshots/hide-navigation.png
|
||||||
[23]: ../assets/screenshots/hide-toc.png
|
[25]: ../assets/screenshots/hide-toc.png
|
||||||
[24]: ../assets/screenshots/hide-navigation-toc.png
|
[26]: ../assets/screenshots/hide-navigation-toc.png
|
||||||
|
|
||||||
## Customization
|
## Customization
|
||||||
|
|
||||||
### Keyboard shortcuts
|
### Keyboard shortcuts
|
||||||
|
|
||||||
[:octicons-file-code-24: Source][25] ·
|
[:octicons-file-code-24: Source][27] ·
|
||||||
:octicons-mortar-board-24: Difficulty: _easy_
|
:octicons-mortar-board-24: Difficulty: _easy_
|
||||||
|
|
||||||
Material for MkDocs includes several keyboard shortcuts that make it possible
|
Material for MkDocs includes several keyboard shortcuts that make it possible
|
||||||
@ -357,7 +386,7 @@ to navigate your project documentation via keyboard. There're two modes:
|
|||||||
* ++n++ , ++period++ : go to next page
|
* ++n++ , ++period++ : go to next page
|
||||||
|
|
||||||
Let's say you want to bind some action to the ++x++ key. By using [additional
|
Let's say you want to bind some action to the ++x++ key. By using [additional
|
||||||
JavaScript][26], you can subscribe to the `keyboard$` observable and attach
|
JavaScript][28], you can subscribe to the `keyboard$` observable and attach
|
||||||
your custom event listener:
|
your custom event listener:
|
||||||
|
|
||||||
``` js
|
``` js
|
||||||
@ -373,12 +402,12 @@ The call to `#!js key.claim()` will essentially execute `#!js preventDefault()`
|
|||||||
on the underlying event, so the keypress will not propagate further and touch
|
on the underlying event, so the keypress will not propagate further and touch
|
||||||
other event listeners.
|
other event listeners.
|
||||||
|
|
||||||
[25]: https://github.com/squidfunk/mkdocs-material/blob/master/src/assets/javascripts/integrations/keyboard/index.ts
|
[27]: https://github.com/squidfunk/mkdocs-material/blob/master/src/assets/javascripts/integrations/keyboard/index.ts
|
||||||
[26]: ../customization.md#additional-javascript
|
[28]: ../customization.md#additional-javascript
|
||||||
|
|
||||||
### Content area width
|
### Content area width
|
||||||
|
|
||||||
[:octicons-file-code-24: Source][27] ·
|
[:octicons-file-code-24: Source][29] ·
|
||||||
:octicons-mortar-board-24: Difficulty: _easy_
|
:octicons-mortar-board-24: Difficulty: _easy_
|
||||||
|
|
||||||
The width of the content area is set so the length of each line doesn't exceed
|
The width of the content area is set so the length of each line doesn't exceed
|
||||||
@ -387,7 +416,7 @@ is a reasonable default, as longer lines tend to be harder to read, it may be
|
|||||||
desirable to increase the overall width of the content area, or even make it
|
desirable to increase the overall width of the content area, or even make it
|
||||||
stretch to the entire available space.
|
stretch to the entire available space.
|
||||||
|
|
||||||
This can easily be achieved with an [additional stylesheet][28] and a few lines
|
This can easily be achieved with an [additional stylesheet][30] and a few lines
|
||||||
of CSS:
|
of CSS:
|
||||||
|
|
||||||
=== "Increase width"
|
=== "Increase width"
|
||||||
@ -406,5 +435,5 @@ of CSS:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
[27]: https://github.com/squidfunk/mkdocs-material/blob/aeaa00a625abf952f355164de02c539b061e6127/src/assets/stylesheets/main/layout/_base.scss#L99-L104
|
[29]: https://github.com/squidfunk/mkdocs-material/blob/aeaa00a625abf952f355164de02c539b061e6127/src/assets/stylesheets/main/layout/_base.scss#L99-L104
|
||||||
[28]: ../customization.md#additional-css
|
[30]: ../customization.md#additional-css
|
||||||
|
Loading…
Reference in New Issue
Block a user