docs/changelog/index.md
mkdocs build about impeding MkDocs 2.0 incompatibility!!! warning "Material for MkDocs is now in maintenance mode"
This is the last release of Material for MkDocs that will receive new features.
Going forward, the Material for MkDocs team focuses on [Zensical], a next-gen
static site generator built from first principles. We will provide critical
bug fixes and security updates for Material for MkDocs for 12 months at least.
[Read the full announcement on our blog]
This release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.
Note on deprecated plugins: The projects and typeset plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.
Changes:
Added support for projects plugin (for compat, now deprecated)
Added support for typeset plugin (for compat, now deprecated)
Added support for pinned blog posts and author profiles
Added support for customizing pagination for blog index pages
Added support for customizing blog category sort order
Added support for staying on page when switching languages
Added support for disabling tags in table of contents
Added support for nested tags and shadow tags
Added support for footnote tooltips
Added support for instant previews
Added support for instant prefetching
Added support for custom social card layouts
Added support for custom social card background images
Added support for selectable rangs in code blocks
Added support for custom selectors for code annotations
Added support for configurable log level in privacy plugin
Added support for processing of external links in privacy plugin
Added support for automatic image optimization via optimize plugin
Added support for navigation paths (breadcrumbs)
Fixed #8519: Vector accents do not render when using KaTeX
& character not escaped in search highlightingitems not available (9.6.10 regression)This version is a pure refactoring release, and does not contain new features or bug fixes. It strives to improve the compatibility of our templates with alternative Jinja-like template engines that we're currently exploring, including minijinja.
Additionally, it replaces several instances of Python function invocations with idiomatic use of template filters. All instances where variables have been mutated inside templates have been replaced. Most changes have been made in partials, and only a few in blocks, and all of them are fully backward compatible, so no changes to overrides are necessary.
Note that this release does not replace the Jinja template engine with minijinja. However, our templates are now 99% compatible with minijinja, which means we can explore alternative Jinja-compatible implementations. Additionally, immutability and removal of almost all Python function invocations means much more idiomatic templating.
regex package in search pluginpreload hints in privacy pluginsetup.py, now that GitHub fully understands pyproject.tomlonclick handlersslugify settings in blog plugin configMerged Insiders features of 'Goat's Horn' funding goal
pt-BRUpdated templates (diff)
base.htmlnav is defined and blog not includedUpdated templates (diff)
partials/nav-item.htmlblog-post.htmlmaterialxreadtime and lxml dependencies for blog pluginon_filesmarkdown.extensions.tocAdditions and improvements
site_url warning in social pluginimportlib to mitigate deprecationsRemovals
Array.flat and Array.flatMap polyfillFixes
nav entry in mkdocs.ymlDockerfile to latest version of base image9, 9.1) to Docker imagecards_layout_options setting for social cardscards_color and cards_font setting for social cardspalette is not defined (9.1.7 regression)mkdocs-jupyter pluginscript and style tagsamd64, arm64 and arm/v7content partialrel=me)h[1-6] contained in other elementsnavpipdeptree dependency for built-in info pluginAdditions and improvements
--dirtyreloadRemovals
:is() selectors (in output) for easier overriding.title suffix on translationsFixes
white or blackslate schemescrollbar-gutter)comments.html)actions.html)4xx status codes not handled when using instant loading<2.12<9.4material.plugins not being found (8.2.0 regression)Added Portuguese (Brasilian) translations
Updated FontAwesome to v6 – check which icons were renamed here
Fixed #3545: Color palette toggle and search overlaying version selector
Fixed errors in Latvian translations
ltr/rtl equivalents#only-light and #only-dark image hash fragments:not() (Firefox 78 ESR)+ signs to improve usabilityfont-size is increasedgoogle_analytics setting (was forgotten in 8.0.0)box-sizing for code annotations in detailscopyright partial for easier overrideseealso admonition typesite_keywords setting (unsupported by MkDocs)extracopyright variable – use new copyright partial:is() selectors for simple selector listslast 4 years to last 2 yearsdetails when printingmkdocs.ymlBumped MkDocs version to 1.2.3 to mitigate CVE-2021-40978
Fixed spacing issues when using integrate table of contents with tabs
Fixed some spacings issues for right-to-left languages
Fixed race condition in search initialization
file://blockquote elements (7.0.0 regression)gtag.js)aria-label in footer linksseealso admonition qualifier:target and :focush1 breaks the table of contentsextracopyright block to template variableextra.homepage option to link logo to arbitrary URLextracopyright block to allow for custom copyright infometa tagslate color schemetitle attributes where necessarytitle attributesfile:// protocol through iframe-worker176kb → 124kb)mkdocs and readthedocs themes from Docker image84kb → 67kb)404 for images when using instant loadingdetails and content tabs for pointer devices404 on search index when search is disabledtheme-color meta tag404.html to main.htmlins, del and markoutline for details and code blocks on touch devicesfont-size and spacings on emfont-sizeslate color scheme to be more customizable and easier on the eyesOR to ANDde, fr, ...)preconnect hint for Google Analyticsdeg values in hsla colorsscroll-margin-top*.html filesname attribute for social links to set link titleiframe is not adjustableSwitched 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
file:// if Worker failsstickytarget=_blankAdded support for icons from Markdown through mkdocs-material-extensions
4kb)app.dialog$.next("Hi!") in the consolerequirements.txttabindex to 0 for skip to content linkAdded support for git-revision-date-localized-plugin
Fixed invalid character in Google Fonts URL
.zip and .tar.gzh1 contained HTML tagstitle attributes from links in navigationblack as a primary colorh1 contained HTML tagsmkdocs-minify-pluginfont-size is smaller than 16font-display: swap to Google Font loading logic4kb (.7kb gzipped) per requesthead using Google Tag Manager.highlighttable as an alias for .codehilitetableid attributes with __ to avoid name clashesdetails on Edge--dev-addr flag removal from Dockerfileyarn with npm 5.6--dev-addr flag from Dockerfile for Windows compatibilitygh-deploy fails inside Dockeroutline being cut off on ++tab++ focus of navigation linksoutline resets for linksexample (synonym: snippet) style for admonitionsabstract for summary style for admonitionsbabel-preset-es2015 with babel-preset-envwhite as a primary colorbackground-attachmentdetails not opening with footnote referencedetails doesn't open it1220px and 1234pxmkdocs.ymlinfo (synonym: todo) style for admonitionsquestion (synonym: help, faq) style for admonitionsrepo_url is not setz-index order of header, overlay and drawerabbr tagshtml tagh1 is presentsetup.pysite_urlh1 is not presentrepo_url ends with a /quote (synonym: cite) style for admonitionsh1 is defined as raw HTML0.12rem_blank targets on links due to vulnerability: http://bit.ly/1Mk2Rtwpackage.json404.html error page for deployment on GitHub Pagesfile://max-width on main tagmkdocs.ymlmkdocs.ymlif/else with modifiers where possible)::before content"None"mkdocs.yml with fallbacks/