diff --git a/docs/changelog/index.md b/docs/changelog/index.md
index 32ddd2f14..518f4e74f 100644
--- a/docs/changelog/index.md
+++ b/docs/changelog/index.md
@@ -6,7 +6,7 @@ template: overrides/main.html
## Material for MkDocs
-### 7.3.2 _ October 6, 2021
+### 7.3.2 _ October 6, 2021 { id="7.3.2" }
- Deprecated prebuilding of search index
- Improved graceful handling of broken search for `file://`
@@ -15,7 +15,7 @@ template: overrides/main.html
- Fixed margin issues when using navigation tabs (7.3.1 regression)
- Fixed search placeholder sometimes being shown too early
-### 7.3.1 _ October 2, 2021
+### 7.3.1 _ October 2, 2021 { id="7.3.1" }
- Added new experimental content tabs implementation
- Fixed #3069: GitHub stats broken for users/orgs (7.1.0 regression)
@@ -25,17 +25,17 @@ template: overrides/main.html
- Fixed some spacing issues for right-to-left languages
- Fixed syntax error in Serbian translations
-### 7.3.0 _ September 23, 2021
+### 7.3.0 _ September 23, 2021 { id="7.3.0" }
- Added support for sticky navigation tabs
- Added support for section index pages
- Added support for removing generator notice
-### 7.2.8 _ September 20, 2021
+### 7.2.8 _ September 20, 2021 { id="7.2.8" }
- Fixed #3039: Search modal overlays menu on mobile (7.2.7 regression)
-### 7.2.7 _ September 19, 2021
+### 7.2.7 _ September 19, 2021 { id="7.2.7" }
- Updated Serbian and Serbo-Croatian translations
- Improved appearance of outline on details
@@ -44,115 +44,115 @@ template: overrides/main.html
- Fixed back-to-top button being focusable when invisible
- Fixed broken admonition icons (removed in upstream)
-### 7.2.6 _ September 1, 2021
+### 7.2.6 _ September 1, 2021 { id="7.2.6" }
- Fixed rendering of `blockquote` elements (7.0.0 regression)
- Fixed #2973: Custom search worker setting ignored
-### 7.2.5 _ August 25, 2021
+### 7.2.5 _ August 25, 2021 { id="7.2.5" }
- Updated Portuguese translations
- Fixed execution of RxJS teardown logic (7.2.3 regression)
- Fixed #2970: Search results show escaped characters (7.2.2 regression)
-### 7.2.4 _ August 11, 2021
+### 7.2.4 _ August 11, 2021 { id="7.2.4" }
- Fixed #2926: Version selector not working (7.2.3 regression)
- Fixed #2929: Missing CSS class for banner (consistency with Insiders)
-### 7.2.3 _ August 9, 2021
+### 7.2.3 _ August 9, 2021 { id="7.2.3" }
- Slight facelift of data tables, now closer to Material Design
- Fixed instant loading not respecting clicks on search results
- Fixed #2881: Invalid anchor offsets when using instant loading
-### 7.2.2 _ July 31, 2021
+### 7.2.2 _ July 31, 2021 { id="7.2.2" }
- Updated Korean translations
- Fixed #2879: Search highlighting does not properly escape HTML
-### 7.2.1 _ July 25, 2021
+### 7.2.1 _ July 25, 2021 { id="7.2.1" }
- Fixed #2862: Back-to-top button overlays active search bar
-### 7.2.0 _ July 21, 2021
+### 7.2.0 _ July 21, 2021 { id="7.2.0" }
- Added support for search suggestions to save keystrokes
- Added support for search highlighting
- Added support for search sharing (i.e. deep linking)
-### 7.1.11 _ July 18, 2021
+### 7.1.11 _ July 18, 2021 { id="7.1.11" }
- Updated Spanish and Galician translations
-### 7.1.10 _ July 10, 2021
+### 7.1.10 _ July 10, 2021 { id="7.1.10" }
- Refactored appearance of back-to-top button
- Fixed graceful handling of search when browsing locally
-### 7.1.9 _ June 25, 2021
+### 7.1.9 _ June 25, 2021 { id="7.1.9" }
- Improved search language support for Thai and Hindi
- Fixed #2761: License comments lined up at end of file
-### 7.1.8 _ June 12, 2021
+### 7.1.8 _ June 12, 2021 { id="7.1.8" }
- Refactored analytics integration (because of MkDocs 1.2)
- Added support for Google Analytics 4 (`gtag.js`)
- Fixed missing escape for `aria-label` in footer links
-### 7.1.7 _ June 6, 2021
+### 7.1.7 _ June 6, 2021 { id="7.1.7" }
- Improved screen reader support
-### 7.1.6 _ May 30, 2021
+### 7.1.6 _ May 30, 2021 { id="7.1.6" }
- Deprecated `seealso` admonition qualifier
- Added Mongolian and updated Chinese translations
- Fixed #2429: Version selector not touch-friendly on Android devices
- Fixed #2703: Printed 'Initializing search' albeit ready on mobile
-### 7.1.5 _ May 19, 2021
+### 7.1.5 _ May 19, 2021 { id="7.1.5" }
- Fixed #2655: Details breaking page margins on print
-### 7.1.4 _ May 6, 2021
+### 7.1.4 _ May 6, 2021 { id="7.1.4" }
- Added support for git-revision-date-localized plugin creation date
- Improved footnote styles on `:target` and `:focus`
-### 7.1.3 _ April 24, 2021
+### 7.1.3 _ April 24, 2021 { id="7.1.3" }
- Fixed #2586: Empty table of contents shown (7.1.2 regression)
-### 7.1.2 _ April 18, 2021
+### 7.1.2 _ April 18, 2021 { id="7.1.2" }
- Fixed #2554: List markers sometimes overlap floated elements
- Fixed #2563: Adding a class to a `h1` breaks the table of contents
- Fixed #2566: Back-to-top button clickable when invisible
-### 7.1.1 _ April 10, 2021
+### 7.1.1 _ April 10, 2021 { id="7.1.1" }
- Fixed #2501: Nested definition lists compound bottom margin
- Fixed #2508: Switch `extracopyright` block to template variable
- Fixed #2533: Search (and other parts) not working in Safari <14
- Fixed #2538: Visual quirk when opening language selector
-### 7.1.0 _ March 29, 2021
+### 7.1.0 _ March 29, 2021 { id="7.1.0" }
- Added support for back-to-top button
- Added support for color palette toggle
- Added latest release to repository info (GitHub)
- Slight facelift of repository info (lighter fonts, spacing and icons)
-### 7.0.7 _ March 28, 2021
+### 7.0.7 _ March 28, 2021 { id="7.0.7" }
- Updated Hungarian translations
- Fixed #2466: Docker image not based on latest Python and Alpine
- Fixed #2488: Inconsistent header shadow behavior
- Fixed #2492: Inline code blocks in admonition titles missing background
-### 7.0.6 _ March 14, 2021
+### 7.0.6 _ March 14, 2021 { id="7.0.6" }
- Added trailing slash to version selector URL
- Added support for out-of-order anchors in table of contents
@@ -163,7 +163,7 @@ template: overrides/main.html
- Fixed version selector to always use version title
- Fixed logo link when using versioning with instant loading
-### 7.0.5 _ March 7, 2021
+### 7.0.5 _ March 7, 2021 { id="7.0.5" }
- Added `extracopyright` block to allow for custom copyright info
- Fixed evaluation of third-party scripts when using instant loading
@@ -172,29 +172,29 @@ template: overrides/main.html
- Fixed regression with header title not being updated correctly
- Fixed expanded sections not opening on first click (7.0.4 regression)
-### 7.0.4 _ March 4, 2021
+### 7.0.4 _ March 4, 2021 { id="7.0.4" }
- Added Icelandic translations
- Fixed #2386: Section close requires two clicks (navigation expansion)
- Fixed console error when search is disabled (7.0.0 regression)
- Fixed localsearch integration (7.0.0 regression)
-### 7.0.3 _ February 26, 2021
+### 7.0.3 _ February 26, 2021 { id="7.0.3" }
- Fixed JavaScript errors in older browsers (target ES2020 -> ES2015)
-### 7.0.2 _ February 25, 2021
+### 7.0.2 _ February 25, 2021 { id="7.0.2" }
- Fixed #2343: Invalid source map URLs for JS and CSS files
- Fixed #2347: Version selector missing when using versioning
-### 7.0.1 _ February 24, 2021
+### 7.0.1 _ February 24, 2021 { id="7.0.1" }
- Fixed #2334: Google Analytics triggers page view twice (7.0.0 regression)
- Fixed #2336: Details bleed into inline admonitions
- Fixed #2337: Images don't align correctly (7.0.0 regression)
-### 7.0.0 _ February 22, 2021
+### 7.0.0 _ February 22, 2021 { id="7.0.0" }
- Added support for deploying multiple versions
- Added support for integrating a language selector
@@ -203,45 +203,45 @@ template: overrides/main.html
- Removed Webpack in favor of reactive build strategy (-480 dependencies)
- Fixed keyboard navigation for code blocks after content tabs switch
-### 6.2.8 _ February 4, 2021
+### 6.2.8 _ February 4, 2021 { id="6.2.8" }
- Updated Japanese and Polish translations
- Fixed #2261: Print dialog auto-closing when using instant loading
-### 6.2.7 _ January 31, 2021
+### 6.2.7 _ January 31, 2021 { id="6.2.7" }
- Fixed #2251: Updated Docker image to latest Alpine Linux
-### 6.2.6 _ January 26, 2021
+### 6.2.6 _ January 26, 2021 { id="6.2.6" }
- Added Bulgarian translations
- Fixed #2233: Search not shown when using header autohiding
-### 6.2.5 _ January 17, 2021
+### 6.2.5 _ January 17, 2021 { id="6.2.5" }
- Fixed syntax error in Swedish translations
- Optimized navigation partials to improve build speed for huge docs
-### 6.2.4 _ January 9, 2021
+### 6.2.4 _ January 9, 2021 { id="6.2.4" }
- Fixed #2156: Missing syntax highlighting for binary numbers
- Fixed #2186: Disqus showing on 404 page
-### 6.2.3 _ December 27, 2020
+### 6.2.3 _ December 27, 2020 { id="6.2.3" }
- Added back hidden overflow on root container
- Fixed #2142: MathJax formulas sometimes have vertical scrollbars
-### 6.2.2 _ December 22, 2020
+### 6.2.2 _ December 22, 2020 { id="6.2.2" }
- Removed Markdown version range limit (6.2.0 regression)
-### 6.2.1 _ December 22, 2020
+### 6.2.1 _ December 22, 2020 { id="6.2.1" }
- Fixed all import and asset paths in templates (6.2.0 regression)
- Downgraded webpack-asset-manifest-plugin - broke all asset paths
-### 6.2.0 _ December 22, 2020
+### 6.2.0 _ December 22, 2020 { id="6.2.0" }
- Added support for navigation sections
- Added support for navigation expansion
@@ -255,52 +255,52 @@ template: overrides/main.html
- Improved appearance for horizontal rulers
- Improved Spanish and Swedish translations
-### 6.1.7 _ December 6, 2020
+### 6.1.7 _ December 6, 2020 { id="6.1.7" }
- Fixed #2081: Fixed stats for private GitHub repositories
- Fixed alignment for admonition icon alignment for right-to-left languages
-### 6.1.6 _ November 22, 2020
+### 6.1.6 _ November 22, 2020 { id="6.1.6" }
- Fixed #2048: Math formulas show scrollbars (Windows)
-### 6.1.5 _ November 15, 2020
+### 6.1.5 _ November 15, 2020 { id="6.1.5" }
- Fixed search reset button not showing/hiding correctly
-### 6.1.4 _ November 7, 2020
+### 6.1.4 _ November 7, 2020 { id="6.1.4" }
- Fixed sidebar jitter when scrolling footer into view
-### 6.1.3 _ November 5, 2020
+### 6.1.3 _ November 5, 2020 { id="6.1.3" }
- Added support for keywords `meta` tag
- Fixed #2027: Line numbers don't scale with smaller font size
- Fixed link colors for black and white on `slate` color scheme
- Removed focus outline on scrolling code blocks for pointer devices
-### 6.1.2 _ October 31, 2020
+### 6.1.2 _ October 31, 2020 { id="6.1.2" }
- Fixed sizing of icons in admonitions, task lists, etc. (6.1.1 regression)
-### 6.1.1 _ October 31, 2020
+### 6.1.1 _ October 31, 2020 { id="6.1.1" }
- Fixed #2019: Page title not correctly updated when using instant loading
-### 6.1.0 _ October 17, 2020
+### 6.1.0 _ October 17, 2020 { id="6.1.0" }
- Fixed #1973: Added support for printing in dark mode
- Fixed #1974: Added support for printing content tabs
- Fixed #1995: Improved customizability of details extension
-### 6.0.2 _ October 4, 2020
+### 6.0.2 _ October 4, 2020 { id="6.0.2" }
- Added Georgian translations
- Added escaping for link `title` attributes where necessary
- Fixed #1956: Pages with whitespace in names have invalid links in search
- Removed unnecessary (duplicated) link `title` attributes
-### 6.0.1 _ September 26, 2020
+### 6.0.1 _ September 26, 2020 { id="6.0.1" }
- Fixed stemmer support for `file://` protocol through `iframe-worker`
- Fixed details marker showing for search result in Firefox
@@ -309,7 +309,7 @@ template: overrides/main.html
- Reduced size of JavaScript by 30% (`176kb` → `124kb`)
- Removed `mkdocs` and `readthedocs` themes from Docker image
-### 6.0.0 _ September 25, 2020
+### 6.0.0 _ September 25, 2020 { id="6.0.0" }
- Improved search result look and feel
- Improved search result stability while typing
@@ -321,34 +321,34 @@ template: overrides/main.html
- Removed hero partial in favor of custom implementation
- Removed deprecated front matter features
-### 5.5.14 _ September 23, 2020
+### 5.5.14 _ September 23, 2020 { id="5.5.14" }
- Improved spacing around image captions
- Fixed #1939: Long tables cause header overlap in print view
-### 5.5.13 _ September 19, 2020
+### 5.5.13 _ September 19, 2020 { id="5.5.13" }
- Improved abbreviations on touch devices
-### 5.5.12 _ August 31, 2020
+### 5.5.12 _ August 31, 2020 { id="5.5.12" }
- Fixed #1638: occasional `404` for images when using instant loading
-### 5.5.11 _ August 28, 2020
+### 5.5.11 _ August 28, 2020 { id="5.5.11" }
- Fixed Disqus integration, as the minifier killed the config
-### 5.5.10 _ August 28, 2020
+### 5.5.10 _ August 28, 2020 { id="5.5.10" }
- Improved rendering by moving Disqus integration after page load
- Fixed #1887: Moved navigation icons to CSS to reduce size of HTML
-### 5.5.9 _ August 26, 2020
+### 5.5.9 _ August 26, 2020 { id="5.5.9" }
- Added Esperanto translations
- Fixed #1884: External links not included in navigation tabs
-### 5.5.8 _ August 23, 2020
+### 5.5.8 _ August 23, 2020 { id="5.5.8" }
- Removed focus outline on `details` and content tabs for pointer devices
- Improved accessibility of content tabs (now navigable via arrow keys)
@@ -356,29 +356,29 @@ template: overrides/main.html
- Fixed some memleaks in observable subscriptions
- Fixed color definitions for `theme-color` meta tag
-### 5.5.7 _ August 16, 2020
+### 5.5.7 _ August 16, 2020 { id="5.5.7" }
- Improved contrast ratio to 4.5:1 for syntax highlighting
- Improved contrast ratio to 4.5:1 for table of contents
-### 5.5.6 _ August 12, 2020
+### 5.5.6 _ August 12, 2020 { id="5.5.6" }
- Switched base template for `404.html` to `main.html`
- Fixed #1864: GitHub organisation stats not loading
-### 5.5.5 _ August 11, 2020
+### 5.5.5 _ August 11, 2020 { id="5.5.5" }
- Fixed missing vendor and worker distribution files
-### 5.5.4 _ August 11, 2020
+### 5.5.4 _ August 11, 2020 { id="5.5.4" }
- Added support for sortable data tables
-### 5.5.3 _ August 4, 2020
+### 5.5.3 _ August 4, 2020 { id="5.5.3" }
- Fixed search for languages other than English (5.5.1 regression)
-### 5.5.2 _ August 3, 2020
+### 5.5.2 _ August 3, 2020 { id="5.5.2" }
- Improved highlight colors and spacing for `ins`, `del` and `mark`
- Changed some keyboard symbols for better equivalents
@@ -387,14 +387,14 @@ template: overrides/main.html
- Fixed too small content tab labels (5.5.1 regression)
- Fixed icon repeating for custom admonition icons
-### 5.5.1 _ August 1, 2020
+### 5.5.1 _ August 1, 2020 { id="5.5.1" }
- Improved typesetting by basing `font-size` and spacings on `em`
- Improved print view by slightly scaling down `font-size`
- Changed custom site title (metadata) to be suffixed with site name
- Fixed top- and bottom spacing of paragraphs inside table cells
-### 5.5.0 _ July 24, 2020
+### 5.5.0 _ July 24, 2020 { id="5.5.0" }
- Rewrite of entire documentation
- Rewrite of syntax highlighting to be customizable with CSS variables
@@ -407,84 +407,84 @@ template: overrides/main.html
- Fixed top margin for tabbed content when using a JavaScript highlighter
- Deprecated metadata-based redirects, source links and heroes
-### 5.4.0 _ June 29, 2020
+### 5.4.0 _ June 29, 2020 { id="5.4.0" }
- Added support to wrap searches in quotes to switch from `OR` to `AND`
- Fixed highlighting of numbers in search results
-### 5.3.3 _ June 24, 2020
+### 5.3.3 _ June 24, 2020 { id="5.3.3" }
- Added Bengali translations
- Fixed #1773: Search for numbers does not return any result (regression)
-### 5.3.2 _ June 21, 2020
+### 5.3.2 _ June 21, 2020 { id="5.3.2" }
- Improved search typeahead experience with non-Latin characters
- Fixed #1753: Japanese search doesn't work anymore
-### 5.3.1 _ June 20, 2020
+### 5.3.1 _ June 20, 2020 { id="5.3.1" }
- Fixed #1761: Duplication of search worker when subscribing to observable
-### 5.3.0 _ June 15, 2020
+### 5.3.0 _ June 15, 2020 { id="5.3.0" }
- Added support for color schemes based on user preference
- Fixed #1755: Tokenizer separator setting ignored
-### 5.2.3 _ June 6, 2020
+### 5.2.3 _ June 6, 2020 { id="5.2.3" }
- Improved search typeahead behavior for some languages (`de`, `fr`, ...)
- Improved styles for scrollbars on Firefox
- Fixed #1741: Removed `preconnect` hint for Google Analytics
-### 5.2.2 _ May 26, 2020
+### 5.2.2 _ May 26, 2020 { id="5.2.2" }
- Fixed #1728: Legacy Edge doesn't support `deg` values in `hsla` colors
-### 5.2.1 _ May 22, 2020
+### 5.2.1 _ May 22, 2020 { id="5.2.1" }
- Fixed color of links in table headers, e.g. footnotes
- Fixed color scheme not being applied without primary or accent color
- Fixed hover delay for links inside code blocks
-### 5.2.0 _ May 18, 2020
+### 5.2.0 _ May 18, 2020 { id="5.2.0" }
- Added color schemes implementation + dark mode
- Fixed #1583: Missing option for separate link colors
-### 5.1.7 _ May 16, 2020
+### 5.1.7 _ May 16, 2020 { id="5.1.7" }
- Added keyboard focus support for overflowing code blocks
- Fixed #1696: Infinite loop in some cases when using instant loading
-### 5.1.6 _ May 9, 2020
+### 5.1.6 _ May 9, 2020 { id="5.1.6" }
- Added Burmese translations
- Added general anchor offset solution using `scroll-margin-top`
- Fixed #1653: Instant loading shouldn't intercept links to `*.html` files
-### 5.1.5 _ May 3, 2020
+### 5.1.5 _ May 3, 2020 { id="5.1.5" }
- Added `name` attribute for social links to set link `title`
- Fixed #1623: Allow arbitrary links in social links
- Fixed #1664: Height of `iframe` is not adjustable
- Fixed #1667: Sidebars are scrolled to bottom on load (bug in Chrome 81+)
-### 5.1.4 _ April 30, 2020
+### 5.1.4 _ April 30, 2020 { id="5.1.4" }
-- Switched to [@mdi/svg][3] Material Design icon package
+- Switched to [@mdi/svg] Material Design icon package
- Fixed #1655: Navigation may disappear after switching viewports
- Fixed #1659: Unnecessary scrollbar for search results on Windows
- Fixed occasional distortions for images with explicit dimensions
- Fixed errors in German translations
- [3]: https://github.com/Templarian/MaterialDesign-SVG
+ [@mdi/svg]: https://github.com/Templarian/MaterialDesign-SVG
-### 5.1.3 _ April 26, 2020
+### 5.1.3 _ April 26, 2020 { id="5.1.3" }
- Fixed overflowing content area after switch to flexbox
-### 5.1.2 _ April 26, 2020
+### 5.1.2 _ April 26, 2020 { id="5.1.2" }
- Added status information to search observable
- Added status information to search modal
@@ -494,31 +494,31 @@ template: overrides/main.html
- Fixed re-submission of query after search is initialized
- Fixed jitter of sidebars on all browsers by switching to `sticky`
-### 5.1.1 _ April 17, 2020
+### 5.1.1 _ April 17, 2020 { id="5.1.1" }
- Added new FontAwesome icons
- Fixed #1609: Instant loading doesn't honor `target=_blank`
- Fixed GitHub stars count rounding errors
- Fixed GitLab stars count retrieval
-### 5.1.0 _ April 12, 2020
+### 5.1.0 _ April 12, 2020 { id="5.1.0" }
-- Added support for icons from Markdown through [mkdocs-material-extensions][2]
+- Added support for icons from Markdown through [mkdocs-material-extensions]
- [2]: https://github.com/facelessuser/mkdocs-material-extensions
+ [mkdocs-material-extensions]: https://github.com/facelessuser/mkdocs-material-extensions
-### 5.0.2 _ April 10, 2020
+### 5.0.2 _ April 10, 2020 { id="5.0.2" }
- Added CSS source maps to distribution files
- Fixed errors in Chinese (Traditional) translations
- Fixed creation of stale directory on installation from git
- Improved overflow scrolling behavior on iOS (reduced bundle size by `4kb`)
-### 5.0.1 _ April 7, 2020
+### 5.0.1 _ April 7, 2020 { id="5.0.1" }
- Fixed syntax error in Spanish translation
-### 5.0.0 _ April 7, 2020
+### 5.0.0 _ April 7, 2020 { id="5.0.0" }
- Reactive architecture – try `app.dialog$.next("Hi!")` in the console
- Instant loading – make Material behave like a Single Page Application
@@ -535,17 +535,17 @@ template: overrides/main.html
- Reduced HTML and CSS footprint due to deprecation of Internet Explorer support
- Slight facelifting of some UI elements (admonitions, tables, ...)
-### 4.6.3 _ February 14, 2020
+### 4.6.3 _ February 14, 2020 { id="4.6.3" }
- Removed optional third-party plugins from `requirements.txt`
- Updated Docker image to contain all supported third-party plugins
-### 4.6.2 _ February 8, 2020
+### 4.6.2 _ February 8, 2020 { id="4.6.2" }
- Added Romanian translations
- Fixed #1451: Inconsistent spacing for fenced code blocks
-### 4.6.1 _ February 8, 2020
+### 4.6.1 _ February 8, 2020 { id="4.6.1" }
- Fixed #1324: Metadata author only rendering first character
- Fixed #1393: Set `tabindex` to `0` for skip to content link
@@ -553,90 +553,90 @@ template: overrides/main.html
- Fixed errors in Japanese translations
- Improved Google Lighthouse score
-### 4.6.0 _ December 11, 2019
+### 4.6.0 _ December 11, 2019 { id="4.6.0" }
-- Added support for [mkdocs-git-revision-date-localized-plugin][1]
+- Added support for [git-revision-date-localized-plugin][1]
- Fixed invalid character in Google Fonts URL
- [1]: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin
+ [git-revision-date-localized-plugin]: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin
-### 4.5.1 _ December 2, 2019
+### 4.5.1 _ December 2, 2019 { id="4.5.1" }
- Added Thai translations
- Fixed missing assets in GitHub release `.zip` and `.tar.gz`
-### 4.5.0 _ November 16, 2019
+### 4.5.0 _ November 16, 2019 { id="4.5.0" }
- Fixed #1330: Upgraded EmojiOne to Tweomji due to licensing issues
- Fixed #1339: Temporarily pinned PyMdown and Markdown due to
- Fixed errors in Greek translations
- Improved GitHub statistics retrieval
-### 4.4.3 _ October 3, 2019
+### 4.4.3 _ October 3, 2019 { id="4.4.3" }
- Added Estonian translations
- Fixed removal of copyright banners in minified JavaScript
- Removed unnecessary title attributes from links in table of contents
-### 4.4.2 _ August 27, 2019
+### 4.4.2 _ August 27, 2019 { id="4.4.2" }
- Added Afrikaans translations
- Fixed broken page title when `h1` contained HTML tags
- Improved accessibility for IE users
- Removed unnecessary `title` attributes from links in navigation
-### 4.4.1 _ August 22, 2019
+### 4.4.1 _ August 22, 2019 { id="4.4.1" }
- Added support for `black` as a primary color
- Fixed broken footer bar when `h1` contained HTML tags
-### 4.4.0 _ June 15, 2019
+### 4.4.0 _ June 15, 2019 { id="4.4.0" }
- Added Slovenian translations
- Reverted template minification in favor of `mkdocs-minify-plugin`
- Fixed #1114: Tabs don't reappear when default `font-size` is smaller than `16`
-### 4.3.1 _ May 23, 2019
+### 4.3.1 _ May 23, 2019 { id="4.3.1" }
- Fixed spelling error in Danish translations
-### 4.3.0 _ May 17, 2019
+### 4.3.0 _ May 17, 2019 { id="4.3.0" }
- Added support for changing header through metadata title property
- Added `font-display: swap` to Google Font loading logic
- Removed whitespace from templates, saving `4kb` (`.7kb` gzipped) per request
- Fixed alignment of repository icons on tablet and desktop
-### 4.2.0 _ April 28, 2019
+### 4.2.0 _ April 28, 2019 { id="4.2.0" }
- Added Norwegian (Nynorsk) translations
- Fixed loss of focus in non-form input elements due to search hotkeys
- Fixed #1067: Search hotkeys not working for mobile/tablet screensize
- Fixed #1068: Search not correctly aligned for tablet screensize
-### 4.1.2 _ April 16, 2019
+### 4.1.2 _ April 16, 2019 { id="4.1.2" }
- Fixed #1072: HTML tags appearing in navigation link titles
-### 4.1.1 _ March 28, 2019
+### 4.1.1 _ March 28, 2019 { id="4.1.1" }
- Fixed minor CSS errors detected during validation
-### 4.1.0 _ March 22, 2019
+### 4.1.0 _ March 22, 2019 { id="4.1.0" }
- Fixed #1023: Search for Asian languages broken after Lunr.js update
- Fixed #1026: contenteditable elements loose focus on hotkeys
-### 4.0.2 _ March 1, 2019
+### 4.0.2 _ March 1, 2019 { id="4.0.2" }
- Fixed #1012: HTML character entities appear in search result titles
-### 4.0.1 _ February 13, 2019
+### 4.0.1 _ February 13, 2019 { id="4.0.1" }
- Fixed #762, #816: Glitch in sidebar when collapsing items
- Fixed #869: Automatically expand details before printing
-### 4.0.0 _ February 13, 2019
+### 4.0.0 _ February 13, 2019 { id="4.0.0" }
- Added background on hover for table rows
- Removed Google Tag Manager and reverted to Google Analytics
@@ -644,81 +644,81 @@ template: overrides/main.html
- Fixed #911: Chrome breaks layout if system language is Chinese (**BREAKING**)
- Fixed #976: Removed FastClick
-### 3.3.0 _ January 29, 2019
+### 3.3.0 _ January 29, 2019 { id="3.3.0" }
- Moved Google Analytics integration into `head` using Google Tag Manager
- Fixed #972: Unicode slugifier breaks table of contents blur on scroll
- Fixed #974: Additional links in table of contents break blur on scroll
-### 3.2.0 _ December 28, 2018
+### 3.2.0 _ December 28, 2018 { id="3.2.0" }
- Added support for redirects using metadata refresh
- Fixed #921: Load Google Analytics snippet asynchronously
-### 3.1.0 _ November 17, 2018
+### 3.1.0 _ November 17, 2018 { id="3.1.0" }
- Added support for Progressive Web App Manifest
- Fixed #915: Search bug in Safari (upgraded Lunr.js)
-### 3.0.6 _ October 26, 2018
+### 3.0.6 _ October 26, 2018 { id="3.0.6" }
- Added Taiwanese translations
- Fixed #906: JavaScript code blocks evaluated in search results
-### 3.0.5 _ October 23, 2018
+### 3.0.5 _ October 23, 2018 { id="3.0.5" }
- Added Croatian and Indonesian translations
- Fixed #899: Skip-to-content link invalid from 2nd level on
- Fixed #902: Missing URL filter in footer for FontAwesome link
-### 3.0.4 _ September 3, 2018
+### 3.0.4 _ September 3, 2018 { id="3.0.4" }
- Updated Dutch translations
- Fixed #856: Removed preconnect meta tag if Google Fonts are disabled
-### 3.0.3 _ August 7, 2018
+### 3.0.3 _ August 7, 2018 { id="3.0.3" }
- Fixed #841: Additional path levels for extra CSS and JS
-### 3.0.2 _ August 6, 2018
+### 3.0.2 _ August 6, 2018 { id="3.0.2" }
- Fixed #839: Lunr.js stemmer imports incorrect
-### 3.0.1 _ August 5, 2018
+### 3.0.1 _ August 5, 2018 { id="3.0.1" }
- Fixed #838: Search result links incorrect
-### 3.0.0 _ August 5, 2018
+### 3.0.0 _ August 5, 2018 { id="3.0.0" }
- Upgraded MkDocs to 1.0 (**BREAKING**)
- Upgraded Python in official Docker image to 3.6
- Added Serbian and Serbo-Croatian translations
-### 2.9.4 _ July 29, 2018
+### 2.9.4 _ July 29, 2018 { id="2.9.4" }
- Fixed build error after MkDocs upgrade
-### 2.9.3 _ July 29, 2018
+### 2.9.3 _ July 29, 2018 { id="2.9.3" }
- Added link to home for logo in drawer
- Fixed dependency problems between MkDocs and Tornado
-### 2.9.2 _ June 29, 2018
+### 2.9.2 _ June 29, 2018 { id="2.9.2" }
- Added Hindi and Czech translations
-### 2.9.1 _ June 18, 2018
+### 2.9.1 _ June 18, 2018 { id="2.9.1" }
- Added support for different spellings for theme color
- Fixed #799: Added support for webfont minification in production
- Fixed #800: Added `.highlighttable` as an alias for `.codehilitetable`
-### 2.9.0 _ June 13, 2018
+### 2.9.0 _ June 13, 2018 { id="2.9.0" }
- Added support for theme color on Android
- Fixed #796: Rendering of nested tabbed code blocks
-### 2.8.0 _ June 10, 2018
+### 2.8.0 _ June 10, 2018 { id="2.8.0" }
- Added support for grouping code blocks with tabs
- Added Material and FontAwesome icon fonts to distribution files (GDPR)
@@ -726,35 +726,35 @@ template: overrides/main.html
- Added Slovak translations
- Fixed #790: Prefixed `id` attributes with `__` to avoid name clashes
-### 2.7.3 _ April 26, 2018
+### 2.7.3 _ April 26, 2018 { id="2.7.3" }
- Added Finnish translations
-### 2.7.2 _ April 9, 2018
+### 2.7.2 _ April 9, 2018 { id="2.7.2" }
- Fixed rendering issue for `details` on Edge
-### 2.7.1 _ March 21, 2018
+### 2.7.1 _ March 21, 2018 { id="2.7.1" }
- Added Galician translations
- Fixed #730: Scroll chasing error on home page if Disqus is enabled
- Fixed #736: Reset drawer and search upon back button invocation
-### 2.7.0 _ March 6, 2018
+### 2.7.0 _ March 6, 2018 { id="2.7.0" }
- Added ability to set absolute URL for logo
- Added Hebrew translations
-### 2.6.6 _ February 22, 2018
+### 2.6.6 _ February 22, 2018 { id="2.6.6" }
- Added preconnect for Google Fonts for faster loading
- Fixed #710: With tabs sidebar disappears if JavaScript is not available
-### 2.6.5 _ February 22, 2018
+### 2.6.5 _ February 22, 2018 { id="2.6.5" }
- Reverted `--dev-addr` flag removal from `Dockerfile`
-### 2.6.4 _ February 21, 2018
+### 2.6.4 _ February 21, 2018 { id="2.6.4" }
- Added Catalan translations
- Fixed incorrect margins for buttons in Firefox and Safari
@@ -762,24 +762,24 @@ template: overrides/main.html
- Reverted GitHub stars rounding method
- Removed `--dev-addr` flag from `Dockerfile` for Windows compatibility
-### 2.6.3 _ February 18, 2018
+### 2.6.3 _ February 18, 2018 { id="2.6.3" }
- Added Vietnamese translations
-### 2.6.2 _ February 12, 2018
+### 2.6.2 _ February 12, 2018 { id="2.6.2" }
- Added Arabic translations
- Fixed incorrect rounding of amount of GitHub stars
- Fixed double-layered borders for tables
-### 2.6.1 _ February 11, 2018
+### 2.6.1 _ February 11, 2018 { id="2.6.1" }
- Added ability to override Disqus integration using metadata
- Fixed #690: Duplicate slashes in source file URLs
- Fixed #696: Active page highlight not working with default palette
- Adjusted German translations
-### 2.6.0 _ February 2, 2018
+### 2.6.0 _ February 2, 2018 { id="2.6.0" }
- Moved default search configuration to default translation (English)
- Added support to automatically set text direction from translation
@@ -789,35 +789,35 @@ template: overrides/main.html
- Fixed support for Polish search
- Fixed disappearing GitHub, GitLab and Bitbucket repository icons
-### 2.5.5 _ January 31, 2018
+### 2.5.5 _ January 31, 2018 { id="2.5.5" }
- Added Hungarian translations
-### 2.5.4 _ January 29, 2018
+### 2.5.4 _ January 29, 2018 { id="2.5.4" }
- Fixed #683: `gh-deploy` fails inside Docker
-### 2.5.3 _ January 25, 2018
+### 2.5.3 _ January 25, 2018 { id="2.5.3" }
- Added Ukrainian translations
-### 2.5.2 _ January 22, 2018
+### 2.5.2 _ January 22, 2018 { id="2.5.2" }
- Added default search language mappings for all localizations
- Fixed #673: Error loading non-existent search language
- Fixed #675: Uncaught reference error when search plugin disabled
-### 2.5.1 _ January 20, 2018
+### 2.5.1 _ January 20, 2018 { id="2.5.1" }
- Fixed permalink for main headline
- Improved missing translation handling with English as a fallback
- Improved accessibility with skip-to-content link
-### 2.5.0 _ January 13, 2018
+### 2.5.0 _ January 13, 2018 { id="2.5.0" }
- Added support for right-to-left languages
-### 2.4.0 _ January 11, 2018
+### 2.4.0 _ January 11, 2018 { id="2.4.0" }
- Added focus state for clipboard buttons
- Fixed #400: Search bar steals tab focus
@@ -830,55 +830,55 @@ template: overrides/main.html
- Removed `outline` resets for links
- Improved general tabbing behavior on desktop
-### 2.3.0 _ January 9, 2018
+### 2.3.0 _ January 9, 2018 { id="2.3.0" }
- Added `example` (synonym: `snippet`) style for admonitions
- Added synonym `abstract` for `summary` style for admonitions
-### 2.2.6 _ December 27, 2017
+### 2.2.6 _ December 27, 2017 { id="2.2.6" }
- Added Turkish translations
- Fixed unclickable area below header in case JavaScript is not available
-### 2.2.5 _ December 18, 2017
+### 2.2.5 _ December 18, 2017 { id="2.2.5" }
- Fixed #639: Broken default favicon
-### 2.2.4 _ December 18, 2017
+### 2.2.4 _ December 18, 2017 { id="2.2.4" }
- Fixed #638: Build breaks with Jinja < 2.9
-### 2.2.3 _ December 13, 2017
+### 2.2.3 _ December 13, 2017 { id="2.2.3" }
- Fixed #630: Admonition sets padding on any last child
- Adjusted Chinese (Traditional) translations
-### 2.2.2 _ December 8, 2017
+### 2.2.2 _ December 8, 2017 { id="2.2.2" }
- Added Dutch translations
- Adjusted targeted link and footnote offsets
- Simplified admonition styles and fixed padding bug
-### 2.2.1 _ December 2, 2017
+### 2.2.1 _ December 2, 2017 { id="2.2.1" }
- Fixed #616: Minor styling error with title-only admonitions
- Removed border for table of contents and improved spacing
-### 2.2.0 _ November 22, 2017
+### 2.2.0 _ November 22, 2017 { id="2.2.0" }
- Added support for hero teaser
- Added Portuguese translations
- Fixed #586: Footnote backref target offset regression
- Fixed #605: Search stemmers not correctly loaded
-### 2.1.1 _ November 21, 2017
+### 2.1.1 _ November 21, 2017 { id="2.1.1" }
- Replaced deprecated `babel-preset-es2015` with `babel-preset-env`
- Refactored Gulp build pipeline with Webpack
- Removed right border on sidebars
- Fixed broken color transition on header
-### 2.1.0 _ November 19, 2017
+### 2.1.0 _ November 19, 2017 { id="2.1.0" }
- Added support for `white` as a primary color
- Added support for sliding site name and title
@@ -888,17 +888,17 @@ template: overrides/main.html
- Improved CSS customizability by leveraging inheritance
- Removed scroll shadows via `background-attachment`
-### 2.0.4 _ November 5, 2017
+### 2.0.4 _ November 5, 2017 { id="2.0.4" }
- Fixed `details` not opening with footnote reference
-### 2.0.3 _ November 5, 2017
+### 2.0.3 _ November 5, 2017 { id="2.0.3" }
- Added Japanese translations
- Fixed #540: Jumping to anchor inside `details` doesn't open it
- Fixed active link colors in footer
-### 2.0.2 _ November 1, 2017
+### 2.0.2 _ November 1, 2017 { id="2.0.2" }
- Added Russian translations
- Fixed #542: Horizontal scrollbar between `1220px` and `1234px`
@@ -906,62 +906,62 @@ template: overrides/main.html
- Fixed #558: Flash of unstyled content
- Fixed favicon regression caused by deprecation upstream
-### 2.0.1 _ October 31, 2017
+### 2.0.1 _ October 31, 2017 { id="2.0.1" }
- Fixed error when initializing search
- Fixed styles for link to edit the current page
- Fixed styles on nested admonition in details
-### 2.0.0 _ October 31, 2017
+### 2.0.0 _ October 31, 2017 { id="2.0.0" }
- Upgraded MkDocs to 0.17.1 (__BREAKING__)
- Added support for easier configuration of search tokenizer
- Added support to disable search
- Added Korean translations
-### 1.12.2 _ October 26, 2017
+### 1.12.2 _ October 26, 2017 { id="1.12.2" }
- Added Italian, Norwegian, French and Chinese translations
-### 1.12.1 _ October 22, 2017
+### 1.12.1 _ October 22, 2017 { id="1.12.1" }
- Added Polish, Swedish and Spanish translations
- Improved downward compatibility with custom partials
- Temporarily pinned MkDocs version within Docker image to 0.16.3
- Fixed #519: Missing theme configuration file
-### 1.12.0 _ October 20, 2017
+### 1.12.0 _ October 20, 2017 { id="1.12.0" }
- Added support for setting language(s) via `mkdocs.yml`
- Added support for default localization
- Added German and Danish translations
- Fixed #374: Search bar misalignment on big screens
-### 1.11.0 _ October 19, 2017
+### 1.11.0 _ October 19, 2017 { id="1.11.0" }
- Added localization to clipboard
- Refactored localization logic
-### 1.10.4 _ October 18, 2017
+### 1.10.4 _ October 18, 2017 { id="1.10.4" }
- Improved print styles of code blocks
- Improved search UX (don't close on enter if no selection)
- Fixed #495: Vertical scrollbar on short pages
-### 1.10.3 _ October 11, 2017
+### 1.10.3 _ October 11, 2017 { id="1.10.3" }
- Fixed #484: Vertical scrollbar on some MathJax formulas
- Fixed #483: Footnote backref target offset regression
-### 1.10.2 _ October 6, 2017
+### 1.10.2 _ October 6, 2017 { id="1.10.2" }
- Fixed #468: Sidebar shows scrollbar if content is shorter (in Safari)
-### 1.10.1 _ September 14, 2017
+### 1.10.1 _ September 14, 2017 { id="1.10.1" }
- Fixed #455: Bold code blocks rendered with normal font weight
-### 1.10.0 _ September 1, 2017
+### 1.10.0 _ September 1, 2017 { id="1.10.0" }
- Added support to make logo default icon configurable
- Fixed uninitialized overflow scrolling on main pane for iOS
@@ -969,7 +969,7 @@ template: overrides/main.html
- Fixed incorrect color transition for nested panes in mobile navigation
- Improved checkbox styles for Tasklist from PyMdown Extension package
-### 1.9.0 _ August 29, 2017
+### 1.9.0 _ August 29, 2017 { id="1.9.0" }
- Added `info` (synonym: `todo`) style for admonitions
- Added `question` (synonym: `help`, `faq`) style for admonitions
@@ -979,58 +979,58 @@ template: overrides/main.html
- Replaced ligatures with Unicode code points to avoid broken layout
- Upgraded PyMdown Extensions package dependency to >= 3.4
-### 1.8.1 _ August 7, 2017
+### 1.8.1 _ August 7, 2017 { id="1.8.1" }
- Fixed #421: Missing pagination for GitHub API
-### 1.8.0 _ August 2, 2017
+### 1.8.0 _ August 2, 2017 { id="1.8.0" }
- Added support for lazy-loading of search results for better performance
- Added support for customization of search tokenizer/separator
- Fixed #424: Search doesn't handle capital letters anymore
- Fixed #419: Search doesn't work on whole words
-### 1.7.5 _ July 25, 2017
+### 1.7.5 _ July 25, 2017 { id="1.7.5" }
- Fixed #398: Forms broken due to search shortcuts
- Improved search overall user experience
- Improved search matching and highlighting
- Improved search accessibility
-### 1.7.4 _ June 21, 2017
+### 1.7.4 _ June 21, 2017 { id="1.7.4" }
- Fixed functional link colors in table of contents for active palette
- Fixed #368: Compatibility issues with IE11
-### 1.7.3 _ June 7, 2017
+### 1.7.3 _ June 7, 2017 { id="1.7.3" }
- Fixed error when setting language to Japanese for site search
-### 1.7.2 _ June 6, 2017
+### 1.7.2 _ June 6, 2017 { id="1.7.2" }
- Fixed offset of search box when `repo_url` is not set
- Fixed non-disappearing tooltip
-### 1.7.1 _ June 1, 2017
+### 1.7.1 _ June 1, 2017 { id="1.7.1" }
- Fixed wrong `z-index` order of header, overlay and drawer
- Fixed wrong offset of targeted footnote back references
-### 1.7.0 _ June 1, 2017
+### 1.7.0 _ June 1, 2017 { id="1.7.0" }
- Added "copy to clipboard" buttons to code blocks
- Added support for multilingual site search
- Fixed search term highlighting for non-latin languages
-### 1.6.4 _ May 24, 2017
+### 1.6.4 _ May 24, 2017 { id="1.6.4" }
- Fixed #337: JavaScript error for GitHub organization URLs
-### 1.6.3 _ May 16, 2017
+### 1.6.3 _ May 16, 2017 { id="1.6.3" }
- Fixed #329: Broken source stats for private or unknown GitHub repos
-### 1.6.2 _ May 15, 2017
+### 1.6.2 _ May 15, 2017 { id="1.6.2" }
- Fixed #316: Fatal error for git clone on Windows
- Fixed #320: Chrome 58 creates double underline for `abbr` tags
@@ -1038,12 +1038,12 @@ template: overrides/main.html
- Fixed miscalculated sidebar height due to missing margin collapse
- Changed deprecated MathJax CDN to Cloudflare
-### 1.6.1 _ April 23, 2017
+### 1.6.1 _ April 23, 2017 { id="1.6.1" }
- Fixed following of active/focused element if search input is focused
- Fixed layer order of search component elements
-### 1.6.0 _ April 22, 2017
+### 1.6.0 _ April 22, 2017 { id="1.6.0" }
- Added build test for Docker image on Travis
- Added search overlay for better user experience (focus)
@@ -1052,17 +1052,17 @@ template: overrides/main.html
- Fixed missing top spacing for first targeted element in content
- Fixed too small footnote divider when using larger font sizes
-### 1.5.5 _ April 20, 2017
+### 1.5.5 _ April 20, 2017 { id="1.5.5" }
- Fixed #282: Browser search (Meta+F) is hijacked
-### 1.5.4 _ April 8, 2017
+### 1.5.4 _ April 8, 2017 { id="1.5.4" }
- Fixed broken highlighting for two or more search terms
- Fixed missing search results when only a `h1` is present
- Fixed unresponsive overlay on Android
-### 1.5.3 _ April 7, 2017
+### 1.5.3 _ April 7, 2017 { id="1.5.3" }
- Fixed deprecated calls for template variables
- Fixed wrong palette color for focused search result
@@ -1070,17 +1070,17 @@ template: overrides/main.html
- Fixed missing top spacing on 404 page
- Fixed missing right spacing on overflow of source container
-### 1.5.2 _ April 5, 2017
+### 1.5.2 _ April 5, 2017 { id="1.5.2" }
- Added requirements as explicit dependencies in `setup.py`
- Fixed non-synchronized transitions in search form
-### 1.5.1 _ March 30, 2017
+### 1.5.1 _ March 30, 2017 { id="1.5.1" }
- Fixed rendering and offset of targeted footnotes
- Fixed #238: Link on logo is not set to `site_url`
-### 1.5.0 _ March 24, 2017
+### 1.5.0 _ March 24, 2017 { id="1.5.0" }
- Added support for localization of search placeholder
- Added keyboard events for quick access of search
@@ -1093,11 +1093,11 @@ template: overrides/main.html
- Fixed #231: Escape key doesn't exit search
- Removed old-style figures from font feature settings
-### 1.4.1 _ March 16, 2017
+### 1.4.1 _ March 16, 2017 { id="1.4.1" }
- Fixed invalid destructuring attempt on NodeList (in Safari, Edge, IE)
-### 1.4.0 _ March 16, 2017
+### 1.4.0 _ March 16, 2017 { id="1.4.0" }
- Added support for grouping searched sections by documents
- Added support for highlighting of search terms
@@ -1105,7 +1105,7 @@ template: overrides/main.html
- Fixed #216: table of contents icon doesn't show if `h1` is not present
- Reworked style and layout of search results for better usability
-### 1.3.0 _ March 11, 2017
+### 1.3.0 _ March 11, 2017 { id="1.3.0" }
- Added support for page-specific title and description using metadata
- Added support for linking source files to documentation
@@ -1119,7 +1119,7 @@ template: overrides/main.html
- Reduced repaints to a minimum for non-tabs configuration
- Reduced contrast of edit button (slightly)
-### 1.2.0 _ March 3, 2017
+### 1.2.0 _ March 3, 2017 { id="1.2.0" }
- Added `quote` (synonym: `cite`) style for admonitions
- Added help message to build pipeline
@@ -1127,11 +1127,11 @@ template: overrides/main.html
- Fixed #197: Link missing in tabs navigation on deeply nested items
- Removed unnecessary dev dependencies
-### 1.1.1 _ February 26, 2017
+### 1.1.1 _ February 26, 2017 { id="1.1.1" }
- Fixed incorrectly displayed nested lists when using tabs
-### 1.1.0 _ February 26, 2017
+### 1.1.0 _ February 26, 2017 { id="1.1.0" }
- Added tabs navigation feature (optional)
- Added Disqus integration (optional)
@@ -1146,36 +1146,36 @@ template: overrides/main.html
- Refactored and automated Docker build and PyPI release
- Refactored build scripts
-### 1.0.5 _ February 18, 2017
+### 1.0.5 _ February 18, 2017 { id="1.0.5" }
- Fixed #153: Sidebar flows out of constrained area in Chrome 56
- Fixed #159: Footer jitter due to JavaScript if content is short
-### 1.0.4 _ February 16, 2017
+### 1.0.4 _ February 16, 2017 { id="1.0.4" }
- Fixed #142: Documentation build errors if `h1` is defined as raw HTML
- Fixed #164: PyPI release does not build and install
- Fixed offsets of targeted headlines
- Increased sidebar font size by `0.12rem`
-### 1.0.3 _ January 22, 2017
+### 1.0.3 _ January 22, 2017 { id="1.0.3" }
- Fixed #117: Table of contents items don't blur on fast scrolling
- Refactored sidebar positioning logic
- Further reduction of repaints
-### 1.0.2 _ January 15, 2017
+### 1.0.2 _ January 15, 2017 { id="1.0.2" }
- Fixed #108: Horizontal scrollbar in content area
-### 1.0.1 _ January 14, 2017
+### 1.0.1 _ January 14, 2017 { id="1.0.1" }
- Fixed massive repaints happening when scrolling
- Fixed footer back reference positions in case of overflow
- Fixed header logo from showing when the menu icon is rendered
- Changed scrollbar behavior to only show when content overflows
-### 1.0.0 _ January 13, 2017
+### 1.0.0 _ January 13, 2017 { id="1.0.0" }
- Introduced Webpack for more sophisticated JavaScript bundling
- Introduced ESLint and Stylelint for code style checks
@@ -1204,27 +1204,27 @@ template: overrides/main.html
- Fixed live reload chain in watch mode when saving a template
- Fixed variable references to work with MkDocs 0.16
-### 0.2.4 _ June 26, 2016
+### 0.2.4 _ June 26, 2016 { id="0.2.4" }
- Fixed improperly set default favicon
- Fixed #33: Protocol relative URL for webfonts doesn't work with `file://`
- Fixed #34: IE11 on Windows 7 doesn't honor `max-width` on `main` tag
- Fixed #35: Add styling for blockquotes
-### 0.2.3 _ May 16, 2016
+### 0.2.3 _ May 16, 2016 { id="0.2.3" }
- Fixed #25: Highlight inline fenced blocks
- Fixed #26: Better highlighting for keystrokes
- Fixed #30: Suboptimal syntax highlighting for PHP
-### 0.2.2 _ March 20, 2016
+### 0.2.2 _ March 20, 2016 { id="0.2.2" }
- Fixed #15: Document Pygments dependency for CodeHilite
- Fixed #16: Favicon could not be set through `mkdocs.yml`
- Fixed #17: Put version into own container for styling
- Fixed #20: Fix rounded borders for tables
-### 0.2.1 _ March 12, 2016
+### 0.2.1 _ March 12, 2016 { id="0.2.1" }
- Fixed #10: Invisible header after closing search bar with ESC key
- Fixed #13: Table cells don't wrap
@@ -1232,21 +1232,21 @@ template: overrides/main.html
- Corrected wrong path for static asset monitoring in Gulpfile.js
- Set up tracking of site search for Google Analytics
-### 0.2.0 _ February 24, 2016
+### 0.2.0 _ February 24, 2016 { id="0.2.0" }
- Fixed #6: Include multiple color palettes via `mkdocs.yml`
- Fixed #7: Better colors for links inside admonition notes and warnings
- Fixed #9: Text for prev/next footer navigation should be customizable
- Refactored templates (replaced `if`/`else` with modifiers where possible)
-### 0.1.3 _ February 21, 2016
+### 0.1.3 _ February 21, 2016 { id="0.1.3" }
- Fixed #3: Ordered lists within an unordered list have `::before` content
- Fixed #4: Click on Logo/Title without Github-Repository: `"None"`
- Fixed #5: Page without headlines renders empty list in table of contents
- Moved Modernizr to top to ensure basic usability in IE8
-### 0.1.2 _ February 16, 2016
+### 0.1.2 _ February 16, 2016 { id="0.1.2" }
- Fixed styles for deep navigational hierarchies
- Fixed webfont delivery problem when hosted in subdirectories
@@ -1256,7 +1256,7 @@ template: overrides/main.html
- Set download link to latest version if available
- Set up tracking of outgoing links and actions for Google Analytics
-### 0.1.1 _ February 11, 2016
+### 0.1.1 _ February 11, 2016 { id="0.1.1" }
- Fixed #1: GitHub stars don't work if the repo_url ends with a `/`
- Updated NPM and Bower dependencies to most recent versions
@@ -1264,6 +1264,6 @@ template: overrides/main.html
- Made MkDocs building/serving in build process optional
- Set up continuous integration with Travis
-### 0.1.0 _ February 9, 2016
+### 0.1.0 _ February 9, 2016 { id="0.1.0" }
- Initial release
diff --git a/docs/insiders/changelog.md b/docs/insiders/changelog.md
index 10c78a412..ad5f969c2 100644
--- a/docs/insiders/changelog.md
+++ b/docs/insiders/changelog.md
@@ -6,20 +6,20 @@ template: overrides/main.html
## Material for MkDocs Insiders
-### 3.1.2 _ October 6, 2021
+### 3.1.2 _ October 6, 2021 { id="3.1.2" }
- Fixed incorrect path separators for social cards on Windows
-### 3.1.1 _ September 26, 2021
+### 3.1.1 _ September 26, 2021 { id="3.1.1" }
- Fixed ordering bug in search exclusion logic
-### 3.1.0 _ September 26, 2021
+### 3.1.0 _ September 26, 2021 { id="3.1.0" }
- Added support for excluding pages, sections, and elements from search
- Fixed #2803: Code block annotations not visible when printing
-### 3.0.1 _ September 19, 2021
+### 3.0.1 _ September 19, 2021 { id="3.0.1" }
- Added support for using literal `h1-6` tags for search plugin
- Fixed search plugin breaking on void elements without slashes
@@ -27,7 +27,7 @@ template: overrides/main.html
- Fixed search plugin handling of multiple `h1` headlines
- Fixed search plugin handling of missing `h1` headlines
-### 3.0.0 _ September 13, 2021
+### 3.0.0 _ September 13, 2021 { id="3.0.0" }
- Rewrite of MkDocs' search plugin
- Added support for rich search previews
@@ -35,41 +35,41 @@ template: overrides/main.html
- Improved search indexing performance (twice as fast)
- Improved search highlighting
-### 2.13.3 _ September 1, 2021
+### 2.13.3 _ September 1, 2021 { id="2.13.3" }
- Added support for disabling social card generation
-### 2.13.2 _ August 25, 2021
+### 2.13.2 _ August 25, 2021 { id="2.13.2" }
- Fixed #2965: Social plugin error when primary color is not defined
-### 2.13.1 _ August 21, 2021
+### 2.13.1 _ August 21, 2021 { id="2.13.1" }
- Fixed #2948: Social cards are not cached
- Fixed #2953: Mermaid.js diagrams can't be centered anymore
-### 2.13.0 _ August 7, 2021
+### 2.13.0 _ August 7, 2021 { id="2.13.0" }
- Added support for custom colors in social cards
-### 2.12.2 _ August 4, 2021
+### 2.12.2 _ August 4, 2021 { id="2.12.2" }
- Fixed #2891: Division by zero error in social plugin
-### 2.12.1 _ July 26, 2021
+### 2.12.1 _ July 26, 2021 { id="2.12.1" }
- Fixed error in social plugin when `site_description` was not set
- Fixed error in social plugin for non-ASCII characters
-### 2.12.0 _ July 25, 2021
+### 2.12.0 _ July 25, 2021 { id="2.12.0" }
- Added support for social cards
-### 2.11.1 _ July 20, 2021
+### 2.11.1 _ July 20, 2021 { id="2.11.1" }
- Fixed order of tags index, now sorted alphabetically
-### 2.11.0 _ July 18, 2021
+### 2.11.0 _ July 18, 2021 { id="2.11.0" }
- Improved Mermaid.js intergration, now stable
- Added support for sequence diagrams
@@ -77,193 +77,193 @@ template: overrides/main.html
- Added support for cookie consent configuration
- Added feature flag to always enable annotations
-### 2.10.0 _ July 10, 2021
+### 2.10.0 _ July 10, 2021 { id="2.10.0" }
- Added support for cookie consent
- Fixed #2807: Back-to-top button not hidden when using sticky tabs
-### 2.9.2 _ May 30, 2021
+### 2.9.2 _ May 30, 2021 { id="2.9.2" }
- Moved tags to partial for easier customization
- Added support for hiding tags on any page
-### 2.9.1 _ May 24, 2021
+### 2.9.1 _ May 24, 2021 { id="2.9.1" }
- Added missing guard for linking of content tabs
-### 2.9.0 _ May 23, 2021
+### 2.9.0 _ May 23, 2021 { id="2.9.0" }
- Added support for linking of content tabs
-### 2.8.0 _ May 12, 2021
+### 2.8.0 _ May 12, 2021 { id="2.8.0" }
- Added support for boosting pages in search
-### 2.7.2 _ May 8, 2021
+### 2.7.2 _ May 8, 2021 { id="2.7.2" }
- Fixed #2638: Warnings shown when using `tags` plugin without directory URLs
-### 2.7.1 _ May 3, 2021
+### 2.7.1 _ May 3, 2021 { id="2.7.1" }
- Fixed `git-revision-date-localized` plugin integration (2.7.0 regression)
-### 2.7.0 _ May 1, 2021
+### 2.7.0 _ May 1, 2021 { id="2.7.0" }
- Added support for tags (with search integration)
-### 2.6.0 _ April 11, 2021
+### 2.6.0 _ April 11, 2021 { id="2.6.0" }
- Stay on page when switching versions
-### 2.5.0 _ March 28, 2021
+### 2.5.0 _ March 28, 2021 { id="2.5.0" }
- Added support for version warning
-### 2.4.0 _ March 20, 2021
+### 2.4.0 _ March 20, 2021 { id="2.4.0" }
- Added support for custom admonition icons
- Fixed #2444: Code block annotations with extra comments have wrong index
-### 2.3.1 _ March 14, 2021
+### 2.3.1 _ March 14, 2021 { id="2.3.1" }
- Fixed anchor offset for permalinks when using sticky navigation tabs
-### 2.3.0 _ March 13, 2021
+### 2.3.0 _ March 13, 2021 { id="2.3.0" }
- Added support for back-to-top button
-### 2.2.1 _ March 4, 2021
+### 2.2.1 _ March 4, 2021 { id="2.2.1" }
- Fixed #2382: Repository stats failing when no release tag is present
-### 2.2.0 _ February 28, 2021
+### 2.2.0 _ February 28, 2021 { id="2.2.0" }
- Added support for code block annotations
-### 2.1.0 _ February 26, 2021
+### 2.1.0 _ February 26, 2021 { id="2.1.0" }
- Added support for anchor tracking
-### 2.0.0 _ February 24, 2021
+### 2.0.0 _ February 24, 2021 { id="2.0.0" }
- Migrated Insiders to the new architecture
- Swapped color palette toggle configuration
-### 1.17.0 _ January 31, 2021
+### 1.17.0 _ January 31, 2021 { id="1.17.0" }
- Added support for section index pages
-### 1.16.1 _ January 26, 2021
+### 1.16.1 _ January 26, 2021 { id="1.16.1" }
- Fixed #2249: Instant loading + sticky tabs result in invalid links
- Fixed #2248: Search highlighting URL parameter always added
- Fixed #2235: Version selector doesn't select current version for aliases
-### 1.16.0 _ January 7, 2021
+### 1.16.0 _ January 7, 2021 { id="1.16.0" }
- Added latest release to repository info (GitHub)
- Slight facelift of repository info (lighter fonts, spacing and icons)
-### 1.15.0 _ January 2, 2021
+### 1.15.0 _ January 2, 2021 { id="1.15.0" }
- Added support for native Mermaid.js integration
-### 1.14.0 _ December 30, 2020
+### 1.14.0 _ December 30, 2020 { id="1.14.0" }
- Added support for sharing searches
-### 1.13.2 _ December 22, 2020
+### 1.13.2 _ December 22, 2020 { id="1.13.2" }
- Fixed version selector + sticky tabs navigation rendering issues
- Fixed version selector wrapping
-### 1.13.1 _ December 20, 2020
+### 1.13.1 _ December 20, 2020 { id="1.13.1" }
- Removed horizontal scrollbars on language and version selector
- Fixed type conversion in JavaScript config
-### 1.13.0 _ December 13, 2020
+### 1.13.0 _ December 13, 2020 { id="1.13.0" }
- Refactored navigation tabs to simplify grouping behavior
- Added support for sticky navigation tabs
- Added support for arbitrary links in navigation tabs
- Fixed #2098: Subsequent active subsection not highlighted correctly
-### 1.12.1 _ December 8, 2020
+### 1.12.1 _ December 8, 2020 { id="1.12.1" }
- Fixed empty language selector being shown
-### 1.12.0 _ December 6, 2020
+### 1.12.0 _ December 6, 2020 { id="1.12.0" }
- Added support for adding a language selector
-### 1.11.2 _ November 29, 2020
+### 1.11.2 _ November 29, 2020 { id="1.11.2" }
- Fixed #2068: Search highlight interprets code blocks as JavaScript
-### 1.11.1 _ November 29, 2020
+### 1.11.1 _ November 29, 2020 { id="1.11.1" }
- Refactored styling to be more stable and easier to adjust
- Fixed some styling regressions from latest features
-### 1.11.0 _ November 22, 2020
+### 1.11.0 _ November 22, 2020 { id="1.11.0" }
- Added support for rendering admonitions as inline blocks
-### 1.10.0 _ November 15, 2020
+### 1.10.0 _ November 15, 2020 { id="1.10.0" }
- Added support for integrating table of contents into navigation
-### 1.9.0 _ November 7, 2020
+### 1.9.0 _ November 7, 2020 { id="1.9.0" }
- Added support for hiding navigation and table of contents on any page
- Removed autohiding table of contents when empty
-### 1.8.0 _ November 1, 2020
+### 1.8.0 _ November 1, 2020 { id="1.8.0" }
- Added support for navigation sections
- Fixed appearance of inactive search suggestions
-### 1.7.0 _ October 25, 2020
+### 1.7.0 _ October 25, 2020 { id="1.7.0" }
- Added support for deploying multiple versions
- Fixed alignment of sidebar when content area is too small
-### 1.6.0 _ October 11, 2020
+### 1.6.0 _ October 11, 2020 { id="1.6.0" }
- Added support for search suggestions to save keystrokes
- Added support for removing __Made with Material for MkDocs__ from footer
- Fixed #1915: search should go to first result by pressing ++enter++
-### 1.5.1 _ September 21, 2020
+### 1.5.1 _ September 21, 2020 { id="1.5.1" }
- Fixed content area stretching to whole width for long code blocks
-### 1.5.0 _ September 19, 2020
+### 1.5.0 _ September 19, 2020 { id="1.5.0" }
- Added support for autohiding table of contents when empty
-### 1.4.1 _ September 6, 2020
+### 1.4.1 _ September 6, 2020 { id="1.4.1" }
- Improved typeahead and search result relevance and scoring
-### 1.4.0 _ August 30, 2020
+### 1.4.0 _ August 30, 2020 { id="1.4.0" }
- Added support for autohiding header on scroll
-### 1.3.0 _ August 26, 2020
+### 1.3.0 _ August 26, 2020 { id="1.3.0" }
- Added support for user-selectable color palettes
-### 1.2.0 _ August 11, 2020
+### 1.2.0 _ August 11, 2020 { id="1.2.0" }
- Added feature to expand navigation by default
-### 1.1.0 _ August 3, 2020
+### 1.1.0 _ August 3, 2020 { id="1.1.0" }
- Added highlighting of search results
-### 1.0.0 _ July 14, 2020
+### 1.0.0 _ July 14, 2020 { id="1.0.0" }
- Added grouping of search results
- Added missing query terms to search result
diff --git a/docs/setup/setting-up-site-search.md b/docs/setup/setting-up-site-search.md
index 5c621de46..15fc692c6 100644
--- a/docs/setup/setting-up-site-search.md
+++ b/docs/setup/setting-up-site-search.md
@@ -115,8 +115,9 @@ The following configuration options are supported:
`prebuild_index`{ #search-prebuild-index }
-: :octicons-milestone-24: Default: `false` · :octicons-archive-24: Deprecated
- · :octicons-trash-24: 8.0.0 – MkDocs can generate a [prebuilt index] of all pages during
+: [:octicons-tag-24: 7.2.0][prebuilt index support] · :octicons-archive-24:
+ Deprecated · :octicons-trash-24: 8.0.0 · :octicons-milestone-24: Default:
+ `false` – MkDocs can generate a [prebuilt index] of all pages during
build time, which provides performance improvements at the cost of more
bandwidth, as it reduces the build time of the search index:
@@ -145,6 +146,7 @@ them at your own risk.
[lunr's default tokenizer]: https://github.com/olivernn/lunr.js/blob/aa5a878f62a6bba1e8e5b95714899e17e8150b38/lunr.js#L413-L456
[site language]: changing-the-language.md#site-language
[tokenizer lookahead]: #tokenizer-lookahead
+ [prebuilt index support]: https://github.com/squidfunk/mkdocs-material/releases/tag/5.0.0
[prebuilt index]: https://www.mkdocs.org/user-guide/configuration/#prebuild_index
[50% smaller]: ../blog/2021/search-better-faster-smaller.md#benchmarks
diff --git a/docs/upgrade.md b/docs/upgrade.md
index 4459df209..9f43e731d 100644
--- a/docs/upgrade.md
+++ b/docs/upgrade.md
@@ -60,7 +60,7 @@ matches the new structure:
- If you've overridden a __template__, check the respective `*.html` file for
potential changes
-??? quote "`base.html`"
+=== ":octicons-file-code-24: base.html"
``` diff
@@ -61,7 +61,7 @@
@@ -149,7 +149,7 @@ matches the new structure:
{% endfor %}
```
-??? quote "`partials/footer.html`"
+=== ":octicons-file-code-24: partials/footer.html"
``` diff
-
\n }\n \n \n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @returns Element\n */\nexport function renderSearchResultItem(\n result: SearchResultItem\n): HTMLElement {\n const threshold = result[0].score\n const docs = [...result]\n\n /* Find and extract parent article */\n const parent = docs.findIndex(doc => !doc.location.includes(\"#\"))\n const [article] = docs.splice(parent, 1)\n\n /* Determine last index above threshold */\n let index = docs.findIndex(doc => doc.score < threshold)\n if (index === -1)\n index = docs.length\n\n /* Partition sections */\n const best = docs.slice(0, index)\n const more = docs.slice(index)\n\n /* Render children */\n const children = [\n renderSearchDocument(article, Flag.PARENT | +(!parent && index === 0)),\n ...best.map(section => renderSearchDocument(section, Flag.TEASER)),\n ...more.length ? [\n \n \n {more.length > 0 && more.length === 1\n ? translation(\"search.result.more.one\")\n : translation(\"search.result.more.other\", more.length)\n }\n \n {...more.map(section => renderSearchDocument(section, Flag.TEASER))}\n \n ] : []\n ]\n\n /* Render search result */\n return (\n
\n {children}\n
\n )\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"~/components\"\nimport { h, round } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render repository facts\n *\n * @param facts - Repository facts\n *\n * @returns Element\n */\nexport function renderSourceFacts(facts: SourceFacts): HTMLElement {\n return (\n
\n {typeof value === \"number\" ? round(value) : value}\n
\n ))}\n
\n )\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @returns Element\n */\nexport function renderTable(table: HTMLElement): HTMLElement {\n return (\n
\n
\n {table}\n
\n
\n )\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { configuration, translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Version\n */\nexport interface Version {\n version: string /* Version identifier */\n title: string /* Version title */\n aliases: string[] /* Version aliases */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version\n *\n * @param version - Version\n *\n * @returns Element\n */\nfunction renderVersion(version: Version): HTMLElement {\n const config = configuration()\n\n /* Ensure trailing slash, see https://bit.ly/3rL5u3f */\n const url = new URL(`../${version.version}/`, config.base)\n return (\n
\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version selector\n *\n * @param versions - Versions\n *\n * @returns Element\n */\nexport function renderVersionSelector(versions: Version[]): HTMLElement {\n const config = configuration()\n\n /* Determine active version */\n const [, current] = config.base.match(/([^/]+)\\/?$/)!\n const active =\n versions.find(({ version, aliases }) => (\n version === current || aliases.includes(current)\n )) || versions[0]\n\n /* Render version selector */\n return (\n
\n \n
\n {versions.map(renderVersion)}\n
\n
\n )\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject } from \"rxjs\"\nimport {\n filter,\n finalize,\n map,\n mapTo,\n mergeWith,\n tap\n} from \"rxjs/operators\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Details\n */\nexport interface Details {\n scroll?: boolean /* Scroll into view */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Print mode observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Print mode observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch details\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details observable\n */\nexport function watchDetails(\n el: HTMLDetailsElement, { target$, print$ }: WatchOptions\n): Observable {\n return target$\n .pipe(\n map(target => target.closest(\"details:not([open])\")!),\n filter(details => el === details),\n mapTo({ scroll: true }),\n mergeWith(print$.pipe(mapTo({})))\n )\n}\n\n/**\n * Mount details\n *\n * This function ensures that `details` tags are opened on anchor jumps and\n * prior to printing, so the whole content of the page is visible.\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details component observable\n */\nexport function mountDetails(\n el: HTMLDetailsElement, options: MountOptions\n): Observable> {\n const internal$ = new Subject()\n internal$.subscribe(({ scroll }) => {\n el.setAttribute(\"open\", \"\")\n if (scroll)\n el.scrollIntoView()\n })\n\n /* Create and return component */\n return watchDetails(el, options)\n .pipe(\n tap(state => internal$.next(state)),\n finalize(() => internal$.complete()),\n mapTo({ ref: el })\n )\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, of } from \"rxjs\"\n\nimport { replaceElement } from \"~/browser\"\nimport { renderTable } from \"~/templates\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Data table\n */\nexport interface DataTable {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Sentinel for replacement\n */\nconst sentinel = h(\"table\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount data table\n *\n * This function wraps a data table in another scrollable container, so it can\n * be smoothly scrolled on smaller screen sizes and won't break the layout.\n *\n * @param el - Data table element\n *\n * @returns Data table component observable\n */\nexport function mountDataTable(\n el: HTMLElement\n): Observable> {\n replaceElement(el, sentinel)\n replaceElement(sentinel, renderTable(el))\n\n /* Create and return component */\n return of({ ref: el })\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable, Subject, fromEvent, merge } from \"rxjs\"\nimport { finalize, map, mapTo, tap } from \"rxjs/operators\"\n\nimport { getElementOrThrow, getElements } from \"~/browser\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content tabs\n */\nexport interface ContentTabs {\n active: HTMLLabelElement /* Active tab label */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch content tabs\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs observable\n */\nexport function watchContentTabs(\n el: HTMLElement\n): Observable {\n if (!el.classList.contains(\"tabbed-alternate\"))\n return NEVER\n else\n return merge(...getElements(\":scope > input\", el)\n .map(input => fromEvent(input, \"change\").pipe(mapTo(input.id)))\n )\n .pipe(\n map(id => ({\n active: getElementOrThrow(`label[for=${id}]`)\n }))\n )\n}\n\n/**\n * Mount content tabs\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs component observable\n */\nexport function mountContentTabs(\n el: HTMLElement\n): Observable> {\n const internal$ = new Subject()\n internal$.subscribe(({ active }) => {\n active.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"start\"\n })\n })\n\n /* Create and return component */\n return watchContentTabs(el)\n .pipe(\n tap(state => internal$.next(state)),\n finalize(() => internal$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\n\nimport { Viewport, getElements } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { CodeBlock, mountCodeBlock } from \"../code\"\nimport { Details, mountDetails } from \"../details\"\nimport { DataTable, mountDataTable } from \"../table\"\nimport { ContentTabs, mountContentTabs } from \"../tabs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content\n */\nexport type Content =\n | ContentTabs\n | CodeBlock\n | DataTable\n | Details\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n viewport$: Observable /* Viewport observable */\n print$: Observable /* Print mode observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount content\n *\n * This function mounts all components that are found in the content of the\n * actual article, including code blocks, data tables and details.\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Content component observable\n */\nexport function mountContent(\n el: HTMLElement, { target$, viewport$, print$ }: MountOptions\n): Observable> {\n return merge(\n\n /* Code blocks */\n ...getElements(\"pre > code\", el)\n .map(child => mountCodeBlock(child, { viewport$ })),\n\n /* Data tables */\n ...getElements(\"table:not([class])\", el)\n .map(child => mountDataTable(child)),\n\n /* Details */\n ...getElements(\"details\", el)\n .map(child => mountDetails(child, { target$, print$ })),\n\n /* Content tabs */\n ...getElements(\"[data-tabs]\", el)\n .map(child => mountContentTabs(child))\n )\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n merge,\n of\n} from \"rxjs\"\nimport {\n delay,\n finalize,\n map,\n observeOn,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport {\n resetDialogState,\n setDialogMessage,\n setDialogState\n} from \"~/actions\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Dialog\n */\nexport interface Dialog {\n message: string /* Dialog message */\n open: boolean /* Dialog is visible */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n alert$: Subject /* Alert subject */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch dialog\n *\n * @param _el - Dialog element\n * @param options - Options\n *\n * @returns Dialog observable\n */\nexport function watchDialog(\n _el: HTMLElement, { alert$ }: WatchOptions\n): Observable