From f08661dc034f869b7374b8e8d493a4b12a8ad456 Mon Sep 17 00:00:00 2001
From: Alexey Pyltsyn
Date: Wed, 4 May 2022 18:10:12 +0300
Subject: [PATCH] chore: prepare v2.0.0-beta.19 release
---
CHANGELOG.md | 288 ++++++++++++++++
.../guides/docs/docs-markdown-features.mdx | 39 ---
.../markdown-features-head-metadata.mdx | 67 ----
.../markdown-features-headings.mdx | 57 ---
.../markdown-features-inline-toc.mdx | 173 ----------
.../advanced/architecture.md | 0
.../advanced/client.md | 75 +++-
.../advanced/index.md | 0
.../advanced/plugins.md | 2 +-
.../advanced/routing.md | 4 +-
.../advanced/ssg.md | 2 +
.../api/docusaurus.config.js.md | 136 ++++----
.../api/misc/_category_.yml | 2 +
.../api/misc/eslint-plugin/README.md | 74 ++++
.../eslint-plugin/no-untranslated-text.md | 48 +++
.../string-literal-i18n-messages.md | 50 +++
.../api/misc/img/logger-demo.png | Bin 0 -> 94456 bytes
.../version-2.0.0-beta.19/api/misc/logger.md | 67 ++++
.../api/plugin-methods/README.md | 4 +-
.../api/plugin-methods/_category_.yml | 0
.../plugin-methods/extend-infrastructure.md | 8 +-
.../api/plugin-methods/i18n-lifecycles.md | 0
.../api/plugin-methods/lifecycle-apis.md | 37 +-
.../api/plugin-methods/static-methods.md | 0
.../api/plugins/_category_.yml | 0
.../api/plugins/overview.md | 0
.../api/plugins/plugin-client-redirects.md | 0
.../api/plugins/plugin-content-blog.md | 22 +-
.../api/plugins/plugin-content-docs.md | 86 +++--
.../api/plugins/plugin-content-pages.md | 0
.../api/plugins/plugin-debug.md | 0
.../api/plugins/plugin-google-analytics.md | 0
.../api/plugins/plugin-google-gtag.md | 2 +-
.../api/plugins/plugin-ideal-image.md | 0
.../api/plugins/plugin-pwa.md | 0
.../api/plugins/plugin-sitemap.md | 6 +-
.../api/themes/_category_.yml | 0
.../api/themes/overview.md | 0
.../api/themes/theme-classic.md | 0
.../api/themes/theme-configuration.md | 60 +++-
.../api/themes/theme-live-codeblock.md | 0
.../api/themes/theme-search-algolia.md | 0
.../docusaurus-asset-example-banner.png | Bin
.../assets/docusaurus-asset-example.docx | Bin
.../assets/docusaurus-asset-example.xyz | Bin
.../blog.mdx | 0
.../browser-support.md | 0
.../cli.md | 12 +-
.../configuration.md | 0
.../deployment.mdx | 4 +-
.../docusaurus-core.md | 31 +-
.../guides/creating-pages.md | 14 +-
.../guides/docs/docs-create-doc.mdx | 0
.../guides/docs/docs-introduction.md | 20 +-
.../guides/docs/docs-multi-instance.mdx | 0
.../guides/docs/sidebar/autogenerated.md | 13 +-
.../guides/docs/sidebar/index.md | 19 +-
.../guides/docs/sidebar/items.md | 0
.../guides/docs/sidebar/multiple-sidebars.md | 2 +
.../guides/docs/versioning.md | 0
.../_markdown-partial-example.mdx | 0
.../markdown-features-admonitions.mdx | 4 +-
.../markdown-features-assets.mdx | 20 +-
.../markdown-features-code-blocks.mdx | 325 +++++++++++++-----
.../markdown-features-head-metadata.mdx | 83 +++++
.../markdown-features-intro.mdx | 18 +-
.../markdown-features-links.md | 52 +++
.../markdown-features-math-equations.mdx | 9 +-
.../markdown-features-plugins.mdx | 0
.../markdown-features-react.mdx | 10 +-
.../markdown-features-react.module.css | 0
.../markdown-features-tabs-styles.module.css | 0
.../markdown-features-tabs.mdx | 2 +-
.../markdown-features-toc.mdx | 246 +++++++++++++
.../guides/whats-next.md | 4 +-
.../i18n/i18n-crowdin.mdx | 0
.../i18n/i18n-git.md | 0
.../i18n/i18n-introduction.md | 0
.../i18n/i18n-tutorial.md | 56 ++-
.../installation.md | 26 +-
.../introduction.md | 0
.../migration/migration-automated.md | 0
.../migration/migration-manual.md | 2 +-
.../migration/migration-overview.md | 0
.../migration/migration-translated-sites.md | 0
.../migration/migration-versioned-sites.md | 0
.../playground.mdx | 0
.../search.md | 0
.../seo.md | 37 +-
.../static-assets.md | 0
.../styling-layout.md | 8 +-
.../swizzling.md | 0
.../typescript-support.md | 6 +-
.../using-plugins.md | 176 +++++-----
...on => version-2.0.0-beta.19-sidebars.json} | 5 +-
website/versions.json | 4 +-
website/versionsArchived.json | 1 +
97 files changed, 1783 insertions(+), 735 deletions(-)
delete mode 100644 website/versioned_docs/version-2.0.0-beta.17/guides/docs/docs-markdown-features.mdx
delete mode 100644 website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-head-metadata.mdx
delete mode 100644 website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-headings.mdx
delete mode 100644 website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-inline-toc.mdx
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/advanced/architecture.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/advanced/client.md (64%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/advanced/index.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/advanced/plugins.md (99%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/advanced/routing.md (98%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/advanced/ssg.md (93%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/docusaurus.config.js.md (75%)
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/api/misc/_category_.yml
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/api/misc/eslint-plugin/README.md
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/api/misc/eslint-plugin/no-untranslated-text.md
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/api/misc/eslint-plugin/string-literal-i18n-messages.md
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/api/misc/img/logger-demo.png
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/api/misc/logger.md
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugin-methods/README.md (99%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugin-methods/_category_.yml (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugin-methods/extend-infrastructure.md (96%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugin-methods/i18n-lifecycles.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugin-methods/lifecycle-apis.md (94%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugin-methods/static-methods.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/_category_.yml (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/overview.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-client-redirects.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-content-blog.md (89%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-content-docs.md (78%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-content-pages.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-debug.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-google-analytics.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-google-gtag.md (98%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-ideal-image.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-pwa.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/plugins/plugin-sitemap.md (80%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/themes/_category_.yml (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/themes/overview.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/themes/theme-classic.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/themes/theme-configuration.md (94%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/themes/theme-live-codeblock.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/api/themes/theme-search-algolia.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/assets/docusaurus-asset-example-banner.png (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/assets/docusaurus-asset-example.docx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/assets/docusaurus-asset-example.xyz (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/blog.mdx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/browser-support.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/cli.md (96%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/configuration.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/deployment.mdx (99%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/docusaurus-core.md (98%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/creating-pages.md (93%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/docs-create-doc.mdx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/docs-introduction.md (85%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/docs-multi-instance.mdx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/sidebar/autogenerated.md (94%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/sidebar/index.md (86%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/sidebar/items.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/sidebar/multiple-sidebars.md (94%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/docs/versioning.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/_markdown-partial-example.mdx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-admonitions.mdx (99%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-assets.mdx (92%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-code-blocks.mdx (63%)
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/guides/markdown-features/markdown-features-head-metadata.mdx
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-intro.mdx (67%)
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/guides/markdown-features/markdown-features-links.md
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-math-equations.mdx (95%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-plugins.mdx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-react.mdx (96%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-react.module.css (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-tabs-styles.module.css (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/markdown-features/markdown-features-tabs.mdx (98%)
create mode 100644 website/versioned_docs/version-2.0.0-beta.19/guides/markdown-features/markdown-features-toc.mdx
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/guides/whats-next.md (89%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/i18n/i18n-crowdin.mdx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/i18n/i18n-git.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/i18n/i18n-introduction.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/i18n/i18n-tutorial.md (89%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/installation.md (89%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/introduction.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/migration/migration-automated.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/migration/migration-manual.md (99%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/migration/migration-overview.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/migration/migration-translated-sites.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/migration/migration-versioned-sites.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/playground.mdx (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/search.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/seo.md (96%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/static-assets.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/styling-layout.md (92%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/swizzling.md (100%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/typescript-support.md (98%)
rename website/versioned_docs/{version-2.0.0-beta.17 => version-2.0.0-beta.19}/using-plugins.md (75%)
rename website/versioned_sidebars/{version-2.0.0-beta.17-sidebars.json => version-2.0.0-beta.19-sidebars.json} (96%)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 036b7aaa491c..a7fae793e279 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,293 @@
# Docusaurus 2 Changelog
+## 2.0.0-beta.19 (2022-05-04)
+
+#### :rocket: New Feature
+
+- `docusaurus-theme-classic`, `docusaurus-theme-common`
+ - [#7178](https://github.com/facebook/docusaurus/pull/7178) feat(theme-classic): extensible code block magic comment system ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7007](https://github.com/facebook/docusaurus/pull/7007) feat(theme-classic): code block showLineNumbers ([@lex111](https://github.com/lex111))
+ - [#7012](https://github.com/facebook/docusaurus/pull/7012) feat(theme-classic): show blog sidebar on mobile ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`, `docusaurus`, `eslint-plugin`
+ - [#7206](https://github.com/facebook/docusaurus/pull/7206) feat: Docusaurus ESLint plugin to enforce best Docusaurus practices ([@elias-pap](https://github.com/elias-pap))
+- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`
+ - [#6732](https://github.com/facebook/docusaurus/pull/6732) feat(core): rework client modules lifecycles, officially make API public ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`
+ - [#7231](https://github.com/facebook/docusaurus/pull/7231) feat: allow custom navbarItem types to pass through validation ([@slorber](https://github.com/slorber))
+ - [#7058](https://github.com/facebook/docusaurus/pull/7058) feat(theme-classic): new 'html' type navbar item ([@lex111](https://github.com/lex111))
+ - [#7079](https://github.com/facebook/docusaurus/pull/7079) feat: allow using pure HTML as label in navbar links ([@lex111](https://github.com/lex111))
+- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`
+ - [#7036](https://github.com/facebook/docusaurus/pull/7036) feat(theme-classic): toggle code wrap button ([@lex111](https://github.com/lex111))
+- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`
+ - [#6457](https://github.com/facebook/docusaurus/pull/6457) feat(content-docs): draft docs excluded from build & sidebars ([@jodyheavener](https://github.com/jodyheavener))
+- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`
+ - [#6430](https://github.com/facebook/docusaurus/pull/6430) feat: allow setting calendar for i18n date formatting ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-docs`, `docusaurus-types`, `docusaurus`
+ - [#7083](https://github.com/facebook/docusaurus/pull/7083) feat(core): fail-safe global data fetching ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-content-docs`
+ - [#7106](https://github.com/facebook/docusaurus/pull/7106) feat(content-docs): make docs:version command work on localized docs ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-types`, `docusaurus`
+ - [#7082](https://github.com/facebook/docusaurus/pull/7082) feat(core): allow plugins to declare custom route context ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7124](https://github.com/facebook/docusaurus/pull/7124) feat(core): allow plugin/preset config to contain false/null ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-sitemap`, `docusaurus-utils`
+ - [#6979](https://github.com/facebook/docusaurus/pull/6979) feat(sitemap): add ignorePatterns option ([@ApsarasX](https://github.com/ApsarasX))
+
+#### :boom: Breaking Change
+
+- `docusaurus-types`, `docusaurus`
+ - [#7257](https://github.com/facebook/docusaurus/pull/7257) refactor: remove long-deprecated routesLoaded lifecycle ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`, `docusaurus-theme-common`
+ - [#7277](https://github.com/facebook/docusaurus/pull/7277) refactor(theme-classic): move all sidebar-related config under themeConfig.docs.sidebar ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus`
+ - [#6732](https://github.com/facebook/docusaurus/pull/6732) feat(core): rework client modules lifecycles, officially make API public ([@Josh-Cena](https://github.com/Josh-Cena))
+- `create-docusaurus`, `docusaurus-theme-classic`
+ - [#7176](https://github.com/facebook/docusaurus/pull/7176) refactor: customize code block line highlight color via CSS var ([@lex111](https://github.com/lex111))
+- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`
+ - [#7117](https://github.com/facebook/docusaurus/pull/7117) refactor(content-{blog,docs}): unify handling of tags ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`
+ - [#7027](https://github.com/facebook/docusaurus/pull/7027) refactor(content-docs): deduplicate types, JSDoc for some APIs ([@Josh-Cena](https://github.com/Josh-Cena))
+
+#### :bug: Bug Fix
+
+- `docusaurus-theme-classic`
+ - [#7304](https://github.com/facebook/docusaurus/pull/7304) fix(theme-classic): remove breadcrumb items without href from microdata ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7179](https://github.com/facebook/docusaurus/pull/7179) fix(theme-classic): do not add microdata item prop to trailing breadcrumb ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7173](https://github.com/facebook/docusaurus/pull/7173) fix(theme-classic): admonition title: disable text-transform on inline code blocks ([@chelproc](https://github.com/chelproc))
+ - [#7048](https://github.com/facebook/docusaurus/pull/7048) fix(theme-classic): add caret for dropdown on mobile ([@lex111](https://github.com/lex111))
+ - [#7025](https://github.com/facebook/docusaurus/pull/7025) fix: make docs page wrapper take full height ([@lex111](https://github.com/lex111))
+ - [#7013](https://github.com/facebook/docusaurus/pull/7013) fix(theme-classic): adjust shadow on code block ([@chernodub](https://github.com/chernodub))
+ - [#7015](https://github.com/facebook/docusaurus/pull/7015) fix(theme-classic): do not add caret for non-collapsible categories ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`
+ - [#7294](https://github.com/facebook/docusaurus/pull/7294) fix(\*): make TypeScript realize that each plugin package has a default export ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus`
+ - [#7285](https://github.com/facebook/docusaurus/pull/7285) fix(core): allow empty static directories ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7180](https://github.com/facebook/docusaurus/pull/7180) fix: pass pollOptions to webpack ([@JohnnyMcWeed](https://github.com/JohnnyMcWeed))
+ - [#7184](https://github.com/facebook/docusaurus/pull/7184) fix(core): prevent 404 when accessing /page.html ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7225](https://github.com/facebook/docusaurus/pull/7225) fix: allow swizzling a component's parent folder ([@slorber](https://github.com/slorber))
+ - [#7066](https://github.com/facebook/docusaurus/pull/7066) fix(core): all plugin lifecycles should receive translated content ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-content-docs`
+ - [#7233](https://github.com/facebook/docusaurus/pull/7233) fix(content-docs): make category index text translatable ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-common`
+ - [#7200](https://github.com/facebook/docusaurus/pull/7200) fix(theme-common): do not persist color mode for OS-triggered changes ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7057](https://github.com/facebook/docusaurus/pull/7057) fix(theme-common): use native scrolling when smooth behavior set in CSS ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7033](https://github.com/facebook/docusaurus/pull/7033) fix(theme): only parse HTML- and JSX-style comments in MD code ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-content-blog`
+ - [#7212](https://github.com/facebook/docusaurus/pull/7212) fix(content-blog): make footnote reference DOM ID unique on post listing page ([@AkiraVoid](https://github.com/AkiraVoid))
+- `docusaurus-utils`, `docusaurus`
+ - [#7187](https://github.com/facebook/docusaurus/pull/7187) fix(core): handle case where package.json is not available at CWD ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-translations`
+ - [#7222](https://github.com/facebook/docusaurus/pull/7222) fix(theme-translations): fix invalid pluralization in cs ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7166](https://github.com/facebook/docusaurus/pull/7166) fix(theme-translations): always try all possible locale resolutions ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`
+ - [#7164](https://github.com/facebook/docusaurus/pull/7164) fix: adjust spacing for custom search properly ([@lex111](https://github.com/lex111))
+- `docusaurus-plugin-debug`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-types`, `docusaurus`
+ - [#7143](https://github.com/facebook/docusaurus/pull/7143) fix(sitemap): exclude pages with robots noindex from sitemap ([@Josh-Cena](https://github.com/Josh-Cena))
+- `create-docusaurus`, `docusaurus-types`
+ - [#7078](https://github.com/facebook/docusaurus/pull/7078) fix(create): install types for JS template as well ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-utils`
+ - [#7043](https://github.com/facebook/docusaurus/pull/7043) fix(utils): parse Markdown headings with CRLF line break ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`
+ - [#7023](https://github.com/facebook/docusaurus/pull/7023) refactor: fix a few places of path handling ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-types`
+ - [#7014](https://github.com/facebook/docusaurus/pull/7014) fix(types): declare history and react-loadable as dependencies ([@sulu5890](https://github.com/sulu5890))
+
+#### :nail_care: Polish
+
+- `docusaurus-theme-classic`, `docusaurus-theme-translations`
+ - [#7299](https://github.com/facebook/docusaurus/pull/7299) refactor: minor improvements for breadcrumbs ([@lex111](https://github.com/lex111))
+- `create-docusaurus`
+ - [#7290](https://github.com/facebook/docusaurus/pull/7290) refactor(create): add i18n config in init template ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7286](https://github.com/facebook/docusaurus/pull/7286) refactor(create): update screenshots in quick start tutorial ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7223](https://github.com/facebook/docusaurus/pull/7223) refactor: use generated-index in init templates ([@slorber](https://github.com/slorber))
+ - [#7118](https://github.com/facebook/docusaurus/pull/7118) refactor(create): mention that the edit links can be removed ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-debug`, `docusaurus-theme-classic`
+ - [#7306](https://github.com/facebook/docusaurus/pull/7306) chore: upgrade Infima to alpha.39 ([@lex111](https://github.com/lex111))
+- `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`
+ - [#7291](https://github.com/facebook/docusaurus/pull/7291) feat(types): JSDoc for docusaurus config fields ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`, `docusaurus-theme-common`
+ - [#7267](https://github.com/facebook/docusaurus/pull/7267) fix(theme-common): allow details to not provide a summary ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7172](https://github.com/facebook/docusaurus/pull/7172) refactor: control base styling of code blocks via CSS vars ([@lex111](https://github.com/lex111))
+ - [#7129](https://github.com/facebook/docusaurus/pull/7129) refactor(theme-classic): fix a few margin inconsistencies ([@lex111](https://github.com/lex111))
+- `docusaurus-plugin-content-docs`, `docusaurus-utils`
+ - [#7248](https://github.com/facebook/docusaurus/pull/7248) refactor: normalize Markdown linkification behavior, elaborate in documentation ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`
+ - [#7244](https://github.com/facebook/docusaurus/pull/7244) refactor: semantic markup improvement, fix validation warnings ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7183](https://github.com/facebook/docusaurus/pull/7183) refactor: use SVG icon for home breadcrumb ([@Dr-Electron](https://github.com/Dr-Electron))
+ - [#7139](https://github.com/facebook/docusaurus/pull/7139) fix: proper spacing between generated card items on mobiles ([@lex111](https://github.com/lex111))
+ - [#7134](https://github.com/facebook/docusaurus/pull/7134) fix(theme-classic): fix docs sidebar layout shifts when expanding categories ([@slorber](https://github.com/slorber))
+ - [#7068](https://github.com/facebook/docusaurus/pull/7068) refactor(theme-classic): blog mobile secondary menu use consistent styles ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7004](https://github.com/facebook/docusaurus/pull/7004) fix(theme-classic): shrink title size on mobile ([@Pierre-Gilles](https://github.com/Pierre-Gilles))
+- `docusaurus-theme-translations`
+ - [#7214](https://github.com/facebook/docusaurus/pull/7214) chore(theme-translations): complete Polish translations ([@rev4324](https://github.com/rev4324))
+ - [#7031](https://github.com/facebook/docusaurus/pull/7031) chore(theme-translations): complete German translations ([@deployn](https://github.com/deployn))
+- `create-docusaurus`, `docusaurus-theme-classic`
+ - [#7176](https://github.com/facebook/docusaurus/pull/7176) refactor: customize code block line highlight color via CSS var ([@lex111](https://github.com/lex111))
+- `docusaurus`
+ - [#7218](https://github.com/facebook/docusaurus/pull/7218) fix(cli): always show error stack to unhandled rejection ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7142](https://github.com/facebook/docusaurus/pull/7142) refactor(core): lower timeout before rendering progress bar to 200ms ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7103](https://github.com/facebook/docusaurus/pull/7103) fix(core): preserve Interpolate children semantics ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7029](https://github.com/facebook/docusaurus/pull/7029) refactor: console output improvements ([@lex111](https://github.com/lex111))
+ - [#7017](https://github.com/facebook/docusaurus/pull/7017) refactor: remove copyright comment from swizzled components ([@lex111](https://github.com/lex111))
+- `docusaurus-plugin-content-docs`, `docusaurus-preset-classic`, `docusaurus-theme-classic`
+ - [#7148](https://github.com/facebook/docusaurus/pull/7148) feat(preset-classic, content-docs/client): JSDoc ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-debug`, `docusaurus-preset-classic`
+ - [#7122](https://github.com/facebook/docusaurus/pull/7122) feat(preset-classic): exclude debug plugin routes from sitemap ([@lex111](https://github.com/lex111))
+- `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`
+ - [#7113](https://github.com/facebook/docusaurus/pull/7113) test: improve test coverage ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus`
+ - [#7080](https://github.com/facebook/docusaurus/pull/7080) refactor: replace non-prop interface with type; allow plugin lifecycles to have sync type ([@Josh-Cena](https://github.com/Josh-Cena))
+- `create-docusaurus`, `docusaurus-logger`, `docusaurus-plugin-content-docs`, `docusaurus`
+ - [#7019](https://github.com/facebook/docusaurus/pull/7019) feat(logger): new "url" format, add double quotes around paths ([@lex111](https://github.com/lex111))
+- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`
+ - [#7006](https://github.com/facebook/docusaurus/pull/7006) refactor: split and cleanup theme/DocPage ([@slorber](https://github.com/slorber))
+- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`
+ - [#7005](https://github.com/facebook/docusaurus/pull/7005) refactor: split DocSidebarItem by item type ([@slorber](https://github.com/slorber))
+
+#### :memo: Documentation
+
+- `docusaurus-logger`
+ - [#7305](https://github.com/facebook/docusaurus/pull/7305) docs: update docs for logger, add API docs to website ([@Josh-Cena](https://github.com/Josh-Cena))
+- Other
+ - [#7284](https://github.com/facebook/docusaurus/pull/7284) docs: add a paragraph about SSR as an optimization technique ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7278](https://github.com/facebook/docusaurus/pull/7278) docs: enhance docs about Markdown TOC and metadata ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7271](https://github.com/facebook/docusaurus/pull/7271) docs: specify Node version requirement to a minor ([@DanRoscigno](https://github.com/DanRoscigno))
+ - [#7252](https://github.com/facebook/docusaurus/pull/7252) docs: update gtag docs to reflect what a GA4 tag looks like ([@johnnyreilly](https://github.com/johnnyreilly))
+ - [#7240](https://github.com/facebook/docusaurus/pull/7240) docs: add PCC Archive site to showcase ([@CuratorCat](https://github.com/CuratorCat))
+ - [#7239](https://github.com/facebook/docusaurus/pull/7239) docs: add Chaos mesh site to showcase ([@cwen0](https://github.com/cwen0))
+ - [#7235](https://github.com/facebook/docusaurus/pull/7235) docs: add TiDB community books to showcase ([@shczhen](https://github.com/shczhen))
+ - [#7236](https://github.com/facebook/docusaurus/pull/7236) docs: add documentation about pluralization ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7230](https://github.com/facebook/docusaurus/pull/7230) docs: add OSS Insight to showcase ([@sykp241095](https://github.com/sykp241095))
+ - [#7208](https://github.com/facebook/docusaurus/pull/7208) docs: remove mention of "template" from README installation guide ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7159](https://github.com/facebook/docusaurus/pull/7159) docs: explain more clearly the purpose of a ref sidebar type ([@andrewnicols](https://github.com/andrewnicols))
+ - [#7126](https://github.com/facebook/docusaurus/pull/7126) docs: multiple documentation improvements ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7123](https://github.com/facebook/docusaurus/pull/7123) refactor(showcase): enforce descriptions with maximum length of 120 characters ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7026](https://github.com/facebook/docusaurus/pull/7026) docs: correct plugin example filename ([@mxhdx](https://github.com/mxhdx))
+ - [#7110](https://github.com/facebook/docusaurus/pull/7110) docs: add a note about additional languages needing to be Prism component names ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#6746](https://github.com/facebook/docusaurus/pull/6746) fix(website): lazy-load YT iframe ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7061](https://github.com/facebook/docusaurus/pull/7061) docs: add docusaurus-plugin-typedoc to resources ([@nartc](https://github.com/nartc))
+ - [#7059](https://github.com/facebook/docusaurus/pull/7059) docs: add firelordjs to showcase ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7050](https://github.com/facebook/docusaurus/pull/7050) docs: add import React statement in JSX file example ([@kaycebasques](https://github.com/kaycebasques))
+ - [#7022](https://github.com/facebook/docusaurus/pull/7022) docs: add Easypanel to showcase ([@deiucanta](https://github.com/deiucanta))
+ - [#7016](https://github.com/facebook/docusaurus/pull/7016) docs: consistently use sidebars.js filename ([@leedom92](https://github.com/leedom92))
+ - [#7020](https://github.com/facebook/docusaurus/pull/7020) docs: add Divine WSF and Ghostly to showcase ([@LeviticusMB](https://github.com/LeviticusMB))
+ - [#7000](https://github.com/facebook/docusaurus/pull/7000) docs: remove unnecessary semicolon ([@imsingh](https://github.com/imsingh))
+- `docusaurus-plugin-content-docs`, `docusaurus-utils`
+ - [#7248](https://github.com/facebook/docusaurus/pull/7248) refactor: normalize Markdown linkification behavior, elaborate in documentation ([@Josh-Cena](https://github.com/Josh-Cena))
+- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-utils`
+ - [#7081](https://github.com/facebook/docusaurus/pull/7081) docs: fix some casing inconsistencies ([@Josh-Cena](https://github.com/Josh-Cena))
+
+#### :wrench: Maintenance
+
+- Other
+ - [#7309](https://github.com/facebook/docusaurus/pull/7309) chore: use "Maintenance" instead of "Internal" in changelog ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7300](https://github.com/facebook/docusaurus/pull/7300) misc: check doc page by Lighthouse CI ([@lex111](https://github.com/lex111))
+ - [#7266](https://github.com/facebook/docusaurus/pull/7266) misc: add links section to PR template ([@slorber](https://github.com/slorber))
+ - [#7224](https://github.com/facebook/docusaurus/pull/7224) chore: GitHub Actions cancel-in-progress ([@slorber](https://github.com/slorber))
+ - [#7216](https://github.com/facebook/docusaurus/pull/7216) chore: remove netlify-cli from devDependencies ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7211](https://github.com/facebook/docusaurus/pull/7211) chore: replace node 17 with 18 in CI matrix ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7168](https://github.com/facebook/docusaurus/pull/7168) misc: add CI actions/dependency-review-action for security ([@slorber](https://github.com/slorber))
+ - [#6984](https://github.com/facebook/docusaurus/pull/6984) misc: pin actions to a full-length commit SHA ([@naveensrinivasan](https://github.com/naveensrinivasan))
+ - [#7002](https://github.com/facebook/docusaurus/pull/7002) chore: regen examples for 2.0 beta.18 ([@slorber](https://github.com/slorber))
+- `docusaurus-logger`, `docusaurus-remark-plugin-npm2yarn`
+ - [#7295](https://github.com/facebook/docusaurus/pull/7295) refactor: use export = syntax for Node utility packages ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`
+ - [#7293](https://github.com/facebook/docusaurus/pull/7293) refactor(types): move non-core, non-public types out of the types package ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-types`, `docusaurus`
+ - [#7292](https://github.com/facebook/docusaurus/pull/7292) refactor(core): collocate CLI commands and their option types ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7084](https://github.com/facebook/docusaurus/pull/7084) refactor(core): code cleanup ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-module-type-aliases`, `docusaurus`
+ - [#7282](https://github.com/facebook/docusaurus/pull/7282) refactor(core): prefetch/preload refactor ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`, `docusaurus-theme-common`
+ - [#7273](https://github.com/facebook/docusaurus/pull/7273) refactor(theme-classic): multiple re-arrangements ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7268](https://github.com/facebook/docusaurus/pull/7268) refactor(theme-classic): DocPage theme refactors polish ([@slorber](https://github.com/slorber))
+ - [#7269](https://github.com/facebook/docusaurus/pull/7269) refactor: extract useSkipToContent() ([@slorber](https://github.com/slorber))
+ - [#7175](https://github.com/facebook/docusaurus/pull/7175) refactor(theme-classic): split CodeBlock ([@slorber](https://github.com/slorber))
+ - [#7067](https://github.com/facebook/docusaurus/pull/7067) refactor(theme-classic): extract doc-related navbar items' logic to theme-common ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7021](https://github.com/facebook/docusaurus/pull/7021) refactor(theme): extract plumbing code of BTT button into theme-common ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-theme-classic`
+ - [#7270](https://github.com/facebook/docusaurus/pull/7270) refactor(theme-classic): refactor TOC-related theme components ([@slorber](https://github.com/slorber))
+- `docusaurus`
+ - [#7220](https://github.com/facebook/docusaurus/pull/7220) refactor(cli): normalize the application of default option values ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7141](https://github.com/facebook/docusaurus/pull/7141) refactor(core): minor PendingNavigation refactor ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-content-docs`
+ - [#7243](https://github.com/facebook/docusaurus/pull/7243) chore: upgrade Jest to 28; add GitHub-actions reporter ([@Josh-Cena](https://github.com/Josh-Cena))
+ - [#7140](https://github.com/facebook/docusaurus/pull/7140) refactor(content-docs): split version handling into several files ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-live-codeblock`, `docusaurus`
+ - [#7194](https://github.com/facebook/docusaurus/pull/7194) fix: fix a few internal declaration semantic errors ([@Josh-Cena](https://github.com/Josh-Cena))
+- `create-docusaurus`, `docusaurus-migrate`, `docusaurus-theme-translations`, `docusaurus`
+ - [#7186](https://github.com/facebook/docusaurus/pull/7186) refactor: prefer fs.readJSON over readFile.then(JSON.parse) ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`
+ - [#7145](https://github.com/facebook/docusaurus/pull/7145) refactor: unify how MDX content types are represented ([@Josh-Cena](https://github.com/Josh-Cena))
+- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `lqip-loader`
+ - [#7138](https://github.com/facebook/docusaurus/pull/7138) chore: upgrade dependencies + upgrade React types ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`
+ - [#7131](https://github.com/facebook/docusaurus/pull/7131) chore: disable string escaping in snapshots ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-theme-common`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`
+ - [#7054](https://github.com/facebook/docusaurus/pull/7054) refactor(core): refactor routes generation logic ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-module-type-aliases`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`
+ - [#7042](https://github.com/facebook/docusaurus/pull/7042) refactor(core): reorganize files ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-plugin-content-docs`, `docusaurus-utils`, `docusaurus`
+ - [#7037](https://github.com/facebook/docusaurus/pull/7037) refactor(core): reorganize functions ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`
+ - [#7027](https://github.com/facebook/docusaurus/pull/7027) refactor(content-docs): deduplicate types, JSDoc for some APIs ([@Josh-Cena](https://github.com/Josh-Cena))
+
+#### :running_woman: Performance
+
+- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-utils-common`
+ - [#7085](https://github.com/facebook/docusaurus/pull/7085) refactor: mark a few client-side packages as side-effect-free ([@Josh-Cena](https://github.com/Josh-Cena))
+- `docusaurus-mdx-loader`, `docusaurus-remark-plugin-npm2yarn`
+ - [#4997](https://github.com/facebook/docusaurus/pull/4997) perf(mdx-loader): cache mdx/remark compiler instances ([@phryneas](https://github.com/phryneas))
+
+#### Committers: 47
+
+- Aaron Nwabuoku ([@aerovulpe](https://github.com/aerovulpe))
+- AkiraVoid ([@AkiraVoid](https://github.com/AkiraVoid))
+- Alexey Pyltsyn ([@lex111](https://github.com/lex111))
+- Andrei Canta ([@deiucanta](https://github.com/deiucanta))
+- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))
+- ApsarasX ([@ApsarasX](https://github.com/ApsarasX))
+- Chau Tran ([@nartc](https://github.com/nartc))
+- Chinazaekpere Ngubo ([@dr-ngubo](https://github.com/dr-ngubo))
+- Cwen Yin ([@cwen0](https://github.com/cwen0))
+- Dan Roscigno ([@DanRoscigno](https://github.com/DanRoscigno))
+- Elias Papavasileiou ([@elias-pap](https://github.com/elias-pap))
+- Evan ([@sulu5890](https://github.com/sulu5890))
+- Fusang❀ ([@cxOrz](https://github.com/cxOrz))
+- Indermohan Singh ([@imsingh](https://github.com/imsingh))
+- JMW ([@JohnnyMcWeed](https://github.com/JohnnyMcWeed))
+- Jeffrey Aven ([@jeffreyaven](https://github.com/jeffreyaven))
+- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))
+- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))
+- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))
+- Karl Ward ([@mjau-mjau](https://github.com/mjau-mjau))
+- Kayce Basques ([@kaycebasques](https://github.com/kaycebasques))
+- Leedom ([@leedom92](https://github.com/leedom92))
+- Lenz Weber-Tronic ([@phryneas](https://github.com/phryneas))
+- Lukas Bach ([@lukasbach](https://github.com/lukasbach))
+- Martin Blom ([@LeviticusMB](https://github.com/LeviticusMB))
+- Naveen ([@naveensrinivasan](https://github.com/naveensrinivasan))
+- Pablo Cordon ([@pcordon](https://github.com/pcordon))
+- Pierre-Gilles Leymarie ([@Pierre-Gilles](https://github.com/Pierre-Gilles))
+- Qi Zhang ([@zzzhangqi](https://github.com/zzzhangqi))
+- Sébastien Lorber ([@slorber](https://github.com/slorber))
+- Viktor Chernodub ([@chernodub](https://github.com/chernodub))
+- Zac A ([@sandypockets](https://github.com/sandypockets))
+- [@Dr-Electron](https://github.com/Dr-Electron)
+- [@chelproc](https://github.com/chelproc)
+- [@deployn](https://github.com/deployn)
+- [@duanwilliam](https://github.com/duanwilliam)
+- [@kgolubic](https://github.com/kgolubic)
+- [@redhat123456](https://github.com/redhat123456)
+- [@surendran82](https://github.com/surendran82)
+- [@svix-ken](https://github.com/svix-ken)
+- apq ([@AntonPalmqvist](https://github.com/AntonPalmqvist))
+- curatorcat.pcc.eth ([@CuratorCat](https://github.com/CuratorCat))
+- czhen ([@shczhen](https://github.com/shczhen))
+- loic ([@layerzzzio](https://github.com/layerzzzio))
+- mehdim ([@mxhdx](https://github.com/mxhdx))
+- rev ([@rev4324](https://github.com/rev4324))
+- sykp241095 ([@sykp241095](https://github.com/sykp241095))
+
## 2.0.0-beta.18 (2022-03-25)
#### :rocket: New Feature
diff --git a/website/versioned_docs/version-2.0.0-beta.17/guides/docs/docs-markdown-features.mdx b/website/versioned_docs/version-2.0.0-beta.17/guides/docs/docs-markdown-features.mdx
deleted file mode 100644
index 40be16cb9e54..000000000000
--- a/website/versioned_docs/version-2.0.0-beta.17/guides/docs/docs-markdown-features.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-id: markdown-features
-title: Docs Markdown Features
-description: Docusaurus Markdown features that are specific to the docs plugin
-slug: /docs-markdown-features
----
-
-Docs can use any [Markdown feature](../markdown-features/markdown-features-intro.mdx) and have a few additional docs-specific Markdown features.
-
-## Markdown front matter {#markdown-front-matter}
-
-Markdown docs have their own [Markdown front matter API](../../api/plugins/plugin-content-docs.md#markdown-front-matter).
-
-## Referencing other documents {#referencing-other-documents}
-
-If you want to reference another document file, you could use the relative path of the document you want to link to.
-
-Docusaurus will convert the file path to be the final document url path (and remove the `.md` extension).
-
-For example, if you are in `folder/doc1.md` and you want to reference `folder/doc2.md`, `folder/subfolder/doc3.md` and `otherFolder/doc4.md`:
-
-```md
-I am referencing a [document](doc2.md).
-
-Reference to another [document in a subfolder](subfolder/doc3.md).
-
-[Relative document](../otherFolder/doc4.md) referencing works as well.
-```
-
-:::tip
-
-Using relative _file_ paths (with `.md` extensions) instead of relative _URL_ links provides the following benefits:
-
-- links will keep working on the GitHub interface
-- you can customize the document slugs without having to update all the links
-- a versioned doc will link to another doc of the exact same version
-- relative links are very likely to break if you update the [`trailingSlash` config](../../api/docusaurus.config.js.md#trailing-slash)
-
-:::
diff --git a/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-head-metadata.mdx b/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-head-metadata.mdx
deleted file mode 100644
index fa987eb1fedf..000000000000
--- a/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-head-metadata.mdx
+++ /dev/null
@@ -1,67 +0,0 @@
----
-id: head-metadata
-title: Head Metadata
-description: Declaring page-specific head metadata through MDX
-slug: /markdown-features/head-metadata
----
-
-# Head Metadata
-
-Docusaurus automatically sets useful page metadata in ``, `` and `` for you.
-
-It is possible to add extra metadata (or override existing ones) by using the `` tag in Markdown files:
-
-```md title="markdown-features-head-metadata.mdx"
----
-id: head-metadata
-title: Head Metadata
----
-
-
-
-
-
-
Head Metadata customized title!
-
-
-
-
-
-
-# Head Metadata
-
-My text
-```
-
-```mdx-code-block
-
-
-
-
Head Metadata customized title!
-
-
-
-
-```
-
-:::tip
-
-This `
` declaration has been added to the current Markdown doc, as a demo.
-
-Open your browser DevTools and check how this page's metadata has been affected.
-
-:::
-
-:::tip
-
-**You don't always need this for typical SEO needs.** Content plugins (e.g. docs and blog) provide front matter options like `description`, `keywords`, and `image`, which will be automatically applied to both `description` and `og:description`, while you would have to manually declare two metadata tags when using the `
` tag.
-
-:::
-
-:::note
-
-This feature is built on top of the Docusaurus [`
`](./../../docusaurus-core.md#head) component.
-
-Refer to [react-helmet](https://github.com/nfl/react-helmet) for exhaustive documentation.
-
-:::
diff --git a/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-headings.mdx b/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-headings.mdx
deleted file mode 100644
index a4beb7bba3fe..000000000000
--- a/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-headings.mdx
+++ /dev/null
@@ -1,57 +0,0 @@
----
-id: headings
-title: Headings
-description: Using Markdown headings
-slug: /markdown-features/headings
----
-
-## Markdown headings {#markdown-headings}
-
-You can use regular Markdown headings.
-
-```
-## Level 2 title
-
-### Level 3 title
-
-#### Level 4 title
-```
-
-Markdown headings appear as a table of contents entry.
-
-## Heading ids {#heading-ids}
-
-Each heading has an id that can be automatically generated or explicitly specified.
-
-Heading ids allow you to link to a specific document heading in Markdown or JSX:
-
-```md
-[link](#heading-id)
-```
-
-```jsx
-link
-```
-
-### Generated ids {#generated-ids}
-
-By default, Docusaurus will generate heading ids for you, based on the heading text. For example, `### Hello World` will have id `hello-world`.
-
-Generated ids have **some limits**:
-
-- The id might not look good
-- You might want to **change or translate** the text without updating the existing id
-
-### Explicit ids {#explicit-ids}
-
-A special Markdown syntax lets you set an **explicit heading id**:
-
-```md
-### Hello World {#my-explicit-id}
-```
-
-:::tip
-
-Use the **[write-heading-ids](../../cli.md#docusaurus-write-heading-ids-sitedir)** CLI command to add explicit ids to all your Markdown documents.
-
-:::
diff --git a/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-inline-toc.mdx b/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-inline-toc.mdx
deleted file mode 100644
index 4a48251ac4d0..000000000000
--- a/website/versioned_docs/version-2.0.0-beta.17/guides/markdown-features/markdown-features-inline-toc.mdx
+++ /dev/null
@@ -1,173 +0,0 @@
----
-id: inline-toc
-title: Inline TOC
-description: Using inline table-of-contents inside Docusaurus Markdown
-slug: /markdown-features/inline-toc
----
-
-import BrowserWindow from '@site/src/components/BrowserWindow';
-
-Each Markdown document displays a tab of content on the top-right corner.
-
-But it is also possible to display an inline table of contents directly inside a markdown document, thanks to MDX.
-
-## Full table of contents {#full-table-of-contents}
-
-The `toc` variable is available in any MDX document and contains all the headings of an MDX document.
-
-By default, only `h2` and `h3` headings are displayed in the TOC. You can change which heading levels are visible by setting `minHeadingLevel` or `maxHeadingLevel`.
-
-```jsx
-import TOCInline from '@theme/TOCInline';
-
-;
-```
-
-```mdx-code-block
-import TOCInline from '@theme/TOCInline';
-
-
-
-
-
-
-```
-
-## Custom table of contents {#custom-table-of-contents}
-
-The `toc` prop is just a list of heading items:
-
-```ts
-type TOCItem = {
- value: string;
- id: string;
- level: number;
-};
-```
-
-Note that the `toc` global is a flat array, so you can easily cut out unwanted nodes or insert extra nodes, and create a new TOC tree.
-
-```jsx
-import TOCInline from '@theme/TOCInline';
-
- node.level === 2 || node.level === 4)}
-/>;
-```
-
-```mdx-code-block
-
- node.level === 2 || node.level === 4)} />
-
-```
-
----
-
-:::caution
-
-Below is just some dummy content to have more table of contents items available on the current page.
-
-:::
-
-## Example Section 1 {#example-section-1}
-
-Lorem ipsum
-
-### Example Subsection 1 a {#example-subsection-1-a}
-
-Lorem ipsum
-
-#### Example subsubsection 1 a I
-
-#### Example subsubsection 1 a II
-
-#### Example subsubsection 1 a III
-
-### Example Subsection 1 b {#example-subsection-1-b}
-
-Lorem ipsum
-
-#### Example subsubsection 1 b I
-
-#### Example subsubsection 1 b II
-
-#### Example subsubsection 1 b III
-
-### Example Subsection 1 c {#example-subsection-1-c}
-
-Lorem ipsum
-
-#### Example subsubsection 1 c I
-
-#### Example subsubsection 1 c II
-
-#### Example subsubsection 1 c III
-
-## Example Section 2 {#example-section-2}
-
-Lorem ipsum
-
-### Example Subsection 2 a {#example-subsection-2-a}
-
-Lorem ipsum
-
-#### Example subsubsection 2 a I
-
-#### Example subsubsection 2 a II
-
-#### Example subsubsection 2 a III
-
-### Example Subsection 2 b {#example-subsection-2-b}
-
-Lorem ipsum
-
-#### Example subsubsection 2 b I
-
-#### Example subsubsection 2 b II
-
-#### Example subsubsection 2 b III
-
-### Example Subsection 2 c {#example-subsection-2-c}
-
-Lorem ipsum
-
-#### Example subsubsection 2 c I
-
-#### Example subsubsection 2 c II
-
-#### Example subsubsection 2 c III
-
-## Example Section 3 {#example-section-3}
-
-Lorem ipsum
-
-### Example Subsection 3 a {#example-subsection-3-a}
-
-Lorem ipsum
-
-#### Example subsubsection 3 a I
-
-#### Example subsubsection 3 a II
-
-#### Example subsubsection 3 a III
-
-### Example Subsection 3 b {#example-subsection-3-b}
-
-Lorem ipsum
-
-#### Example subsubsection 3 b I
-
-#### Example subsubsection 3 b II
-
-#### Example subsubsection 3 b III
-
-### Example Subsection 3 c {#example-subsection-3-c}
-
-Lorem ipsum
-
-#### Example subsubsection 3 c I
-
-#### Example subsubsection 3 c II
-
-#### Example subsubsection 3 c III
diff --git a/website/versioned_docs/version-2.0.0-beta.17/advanced/architecture.md b/website/versioned_docs/version-2.0.0-beta.19/advanced/architecture.md
similarity index 100%
rename from website/versioned_docs/version-2.0.0-beta.17/advanced/architecture.md
rename to website/versioned_docs/version-2.0.0-beta.19/advanced/architecture.md
diff --git a/website/versioned_docs/version-2.0.0-beta.17/advanced/client.md b/website/versioned_docs/version-2.0.0-beta.19/advanced/client.md
similarity index 64%
rename from website/versioned_docs/version-2.0.0-beta.17/advanced/client.md
rename to website/versioned_docs/version-2.0.0-beta.19/advanced/client.md
index be140eac465d..6019e7328997 100644
--- a/website/versioned_docs/version-2.0.0-beta.17/advanced/client.md
+++ b/website/versioned_docs/version-2.0.0-beta.19/advanced/client.md
@@ -1,3 +1,7 @@
+---
+description: How the Docusaurus client is structured
+---
+
# Client architecture
## Theme aliases {#theme-aliases}
@@ -82,7 +86,7 @@ Client modules are part of your site's bundle, just like theme components. Howev
These modules are imported globally before React even renders the initial UI.
-```js title="App.tsx"
+```js title="@docusaurus/core/App.tsx"
// How it works under the hood
import '@generated/client-modules';
```
@@ -113,5 +117,70 @@ CSS stylesheets imported as client modules are [global](../styling-layout.md#glo
}
```
-
-
+### Client module lifecycles {#client-module-lifecycles}
+
+Besides introducing side-effects, client modules can optionally export two lifecycle functions: `onRouteUpdate` and `onRouteDidUpdate`.
+
+Because Docusaurus builds a single-page application, `script` tags will only be executed the first time the page loads, but will not re-execute on page transitions. These lifecycles are useful if you have some imperative JS logic that should execute every time a new page has loaded, e.g., to manipulate DOM elements, to send analytics data, etc.
+
+For every route transition, there will be several important timings:
+
+1. The user clicks a link, which causes the router to change its current location.
+2. Docusaurus preloads the next route's assets, while keeping displaying the current page's content.
+3. The next route's assets have loaded.
+4. The new location's route component gets rendered to DOM.
+
+`onRouteUpdate` will be called at event (2), and `onRouteDidUpdate` will be called at (4). They both receive the current location and the previous location (which can be `null`, if this is the first screen).
+
+`onRouteUpdate` can optionally return a "cleanup" callback, which will be called at (3). For example, if you want to display a progress bar, you can start a timeout in `onRouteUpdate`, and clear the timeout in the callback. (The classic theme already provides an `nprogress` integration this way.)
+
+Note that the new page's DOM is only available during event (4). If you need to manipulate the new page's DOM, you'll likely want to use `onRouteDidUpdate`, which will be fired as soon as the DOM on the new page has mounted.
+
+```js title="myClientModule.js"
+import type {Location} from 'history';
+
+export function onRouteDidUpdate({location, previousLocation}) {
+ // Don't execute if we are still on the same page; the lifecycle may be fired
+ // because the hash changes (e.g. when navigating between headings)
+ if (location.pathname !== previousLocation?.pathname) {
+ const title = document.getElementsByTagName('h1')[0];
+ if (title) {
+ title.innerText += '❤️';
+ }
+ }
+}
+
+export function onRouteUpdate({location, previousLocation}) {
+ if (location.pathname !== previousLocation?.pathname) {
+ const progressBarTimeout = window.setTimeout(() => {
+ nprogress.start();
+ }, delay);
+ return () => window.clearTimeout(progressBarTimeout);
+ }
+ return undefined;
+}
+```
+
+Or, if you are using TypeScript and you want to leverage contextual typing:
+
+```ts title="myClientModule.ts"
+import type {ClientModule} from '@docusaurus/types';
+
+const module: ClientModule = {
+ onRouteUpdate({location, previousLocation}) {
+ // ...
+ },
+ onRouteDidUpdate({location, previousLocation}) {
+ // ...
+ },
+};
+export default module;
+```
+
+Both lifecycles will fire on first render, but they will not fire on server-side, so you can safely access browser globals in them.
+
+:::tip Prefer using React
+
+Client module lifecycles are purely imperative, and you can't use React hooks or access React contexts within them. If your operations are state-driven or involve complicated DOM manipulations, you should consider [swizzling components](../swizzling.md) instead.
+
+:::
diff --git a/website/versioned_docs/version-2.0.0-beta.17/advanced/index.md b/website/versioned_docs/version-2.0.0-beta.19/advanced/index.md
similarity index 100%
rename from website/versioned_docs/version-2.0.0-beta.17/advanced/index.md
rename to website/versioned_docs/version-2.0.0-beta.19/advanced/index.md
diff --git a/website/versioned_docs/version-2.0.0-beta.17/advanced/plugins.md b/website/versioned_docs/version-2.0.0-beta.19/advanced/plugins.md
similarity index 99%
rename from website/versioned_docs/version-2.0.0-beta.17/advanced/plugins.md
rename to website/versioned_docs/version-2.0.0-beta.19/advanced/plugins.md
index 5e45b9d82bfa..29910ff0e2f9 100644
--- a/website/versioned_docs/version-2.0.0-beta.17/advanced/plugins.md
+++ b/website/versioned_docs/version-2.0.0-beta.19/advanced/plugins.md
@@ -51,7 +51,7 @@ module.exports = {
Then in the folder `my-plugin`, you can create an `index.js` such as this:
-```js title="my-plugin.js"
+```js title="my-plugin/index.js"
module.exports = async function myPlugin(context, options) {
// ...
return {
diff --git a/website/versioned_docs/version-2.0.0-beta.17/advanced/routing.md b/website/versioned_docs/version-2.0.0-beta.19/advanced/routing.md
similarity index 98%
rename from website/versioned_docs/version-2.0.0-beta.17/advanced/routing.md
rename to website/versioned_docs/version-2.0.0-beta.19/advanced/routing.md
index 9aca36f249bb..82c85b7aae12 100644
--- a/website/versioned_docs/version-2.0.0-beta.17/advanced/routing.md
+++ b/website/versioned_docs/version-2.0.0-beta.19/advanced/routing.md
@@ -257,14 +257,14 @@ If you put some HTML pages under the `static` folder, they will be copied to the
-- /pure-html
+- [/pure-html](/pure-html)
- [pathname:///pure-html](pathname:///pure-html)
:::tip
-The first link will trigger a "broken links detected" check during the production build.
+The first link will **not** trigger a "broken links detected" check during the production build, because the respective file actually exists. Nevertheless, when you click on the link, a "page not found" will be displayed until you refresh.
:::
diff --git a/website/versioned_docs/version-2.0.0-beta.17/advanced/ssg.md b/website/versioned_docs/version-2.0.0-beta.19/advanced/ssg.md
similarity index 93%
rename from website/versioned_docs/version-2.0.0-beta.17/advanced/ssg.md
rename to website/versioned_docs/version-2.0.0-beta.19/advanced/ssg.md
index b5b4e81f9f58..0a394f9179b4 100644
--- a/website/versioned_docs/version-2.0.0-beta.17/advanced/ssg.md
+++ b/website/versioned_docs/version-2.0.0-beta.19/advanced/ssg.md
@@ -100,6 +100,8 @@ These HTML files are the first to arrive at the user's browser screen when a URL
In CSR-only apps, all DOM elements are generated on client side with React, and the HTML file only ever contains one root element for React to mount DOM to; in SSR, React is already facing a fully built HTML page, and it only needs to correlate the DOM elements with the virtual DOM in its model. This step is called "hydration". After React has hydrated the static markup, the app starts to work as any normal React app.
+Note that Docusaurus is ultimately a single-page application, so static site generation is only an optimization (_progressive enhancement_, as it's called), but our functionality does not fully depend on those HTML files. This is contrary to site generators like [Jekyll](https://jekyllrb.com/) and [Docusaurus v1](https://v1.docusaurus.io/), where all files are statically transformed to markup, and interactiveness is added through external JavaScript linked with `