Compare commits

...

224 Commits

Author SHA1 Message Date
Sébastien Lorber 26e0bd928c
docs(website): Announce v3.2 on website/homepage (#10004) 2024-03-29 19:43:45 +01:00
Sébastien Lorber 70415a4cef
chore: fix codesandbox default privacy (#9993) 2024-03-29 18:30:47 +01:00
Sébastien Lorber a34e3f8f91
chore: update examples to v3.2.0 (#10003) 2024-03-29 18:27:36 +01:00
Sébastien Lorber 7edfe0e2d1
docs: fix 3.2 blog post headings (#10002) 2024-03-29 18:06:33 +01:00
Sébastien Lorber debfc87d34
chore: release Docusaurus v3.2.0 (#10000) 2024-03-29 17:51:27 +01:00
Sébastien Lorber 1a5fe5c412
fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak (#9999) 2024-03-29 15:07:53 +01:00
ozaki 821247142e
refactor(utils): remove duplicated function (#9972)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-03-29 14:45:30 +01:00
Sébastien Lorber efbe474e9c
refactor(core): improve dev perf, fine-grained site reloads - part 3 (#9975) 2024-03-28 12:39:07 +01:00
dependabot[bot] 06e70a4f9a
chore(deps): bump actions/dependency-review-action from 4.1.3 to 4.2.4 (#9981)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 11:37:03 +01:00
dependabot[bot] 1430c85a82
chore(deps): bump katex from 0.16.8 to 0.16.10 (#9982)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 11:36:54 +01:00
dependabot[bot] 8024d9b858
chore(deps): bump express from 4.18.2 to 4.19.2 (#9983)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 11:36:44 +01:00
dependabot[bot] 3877c1254f
chore(deps): bump webpack-dev-middleware from 5.3.3 to 5.3.4 (#9977)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
2024-03-24 17:26:35 +01:00
Vlad Nestorov 6f17d54938
docs: use official GitHub Action to deploy to GitHub Pages (#9937)
Co-authored-by: ozakione <29860391+OzakIOne@users.noreply.github.com>
2024-03-21 16:01:10 +01:00
Sébastien Lorber 93a09ea086
refactor(core): improve dev perf, fine-grained site reloads - part2 (#9968) 2024-03-21 13:05:19 +01:00
Fafowora Sunkanmi 91f93656d8
docs: replace VuePress by VitePress on tool comparison section (#9971)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2024-03-21 13:05:05 +01:00
Zed Spencer-Milnes 9a47ec0581
refactor(website): organise blog posts by year (#9965) 2024-03-20 18:08:05 +01:00
Sébastien Lorber 9017fb9b1d
feat(sitemap): add support for "lastmod" (#9954) 2024-03-20 11:47:44 +01:00
Sébastien Lorber 465cf4d82c
refactor(docs,blog): last update timestamp should be in milliseconds instead of seconds (#9963) 2024-03-19 09:51:27 +01:00
dependabot[bot] 6c724ed857
chore(deps): bump follow-redirects from 1.15.4 to 1.15.6 (#9958)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 16:28:58 +01:00
ozaki c745021b01
feat(blog): add LastUpdateAuthor & LastUpdateTime (#9912)
Co-authored-by: OzakIOne <OzakIOne@users.noreply.github.com>
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-03-15 12:50:06 +01:00
Max Schmitt 7938803747
fix(a11y): move focus algolia-search focus back to search input on Escape (#9945) 2024-03-14 17:26:26 +01:00
ozaki 14bec09670
fix(blog): apply trailing slash to blog feed (#9920)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-03-14 16:45:00 +01:00
Max Schmitt 032e3b8f4d
fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button (#9944) 2024-03-14 14:59:36 +01:00
ozaki 6151a41428
docs(website): update wrong translate id (#9946) 2024-03-14 12:54:41 +01:00
Sébastien Lorber 8d115a9e0d
feat(core): add new plugin allContentLoaded lifecycle (#9931) 2024-03-08 19:13:59 +01:00
Sébastien Lorber d02b96f7f5
refactor(core): improve dev perf, fine-grained site reloads - part1 (#9903) 2024-03-08 12:59:11 +01:00
ozaki eb6424cc27
docs(showcase): update link (#9929) 2024-03-07 23:47:28 +01:00
Hallbjörn Magnússon ee53208f9d
feat(theme-translations) Icelandic (is) (#9928)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2024-03-07 19:18:40 +01:00
suenryu 9d89607d4d
fix(theme-translations): complete and modify Japanese translations (#9915) 2024-03-07 18:59:09 +01:00
ozaki 319d73d54f
docs(team): update active docusaurus team member (#9893)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
Co-authored-by: OzakIOne <OzakIOne@users.noreply.github.com>
2024-03-06 11:17:28 +01:00
suenryu 2b6d8bd646
fix(theme-translations): add Japanese translations (#9910) 2024-03-06 00:00:57 +01:00
ozaki 6d8108b653
docs: update legacy MDX v1 links to markdown links (#9914) 2024-03-05 23:46:52 +01:00
ozaki 2851c93d0d
feat(blog): allow processing blog posts through a processBlogPosts function (#9886)
Co-authored-by: OzakIOne <OzakIOne@users.noreply.github.com>
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2024-03-05 22:58:16 +01:00
ozaki 05279dc3d8
docs: update legacy MDX v1 links to markdown links (#9913) 2024-03-05 20:04:12 +01:00
Joshua Chen 324c853da0
docs: emphasize "index slug" convention (#9906) 2024-03-04 12:33:17 +01:00
Sébastien Lorber 2152572a3b
fix(mdx-loader): mdx-code-block should support CRLF (#9897) 2024-02-29 13:20:03 +01:00
dependabot[bot] 0589b1475d
chore(deps): bump actions/dependency-review-action from 4.1.2 to 4.1.3 (#9892)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 10:05:12 +01:00
Sébastien Lorber f159bb2472
perf: optimize getFileCommitDate, make it async (#9890) 2024-02-24 23:32:18 +01:00
ozaki 0279c329ad
refactor(theme): dates should be formatted on the client-side instead of in nodejs code (#9868)
Co-authored-by: OzakIOne <OzakIOne@users.noreply.github.com>
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-23 18:30:05 +01:00
Sébastien Lorber 6bf21d215c
fix(core): fix default i18n calendar used, infer it from locale if possible (#9878) 2024-02-22 17:06:12 +01:00
axel7083 85d74245f8
fix(argos): waiting for images decoding (#9875)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-22 15:02:39 +01:00
Josue [4tro] A 76c0f5c2d9
fix(theme-translations): complete and improve Spanish theme translations (#9872)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2024-02-22 14:35:57 +01:00
dependabot[bot] 7a4826baa8
chore(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.2 (#9869)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 14:02:19 +01:00
Aolin 06dabc69bd
docs: fix typos in deployment.mdx (#9877) 2024-02-22 10:39:24 +01:00
dependabot[bot] 4ca9b8e508
chore(deps): bump ip from 2.0.0 to 2.0.1 (#9874)
Bumps [ip](https://github.com/indutny/node-ip) from 2.0.0 to 2.0.1.
- [Commits](https://github.com/indutny/node-ip/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: ip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:43:21 -05:00
Chris Bateman 6b0f9703a3
chore(website): update @crowdin/crowdin-api-client (#9865) 2024-02-20 19:50:39 +01:00
krinza.eth 0d3ac877d5
docs(showcase): remove supabase (#9856)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2024-02-20 17:54:45 +01:00
ozaki 1bbc68bc30
chore(deps): update npm to yarn from 2.0.0 to 2.2.1 (#9861)
* chore(deps): update npm to yarn from 2.0.0 to 2.2.1

* test: update tests
2024-02-17 16:36:57 -05:00
Нуриль Барадусов 3426f848a3
fix(theme-classic): should use plurals for category items description (#9851)
Co-authored-by: Нуриль Барадусов <nuril.b@ati.su>
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-15 20:07:48 +01:00
Sébastien Lorber b26e262981
fix(core): ensure core error boundary is able to render theme layout (#9852) 2024-02-15 17:25:17 +01:00
John Reilly 60d9346965
refactor(theme): use JSON-LD instead of microdata for blog structured data (#9669)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-15 16:25:21 +01:00
翊小久 8abd1899a6
feat(swizzle): ask user preferred language if no language CLI option provided (#9681)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-15 15:08:01 +01:00
Rafael Martins 628752d92a
feat(create-docusaurus): ask user for preferred language when no language CLI option provided (#9442)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-15 13:05:05 +01:00
ozaki 6fd8408a2c
docs: typo (#9845) 2024-02-14 14:39:03 +01:00
ozaki 77723a1121
feat(plugin-vercel-analytics): add new vercel analytics plugin (#9687)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-14 13:25:39 +01:00
Liviu Ionescu 70ba9d2d01
feat(blog): add blog pageBasePath plugin option (#9838)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-13 13:27:23 +01:00
dependabot[bot] cc7f43580c
chore(deps): bump actions/setup-node from 4.0.1 to 4.0.2 (#9843)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-13 11:21:17 +01:00
ozaki a296d727b6
docs(blog-only): add warning and improve error log (#9839) 2024-02-09 19:34:32 +01:00
Sébastien Lorber 34297bc56d
refactor(core): internalize, simplify and optimize the SSG logic (#9798) 2024-02-08 18:44:45 +01:00
dependabot[bot] d740be0e9c
chore(deps): bump treosh/lighthouse-ci-action from 10.1.0 to 11.4.0 (#9824)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 10:28:33 +01:00
dependabot[bot] 506e763c07
chore(deps): bump marocchino/sticky-pull-request-comment from 2.8.0 to 2.9.0 (#9823)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 10:28:25 +01:00
n4n5 9e5679ff1a
docs: Add docs for Mermaid Component (#9816)
* add docs

* fix: missplace

* Update markdown-features-diagrams.mdx

* yarn format

* fix: correct language

* fix: typo
2024-02-02 17:26:07 +01:00
Vahid Naderi c1ac06768b
fix(i18n): add missing theme translations for fa locale (#9812) 2024-02-01 14:21:36 +01:00
Alberto Vilches 436e20a42a
docs: add "TypeScript support" section in the "Modules using Sass/SCSS" section (#9807)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
2024-02-01 12:03:53 +01:00
Tatsunori Uchino 09b2005759
docs: backport #9471, #9692, and #9695 changes in v3.1.1 docs (#9804) 2024-02-01 11:46:18 +01:00
Sébastien Lorber 48cab8e3fb
chore: release Docusaurus 3.1.1 examples (#9797) 2024-01-26 14:33:03 +01:00
Sébastien Lorber ed88097f63
chore: release Docusaurus 3.1.1 docs (#9794) 2024-01-26 14:10:57 +01:00
Shamoil Arsiwala 3d8b70e0b3
docs: fix documented path of swizzled component (#9786) 2024-01-25 19:57:42 +01:00
Sébastien Lorber d3142c5ed5
fix(core): broken links optimization behaves differently than non-optimized logic (#9791) 2024-01-25 19:49:45 +01:00
Sébastien Lorber 2f2ed41829
fix(core): links with target "_blank" should no be checked by the broken link checker (#9788) 2024-01-25 18:18:11 +01:00
Emjek Cordover cce1698c60
docs: Note `showLastUpdateTime` requires complete checkout (#9784) 2024-01-25 13:19:55 +01:00
eitsupi 0266549a51
fix(mdx-loader): allow spaces before `mdx-code-block` info string (#9776) 2024-01-24 14:12:54 +01:00
Sébastien Lorber c827b6de2d
perf(core): optimize broken links checker (#9778) 2024-01-24 12:14:26 +01:00
Cole Cecil 8597e5dcdb
docs: update troubleshooting details for v3 migration (#9782) 2024-01-24 12:12:06 +01:00
dawei-wang 4b444d55e5
fix(create-docusaurus): fix typo in init template sample docs (#9783) 2024-01-24 11:57:55 +01:00
dependabot[bot] 333889d38d
chore(deps): bump actions/dependency-review-action from 3.1.5 to 4.0.0 (#9779)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-23 10:17:31 +01:00
Anatoly Kopyl 3c982127d7
fix(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials (#9684)
Co-authored-by: Titus <tituswormer@gmail.com>
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2024-01-19 18:58:11 +01:00
Jack Robson bed11f62bc
fix(core): conditionally include `hostname` parameter when using… (#9407) 2024-01-18 14:03:45 +01:00
Tatsunori Uchino f794559962
docs: add admonition for incompatibility with `*` and `**` in Chinese and Japanese in MDX v2+ (#9692) 2024-01-18 13:50:15 +01:00
Clément Vannicatte 604ccaa89c
docs: update Algolia DocSearch support links (#9755) 2024-01-18 13:31:24 +01:00
Sébastien Lorber 0469590cc4
docs: GitHub actions deployment should use fetch-depth: 0 + actions upgrades (#9759) 2024-01-18 12:01:02 +01:00
Sanjaiyan Parthipan e1899786a4
polish(theme): MDX images should use async decoding (#9470) 2024-01-12 21:25:18 +01:00
Tatsunori Uchino d75f99f9a6
fix(theme-common): fix missing code block MagicComments style in Visual Basic (.NET) 16 (#9727) 2024-01-12 21:13:24 +01:00
Sébastien Lorber 0a2e6e67d3
fix: remove old useless mdx typedefs (#9733) 2024-01-12 19:12:09 +01:00
Sébastien Lorber 4388267c26
fix(core): various broken anchor link fixes (#9732) 2024-01-12 16:09:45 +01:00
dependabot[bot] d94adf6a6c
chore(deps): bump follow-redirects from 1.15.2 to 1.15.4 (#9723)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 13:24:00 +01:00
dependabot[bot] 21599e22d0
chore(deps): bump actions/dependency-review-action from 3.1.4 to 3.1.5 (#9718)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 12:58:44 +01:00
Tatsunori Uchino 849608bcab
chore: check MDX even by VS Code cspell extension (#9713) 2024-01-08 15:51:20 +01:00
Sébastien Lorber e19b681e51
chore: Docusaurus v3.1 examples (#9707) 2024-01-05 19:46:02 +01:00
Sébastien Lorber c7e090f13a
chore: Docusaurus v3.1 docs + changelog + blog post (#9706) 2024-01-05 19:31:58 +01:00
Sébastien Lorber 16500436f7
fix(theme): allow empty code blocks and live playgrounds (#9704) 2024-01-05 13:37:48 +01:00
Sébastien Lorber ca09f238f3
docs: replace docLayoutComponent by new Docusaurus v3 options (#9697) 2024-01-04 14:27:51 +01:00
Sébastien Lorber e0052edc4c
fix(create-docusaurus): fix init template code blocks, and little improvements (#9696)
Co-authored-by: Ivan Mar (sOkam!) <7308253+heysokam@users.noreply.github.com>
2024-01-04 14:03:10 +01:00
ozaki fd49301a45
feat(core): make broken link checker detect broken anchors - add `onBrokenAnchors` config (#9528)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2024-01-04 12:56:20 +01:00
Tatsunori Uchino 332a466893
docs: add guide to keep title of caution admonitions (#9695) 2024-01-04 11:05:24 +01:00
ayip8 ece3d04d57
docs: Updates the Algolia DocSearch eligibility description to match DocSearch page (#9693) 2024-01-04 01:22:19 +01:00
Shahed Nasser ac5642079d
docs: update CLI command options (#9690) 2024-01-03 12:09:24 +01:00
Greg Bergé 5baa68bea0
docs: add Argos badge (#9685) 2024-01-02 15:45:58 +01:00
Kyle Tsang 5123035333
docs: fix remark-emoji name in 3.0.1 migration guide (#9677) 2024-01-02 15:44:06 +01:00
Simen Bekkhus 3389daefac
fix(pwa-plugin): upgrade workbox (#9668) 2023-12-27 23:32:33 +01:00
Sébastien Lorber bfb882c2f0
feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions (#9674) 2023-12-27 23:19:25 +01:00
Tatsunori Uchino bd7d64f455
feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML (#9671) 2023-12-27 23:02:48 +01:00
Arthur d9d700c54f
docs(math): use list of steps for clearer guidance (#9659)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-12-22 13:15:25 +01:00
dependabot[bot] a180a3012f
chore(deps): bump actions/setup-node from 4.0.0 to 4.0.1 (#9642)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-21 17:52:25 +01:00
Joshua Chen 60d62d1d65
fix(cli): output help when no conventional config + no subcommand (#9648) 2023-12-21 12:28:37 +01:00
Sébastien Lorber affca7a9a2
feat: siteConfig.markdown.parseFrontMatter hook (#9624) 2023-12-16 02:50:26 +01:00
Nick Partridge 28e7298211
docs: slight improvement to GitHub header link styles (#9634)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-12-15 12:09:00 +01:00
dependabot[bot] 63d9bf2fbc
chore(deps): bump axios from 1.5.1 to 1.6.2 (#9633)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-14 13:46:50 +01:00
Sébastien Lorber e844c57e89
chore: attempt fo fix Lint Autofix workflow (#9632) 2023-12-14 13:32:00 +01:00
Sébastien Lorber 991429ff8a
fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync (#9631) 2023-12-14 12:56:28 +01:00
domeav 61116e2ad6
docs: Crowdin + MT issue (#9620)
Co-authored-by: Dominique Eav <dominique.eav@blue-mind.net>
2023-12-09 00:01:43 +01:00
ozaki d3752d227b
feat(core): enable port configuration via environment variable (#9610)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2023-12-07 11:46:35 +01:00
Lucas Rosa e00340331d
docs: fix docusaurus-core.mdx typo on useGlobalData (#9616) 2023-12-07 11:31:11 +01:00
Joshua Chen c8c93a3854
fix(utils): Markdown link replacement with <> but no spaces (#9617) 2023-12-07 11:27:28 +01:00
axmmisaka 8dd1e13f2a
fix(type-aliases): add `title` prop for imported inline SVG React components (#9612)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2023-12-05 17:29:38 +01:00
dependabot[bot] 56396f32eb
chore(deps): bump actions/dependency-review-action from 3.1.3 to 3.1.4 (#9613)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-05 16:39:08 +01:00
ozaki 4cc56133f7
fix(content-blog): add baseUrl for author.image_url (#9581) 2023-12-05 16:36:46 +01:00
Sébastien Lorber 7650829e91
chore: add lint autofix CI job (#9604) 2023-12-01 20:09:04 +01:00
Janessa Garrow 209b035399
refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize (#9335)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-12-01 17:40:27 +01:00
Zwyx b40524fe5f
docs: fix v2 admonitions syntax being replaced in migration guide (#9574) 2023-12-01 16:42:26 +01:00
Sébastien Lorber 452adcf735
docs: add link to onDuplicateRoutes page (#9602) 2023-12-01 16:15:43 +01:00
c0h1b4 bfd2cdbd65
fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) (#9477) 2023-12-01 16:15:03 +01:00
Sébastien Lorber 321e674cc6
chore: fix argos workflow (#9601) 2023-12-01 15:58:31 +01:00
Sébastien Lorber 13cd6d4ffd
chore: examples for Docusaurus 3.0.# (#9599) 2023-11-30 20:07:10 +01:00
Sébastien Lorber d59ea067ec
chore: docs for Docusaurus 3.0.1 (#9597) 2023-11-30 19:46:19 +01:00
Sébastien Lorber dc3584c2aa
docs: remove legacy useless readme section (#9595) 2023-11-30 18:38:51 +01:00
Tony 24e5b2c95c
docs: add meilisearch-docsearch to resources (#9594) 2023-11-30 18:18:31 +01:00
洪鈞閔 ( jasper ) 6e8292da4c
docs: update guide to mdx v3 typo (#9585) 2023-11-26 18:50:13 +01:00
Seth Falco 17c93e444e
docs: easyops-cn/docusarus-search-local v3 support (#9583) 2023-11-26 15:21:55 +01:00
Timo Wenz 829fbbdea6
docs: Anchor Tag fixed in README.md Header (#9576) 2023-11-23 22:17:09 +01:00
MCR Studio dcb36facc6
chore(debug-plugin): migrate to a new maintained JSON Viewer (#9566)
Co-authored-by: Joey Clover <joey@popos.local>
2023-11-23 19:53:45 +01:00
Tatsunori Uchino 6cc29fac01
docs: add heads up for Prettier users (#9471)
* docs: add a note on the use of Prettier for MDX

* docs: add guides for Prettier users migrating to v3

* Update website/docs/guides/markdown-features/markdown-features-react.mdx

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>

* docs: Update MDX version

* Update website/docs/migration/v3.mdx

* Update v3.mdx

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-11-23 13:38:04 -05:00
ozaki 8dc24b6a98
docs: broken link in release 3.0 page (#9573)
fix: typo
2023-11-23 00:28:14 -05:00
Chongyi Zheng bda8f14f89
chore: upgrade prism-react-renderer to 2.3.0 to avoid older clsx (#9572) 2023-11-21 23:37:11 +01:00
Sébastien Lorber 7c32fc341f
fix: add v2 retrocompatible support for quoted admonitions (#9570) 2023-11-21 20:49:34 +01:00
Chongyi Zheng 2c0bf8a3d8
chore: Upgrade clsx to 2.0.0 (#9464)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-11-21 19:29:18 +01:00
dependabot[bot] afacb110b5
chore(deps): bump actions/github-script from 7.0.0 to 7.0.1 (#9568)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 12:41:10 +01:00
Sébastien Lorber 58f59e7f89
fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting (#9567) 2023-11-21 12:40:28 +01:00
Nick Gerleman 424ffd2e29
chore(core): replace `wait-on` dependency with custom lighter code (#9547) 2023-11-20 17:45:01 +01:00
dependabot[bot] 7dcad0c632
chore(deps): bump actions/github-script from 6.4.1 to 7.0.0 (#9543)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-11-16 23:52:12 +01:00
Agastya Darma aeca87a202
docs: enhance og image tag description in documentation (#9560) 2023-11-16 11:10:11 -05:00
Shreesh Nautiyal 6f70b27694
fix(theme-classic): fixed wrong cursor on dropdown menu in navbar, when window is small (#9398) 2023-11-15 17:29:12 -05:00
Kacper Choła cf08ec9790
chore: remove CI Score badge (#9542) 2023-11-15 17:27:47 -05:00
dependabot[bot] 5e1587b4d9
chore(deps): bump actions/dependency-review-action from 3.1.1 to 3.1.3 (#9544)
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 3.1.1 to 3.1.3.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](9f45b2463b...7bbfa034e7)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-15 13:28:40 -05:00
Adam Patterson 78606c4d9a
docs: add missing comma (#9555)
* Update v3.mdx Missing comma

* Fix more

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-11-15 12:37:20 -05:00
Oluwatobi Sofela daf47dfba1
docs: delete duplicate closing div tag (#9545)
* docs: delete duplicate closing div tag

* Fix another

* Fix another

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-11-15 12:21:16 -05:00
Emma Alexia fed25eed0b
docs: Remove extraneous "hey" from configuration page (#9540)
* fix: Remove extraneous "hey" in Docusaurus configuration docs

* Fix

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-11-13 11:15:44 -05:00
Sébastien Lorber b464545629
fix: v3 admonitions should support v2 title syntax for nested admonitions (#9535)
Fix admonition title mdx v1 compat option when admonition is nested
2023-11-11 22:23:27 +01:00
reece-white 95d3a65e74
chore: ugrade babel dependencies to v7.23.3 (#9529) 2023-11-10 19:16:36 +01:00
Mikey O'Toole be5b5c660f
docs: versioning docs should show example versioned sidebar files (#9500)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-11-10 19:03:18 +01:00
Sébastien Lorber e68ef88336
fix(theme): docs html sidebar items should always be visible (#9531) 2023-11-10 18:12:55 +01:00
Sébastien Lorber 328e5f7ddc
fix(theme): fix firefox CSS :has() support bug (#9530) 2023-11-10 17:46:25 +01:00
dependabot[bot] e494f16d3c
chore(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.1 (#9510)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 12:22:13 +01:00
Shahed Nasser 9b66f575e7
docs: fix incorrect package name for remark-emoji in migration guide (#9522) 2023-11-09 13:08:49 -05:00
Sébastien Lorber 791da2e4a1
fix(create-docusaurus): fix readme docusaurus 2 ref (#9487) 2023-10-31 23:15:16 +01:00
Mikey O'Toole 9a425bc51b
fix(website): Fix typo in announcement bar (#9484)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-10-31 23:00:14 +01:00
Sébastien Lorber b3e16c66f3
chore: update examples for v3.0.0 (#9482) 2023-10-31 22:53:06 +01:00
Sébastien Lorber a456fefca1
docs: Docusaurus v3.0 blog post (#9433)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: Dmitry Vinnik <dmitryvinn@users.noreply.github.com>
2023-10-31 17:04:44 +01:00
Sébastien Lorber 85e5e552cb
chore: release Docusaurus 3.0.0 (#9478) 2023-10-31 16:39:21 +01:00
Sébastien Lorber 10897416dc
docs: archive v2 docs versions + create 2.x docs (#9472) 2023-10-30 14:06:32 +01:00
Sébastien Lorber 495c7936b6
chore: v3.0.0-rc.1 release (#9453) 2023-10-26 20:10:02 +02:00
Sébastien Lorber 4a0bd92148
docs: v3 upgrade guide should mention MDX v1 compat options (#9452) 2023-10-26 15:58:37 +02:00
Sébastien Lorber 7e456ece3c
feat(mdx-loader): upgrade to MDX v3 + (#9451) 2023-10-26 15:47:11 +02:00
Sébastien Lorber 8d19054d91
fix(theme): fix useWindowSize React hydration issue (#9446) 2023-10-25 18:18:15 +02:00
Sébastien Lorber d07567e411
chore: revert Lighthouse numberOfRuns due to bad/verbose reporting (#9448) 2023-10-25 12:28:49 +02:00
Sébastien Lorber dd03a25a71
chore: Make Lighthouse CI run on local build (#9447) 2023-10-25 11:44:47 +02:00
ozaki c6762a2542
feat(mdx-loader): Remark plugin to report unused MDX / Markdown directives (#9394)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-10-24 16:15:49 +02:00
Greg Bergé 56cc8e8ffa
chore(ci): fix missing screenshots on Argos (#9445) 2023-10-24 13:04:18 +02:00
Sébastien Lorber f80e1bdb32
refactor(blog-plugin): blog archive reverse ordering of posts (#9438) 2023-10-24 12:24:43 +02:00
dependabot[bot] 911dfb46d7
chore(deps): bump actions/setup-node from 3 to 4 (#9440)
* chore(deps): bump actions/setup-node from 3 to 4

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update version numbers

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-10-23 16:38:50 -04:00
dependabot[bot] e525794c9e
chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 (#9441)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8ade135a41...b4ffde65f4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:33:21 -04:00
Sébastien Lorber aa958f0cc1
fix(plugin-blog): blog archive should hide unlisted blog posts (#9437) 2023-10-23 15:27:41 +02:00
Greg Bergé 2bb4fd0a65
chore(ci): use new Argos playwright integration (#9419)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-10-20 17:03:37 +02:00
Maciek Palmowski f674e02320
docs: update Kinsta deployment documentation (#9430)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2023-10-20 14:59:24 +02:00
Sébastien Lorber 7ee2f75ce1
chore: v3.0.0-rc.0 release (#9418) 2023-10-20 11:24:29 +02:00
Sébastien Lorber 4e150d2b82
docs: add Docusaurus v3.0 upgrade guide (#9417) 2023-10-19 19:38:32 +02:00
Chongyi Zheng 45f1a669b5
feat(core): support TypeScript + ESM configuration (#9317)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-10-14 02:46:03 +02:00
Sébastien Lorber 336a44f3ea
chore: remove docusaurus-migrate (#9400) 2023-10-13 12:37:43 +02:00
Surav Shrestha ae3191654c
docs: fix typos in website/docs/i18n/i18n-git.mdx (#9396) 2023-10-12 18:45:14 +02:00
Surav Shrestha d7890a18d4
docs: fix typos in website/docs/migration/migration-manual.mdx (#9397) 2023-10-12 18:43:34 +02:00
John Reilly 209aae6e57
chore: point lighthouse to blog to reproduce https://github.com/facebook/docusaurus/issues/9379 (#9393)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2023-10-12 13:38:30 +02:00
Sébastien Lorber 4245b3d721
docs: fix algolia crowler config template link for v3 (#9388) 2023-10-09 19:20:56 +02:00
John Reilly 643a7fe5a3
fix(core): log missing errorInfo in React 18 onRecoverableError callback (#9387)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-10-09 15:28:06 +02:00
Sébastien Lorber d86aa0da5f
fix(mdx-loader): get correct error line numbers, handle front matter + contentTitle with remark (#9386) 2023-10-09 14:55:09 +02:00
Sébastien Lorber 35441b38e4
fix(theme): avoid rendering empty search container if site has no search plugin (#9385) 2023-10-08 20:04:42 +02:00
Sébastien Lorber 77b3b54def
chore: remove deprecated Google UA tracking id (#9384) 2023-10-08 19:28:48 +02:00
Jorens Merenjanu 1319996083
feat(core): throw error when official docusaurus dependencies use different versions (#9381)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-10-08 18:51:52 +02:00
Chongyi Zheng dceaae41d7
chore: upgrade syntax highlighting dependencies, `prism-react-renderer` to v2, `react-live` to v4 (#9316)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-10-06 19:15:14 +02:00
Dinh Bao Dang df42d891c2
docs(deployment): add permissions config to github action file in v2.4.3 (#9377) 2023-10-06 12:58:29 +02:00
Zwyx e17784effa
fix(mdx-loader): prevent Open Graph images from being inserted as base64 (#9369)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-10-05 14:21:27 +02:00
Sébastien Lorber 15647a3abd
chore: disable broken links check for i18n staging (#9375) 2023-10-05 12:49:12 +02:00
Sébastien Lorber 81d30a4712
chore: fix i18n staging deployment error (#9374) 2023-10-05 12:30:27 +02:00
Tatsunori Uchino bca375238f
fix(theme-translations): add Japanese translation for "warning" (#9362) 2023-10-05 09:47:44 +02:00
dependabot[bot] 360b80468f
chore(deps): bump postcss from 8.4.26 to 8.4.31 (#9367)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-05 09:45:09 +02:00
Joshua Chen 683fe37806
chore: do not error on broken links when doing test build (#9363) 2023-10-02 20:00:11 +02:00
Sébastien Lorber 0624007271
refactor(website): change date of v3 preparation blog post + add missing section (#9358) 2023-09-29 19:04:18 +02:00
Dan Roscigno 8ae5264fd4
fix(website): fix typo in v3 preparation blog post (#9357) 2023-09-29 15:41:36 +02:00
Sébastien Lorber e9e4635d76
docs: "Preparing your site for Docusaurus v3" blog post (#9333)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-09-29 13:15:20 +02:00
ozaki bde9cfd84d
chore: update node engine version 18 (#9348)
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-09-28 16:45:25 +02:00
初冬 a178654446
fix(theme-translations): add missing zh-Hans messages (#9321) 2023-09-28 10:36:36 +02:00
dependabot[bot] ae4a6f9d94
chore(deps): bump actions/checkout from 4.0.0 to 4.1.0 (#9344) 2023-09-25 18:03:14 -04:00
la55u 519428bce2
fix(theme-translations): complete and fix hungarian translations (#9338) 2023-09-25 14:47:50 +02:00
Sébastien Lorber 46407ecc2d
chore: do not fail the build if a localized site has a broken link (#9339) 2023-09-22 17:50:50 +02:00
Sébastien Lorber 84b165c4f9
docs: "Upgrading frontend dependencies with confidence" blog post (#9330)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-09-22 17:07:29 +02:00
Sébastien Lorber 710dd1ab8e
chore: docs versioning typo (#9331) 2023-09-20 19:18:51 +02:00
Sébastien Lorber 6b8c5dfd11
chore: update examples to Docusaurus 2.4.3 (#9329) 2023-09-20 18:08:53 +02:00
Sébastien Lorber bca980aeef
chore: rename 2.4.2 docs/changelog to 2.4.3 after bad publish (#9327) 2023-09-20 17:57:16 +02:00
Sébastien Lorber 68e4ceaaaa
docs: create Docusaurus v2.4.2 release docs + changelog (#9325) 2023-09-20 17:29:52 +02:00
Sébastien Lorber 507d65800d
chore(theme-search-algolia): revert docsearch package range downgrade after bugfix release (#9320) 2023-09-19 11:28:27 +02:00
Sébastien Lorber 52d79c4e0c
chore: v3.0.0-beta.0 release (#9311) 2023-09-15 19:44:35 +02:00
qwerzl 6e8e276e40
fix(cli): disable vertical borders of the update notification (#9309) 2023-09-15 18:55:28 +02:00
Sébastien Lorber 598b32011f
chore(plugin-docs): remove legacy versioned prefix on doc ids and sidebar names in versioned sidebars (#9310) 2023-09-15 18:52:42 +02:00
Sébastien Lorber f5ae537d3e
fix(theme): make warning a first-class admonition, and deprecate caution admonition (#9308) 2023-09-15 10:48:21 +02:00
Sébastien Lorber 58be496da2
feat(theme-mermaid): upgrade Mermaid to v10.4 - handle async rendering (#9305) 2023-09-14 17:23:07 +02:00
Biplav Kumar Mazumdar dc7ae426ac
fix(website): fix showcase search input (#9260)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-09-14 17:03:29 +02:00
Forresst bd8616a23f
chore(theme-translations): complete French translations (#9304) 2023-09-14 14:49:42 +02:00
Pinaki Bhattacharjee 83d9f228b3
fix(theme): improve docs sidebar category caret aria-label accessibility (#9269)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2023-09-14 13:01:02 +02:00
qwerzl 3cad29a0ad
chore(theme-translations): complete zh-Hant translations (#9302)
* Update theme-common.json

* Update packages/docusaurus-theme-translations/locales/zh-Hant/theme-common.json

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>

---------

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-09-13 23:39:18 -04:00
dependabot[bot] 49bcd291f5
chore(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 (#9298)
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 3.0.8 to 3.1.0.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](f6fff72a32...6c5ccdad46)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 17:04:18 -04:00
Andrés Villanueva 3f09fb11a1
fix(theme-translations): add missing Spanish theme translations (#9292) 2023-09-08 19:25:13 +02:00
Forresst 7ce0d87575
docs: fix bad link for create doc (#9288) 2023-09-07 12:31:03 +02:00
dependabot[bot] b9bdad747b
chore(deps): bump actions/checkout from 3 to 4 (#9277)
* chore(deps): bump actions/checkout from 3 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply suggestions from code review

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2023-09-05 19:14:28 -04:00
Sébastien Lorber 97d5dd094d
fix(theme-common): remove useless useSyncExternalStore shim (#9276) 2023-09-04 16:21:59 +02:00
Sébastien Lorber 6f9f8eeebd
chore: remove useless Argos screenshot css (#9273) 2023-08-31 13:56:07 +02:00
1646 changed files with 175206 additions and 187717 deletions

View File

@ -29,6 +29,7 @@
"website/src/data/users.tsx",
"website/src/data/tweets.tsx",
"website/docusaurus.config.localized.json",
"website/_dogfooding/_pages tests/diagrams.mdx",
"*.xyz",
"*.docx",
"*.gitignore",
@ -36,5 +37,6 @@
"*.min.*",
"jest/vendor"
],
"ignoreRegExpList": ["Email", "Urls", "#[\\w-]*"]
"ignoreRegExpList": ["Email", "Urls", "#[\\w-]*"],
"enableFiletypes": ["mdx"]
}

13
.eslintrc.js vendored
View File

@ -85,13 +85,14 @@ module.exports = {
ignorePattern: '(eslint-disable|@)',
},
],
'arrow-body-style': OFF,
'no-await-in-loop': OFF,
'no-case-declarations': WARNING,
'no-console': OFF,
'no-constant-binary-expression': ERROR,
'no-continue': OFF,
'no-control-regex': WARNING,
'no-else-return': [WARNING, {allowElseIf: true}],
'no-else-return': OFF,
'no-empty': [WARNING, {allowEmptyCatch: true}],
'no-lonely-if': WARNING,
'no-nested-ternary': WARNING,
@ -203,7 +204,10 @@ module.exports = {
})),
],
'no-template-curly-in-string': WARNING,
'no-unused-expressions': [WARNING, {allowTaggedTemplates: true}],
'no-unused-expressions': [
WARNING,
{allowTaggedTemplates: true, allowShortCircuit: true},
],
'no-useless-escape': WARNING,
'no-void': [ERROR, {allowAsStatement: true}],
'prefer-destructuring': WARNING,
@ -344,10 +348,7 @@ module.exports = {
ERROR,
{'ts-expect-error': 'allow-with-description'},
],
'@typescript-eslint/consistent-indexed-object-style': [
WARNING,
'index-signature',
],
'@typescript-eslint/consistent-indexed-object-style': OFF,
'@typescript-eslint/consistent-type-imports': [
WARNING,
{disallowTypeAnnotations: false},

View File

@ -23,20 +23,16 @@ jobs:
# Argos is heavy to run
# We only want to trigger Argos on PRs with the 'Argos' label
# See https://stackoverflow.com/questions/62325286/run-github-actions-when-pull-requests-have-a-specific-label
if: ${{ github.ref_name == 'main' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'Argos')) }}
if: ${{ (github.event_name != 'pull_request' && github.ref_name == 'main') || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'Argos')) }}
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
with:
# A minimal fetch-depth of 2 is required
# to automatically detect branch in @argos-ci/cli
fetch-depth: 2
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 16
node-version: 18
- name: Install dependencies
run: yarn install --frozen-lockfile
@ -49,7 +45,3 @@ jobs:
- name: Take Argos screenshots
run: yarn argos:screenshot
- name: Upload Argos screenshots
continue-on-error: true
run: yarn argos:upload

View File

@ -22,11 +22,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Installation
run: yarn

View File

@ -36,11 +36,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Track build size changes
uses: preactjs/compressed-size-action@8119d3d31b6e57b167e09c81dfa877eada3bcb35 # v2
@ -57,8 +57,10 @@ jobs:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
cache: yarn
- name: Installation

View File

@ -17,13 +17,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0 # Needed to get the commit number with "git rev-list --count HEAD"
- name: Set up Node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Prepare git
run: |

View File

@ -33,7 +33,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Initialize CodeQL
uses: github/codeql-action/init@cdcdbb579706841c47f7063dda365e292e5cad7a # 2.13.4

View File

@ -13,6 +13,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab #v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Dependency Review
uses: actions/dependency-review-action@f6fff72a3217f580d5afd49a46826795305b63c7 # 3.0.8
uses: actions/dependency-review-action@733dd5d4a5203f238c33806593ec0f5fc5343d8c # 4.2.4

View File

@ -21,28 +21,38 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
- name: Wait for the Netlify Preview
uses: jakepartusch/wait-for-netlify-action@f1e137043864b9ab9034ae3a5adc1c108e3f1a48 # v1
id: netlify
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
site_name: docusaurus-2
max_timeout: 600
node-version: 18
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build website fast
run: yarn build:website:fast
- name: Audit URLs using Lighthouse
id: lighthouse_audit
uses: treosh/lighthouse-ci-action@03becbfc543944dd6e7534f7ff768abb8a296826 # 10.1.0
uses: treosh/lighthouse-ci-action@1b0e7c33270fbba31a18a0fbb1de7cc5256b6d39 # 11.4.0
with:
urls: |
https://deploy-preview-$PR_NUMBER--docusaurus-2.netlify.app/
https://deploy-preview-$PR_NUMBER--docusaurus-2.netlify.app/docs/installation
http://localhost:3000
http://localhost:3000/docs/installation
http://localhost:3000/docs/category/getting-started
http://localhost:3000/blog
http://localhost:3000/blog/preparing-your-site-for-docusaurus-v3
http://localhost:3000/blog/tags/release
http://localhost:3000/blog/tags
configPath: ./.github/workflows/lighthouserc.json
uploadArtifacts: true
temporaryPublicStorage: true
env:
PR_NUMBER: ${{ github.event.pull_request.number}}
- name: Format lighthouse score
id: format_lighthouse_score
uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # 7.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@ -54,7 +64,7 @@ jobs:
- name: Add Lighthouse stats as comment
id: comment_to_pr
uses: marocchino/sticky-pull-request-comment@efaaab3fd41a9c3de579aba759d2552635e590fd # 2.8.0
uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # 2.9.0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
number: ${{ github.event.pull_request.number }}

View File

@ -1,6 +1,12 @@
{
"ci": {
"collect": {
"startServerCommand": "yarn serve:website",
"startServerReadyPattern": "Serving",
"startServerReadyTimeout": 10000,
"numberOfRuns": 1,
"settings": {
"skipAudits": [
"robots-txt",

44
.github/workflows/lint-autofix.yml vendored Normal file
View File

@ -0,0 +1,44 @@
name: Lint AutoFix
on:
pull_request:
branches:
- main
- docusaurus-v**
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint-autofix:
name: Lint AutoFix
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- name: Installation
run: yarn
- name: AutoFix Format
run: yarn format
- name: AutoFix JS
run: yarn lint:js:fix
- name: AutoFix Style
run: yarn lint:style:fix
- name: AutoFix Spelling
run: yarn lint:spelling:fix
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'refactor: apply lint autofix'

View File

@ -20,11 +20,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Installation
run: yarn

View File

@ -22,11 +22,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '20'
cache: yarn
- name: Installation
run: yarn

View File

@ -38,12 +38,12 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node: ['16.14', '16', '18']
node: ['18.0', '18', '20']
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node }}
cache: yarn
@ -75,11 +75,11 @@ jobs:
variant: [-s, -st]
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
- name: Use Node.js 16
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js 18
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Installation
run: yarn
@ -129,11 +129,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
- name: Use Node.js 16
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js 18
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Installation
run: yarn
@ -159,11 +159,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
- name: Use Node.js 16
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js 18
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Installation
run: yarn

View File

@ -26,11 +26,11 @@ jobs:
variant: ['js', 'ts']
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '16'
node-version: '18'
cache: yarn
- name: Installation
run: yarn

View File

@ -26,14 +26,14 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
node: ['16.14', '16', '18']
node: ['18.0', '18', '20']
steps:
- name: Support longpaths
run: git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node }}
- name: Installation

View File

@ -26,12 +26,12 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node: ['16.14', '16', '18']
node: ['18.0', '18', '20']
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ matrix.node }}
cache: yarn

View File

@ -1,8 +1,5 @@
{
"*.{js,jsx,ts,tsx,mjs}": ["eslint --fix"],
"*.css": ["stylelint --allow-empty-input --fix"],
"*": [
"prettier --ignore-unknown --write",
"cspell --no-must-find-files --no-progress"
]
"*": ["prettier --ignore-unknown --write"]
}

View File

@ -24,5 +24,5 @@ website/versioned_sidebars/*.json
examples/
website/static/katex/katex.min.css
website/changelog/_swizzle_theme_tests
website/changelog
website/_dogfooding/_swizzle_theme_tests

View File

@ -1,5 +1,828 @@
# Docusaurus 2 Changelog
## 3.2.0 (2024-03-29)
#### :rocket: New Feature
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-sitemap`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`
- [#9954](https://github.com/facebook/docusaurus/pull/9954) feat(sitemap): add support for "lastmod" ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus-utils`
- [#9912](https://github.com/facebook/docusaurus/pull/9912) feat(blog): add LastUpdateAuthor & LastUpdateTime ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-plugin-debug`, `docusaurus-types`, `docusaurus`
- [#9931](https://github.com/facebook/docusaurus/pull/9931) feat(core): add new plugin allContentLoaded lifecycle ([@slorber](https://github.com/slorber))
- `docusaurus-theme-translations`
- [#9928](https://github.com/facebook/docusaurus/pull/9928) feat(theme-translations) Icelandic (is) ([@Hallinn](https://github.com/Hallinn))
- `docusaurus-plugin-content-blog`
- [#9886](https://github.com/facebook/docusaurus/pull/9886) feat(blog): allow processing blog posts through a processBlogPosts function ([@OzakIOne](https://github.com/OzakIOne))
- [#9838](https://github.com/facebook/docusaurus/pull/9838) feat(blog): add blog pageBasePath plugin option ([@ilg-ul](https://github.com/ilg-ul))
- `docusaurus`
- [#9681](https://github.com/facebook/docusaurus/pull/9681) feat(swizzle): ask user preferred language if no language CLI option provided ([@yixiaojiu](https://github.com/yixiaojiu))
- `create-docusaurus`, `docusaurus-utils`
- [#9442](https://github.com/facebook/docusaurus/pull/9442) feat(create-docusaurus): ask user for preferred language when no language CLI option provided ([@Rafael-Martins](https://github.com/Rafael-Martins))
- `docusaurus-plugin-vercel-analytics`
- [#9687](https://github.com/facebook/docusaurus/pull/9687) feat(plugin-vercel-analytics): add new vercel analytics plugin ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-mdx-loader`
- [#9684](https://github.com/facebook/docusaurus/pull/9684) feat(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials ([@anatolykopyl](https://github.com/anatolykopyl))
#### :bug: Bug Fix
- `docusaurus-mdx-loader`
- [#9999](https://github.com/facebook/docusaurus/pull/9999) fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak ([@slorber](https://github.com/slorber))
- `docusaurus-theme-search-algolia`
- [#9945](https://github.com/facebook/docusaurus/pull/9945) fix(a11y): move focus algolia-search focus back to search input on Escape ([@mxschmitt](https://github.com/mxschmitt))
- `docusaurus-plugin-content-blog`
- [#9920](https://github.com/facebook/docusaurus/pull/9920) fix(blog): apply trailing slash to blog feed ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-theme-classic`
- [#9944](https://github.com/facebook/docusaurus/pull/9944) fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button ([@mxschmitt](https://github.com/mxschmitt))
- `docusaurus-theme-translations`
- [#9915](https://github.com/facebook/docusaurus/pull/9915) fix(theme-translations): complete and modify Japanese translations ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))
- [#9910](https://github.com/facebook/docusaurus/pull/9910) fix(theme-translations): add Japanese translations ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))
- [#9872](https://github.com/facebook/docusaurus/pull/9872) fix(theme-translations): complete and improve Spanish theme translations ([@4troDev](https://github.com/4troDev))
- [#9812](https://github.com/facebook/docusaurus/pull/9812) fix(i18n): add missing theme translations for fa locale ([@VahidNaderi](https://github.com/VahidNaderi))
- `docusaurus-utils`
- [#9897](https://github.com/facebook/docusaurus/pull/9897) fix(mdx-loader): mdx-code-block should support CRLF ([@slorber](https://github.com/slorber))
- `docusaurus`
- [#9878](https://github.com/facebook/docusaurus/pull/9878) fix(core): fix default i18n calendar used, infer it from locale if possible ([@slorber](https://github.com/slorber))
- [#9852](https://github.com/facebook/docusaurus/pull/9852) fix(core): ensure core error boundary is able to render theme layout ([@slorber](https://github.com/slorber))
- `docusaurus-remark-plugin-npm2yarn`
- [#9861](https://github.com/facebook/docusaurus/pull/9861) fix(remark-npm2yarn): update npm-to-yarn from 2.0.0 to 2.2.1, fix pnpm extra args syntax ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-theme-classic`, `docusaurus-theme-translations`
- [#9851](https://github.com/facebook/docusaurus/pull/9851) fix(theme-classic): should use plurals for category items description ([@baradusov](https://github.com/baradusov))
#### :running_woman: Performance
- `docusaurus-types`, `docusaurus-utils`, `docusaurus`
- [#9975](https://github.com/facebook/docusaurus/pull/9975) refactor(core): improve dev perf, fine-grained site reloads - part 3 ([@slorber](https://github.com/slorber))
- `docusaurus-types`, `docusaurus`
- [#9968](https://github.com/facebook/docusaurus/pull/9968) refactor(core): improve dev perf, fine-grained site reloads - part2 ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus`
- [#9903](https://github.com/facebook/docusaurus/pull/9903) refactor(core): improve dev perf, fine-grained site reloads - part1 ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-utils`
- [#9890](https://github.com/facebook/docusaurus/pull/9890) perf: optimize getFileCommitDate, make it async ([@slorber](https://github.com/slorber))
- `docusaurus`
- [#9798](https://github.com/facebook/docusaurus/pull/9798) refactor(core): internalize, simplify and optimize the SSG logic ([@slorber](https://github.com/slorber))
#### :nail_care: Polish
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`
- [#9868](https://github.com/facebook/docusaurus/pull/9868) refactor(theme): dates should be formatted on the client-side instead of in nodejs code ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-plugin-content-blog`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-types`
- [#9669](https://github.com/facebook/docusaurus/pull/9669) refactor(theme): use JSON-LD instead of microdata for blog structured data ([@johnnyreilly](https://github.com/johnnyreilly))
- `docusaurus-plugin-content-docs`
- [#9839](https://github.com/facebook/docusaurus/pull/9839) refactor(blog): improve doc global data hook error message + add doc warning to blogOnly mode ([@OzakIOne](https://github.com/OzakIOne))
#### :memo: Documentation
- [#9937](https://github.com/facebook/docusaurus/pull/9937) docs: use official GitHub Action to deploy to GitHub Pages ([@vlad-nestorov](https://github.com/vlad-nestorov))
- [#9971](https://github.com/facebook/docusaurus/pull/9971) docs: replace VuePress by VitePress on tool comparison section ([@sunkanmii](https://github.com/sunkanmii))
- [#9914](https://github.com/facebook/docusaurus/pull/9914) docs: update legacy MDX v1 links to markdown links ([@OzakIOne](https://github.com/OzakIOne))
- [#9913](https://github.com/facebook/docusaurus/pull/9913) docs: update legacy MDX v1 links to markdown links ([@OzakIOne](https://github.com/OzakIOne))
- [#9906](https://github.com/facebook/docusaurus/pull/9906) docs: emphasize "index slug" convention ([@Josh-Cena](https://github.com/Josh-Cena))
- [#9877](https://github.com/facebook/docusaurus/pull/9877) docs: fix typos in deployment.mdx ([@Oreoxmt](https://github.com/Oreoxmt))
- [#9845](https://github.com/facebook/docusaurus/pull/9845) docs: typo ([@OzakIOne](https://github.com/OzakIOne))
- [#9816](https://github.com/facebook/docusaurus/pull/9816) docs: Add docs for Mermaid Component ([@Its-Just-Nans](https://github.com/Its-Just-Nans))
#### :robot: Dependencies
- [#9981](https://github.com/facebook/docusaurus/pull/9981) chore(deps): bump actions/dependency-review-action from 4.1.3 to 4.2.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9982](https://github.com/facebook/docusaurus/pull/9982) chore(deps): bump katex from 0.16.8 to 0.16.10 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9983](https://github.com/facebook/docusaurus/pull/9983) chore(deps): bump express from 4.18.2 to 4.19.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9977](https://github.com/facebook/docusaurus/pull/9977) chore(deps): bump webpack-dev-middleware from 5.3.3 to 5.3.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9958](https://github.com/facebook/docusaurus/pull/9958) chore(deps): bump follow-redirects from 1.15.4 to 1.15.6 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9892](https://github.com/facebook/docusaurus/pull/9892) chore(deps): bump actions/dependency-review-action from 4.1.2 to 4.1.3 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9869](https://github.com/facebook/docusaurus/pull/9869) chore(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9874](https://github.com/facebook/docusaurus/pull/9874) chore(deps): bump ip from 2.0.0 to 2.0.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9843](https://github.com/facebook/docusaurus/pull/9843) chore(deps): bump actions/setup-node from 4.0.1 to 4.0.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9824](https://github.com/facebook/docusaurus/pull/9824) chore(deps): bump treosh/lighthouse-ci-action from 10.1.0 to 11.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9823](https://github.com/facebook/docusaurus/pull/9823) chore(deps): bump marocchino/sticky-pull-request-comment from 2.8.0 to 2.9.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
#### :wrench: Maintenance
- `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-docs`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`
- [#9972](https://github.com/facebook/docusaurus/pull/9972) refactor(utils): remove duplicated function ([@OzakIOne](https://github.com/OzakIOne))
- Other
- [#9965](https://github.com/facebook/docusaurus/pull/9965) refactor(website): organise blog posts by year ([@GingerGeek](https://github.com/GingerGeek))
- [#9865](https://github.com/facebook/docusaurus/pull/9865) chore(website): update @crowdin/crowdin-api-client ([@chris-bateman](https://github.com/chris-bateman))
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`
- [#9963](https://github.com/facebook/docusaurus/pull/9963) refactor(docs,blog): last update timestamp should be in milliseconds instead of seconds ([@slorber](https://github.com/slorber))
#### Committers: 22
- Aolin ([@Oreoxmt](https://github.com/Oreoxmt))
- Anatoly Kopyl ([@anatolykopyl](https://github.com/anatolykopyl))
- Chris Bateman ([@chris-bateman](https://github.com/chris-bateman))
- Fafowora Sunkanmi ([@sunkanmii](https://github.com/sunkanmii))
- Hallbjörn Magnússon ([@Hallinn](https://github.com/Hallinn))
- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))
- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))
- Josue [4tro] A ([@4troDev](https://github.com/4troDev))
- Liviu Ionescu ([@ilg-ul](https://github.com/ilg-ul))
- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))
- Rafael Martins ([@Rafael-Martins](https://github.com/Rafael-Martins))
- Sébastien Lorber ([@slorber](https://github.com/slorber))
- Vahid Naderi ([@VahidNaderi](https://github.com/VahidNaderi))
- Vlad Nestorov ([@vlad-nestorov](https://github.com/vlad-nestorov))
- Zed Spencer-Milnes ([@GingerGeek](https://github.com/GingerGeek))
- axel7083 ([@axel7083](https://github.com/axel7083))
- krinza.eth ([@kaymomin](https://github.com/kaymomin))
- n4n5 ([@Its-Just-Nans](https://github.com/Its-Just-Nans))
- ozaki ([@OzakIOne](https://github.com/OzakIOne))
- suenryu ([@Suenaga-Ryuya](https://github.com/Suenaga-Ryuya))
- Нуриль Барадусов ([@baradusov](https://github.com/baradusov))
- 翊小久 ([@yixiaojiu](https://github.com/yixiaojiu))
## 3.1.1 (2024-01-26)
#### :bug: Bug Fix
- `docusaurus-types`, `docusaurus`
- [#9791](https://github.com/facebook/docusaurus/pull/9791) fix(core): broken links optimization behaves differently than non-optimized logic ([@slorber](https://github.com/slorber))
- `docusaurus`
- [#9788](https://github.com/facebook/docusaurus/pull/9788) fix(core): links with target "\_blank" should no be checked by the broken link checker ([@slorber](https://github.com/slorber))
- [#9407](https://github.com/facebook/docusaurus/pull/9407) fix(core): conditionally include `hostname` parameter when using… ([@jack-robson](https://github.com/jack-robson))
- `docusaurus-utils`
- [#9776](https://github.com/facebook/docusaurus/pull/9776) fix(mdx-loader): allow spaces before `mdx-code-block` info string ([@eitsupi](https://github.com/eitsupi))
- `create-docusaurus`
- [#9783](https://github.com/facebook/docusaurus/pull/9783) fix(create-docusaurus): fix typo in init template sample docs ([@dawei-wang](https://github.com/dawei-wang))
- `docusaurus-theme-common`
- [#9727](https://github.com/facebook/docusaurus/pull/9727) fix(theme-common): fix missing code block MagicComments style in Visual Basic (.NET) 16 ([@tats-u](https://github.com/tats-u))
- `docusaurus-theme-classic`, `docusaurus-theme-mermaid`
- [#9733](https://github.com/facebook/docusaurus/pull/9733) fix: remove old useless mdx typedefs ([@slorber](https://github.com/slorber))
- `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils`, `docusaurus`
- [#9732](https://github.com/facebook/docusaurus/pull/9732) fix(core): various broken anchor link fixes ([@slorber](https://github.com/slorber))
#### :running_woman: Performance
- `docusaurus`
- [#9778](https://github.com/facebook/docusaurus/pull/9778) perf(core): optimize broken links checker ([@slorber](https://github.com/slorber))
#### :nail_care: Polish
- `docusaurus-theme-classic`
- [#9470](https://github.com/facebook/docusaurus/pull/9470) polish(theme): MDX images should use async decoding ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))
#### Committers: 6
- Jack Robson ([@jack-robson](https://github.com/jack-robson))
- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))
- Sébastien Lorber ([@slorber](https://github.com/slorber))
- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))
- [@dawei-wang](https://github.com/dawei-wang)
- [@eitsupi](https://github.com/eitsupi)
## 3.1.0 (2024-01-05)
#### :rocket: New Feature
- `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `docusaurus-theme-classic`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`
- [#9528](https://github.com/facebook/docusaurus/pull/9528) feat(core): make broken link checker detect broken anchors - add `onBrokenAnchors` config ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`
- [#9674](https://github.com/facebook/docusaurus/pull/9674) feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions ([@slorber](https://github.com/slorber))
- `docusaurus-theme-common`
- [#9671](https://github.com/facebook/docusaurus/pull/9671) feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML ([@tats-u](https://github.com/tats-u))
- `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`
- [#9624](https://github.com/facebook/docusaurus/pull/9624) feat: siteConfig.markdown.parseFrontMatter hook ([@slorber](https://github.com/slorber))
- `docusaurus-utils`
- [#9610](https://github.com/facebook/docusaurus/pull/9610) feat(core): enable port configuration via environment variable ([@OzakIOne](https://github.com/OzakIOne))
#### :bug: Bug Fix
- `docusaurus-theme-classic`, `docusaurus-theme-live-codeblock`
- [#9704](https://github.com/facebook/docusaurus/pull/9704) fix(theme): allow empty code blocks and live playgrounds ([@slorber](https://github.com/slorber))
- `create-docusaurus`
- [#9696](https://github.com/facebook/docusaurus/pull/9696) fix(create-docusaurus): fix init template code blocks, and little improvements ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-pwa`
- [#9668](https://github.com/facebook/docusaurus/pull/9668) fix(pwa-plugin): upgrade workbox ([@SimenB](https://github.com/SimenB))
- `docusaurus`
- [#9648](https://github.com/facebook/docusaurus/pull/9648) fix(cli): output help when no conventional config + no subcommand ([@Josh-Cena](https://github.com/Josh-Cena))
- `docusaurus-theme-live-codeblock`
- [#9631](https://github.com/facebook/docusaurus/pull/9631) fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync ([@slorber](https://github.com/slorber))
- `docusaurus-utils`
- [#9617](https://github.com/facebook/docusaurus/pull/9617) fix(utils): Markdown link replacement with <> but no spaces ([@Josh-Cena](https://github.com/Josh-Cena))
- `docusaurus-module-type-aliases`
- [#9612](https://github.com/facebook/docusaurus/pull/9612) fix(type-aliases): add `title` prop for imported inline SVG React components ([@axmmisaka](https://github.com/axmmisaka))
- `docusaurus-plugin-content-blog`
- [#9581](https://github.com/facebook/docusaurus/pull/9581) fix(content-blog): add baseUrl for author.image_url ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-theme-translations`
- [#9477](https://github.com/facebook/docusaurus/pull/9477) fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) ([@c0h1b4](https://github.com/c0h1b4))
#### :nail_care: Polish
- `docusaurus-theme-common`
- [#9335](https://github.com/facebook/docusaurus/pull/9335) refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize ([@jgarrow](https://github.com/jgarrow))
#### :wrench: Maintenance
- `docusaurus-theme-search-algolia`
- [#9604](https://github.com/facebook/docusaurus/pull/9604) chore: add lint autofix CI job ([@slorber](https://github.com/slorber))
#### Committers: 8
- Janessa Garrow ([@jgarrow](https://github.com/jgarrow))
- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))
- Simen Bekkhus ([@SimenB](https://github.com/SimenB))
- Sébastien Lorber ([@slorber](https://github.com/slorber))
- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))
- [@c0h1b4](https://github.com/c0h1b4)
- axmmisaka ([@axmmisaka](https://github.com/axmmisaka))
- ozaki ([@OzakIOne](https://github.com/OzakIOne))
## 3.0.1 (2023-11-30)
#### :bug: Bug Fix
- `docusaurus-utils`
- [#9570](https://github.com/facebook/docusaurus/pull/9570) fix: add v2 retrocompatible support for quoted admonitions ([@slorber](https://github.com/slorber))
- [#9535](https://github.com/facebook/docusaurus/pull/9535) fix: v3 admonitions should support v2 title syntax for nested admonitions ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`
- [#9567](https://github.com/facebook/docusaurus/pull/9567) fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting ([@slorber](https://github.com/slorber))
- `docusaurus-theme-common`
- [#9531](https://github.com/facebook/docusaurus/pull/9531) fix(theme): docs html sidebar items should always be visible ([@slorber](https://github.com/slorber))
- `docusaurus-theme-classic`
- [#9530](https://github.com/facebook/docusaurus/pull/9530) fix(theme): fix firefox CSS :has() support bug ([@slorber](https://github.com/slorber))
- `create-docusaurus`
- [#9487](https://github.com/facebook/docusaurus/pull/9487) fix(create-docusaurus): fix readme docusaurus 2 ref ([@slorber](https://github.com/slorber))
#### :robot: Dependencies
- `docusaurus-plugin-debug`
- [#9566](https://github.com/facebook/docusaurus/pull/9566) chore(debug-plugin): migrate to a new maintained JSON Viewer ([@mcrstudio](https://github.com/mcrstudio))
- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`
- [#9572](https://github.com/facebook/docusaurus/pull/9572) chore: upgrade prism-react-renderer to 2.3.0 to avoid older clsx ([@harryzcy](https://github.com/harryzcy))
- [#9567](https://github.com/facebook/docusaurus/pull/9567) fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`
- [#9464](https://github.com/facebook/docusaurus/pull/9464) chore: Upgrade clsx to 2.0.0 ([@harryzcy](https://github.com/harryzcy))
- `docusaurus`
- [#9547](https://github.com/facebook/docusaurus/pull/9547) chore(core): replace `wait-on` dependency with custom lighter code ([@NickGerleman](https://github.com/NickGerleman))
- `docusaurus-plugin-pwa`, `docusaurus`
- [#9529](https://github.com/facebook/docusaurus/pull/9529) chore: ugrade babel dependencies to v7.23.3 ([@reece-white](https://github.com/reece-white))
#### Committers: 6
- Chongyi Zheng ([@harryzcy](https://github.com/harryzcy))
- MCR Studio ([@mcrstudio](https://github.com/mcrstudio))
- Nick Gerleman ([@NickGerleman](https://github.com/NickGerleman))
- Shreesh Nautiyal ([@Shreesh09](https://github.com/Shreesh09))
- Sébastien Lorber ([@slorber](https://github.com/slorber))
- [@reece-white](https://github.com/reece-white)
## 3.0.0 (2023-10-31)
#### :boom: Breaking Change
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`
- [#9451](https://github.com/facebook/docusaurus/pull/9451) feat(mdx-loader): upgrade to MDX v3 ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`
- [#9317](https://github.com/facebook/docusaurus/pull/9317) feat(core): support TypeScript + ESM configuration ([@harryzcy](https://github.com/harryzcy))
- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus`
- [#9316](https://github.com/facebook/docusaurus/pull/9316) chore: upgrade syntax highlighting dependencies, `prism-react-renderer` to v2, `react-live` to v4 ([@harryzcy](https://github.com/harryzcy))
- `create-docusaurus`, `docusaurus-cssnano-preset`, `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-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`
- [#9348](https://github.com/facebook/docusaurus/pull/9348) chore: update node engine version 18 ([@OzakIOne](https://github.com/OzakIOne))
- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`
- [#9310](https://github.com/facebook/docusaurus/pull/9310) chore(plugin-docs): remove legacy versioned prefix on doc ids and sidebar names in versioned sidebars ([@slorber](https://github.com/slorber))
- `docusaurus-theme-classic`, `docusaurus-theme-translations`
- [#9308](https://github.com/facebook/docusaurus/pull/9308) fix(theme): make warning a first-class admonition, and deprecate caution admonition ([@slorber](https://github.com/slorber))
- `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`
- [#9305](https://github.com/facebook/docusaurus/pull/9305) feat(theme-mermaid): upgrade Mermaid to v10.4 - handle async rendering ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-tsconfig`, `docusaurus`
- [#9258](https://github.com/facebook/docusaurus/pull/9258) feat: Docusaurus v3 upgrades and require TypeScript 5 ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-blog`
- [#9189](https://github.com/facebook/docusaurus/pull/9189) feat(blog-plugin): limit option for blog feedOptions ([@johnnyreilly](https://github.com/johnnyreilly))
- `create-docusaurus`, `docusaurus-tsconfig`
- [#9050](https://github.com/facebook/docusaurus/pull/9050) feat: create official TypeScript base config @docusaurus/tsconfig ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `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-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`
- [#8961](https://github.com/facebook/docusaurus/pull/8961) feat: React 18 + automatic JSX runtime + build --dev ([@slorber](https://github.com/slorber))
- `create-docusaurus`
- [#9026](https://github.com/facebook/docusaurus/pull/9026) chore: remove facebook template ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`
- [#8288](https://github.com/facebook/docusaurus/pull/8288) feat: upgrade to MDX v2 ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`
- [#7966](https://github.com/facebook/docusaurus/pull/7966) fix(plugin-docs,theme): refactor docs plugin routes and component tree ([@slorber](https://github.com/slorber))
#### :rocket: New Feature
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`
- [#9451](https://github.com/facebook/docusaurus/pull/9451) feat(mdx-loader): upgrade to MDX v3 ([@slorber](https://github.com/slorber))
- `docusaurus-mdx-loader`, `docusaurus-utils`
- [#9394](https://github.com/facebook/docusaurus/pull/9394) feat(mdx-loader): Remark plugin to report unused MDX / Markdown directives ([@OzakIOne](https://github.com/OzakIOne))
- `create-docusaurus`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`
- [#9317](https://github.com/facebook/docusaurus/pull/9317) feat(core): support TypeScript + ESM configuration ([@harryzcy](https://github.com/harryzcy))
- `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`
- [#9305](https://github.com/facebook/docusaurus/pull/9305) feat(theme-mermaid): upgrade Mermaid to v10.4 - handle async rendering ([@slorber](https://github.com/slorber))
- `create-docusaurus`
- [#9241](https://github.com/facebook/docusaurus/pull/9241) feat: support bun package manager in `create-docusaurus` ([@colinhacks](https://github.com/colinhacks))
- `docusaurus-plugin-content-blog`
- [#9189](https://github.com/facebook/docusaurus/pull/9189) feat(blog-plugin): limit option for blog feedOptions ([@johnnyreilly](https://github.com/johnnyreilly))
- `docusaurus-theme-classic`
- [#9152](https://github.com/facebook/docusaurus/pull/9152) feat(theme): add support for meta og locale and alternates ([@FlorinaPacurar](https://github.com/FlorinaPacurar))
- [#9028](https://github.com/facebook/docusaurus/pull/9028) feat(theme): add ability to inject data attributes from query-string - possibility to create an iframe/embed variant of a page ([@slorber](https://github.com/slorber))
- [#8915](https://github.com/facebook/docusaurus/pull/8915) feat(theme): add queryString option to localeDropdown ([@wceolin](https://github.com/wceolin))
- `docusaurus-plugin-client-redirects`, `docusaurus-utils-validation`
- [#9171](https://github.com/facebook/docusaurus/pull/9171) feat(client-redirects-plugin): support fully qualified urls and querystring/hash in destination/to url ([@slorber](https://github.com/slorber))
- `docusaurus`
- [#9102](https://github.com/facebook/docusaurus/pull/9102) feat(cli): deploy command should allow customizing git config user.name / user.email in deployment branch (#9101) ([@amdshrif](https://github.com/amdshrif))
- `docusaurus-mdx-loader`, `docusaurus-types`, `docusaurus`
- [#9097](https://github.com/facebook/docusaurus/pull/9097) feat(mdx): add siteConfig.markdown.format to configure the default content parser (MDX / CommonMark) ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`
- [#9071](https://github.com/facebook/docusaurus/pull/9071) feat(pages): add support for missing SEO front matter + improve SEO docs ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-tsconfig`
- [#9050](https://github.com/facebook/docusaurus/pull/9050) feat: create official TypeScript base config @docusaurus/tsconfig ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-module-type-aliases`, `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-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-preset-classic`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-types`, `docusaurus`
- [#8961](https://github.com/facebook/docusaurus/pull/8961) feat: React 18 + automatic JSX runtime + build --dev ([@slorber](https://github.com/slorber))
- `docusaurus-theme-common`
- [#8982](https://github.com/facebook/docusaurus/pull/8982) feat(theme-common): code block MagicComments support for TeX/LaTeX/Matlab ([@jj-style](https://github.com/jj-style))
- [#8870](https://github.com/facebook/docusaurus/pull/8870) feat(theme-common): code block MagicComments support for Lua/Haskell -- and WebAssembly ;; ([@tarunrajput](https://github.com/tarunrajput))
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-mermaid`, `docusaurus-types`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`
- [#8288](https://github.com/facebook/docusaurus/pull/8288) feat: upgrade to MDX v2 ([@slorber](https://github.com/slorber))
- `docusaurus-theme-classic`, `docusaurus-theme-common`
- [#8890](https://github.com/facebook/docusaurus/pull/8890) feat(theme): create more generic ThemedComponent util from ThemedImage ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `eslint-plugin`
- [#8384](https://github.com/facebook/docusaurus/pull/8384) feat(eslint-plugin): new prefer-docusaurus-heading rule ([@Devansu-Yadav](https://github.com/Devansu-Yadav))
- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-search-algolia`, `docusaurus`, `eslint-plugin`
- [#8156](https://github.com/facebook/docusaurus/pull/8156) feat: add eslint plugin no-html-links ([@JohnVicke](https://github.com/JohnVicke))
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-translations`, `docusaurus-utils-validation`, `docusaurus-utils`
- [#8004](https://github.com/facebook/docusaurus/pull/8004) feat(docs,blog,pages): add support for "unlisted" front matter - hide md content in production ([@jodyheavener](https://github.com/jodyheavener))
#### :bug: Bug Fix
- `docusaurus-theme-common`
- [#9446](https://github.com/facebook/docusaurus/pull/9446) fix(theme): fix useWindowSize React hydration issue ([@slorber](https://github.com/slorber))
- [#9276](https://github.com/facebook/docusaurus/pull/9276) fix(theme-common): remove useless useSyncExternalStore shim ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-blog`
- [#9437](https://github.com/facebook/docusaurus/pull/9437) fix(plugin-blog): blog archive should hide unlisted blog posts ([@slorber](https://github.com/slorber))
- [#9151](https://github.com/facebook/docusaurus/pull/9151) fix(content-blog): links in feed should be absolute ([@VinceCYLiao](https://github.com/VinceCYLiao))
- `docusaurus`
- [#9387](https://github.com/facebook/docusaurus/pull/9387) fix(core): log missing errorInfo in React 18 onRecoverableError callback ([@johnnyreilly](https://github.com/johnnyreilly))
- [#9309](https://github.com/facebook/docusaurus/pull/9309) fix(cli): disable vertical borders of the update notification ([@qwerzl](https://github.com/qwerzl))
- [#9112](https://github.com/facebook/docusaurus/pull/9112) fix(core): throw error if build folder already exists on initial clean ([@thedevwonder](https://github.com/thedevwonder))
- [#9006](https://github.com/facebook/docusaurus/pull/9006) fix(core): docusaurus CLI should detect the correct yarn version when suggesting upgrades ([@0420syj](https://github.com/0420syj))
- [#7951](https://github.com/facebook/docusaurus/pull/7951) fix(core): make webpack HMR always listen to current location ([@jeengbe](https://github.com/jeengbe))
- `docusaurus-mdx-loader`
- [#9386](https://github.com/facebook/docusaurus/pull/9386) fix(mdx-loader): get correct error line numbers, handle front matter + contentTitle with remark ([@slorber](https://github.com/slorber))
- [#9262](https://github.com/facebook/docusaurus/pull/9262) fix(mdx-loader): improve mdxJsxTextElementToHtml ([@slorber](https://github.com/slorber))
- [#9202](https://github.com/facebook/docusaurus/pull/9202) fix(mdx-loader): ensure heading anchor slugs respect GitHub emoji behavior ([@yosukekato165](https://github.com/yosukekato165))
- [#9100](https://github.com/facebook/docusaurus/pull/9100) fix(mdx): fix for html multi-line comments ([@slorber](https://github.com/slorber))
- [#9091](https://github.com/facebook/docusaurus/pull/9091) fix(mdx-loader): loader error message should display stacktrace if no extra MDX details ([@slorber](https://github.com/slorber))
- [#8960](https://github.com/facebook/docusaurus/pull/8960) fix: allow html syntax in MDX v2 with format md ([@slorber](https://github.com/slorber))
- `docusaurus-theme-classic`
- [#9385](https://github.com/facebook/docusaurus/pull/9385) fix(theme): avoid rendering empty search container if site has no search plugin ([@slorber](https://github.com/slorber))
- [#9183](https://github.com/facebook/docusaurus/pull/9183) fix(theme): make Prism code block language / additionalLanguages case insensitive ([@heysujal](https://github.com/heysujal))
- [#9216](https://github.com/facebook/docusaurus/pull/9216) fix(theme): fix typo in swizzle component config ([@sixhobbits](https://github.com/sixhobbits))
- [#9093](https://github.com/facebook/docusaurus/pull/9093) fix(theme): support details/summary in CommonMark + add md dogfood test cases ([@slorber](https://github.com/slorber))
- `docusaurus-mdx-loader`, `docusaurus-utils`
- [#9369](https://github.com/facebook/docusaurus/pull/9369) fix(mdx-loader): prevent Open Graph images from being inserted as base64 ([@Zwyx](https://github.com/Zwyx))
- `docusaurus-theme-translations`
- [#9362](https://github.com/facebook/docusaurus/pull/9362) fix(theme-translations): add Japanese translation for "warning" ([@tats-u](https://github.com/tats-u))
- [#9321](https://github.com/facebook/docusaurus/pull/9321) fix(theme-translations): add missing zh-Hans messages ([@chudongvip](https://github.com/chudongvip))
- [#9338](https://github.com/facebook/docusaurus/pull/9338) fix(theme-translations): complete and fix hungarian translations ([@la55u](https://github.com/la55u))
- [#9292](https://github.com/facebook/docusaurus/pull/9292) fix(theme-translations): add missing Spanish theme translations ([@Villanuevand](https://github.com/Villanuevand))
- [#9021](https://github.com/facebook/docusaurus/pull/9021) fix(theme-transalations): fix Swedish translation of "last updated" ([@gazab](https://github.com/gazab))
- `docusaurus-theme-classic`, `docusaurus-theme-translations`
- [#9308](https://github.com/facebook/docusaurus/pull/9308) fix(theme): make warning a first-class admonition, and deprecate caution admonition ([@slorber](https://github.com/slorber))
- [#9269](https://github.com/facebook/docusaurus/pull/9269) fix(theme): improve docs sidebar category caret aria-label accessibility ([@pinakipb2](https://github.com/pinakipb2))
- Other
- [#9260](https://github.com/facebook/docusaurus/pull/9260) fix(website): fix showcase search input ([@biplavmz](https://github.com/biplavmz))
- [#8193](https://github.com/facebook/docusaurus/pull/8193) fix(website): mobile scroll on homepage announcement ([@maliMirkec](https://github.com/maliMirkec))
- [#8042](https://github.com/facebook/docusaurus/pull/8042) fix(website): fix blog post social card ([@slorber](https://github.com/slorber))
- `create-docusaurus`
- [#9217](https://github.com/facebook/docusaurus/pull/9217) fix(create-docusaurus): increase Browserslist support query in dev ([@slorber](https://github.com/slorber))
- `docusaurus-utils`, `docusaurus`
- [#9160](https://github.com/facebook/docusaurus/pull/9160) fix(core): handle single quotes inside file paths ([@Josh-Cena](https://github.com/Josh-Cena))
- `docusaurus-plugin-debug`
- [#9116](https://github.com/facebook/docusaurus/pull/9116) fix(debug-plugin): upgrade react-json-view to maintained React-18 compatible fork ([@slorber](https://github.com/slorber))
- `docusaurus-utils`
- [#9046](https://github.com/facebook/docusaurus/pull/9046) fix(utils): better handling of code blocks in link replacement ([@Josh-Cena](https://github.com/Josh-Cena))
- [#8927](https://github.com/facebook/docusaurus/pull/8927) fix(utils): make Markdown link replacement much more rigorous ([@Josh-Cena](https://github.com/Josh-Cena))
- [#7864](https://github.com/facebook/docusaurus/pull/7864) fix(utils): always match exclusion root dirs as complete folder paths ([@Josh-Cena](https://github.com/Josh-Cena))
- [#7801](https://github.com/facebook/docusaurus/pull/7801) fix(utils): recognize ~~~ as code fences in link replacement ([@Josh-Cena](https://github.com/Josh-Cena))
- `docusaurus-plugin-pwa`, `docusaurus`
- [#8872](https://github.com/facebook/docusaurus/pull/8872) fix(core): better error logging on SSR/dev failures + log stacktraces and error causes ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-utils-validation`, `docusaurus`
- [#8258](https://github.com/facebook/docusaurus/pull/8258) fix(docusaurus-utils-validation): baseUrl + routeBasePath: allow empty string, normalized as "/" ([@Djunnni](https://github.com/Djunnni))
- `docusaurus-theme-classic`, `docusaurus-theme-common`
- [#8319](https://github.com/facebook/docusaurus/pull/8319) fix(docs,theme): auto-generated category index should not display unlisted content ([@slorber](https://github.com/slorber))
- `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`
- [#8015](https://github.com/facebook/docusaurus/pull/8015) fix(live-codeblock): add error boundary to live code preview ([@rashidmya](https://github.com/rashidmya))
- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`
- [#7945](https://github.com/facebook/docusaurus/pull/7945) refactor(theme): split admonitions, make swizzle easier, better retrocompatibility ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-docs`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus`
- [#7966](https://github.com/facebook/docusaurus/pull/7966) fix(plugin-docs,theme): refactor docs plugin routes and component tree ([@slorber](https://github.com/slorber))
#### :running_woman: Performance
- `docusaurus`
- [#9051](https://github.com/facebook/docusaurus/pull/9051) perf(core): use React 18 startTransition for hydration ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))
- [#8081](https://github.com/facebook/docusaurus/pull/8081) perf(core): move scripts to document head + defer ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))
- `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus`
- [#8972](https://github.com/facebook/docusaurus/pull/8972) fix: remove useless js-loader in front of mdx-loader ([@slorber](https://github.com/slorber))
#### :nail_care: Polish
- `docusaurus-theme-classic`
- [#9438](https://github.com/facebook/docusaurus/pull/9438) refactor(blog-plugin): blog archive reverse ordering of posts ([@slorber](https://github.com/slorber))
- [#9184](https://github.com/facebook/docusaurus/pull/9184) fix(theme): change schema.org itemType prop urls from http to https ([@thedevwonder](https://github.com/thedevwonder))
- `docusaurus`
- [#9381](https://github.com/facebook/docusaurus/pull/9381) feat(core): throw error when official docusaurus dependencies use different versions ([@JorensM](https://github.com/JorensM))
- `docusaurus-theme-translations`
- [#9302](https://github.com/facebook/docusaurus/pull/9302) chore(theme-translations): complete zh-Hant translations ([@qwerzl](https://github.com/qwerzl))
- [#9025](https://github.com/facebook/docusaurus/pull/9025) chore(theme-translations): complete it translations ([@bitpredator](https://github.com/bitpredator))
- `create-docusaurus`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus`
- [#9133](https://github.com/facebook/docusaurus/pull/9133) fix(init): change initial site URL to one that is safe for the future ([@tats-u](https://github.com/tats-u))
- `docusaurus-theme-classic`, `docusaurus-theme-common`
- [#8150](https://github.com/facebook/docusaurus/pull/8150) fix(theme-classic): polish admonition details, render title-only admonitions ([@attitude](https://github.com/attitude))
- `docusaurus-plugin-google-gtag`
- [#8143](https://github.com/facebook/docusaurus/pull/8143) refactor(plugin-gtag): update gtag plugin to modern SPA recommendations ([@lanegoolsby](https://github.com/lanegoolsby))
- `docusaurus-mdx-loader`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-utils-validation`, `docusaurus`
- [#7945](https://github.com/facebook/docusaurus/pull/7945) refactor(theme): split admonitions, make swizzle easier, better retrocompatibility ([@slorber](https://github.com/slorber))
#### :memo: Documentation
- Other
- [#9452](https://github.com/facebook/docusaurus/pull/9452) docs: v3 upgrade guide should mention MDX v1 compat options ([@slorber](https://github.com/slorber))
- [#9430](https://github.com/facebook/docusaurus/pull/9430) docs: update Kinsta deployment documentation ([@palmiak](https://github.com/palmiak))
- [#9417](https://github.com/facebook/docusaurus/pull/9417) docs: add Docusaurus v3.0 upgrade guide ([@slorber](https://github.com/slorber))
- [#9396](https://github.com/facebook/docusaurus/pull/9396) docs: fix typos in website/docs/i18n/i18n-git.mdx ([@suravshrestha](https://github.com/suravshrestha))
- [#9397](https://github.com/facebook/docusaurus/pull/9397) docs: fix typos in website/docs/migration/migration-manual.mdx ([@suravshrestha](https://github.com/suravshrestha))
- [#9388](https://github.com/facebook/docusaurus/pull/9388) docs: fix algolia crowler config template link for v3 ([@slorber](https://github.com/slorber))
- [#9377](https://github.com/facebook/docusaurus/pull/9377) docs(deployment): add permissions config to github action file in v2.4.3 ([@chillinPanda](https://github.com/chillinPanda))
- [#9333](https://github.com/facebook/docusaurus/pull/9333) docs: "Preparing your site for Docusaurus v3" blog post ([@slorber](https://github.com/slorber))
- [#9330](https://github.com/facebook/docusaurus/pull/9330) docs: "Upgrading frontend dependencies with confidence" blog post ([@slorber](https://github.com/slorber))
- [#9288](https://github.com/facebook/docusaurus/pull/9288) docs: fix bad link for create doc ([@forresst](https://github.com/forresst))
- [#9267](https://github.com/facebook/docusaurus/pull/9267) docs: fix typo in docs-introduction ([@HyeokjinKang](https://github.com/HyeokjinKang))
- [#9247](https://github.com/facebook/docusaurus/pull/9247) docs: Reword comparison between React authoring and CSS authoring ([@hidde](https://github.com/hidde))
- [#9223](https://github.com/facebook/docusaurus/pull/9223) docs: fix grammatical error, rewrite sentence to make clearer ([@thatrobotdev](https://github.com/thatrobotdev))
- [#9233](https://github.com/facebook/docusaurus/pull/9233) docs(website): Add a "clearAll" Feature to site showcase ([@biplavmz](https://github.com/biplavmz))
- [#9180](https://github.com/facebook/docusaurus/pull/9180) docs: remove 'import type' declaration in javascript snippet ([@oluwatobiss](https://github.com/oluwatobiss))
- [#9177](https://github.com/facebook/docusaurus/pull/9177) docs: improve the opening sentence's clarity ([@oluwatobiss](https://github.com/oluwatobiss))
- [#9149](https://github.com/facebook/docusaurus/pull/9149) docs: improve yarn deps upgrade command ([@webbertakken](https://github.com/webbertakken))
- [#9139](https://github.com/facebook/docusaurus/pull/9139) docs: add Flightcontrol as a deployment option ([@ModupeD](https://github.com/ModupeD))
- [#9082](https://github.com/facebook/docusaurus/pull/9082) docs: fix themeConfig.prism.defaultLanguage table api ref docs ([@razzeee](https://github.com/razzeee))
- [#9074](https://github.com/facebook/docusaurus/pull/9074) docs: fix filenames in docs/swizzling.mdx ([@shwaka](https://github.com/shwaka))
- [#9065](https://github.com/facebook/docusaurus/pull/9065) docs: update link for commonly used languages ([@heysujal](https://github.com/heysujal))
- [#9055](https://github.com/facebook/docusaurus/pull/9055) docs: update outdated links in showcase ([@manuel-rw](https://github.com/manuel-rw))
- [#9063](https://github.com/facebook/docusaurus/pull/9063) docs: add @markprompt/docusaurus-theme-search ([@schneegansm](https://github.com/schneegansm))
- [#9033](https://github.com/facebook/docusaurus/pull/9033) docs: update info for community plugin docusaurus2-graphql-doc-generator ([@edno](https://github.com/edno))
- [#9044](https://github.com/facebook/docusaurus/pull/9044) docs: fix prism theme broken link in code blocks docs ([@adithyaakrishna](https://github.com/adithyaakrishna))
- [#9043](https://github.com/facebook/docusaurus/pull/9043) docs: fix grammar typo in swizzling.mdx ([@adampatterson](https://github.com/adampatterson))
- [#9018](https://github.com/facebook/docusaurus/pull/9018) docs: fix link to rehype ([@Mogyuchi](https://github.com/Mogyuchi))
- [#8993](https://github.com/facebook/docusaurus/pull/8993) docs: fix broken link in code blocks docs ([@NamanGarg2075](https://github.com/NamanGarg2075))
- [#8975](https://github.com/facebook/docusaurus/pull/8975) docs: update link in md code blocks section ([@rbarbazz](https://github.com/rbarbazz))
- [#8976](https://github.com/facebook/docusaurus/pull/8976) docs: update broken links theme configuration page ([@rbarbazz](https://github.com/rbarbazz))
- [#8904](https://github.com/facebook/docusaurus/pull/8904) docs: fix broken link to Prism includeLangs.js default list of languages ([@conlacda](https://github.com/conlacda))
- [#8951](https://github.com/facebook/docusaurus/pull/8951) docs: mention equivalent config syntaxes ([@thadguidry](https://github.com/thadguidry))
- [#8950](https://github.com/facebook/docusaurus/pull/8950) docs: bidirectional link between api config and guide config ([@thadguidry](https://github.com/thadguidry))
- [#8953](https://github.com/facebook/docusaurus/pull/8953) docs: mention blog truncating marker edge case ([@allyw2002](https://github.com/allyw2002))
- [#8941](https://github.com/facebook/docusaurus/pull/8941) docs: rewrite some docs for mdx v2 ([@slorber](https://github.com/slorber))
- [#8943](https://github.com/facebook/docusaurus/pull/8943) docs: mention docusaurus.community site in resources ([@thadguidry](https://github.com/thadguidry))
- [#8920](https://github.com/facebook/docusaurus/pull/8920) docs: mdx-js is using v2 for next edition ([@jhcao23](https://github.com/jhcao23))
- [#8888](https://github.com/facebook/docusaurus/pull/8888) docs: improve sidebar items custom props docs ([@slorber](https://github.com/slorber))
- [#8877](https://github.com/facebook/docusaurus/pull/8877) docs: add "permissions.content: write" to GH workflow examples ([@e-minguez](https://github.com/e-minguez))
- [#8845](https://github.com/facebook/docusaurus/pull/8845) docs: add description on blog post file/folder naming conventions and date extraction patterns ([@rojakcoder](https://github.com/rojakcoder))
- [#8865](https://github.com/facebook/docusaurus/pull/8865) docs: correct small grammar error ([@werner33](https://github.com/werner33))
- [#8830](https://github.com/facebook/docusaurus/pull/8830) docs: link to mermaid config types ([@PaulRBerg](https://github.com/PaulRBerg))
- [#8804](https://github.com/facebook/docusaurus/pull/8804) docs: update suggestion for OSS meta projects ([@antonk52](https://github.com/antonk52))
- [#8788](https://github.com/facebook/docusaurus/pull/8788) docs: remove problematic mdx2 anchor id docs for MDX 2 migration ([@slorber](https://github.com/slorber))
- [#8780](https://github.com/facebook/docusaurus/pull/8780) docs: fix localhost url without link ([@slorber](https://github.com/slorber))
- [#8779](https://github.com/facebook/docusaurus/pull/8779) docs: v2 docs should discourage the usage of a lower-case MDX component (will not work in v3) ([@slorber](https://github.com/slorber))
- [#8761](https://github.com/facebook/docusaurus/pull/8761) docs: add mention that themeConfig.footer.copyright supports html strings ([@fxpby](https://github.com/fxpby))
- [#8723](https://github.com/facebook/docusaurus/pull/8723) docs: add TypeScript playgrounds to docusaurus.new + Playground page ([@slorber](https://github.com/slorber))
- [#8709](https://github.com/facebook/docusaurus/pull/8709) docs: add dark mode version of BrowserStack logo ([@fredrikstave](https://github.com/fredrikstave))
- [#8642](https://github.com/facebook/docusaurus/pull/8642) docs: clarify query string behavior ([@homotechsual](https://github.com/homotechsual))
- [#8576](https://github.com/facebook/docusaurus/pull/8576) docs(playground): use CodeSandbox cloud sandboxes ([@danilowoz](https://github.com/danilowoz))
- [#8543](https://github.com/facebook/docusaurus/pull/8543) docs: add link to pluralization docs ([@homotechsual](https://github.com/homotechsual))
- [#8556](https://github.com/facebook/docusaurus/pull/8556) docs: document plugin-content-pages wrapperClassName frontmatter. ([@homotechsual](https://github.com/homotechsual))
- [#8548](https://github.com/facebook/docusaurus/pull/8548) docs: fix typo 'validationOptions' ([@gracefullight](https://github.com/gracefullight))
- [#8509](https://github.com/facebook/docusaurus/pull/8509) docs(website): fix broken external links wrongly modified to use the .mdx extension (ex: github README.mdx) ([@Kesyau](https://github.com/Kesyau))
- [#8507](https://github.com/facebook/docusaurus/pull/8507) docs: blog + community + dogfood docs should use .mdx extension ([@slorber](https://github.com/slorber))
- [#8490](https://github.com/facebook/docusaurus/pull/8490) docs(website): use .mdx extension for every docs ([@slorber](https://github.com/slorber))
- [#8484](https://github.com/facebook/docusaurus/pull/8484) docs: `plugin-content-sitemap` -> `plugin-sitemap` ([@chubei](https://github.com/chubei))
- [#8454](https://github.com/facebook/docusaurus/pull/8454) fix(docs): Update link for tooljet website(broken) ([@shawshankkumar](https://github.com/shawshankkumar))
- [#8443](https://github.com/facebook/docusaurus/pull/8443) docs: fix website home testimonials broken image URLs ([@abhinandanwadwa](https://github.com/abhinandanwadwa))
- [#8438](https://github.com/facebook/docusaurus/pull/8438) docs: add hyperlink to swizzling in Search page ([@dandv](https://github.com/dandv))
- [#8431](https://github.com/facebook/docusaurus/pull/8431) docs: add diagrams page to 2.2.0 sidebar ([@homotechsual](https://github.com/homotechsual))
- [#8307](https://github.com/facebook/docusaurus/pull/8307) docs: clarify additionalLanguages with custom language definitions. ([@homotechsual](https://github.com/homotechsual))
- [#8390](https://github.com/facebook/docusaurus/pull/8390) docs: changed actions/checkout version from 2 to 3 ([@cm-igarashi-ryosuke](https://github.com/cm-igarashi-ryosuke))
- [#8262](https://github.com/facebook/docusaurus/pull/8262) docs: fix links to external plugin description ([@scubamaggo](https://github.com/scubamaggo))
- [#8375](https://github.com/facebook/docusaurus/pull/8375) docs: add Kinsta to deployment page ([@palmiak](https://github.com/palmiak))
- [#8417](https://github.com/facebook/docusaurus/pull/8417) docs: document theme-mermaid in API sidebar ([@homotechsual](https://github.com/homotechsual))
- [#8392](https://github.com/facebook/docusaurus/pull/8392) docs: add i18n guide doc should link to i18n core config doc ([@mcallisto](https://github.com/mcallisto))
- [#8388](https://github.com/facebook/docusaurus/pull/8388) docs: point to where commit types are listed ([@dandv](https://github.com/dandv))
- [#8352](https://github.com/facebook/docusaurus/pull/8352) docs: actually demo the zero-width space workaround in MDX ([@waldyrious](https://github.com/waldyrious))
- [#8363](https://github.com/facebook/docusaurus/pull/8363) docs: fix unclosed admonition code block ([@Zwyx](https://github.com/Zwyx))
- [#8364](https://github.com/facebook/docusaurus/pull/8364) docs: autogenerated page comment does not matching dirName in examples ([@HumbleDeer](https://github.com/HumbleDeer))
- [#8359](https://github.com/facebook/docusaurus/pull/8359) docs: fix anchor link `#customFields` ([@Zwyx](https://github.com/Zwyx))
- [#8320](https://github.com/facebook/docusaurus/pull/8320) docs: remove blog.johnnyreilly.com Google Analytics tag from docs part 2 ([@johnnyreilly](https://github.com/johnnyreilly))
- [#8335](https://github.com/facebook/docusaurus/pull/8335) docs: use Mermaid diagram for routing page ([@Mysterious-Dev](https://github.com/Mysterious-Dev))
- [#8313](https://github.com/facebook/docusaurus/pull/8313) docs: link to migration guide from Blogger to Docusaurus / remove blog.johnnyreilly.com Google Analytics tag from docs ([@johnnyreilly](https://github.com/johnnyreilly))
- [#8292](https://github.com/facebook/docusaurus/pull/8292) docs: document tag types for insertHtmlContent ([@homotechsual](https://github.com/homotechsual))
- [#8272](https://github.com/facebook/docusaurus/pull/8272) docs: fix mermaid theme options typo ([@ntucker](https://github.com/ntucker))
- [#8209](https://github.com/facebook/docusaurus/pull/8209) docs: removing community resource docusaurus-plugin-relative-paths ([@ShahriarKh](https://github.com/ShahriarKh))
- [#8146](https://github.com/facebook/docusaurus/pull/8146) docs(content-docs): add api doc for displayed_sidebar front matter ([@slorber](https://github.com/slorber))
- [#8115](https://github.com/facebook/docusaurus/pull/8115) docs: add caveat about using Translate in string contexts ([@Josh-Cena](https://github.com/Josh-Cena))
- [#8053](https://github.com/facebook/docusaurus/pull/8053) docs: document usage of docs `frontMatter.custom_edit_url: null` ([@homotechsual](https://github.com/homotechsual))
- [#8010](https://github.com/facebook/docusaurus/pull/8010) docs(showcase): add 74 new showcase sites ([@slorber](https://github.com/slorber))
- [#7955](https://github.com/facebook/docusaurus/pull/7955) docs: add docusaurus-post-generator to community resource list ([@moojing](https://github.com/moojing))
- [#7906](https://github.com/facebook/docusaurus/pull/7906) docs: add TOC heading level options to guide ([@Josh-Cena](https://github.com/Josh-Cena))
- [#7884](https://github.com/facebook/docusaurus/pull/7884) docs: add baseUrl to example tsconfig ([@Foosballfan](https://github.com/Foosballfan))
- [#7835](https://github.com/facebook/docusaurus/pull/7835) docs: update workbox doc link ([@hslee2008](https://github.com/hslee2008))
- [#7799](https://github.com/facebook/docusaurus/pull/7799) docs: formally document how admonitions can be customized ([@Josh-Cena](https://github.com/Josh-Cena))
- [#7796](https://github.com/facebook/docusaurus/pull/7796) docs: modify the description of deploying to Netlify ([@Oreoxmt](https://github.com/Oreoxmt))
- `docusaurus-logger`
- [#9210](https://github.com/facebook/docusaurus/pull/9210) docs: add the missing import logger statement ([@Josh-Cena](https://github.com/Josh-Cena))
- [#8047](https://github.com/facebook/docusaurus/pull/8047) docs: improve alt messages ([@Josh-Cena](https://github.com/Josh-Cena))
- `create-docusaurus`
- [#8944](https://github.com/facebook/docusaurus/pull/8944) polish(create-docusaurus): add comment in config to mention different ways to declare config + doc link ([@thadguidry](https://github.com/thadguidry))
- [#8323](https://github.com/facebook/docusaurus/pull/8323) docs: fix typo 'internalization' ([@dandv](https://github.com/dandv))
- `docusaurus-plugin-ideal-image`
- [#8630](https://github.com/facebook/docusaurus/pull/8630) docs: normalize README for ideal-image plugin ([@Mysterious-Dev](https://github.com/Mysterious-Dev))
- `docusaurus-mdx-loader`
- [#8419](https://github.com/facebook/docusaurus/pull/8419) docs: document siteConfig.markdown + better mdx-loader retrocompat ([@slorber](https://github.com/slorber))
#### :robot: Dependencies
- Other
- [#9440](https://github.com/facebook/docusaurus/pull/9440) chore(deps): bump actions/setup-node from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9441](https://github.com/facebook/docusaurus/pull/9441) chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9367](https://github.com/facebook/docusaurus/pull/9367) chore(deps): bump postcss from 8.4.26 to 8.4.31 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9344](https://github.com/facebook/docusaurus/pull/9344) chore(deps): bump actions/checkout from 4.0.0 to 4.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9298](https://github.com/facebook/docusaurus/pull/9298) chore(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9277](https://github.com/facebook/docusaurus/pull/9277) chore(deps): bump actions/checkout from 3 to 4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9251](https://github.com/facebook/docusaurus/pull/9251) chore(deps): bump actions/dependency-review-action from 3.0.7 to 3.0.8 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9250](https://github.com/facebook/docusaurus/pull/9250) chore(deps): bump marocchino/sticky-pull-request-comment from 2.7.0 to 2.8.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9227](https://github.com/facebook/docusaurus/pull/9227) chore(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.7 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9174](https://github.com/facebook/docusaurus/pull/9174) chore(deps): bump marocchino/sticky-pull-request-comment from 2.6.2 to 2.7.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9096](https://github.com/facebook/docusaurus/pull/9096) chore(deps): bump semver from 7.3.8 to 7.5.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9061](https://github.com/facebook/docusaurus/pull/9061) chore(deps): bump github/codeql-action from 2.3.6 to 2.13.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9038](https://github.com/facebook/docusaurus/pull/9038) chore(deps): bump github/codeql-action from 2.3.5 to 2.3.6 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9039](https://github.com/facebook/docusaurus/pull/9039) chore(deps): bump actions/dependency-review-action from 3.0.4 to 3.0.6 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#9019](https://github.com/facebook/docusaurus/pull/9019) chore(deps): bump github/codeql-action from 2.3.3 to 2.3.5 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8964](https://github.com/facebook/docusaurus/pull/8964) chore(deps): bump github/codeql-action from 2.3.2 to 2.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8955](https://github.com/facebook/docusaurus/pull/8955) chore(deps): bump github/codeql-action from 2.3.0 to 2.3.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8922](https://github.com/facebook/docusaurus/pull/8922) chore(deps): bump marocchino/sticky-pull-request-comment from 2.5.0 to 2.6.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8923](https://github.com/facebook/docusaurus/pull/8923) chore(deps): bump treosh/lighthouse-ci-action from 9.6.8 to 10.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8924](https://github.com/facebook/docusaurus/pull/8924) chore(deps): bump github/codeql-action from 2.2.12 to 2.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8899](https://github.com/facebook/docusaurus/pull/8899) chore(deps): bump github/codeql-action from 2.2.11 to 2.2.12 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8900](https://github.com/facebook/docusaurus/pull/8900) chore(deps): bump actions/checkout from 3.5.0 to 3.5.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8879](https://github.com/facebook/docusaurus/pull/8879) chore(deps): bump actions/github-script from 6.4.0 to 6.4.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8878](https://github.com/facebook/docusaurus/pull/8878) chore(deps): bump github/codeql-action from 2.2.9 to 2.2.11 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8836](https://github.com/facebook/docusaurus/pull/8836) chore(deps): bump github/codeql-action from 2.2.7 to 2.2.9 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8837](https://github.com/facebook/docusaurus/pull/8837) chore(deps): bump actions/checkout from 3.4.0 to 3.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8797](https://github.com/facebook/docusaurus/pull/8797) chore(deps): bump actions/checkout from 3.3.0 to 3.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8796](https://github.com/facebook/docusaurus/pull/8796) chore(deps): bump actions/dependency-review-action from 3.0.3 to 3.0.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8795](https://github.com/facebook/docusaurus/pull/8795) chore(deps): bump github/codeql-action from 2.2.6 to 2.2.7 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8766](https://github.com/facebook/docusaurus/pull/8766) chore(deps): bump treosh/lighthouse-ci-action from 9.3.1 to 9.6.8 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8767](https://github.com/facebook/docusaurus/pull/8767) chore(deps): bump github/codeql-action from 2.2.5 to 2.2.6 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8739](https://github.com/facebook/docusaurus/pull/8739) chore(deps): bump github/codeql-action from 2.2.4 to 2.2.5 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8663](https://github.com/facebook/docusaurus/pull/8663) chore(deps): bump marocchino/sticky-pull-request-comment from 2.3.1 to 2.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8662](https://github.com/facebook/docusaurus/pull/8662) chore(deps): bump github/codeql-action from 2.2.2 to 2.2.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8638](https://github.com/facebook/docusaurus/pull/8638) chore(deps): bump github/codeql-action from 2.2.1 to 2.2.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8624](https://github.com/facebook/docusaurus/pull/8624) chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8604](https://github.com/facebook/docusaurus/pull/8604) chore(deps): bump actions/github-script from 6.3.3 to 6.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8605](https://github.com/facebook/docusaurus/pull/8605) chore(deps): bump github/codeql-action from 2.1.39 to 2.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8572](https://github.com/facebook/docusaurus/pull/8572) chore(deps): bump github/codeql-action from 2.1.38 to 2.1.39 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8553](https://github.com/facebook/docusaurus/pull/8553) chore(deps): bump github/codeql-action from 2.1.37 to 2.1.38 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8531](https://github.com/facebook/docusaurus/pull/8531) chore(deps): bump actions/checkout from 3.2.0 to 3.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8532](https://github.com/facebook/docusaurus/pull/8532) chore(deps): bump actions/dependency-review-action from 3.0.2 to 3.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8533](https://github.com/facebook/docusaurus/pull/8533) chore(deps): bump actions/setup-node from 3.5.1 to 3.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8496](https://github.com/facebook/docusaurus/pull/8496) chore(deps): bump jakepartusch/wait-for-netlify-action from 1.3 to 1.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8464](https://github.com/facebook/docusaurus/pull/8464) chore(deps): bump actions/dependency-review-action from 3.0.1 to 3.0.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8440](https://github.com/facebook/docusaurus/pull/8440) chore(deps): bump github/codeql-action from 2.1.36 to 2.1.37 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8435](https://github.com/facebook/docusaurus/pull/8435) chore(deps): bump github/codeql-action from 2.1.35 to 2.1.36 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8434](https://github.com/facebook/docusaurus/pull/8434) chore(deps): bump actions/checkout from 3.1.0 to 3.2.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8412](https://github.com/facebook/docusaurus/pull/8412) chore(deps): bump github/codeql-action from 2.1.32 to 2.1.35 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8385](https://github.com/facebook/docusaurus/pull/8385) chore(deps): bump marocchino/sticky-pull-request-comment from 2.3.0 to 2.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8360](https://github.com/facebook/docusaurus/pull/8360) chore(deps): bump actions/dependency-review-action from 3.0.0 to 3.0.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8341](https://github.com/facebook/docusaurus/pull/8341) chore(deps): bump github/codeql-action from 2.1.31 to 2.1.32 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8340](https://github.com/facebook/docusaurus/pull/8340) chore(deps): bump actions/dependency-review-action from 2.5.1 to 3.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8339](https://github.com/facebook/docusaurus/pull/8339) chore(deps): bump treosh/lighthouse-ci-action from 9.3.0 to 9.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8295](https://github.com/facebook/docusaurus/pull/8295) chore(deps): bump github/codeql-action from 2.1.29 to 2.1.31 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8271](https://github.com/facebook/docusaurus/pull/8271) chore(deps): bump github/codeql-action from 2.1.28 to 2.1.29 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8270](https://github.com/facebook/docusaurus/pull/8270) chore(deps): bump marocchino/sticky-pull-request-comment from 2.2.1 to 2.3.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8240](https://github.com/facebook/docusaurus/pull/8240) chore(deps): bump actions/dependency-review-action from 2.5.0 to 2.5.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8241](https://github.com/facebook/docusaurus/pull/8241) chore(deps): bump github/codeql-action from 2.1.27 to 2.1.28 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8221](https://github.com/facebook/docusaurus/pull/8221) chore(deps): bump marocchino/sticky-pull-request-comment from 2.2.0 to 2.2.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8220](https://github.com/facebook/docusaurus/pull/8220) chore(deps): bump actions/dependency-review-action from 2.4.0 to 2.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8219](https://github.com/facebook/docusaurus/pull/8219) chore(deps): bump actions/github-script from 6.3.1 to 6.3.3 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8222](https://github.com/facebook/docusaurus/pull/8222) chore(deps): bump actions/setup-node from 3.5.0 to 3.5.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8200](https://github.com/facebook/docusaurus/pull/8200) chore(deps): bump github/codeql-action from 2.1.26 to 2.1.27 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8199](https://github.com/facebook/docusaurus/pull/8199) chore(deps): bump actions/checkout from 3.0.2 to 3.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8169](https://github.com/facebook/docusaurus/pull/8169) chore(deps): bump github/codeql-action from 2.1.22 to 2.1.26 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8170](https://github.com/facebook/docusaurus/pull/8170) chore(deps): bump actions/setup-node from 3.4.1 to 3.5.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8167](https://github.com/facebook/docusaurus/pull/8167) chore(deps): bump actions/github-script from 6.2.0 to 6.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8168](https://github.com/facebook/docusaurus/pull/8168) chore(deps): bump actions/dependency-review-action from 2.1.0 to 2.4.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8064](https://github.com/facebook/docusaurus/pull/8064) chore: bump react-medium-image-zoom ([@Josh-Cena](https://github.com/Josh-Cena))
- [#8051](https://github.com/facebook/docusaurus/pull/8051) chore(deps): bump github/codeql-action from 2.1.21 to 2.1.22 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8019](https://github.com/facebook/docusaurus/pull/8019) chore(deps): bump actions/github-script from 6.1.1 to 6.2.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#8020](https://github.com/facebook/docusaurus/pull/8020) chore(deps): bump github/codeql-action from 2.1.20 to 2.1.21 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7988](https://github.com/facebook/docusaurus/pull/7988) chore(deps): bump actions/dependency-review-action from 2.0.4 to 2.1.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7987](https://github.com/facebook/docusaurus/pull/7987) chore(deps): bump github/codeql-action from 2.1.18 to 2.1.20 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7957](https://github.com/facebook/docusaurus/pull/7957) chore(deps): bump actions/github-script from 6.1.0 to 6.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7925](https://github.com/facebook/docusaurus/pull/7925) chore(deps): bump github/codeql-action from 2.1.17 to 2.1.18 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7879](https://github.com/facebook/docusaurus/pull/7879) chore(deps): bump github/codeql-action from 2.1.16 to 2.1.17 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7804](https://github.com/facebook/docusaurus/pull/7804) chore(deps): bump github/codeql-action from 2.1.15 to 2.1.16 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7805](https://github.com/facebook/docusaurus/pull/7805) chore(deps): bump actions/dependency-review-action from 2.0.2 to 2.0.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
- [#7806](https://github.com/facebook/docusaurus/pull/7806) chore(deps): bump actions/setup-node from 3.4.0 to 3.4.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
- `create-docusaurus`, `docusaurus-cssnano-preset`, `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-debug`, `docusaurus-plugin-google-analytics`, `docusaurus-plugin-google-gtag`, `docusaurus-plugin-google-tag-manager`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-remark-plugin-npm2yarn`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-mermaid`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-types`, `docusaurus-utils-common`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`
- [#9148](https://github.com/facebook/docusaurus/pull/9148) chore: upgrade dependencies (non-major) ([@Josh-Cena](https://github.com/Josh-Cena))
- [#8749](https://github.com/facebook/docusaurus/pull/8749) chore: upgrade dependencies (non-major) ([@Josh-Cena](https://github.com/Josh-Cena))
- [#8534](https://github.com/facebook/docusaurus/pull/8534) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))
- `create-docusaurus`
- [#8926](https://github.com/facebook/docusaurus/pull/8926) chore: upgrade TypeScript to v5.0 ([@Josh-Cena](https://github.com/Josh-Cena))
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-client-redirects`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-content-pages`, `docusaurus-plugin-debug`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-plugin-sitemap`, `docusaurus-theme-classic`, `docusaurus-theme-common`, `docusaurus-theme-live-codeblock`, `docusaurus-theme-search-algolia`, `docusaurus-theme-translations`, `docusaurus-utils`, `docusaurus`
- [#8537](https://github.com/facebook/docusaurus/pull/8537) chore: bump dependencies major versions ([@Josh-Cena](https://github.com/Josh-Cena))
- `create-docusaurus`, `docusaurus-cssnano-preset`, `docusaurus-logger`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-content-blog`, `docusaurus-plugin-content-docs`, `docusaurus-plugin-ideal-image`, `docusaurus-plugin-pwa`, `docusaurus-theme-classic`, `docusaurus-theme-search-algolia`, `docusaurus-utils-validation`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`, `lqip-loader`, `stylelint-copyright`
- [#7993](https://github.com/facebook/docusaurus/pull/7993) chore: upgrade dependencies ([@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-search-algolia`, `docusaurus-types`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`
- [#7883](https://github.com/facebook/docusaurus/pull/7883) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-migrate`, `docusaurus-plugin-pwa`, `docusaurus-theme-search-algolia`, `docusaurus-utils`, `docusaurus`, `eslint-plugin`
- [#7822](https://github.com/facebook/docusaurus/pull/7822) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))
- `create-docusaurus`, `docusaurus-mdx-loader`, `docusaurus-plugin-pwa`, `docusaurus`, `eslint-plugin`
- [#7794](https://github.com/facebook/docusaurus/pull/7794) chore: upgrade dependencies ([@Josh-Cena](https://github.com/Josh-Cena))
#### :wrench: Maintenance
- `docusaurus-migrate`
- [#9400](https://github.com/facebook/docusaurus/pull/9400) chore: remove docusaurus-migrate ([@slorber](https://github.com/slorber))
- `docusaurus-theme-search-algolia`
- [#9320](https://github.com/facebook/docusaurus/pull/9320) chore(theme-search-algolia): revert docsearch package range downgrade after bugfix release ([@slorber](https://github.com/slorber))
- `docusaurus-theme-translations`
- [#9304](https://github.com/facebook/docusaurus/pull/9304) chore(theme-translations): complete French translations ([@forresst](https://github.com/forresst))
- Other
- [#9264](https://github.com/facebook/docusaurus/pull/9264) ci: only install Chromium for Playwright Argos tests ([@mxschmitt](https://github.com/mxschmitt))
- [#9245](https://github.com/facebook/docusaurus/pull/9245) chore: bump devcontainer to Ubuntu 22.04 to resolve arm64 incompatibility ([@AFRUITPIE](https://github.com/AFRUITPIE))
- [#8947](https://github.com/facebook/docusaurus/pull/8947) test: add visual regression tests with Argos CI ([@slorber](https://github.com/slorber))
- [#8911](https://github.com/facebook/docusaurus/pull/8911) chore: migrate website config to createConfigAsync ([@slorber](https://github.com/slorber))
- [#8578](https://github.com/facebook/docusaurus/pull/8578) docs: fix dead anchor for issue reporting guidelines in template ([@Sainan](https://github.com/Sainan))
- [#8447](https://github.com/facebook/docusaurus/pull/8447) chore: update lerna to v6.2.0 ([@AgentEnder](https://github.com/AgentEnder))
- [#7967](https://github.com/facebook/docusaurus/pull/7967) test: improve e2e verdaccio configuration ([@juanpicado](https://github.com/juanpicado))
- [#7863](https://github.com/facebook/docusaurus/pull/7863) docs: publish 2.0.0 release blog post + adapt website for the launch ([@slorber](https://github.com/slorber))
- [#7828](https://github.com/facebook/docusaurus/pull/7828) misc: change showcase submission process, use GitHub discussion ([@slorber](https://github.com/slorber))
- `docusaurus-plugin-content-blog`
- [#9195](https://github.com/facebook/docusaurus/pull/9195) test(blog-plugin): fix ability to generate proper blog website fixture build snapshot ([@slorber](https://github.com/slorber))
- `create-docusaurus`, `docusaurus-theme-classic`
- [#9024](https://github.com/facebook/docusaurus/pull/9024) docs: remove Meta Data Policy footer link on website ([@KarthickSakthi](https://github.com/KarthickSakthi))
- `docusaurus`
- [#8660](https://github.com/facebook/docusaurus/pull/8660) chore: bump update-notifier ([@layershifter](https://github.com/layershifter))
#### Committers: 132
- 0x24Karthick ([@KarthickSakthi](https://github.com/KarthickSakthi))
- Abhinandan Wadhwa ([@abhinandanwadwa](https://github.com/abhinandanwadwa))
- Abinash Satapathy ([@Abinashbunty](https://github.com/Abinashbunty))
- Adam Patterson ([@adampatterson](https://github.com/adampatterson))
- Adithya Krishna ([@adithyaakrishna](https://github.com/adithyaakrishna))
- Ahmad Shrif ([@amdshrif](https://github.com/amdshrif))
- Ahmed Mustafa Malik ([@amm98d](https://github.com/amm98d))
- Akshay Bhalotia ([@akshaybhalotia](https://github.com/akshaybhalotia))
- Alex ([@sashashura](https://github.com/sashashura))
- Alexander Nguyen ([@GalexyN](https://github.com/GalexyN))
- Alexey Pyltsyn ([@lex111](https://github.com/lex111))
- Andrew Lyons ([@andrewnicols](https://github.com/andrewnicols))
- Andrés Villanueva ([@Villanuevand](https://github.com/Villanuevand))
- Anna ([@HumbleDeer](https://github.com/HumbleDeer))
- Anton Kastritskii ([@antonk52](https://github.com/antonk52))
- Antony Onipko ([@antonyoni](https://github.com/antonyoni))
- Aolin ([@Oreoxmt](https://github.com/Oreoxmt))
- Aqueeb ([@aqueeb](https://github.com/aqueeb))
- Bei Chu ([@chubei](https://github.com/chubei))
- Billy Chan ([@billy1624](https://github.com/billy1624))
- Biplav Kumar Mazumdar ([@biplavmz](https://github.com/biplavmz))
- Bruce ([@recallwei](https://github.com/recallwei))
- Charles Killer ([@Foosballfan](https://github.com/Foosballfan))
- Chongyi Zheng ([@harryzcy](https://github.com/harryzcy))
- Chua Chee How ([@rojakcoder](https://github.com/rojakcoder))
- Clément Vannicatte ([@shortcuts](https://github.com/shortcuts))
- Colin McDonnell ([@colinhacks](https://github.com/colinhacks))
- Coupy ([@HyeokjinKang](https://github.com/HyeokjinKang))
- Craigory Coppola ([@AgentEnder](https://github.com/AgentEnder))
- Dan Dascalescu ([@dandv](https://github.com/dandv))
- Dan Roscigno ([@DanRoscigno](https://github.com/DanRoscigno))
- Danilo Woznica ([@danilowoz](https://github.com/danilowoz))
- David J. Felix ([@DavidJFelix](https://github.com/DavidJFelix))
- Debbie O'Brien ([@debs-obrien](https://github.com/debs-obrien))
- Devansu Yadav ([@Devansu-Yadav](https://github.com/Devansu-Yadav))
- Dinh Bao Dang ([@chillinPanda](https://github.com/chillinPanda))
- Dongjoon Lee ([@Djunnni](https://github.com/Djunnni))
- Eduardo Mínguez ([@e-minguez](https://github.com/e-minguez))
- Eunkwang Shin ([@gracefullight](https://github.com/gracefullight))
- Forresst ([@forresst](https://github.com/forresst))
- Francesco Ciulla ([@FrancescoXX](https://github.com/FrancescoXX))
- Fredrik Stave ([@fredrikstave](https://github.com/fredrikstave))
- Fxpby ([@fxpby](https://github.com/fxpby))
- Gabriel Csapo ([@gabrielcsapo](https://github.com/gabrielcsapo))
- Gareth Dwyer ([@sixhobbits](https://github.com/sixhobbits))
- Greg Bergé ([@gregberge](https://github.com/gregberge))
- Grégory Heitz ([@edno](https://github.com/edno))
- Gustav Tonér ([@gazab](https://github.com/gazab))
- Hayden Hong ([@AFRUITPIE](https://github.com/AFRUITPIE))
- Hidde de Vries ([@hidde](https://github.com/hidde))
- Hyunseung ([@hslee2008](https://github.com/hslee2008))
- JJ Style ([@jj-style](https://github.com/jj-style))
- James Kerrane ([@thatrobotdev](https://github.com/thatrobotdev))
- Jean Humann ([@jean-humann](https://github.com/jean-humann))
- Jesper Engberg ([@jeengbe](https://github.com/jeengbe))
- Jody Heavener ([@jodyheavener](https://github.com/jodyheavener))
- Joe Williams ([@BubbaJoe](https://github.com/BubbaJoe))
- John Cao ([@jhcao23](https://github.com/jhcao23))
- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly))
- Jordan Manley ([@werner33](https://github.com/werner33))
- Jorens Merenjanu ([@JorensM](https://github.com/JorensM))
- Joshua Chen ([@Josh-Cena](https://github.com/Josh-Cena))
- Juan Picado ([@juanpicado](https://github.com/juanpicado))
- Kolja ([@razzeee](https://github.com/razzeee))
- Lane Goolsby ([@lanegoolsby](https://github.com/lanegoolsby))
- Lorenzo Lewis ([@lorenzolewis](https://github.com/lorenzolewis))
- Maciek Palmowski ([@palmiak](https://github.com/palmiak))
- Manuel ([@manuel-rw](https://github.com/manuel-rw))
- Marco Kuper ([@scubamaggo](https://github.com/scubamaggo))
- Marco Stroppel ([@mstroppel](https://github.com/mstroppel))
- Marie ([@schneegansm](https://github.com/schneegansm))
- Markshawn ([@MarkShawn2020](https://github.com/MarkShawn2020))
- Martin Adamko ([@attitude](https://github.com/attitude))
- Max Schmitt ([@mxschmitt](https://github.com/mxschmitt))
- Michael Remediakis ([@mickremedi](https://github.com/mickremedi))
- Mikey O'Toole ([@homotechsual](https://github.com/homotechsual))
- ModupeD ([@ModupeD](https://github.com/ModupeD))
- Mu-Jing-Tsai ([@moojing](https://github.com/moojing))
- Mysterious_Dev ([@Mysterious-Dev](https://github.com/Mysterious-Dev))
- Naffy Dharni ([@knownasnaffy](https://github.com/knownasnaffy))
- Naman Garg ([@NamanGarg2075](https://github.com/NamanGarg2075))
- Nathaniel Tucker ([@ntucker](https://github.com/ntucker))
- Oleksandr Fediashov ([@layershifter](https://github.com/layershifter))
- Oluwatobi Sofela ([@oluwatobiss](https://github.com/oluwatobiss))
- Paul Razvan Berg ([@PaulRBerg](https://github.com/PaulRBerg))
- Pinaki Bhattacharjee ([@pinakipb2](https://github.com/pinakipb2))
- Raphaël Barbazza ([@rbarbazz](https://github.com/rbarbazz))
- Rashid ([@rashidmya](https://github.com/rashidmya))
- Ryosuke Igarashi ([@cm-igarashi-ryosuke](https://github.com/cm-igarashi-ryosuke))
- SADIK KUZU ([@sadikkuzu](https://github.com/sadikkuzu))
- Sanjaiyan Parthipan ([@sanjaiyan-dev](https://github.com/sanjaiyan-dev))
- Serenus ([@Kesyau](https://github.com/Kesyau))
- Shahriar ([@ShahriarKh](https://github.com/ShahriarKh))
- Shashank Kumar ([@shawshankkumar](https://github.com/shawshankkumar))
- Shun Wakatsuki ([@shwaka](https://github.com/shwaka))
- Silvestar Bistrović ([@maliMirkec](https://github.com/maliMirkec))
- Sujal Gupta ([@heysujal](https://github.com/heysujal))
- Sunghyun Cho ([@anaclumos](https://github.com/anaclumos))
- Surav Shrestha ([@suravshrestha](https://github.com/suravshrestha))
- Sébastien Lorber ([@slorber](https://github.com/slorber))
- Tamal Anwar Chowdhury ([@tamalchowdhury](https://github.com/tamalchowdhury))
- Tarun Chauhan ([@tarunrajput](https://github.com/tarunrajput))
- Tatsunori Uchino ([@tats-u](https://github.com/tats-u))
- Thad Guidry ([@thadguidry](https://github.com/thadguidry))
- Tom Mrazauskas ([@mrazauskas](https://github.com/mrazauskas))
- Viktor Malmedal ([@JohnVicke](https://github.com/JohnVicke))
- Waldir Pimenta ([@waldyrious](https://github.com/waldyrious))
- Wan Sim ([@0420syj](https://github.com/0420syj))
- Webber Takken ([@webbertakken](https://github.com/webbertakken))
- Will Ceolin ([@wceolin](https://github.com/wceolin))
- Yangshun Tay ([@yangshun](https://github.com/yangshun))
- Zwyx ([@Zwyx](https://github.com/Zwyx))
- [@Dr-Electron](https://github.com/Dr-Electron)
- [@FlorinaPacurar](https://github.com/FlorinaPacurar)
- [@Mogyuchi](https://github.com/Mogyuchi)
- [@Sainan](https://github.com/Sainan)
- [@VinceCYLiao](https://github.com/VinceCYLiao)
- [@allyw2002](https://github.com/allyw2002)
- [@bitpredator](https://github.com/bitpredator)
- [@conlacda](https://github.com/conlacda)
- [@dawei-wang](https://github.com/dawei-wang)
- [@la55u](https://github.com/la55u)
- [@mcallisto](https://github.com/mcallisto)
- [@prateekbytes](https://github.com/prateekbytes)
- [@qwerzl](https://github.com/qwerzl)
- [@rsteele6](https://github.com/rsteele6)
- [@samatt14](https://github.com/samatt14)
- [@thedevwonder](https://github.com/thedevwonder)
- [@yosukekato165](https://github.com/yosukekato165)
- ozaki ([@OzakIOne](https://github.com/OzakIOne))
- sykp241095 ([@sykp241095](https://github.com/sykp241095))
- 初冬 ([@chudongvip](https://github.com/chudongvip))
## 2.4.3 (2023-09-20)
#### :bug: Bug Fix
- `docusaurus-plugin-content-docs`
- [#9107](https://github.com/facebook/docusaurus/pull/9107) fix(content-docs): sidebar generator should return customProps for doc items ([@TheCatLady](https://github.com/TheCatLady))
- `docusaurus-theme-classic`
- [#9108](https://github.com/facebook/docusaurus/pull/9108) feat(theme-classic): add description & keywords microdata to blog posts ([@TheCatLady](https://github.com/TheCatLady))
- [#9099](https://github.com/facebook/docusaurus/pull/9099) fix(theme): only set classname on ul elements if they have an existing class ([@homotechsual](https://github.com/homotechsual))
- [#9243](https://github.com/facebook/docusaurus/pull/9243) fix(theme-common): ThemedComponent should display something when JS is disabled ([@slorber](https://github.com/slorber))
- `docusaurus-theme-classic`, `docusaurus-theme-common`
- [#9130](https://github.com/facebook/docusaurus/pull/9130) fix(theme): canonical url should be not change after hydration if url accessed with/without trailing slash ([@ori-shalom](https://github.com/ori-shalom))
#### Committers: 4
- Mikey O'Toole ([@homotechsual](https://github.com/homotechsual))
- Ori Shalom ([@ori-shalom](https://github.com/ori-shalom))
- Sébastien Lorber ([@slorber](https://github.com/slorber))
- [@TheCatLady](https://github.com/TheCatLady)
## 2.4.2 (2023-09-20)
Bad npm publish, please use 2.4.3
## 2.4.1 (2023-05-15)
#### :bug: Bug Fix

View File

@ -1,7 +1,13 @@
<h1 align="center">
<p align="center">Docusaurus</p>
<a href="https://docusaurus.io"><img src="https://docusaurus.io/img/slash-introducing.svg" alt="Docusaurus"></a>
</h1>
<div align="center">
<h1 align="center">
Docusaurus
<br />
<br />
<a href="https://docusaurus.io">
<img src="https://docusaurus.io/img/slash-introducing.svg" alt="Docusaurus">
</a>
</h1>
</div>
<p align="center">
<a href="https://twitter.com/docusaurus"><img src="https://img.shields.io/twitter/follow/docusaurus.svg?style=social" align="right" alt="Twitter Follow" /></a>
@ -14,17 +20,13 @@
<a href= "https://github.com/prettier/prettier"><img alt="code style: prettier" src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg"></a>
<a href="#license"><img src="https://img.shields.io/github/license/sourcerer-io/hall-of-fame.svg?colorB=ff0000"></a>
<a href="https://github.com/facebook/jest"><img src="https://img.shields.io/badge/tested_with-jest-99424f.svg" alt="Tested with Jest"></a>
<a href="https://argos-ci.com" target="_blank" rel="noreferrer noopener" aria-label="Covered by Argos"><img src="https://argos-ci.com/badge.svg" alt="Covered by Argos" width="133" height="20" /></a>
<a href="https://gitpod.io/#https://github.com/facebook/docusaurus"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"/></a>
<a href="https://app.netlify.com/sites/docusaurus-2/deploys"><img src="https://api.netlify.com/api/v1/badges/9e1ff559-4405-4ebe-8718-5e21c0774bc8/deploy-status" alt="Netlify Status"></a>
<a href="https://meercode.io/facebook/docusaurus"><img src="https://meercode.io/badge/facebook/docusaurus?type=ci-score" alt="CI Score"></a>
<a href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Ffacebook%2Fdocusaurus%2Ftree%2Fmain%2Fexamples%2Fclassic&project-name=my-docusaurus-site&repo-name=my-docusaurus-site"><img src="https://vercel.com/button" alt="Deploy with Vercel"/></a>
<a href="https://app.netlify.com/start/deploy?repository=https://github.com/slorber/docusaurus-starter"><img src="https://www.netlify.com/img/deploy/button.svg" alt="Deploy to Netlify"></a>
</p>
> **We are working hard on Docusaurus v2. If you are new to Docusaurus, try using the new version instead of v1. See the [Docusaurus v2 website](https://docusaurus.io/) for more details.**
> Docusaurus v1 doc is available at [v1.docusaurus.io](https://v1.docusaurus.io) and code is available on branch [docusaurus-v1](https://github.com/facebook/docusaurus/tree/docusaurus-v1)
## Introduction
Docusaurus is a project for building, deploying, and maintaining open source project websites easily.

View File

@ -11,9 +11,9 @@ const CookieName = 'DocusaurusPlaygroundName';
const PlaygroundConfigs = {
codesandbox:
'https://codesandbox.io/p/sandbox/github/facebook/docusaurus/tree/main/examples/classic?file=%2FREADME.md',
'https://codesandbox.io/p/sandbox/github/facebook/docusaurus/tree/main/examples/classic?file=%2FREADME.md&privacy=public',
'codesandbox-ts':
'https://codesandbox.io/p/sandbox/github/facebook/docusaurus/tree/main/examples/classic-typescript?file=%2FREADME.md',
'https://codesandbox.io/p/sandbox/github/facebook/docusaurus/tree/main/examples/classic-typescript?file=%2FREADME.md&privacy=public',
// Slow to load
// stackblitz: 'https://stackblitz.com/github/facebook/docusaurus/tree/main/examples/classic',

View File

@ -1,6 +1,6 @@
{
"name": "new.docusaurus.io",
"version": "3.0.0-alpha.0",
"version": "3.2.0",
"private": true,
"scripts": {
"start": "npx --package netlify-cli netlify dev"

View File

@ -27,6 +27,18 @@ const scoreEntry = (rawScore) => {
};
/**
* @param {string} url
* @returns {module:url.URL}
*/
function createURL(url) {
try {
return new URL(url);
} catch (e) {
throw new Error(`Can't create URL for string=${url}`, {cause: e});
}
}
/**
* @param {Object} param0
* @param {string} param0.url
* @param {LighthouseSummary} param0.summary
@ -34,7 +46,7 @@ const scoreEntry = (rawScore) => {
*/
const createMarkdownTableRow = ({url, summary, reportUrl}) =>
[
`| [${new URL(url).pathname}](${url})`,
`| [${createURL(url).pathname}](${url})`,
.../** @type {(keyof LighthouseSummary)[]} */ (
Object.keys(summaryKeys)
).map((k) => scoreEntry(summary[k])),

View File

@ -10,16 +10,6 @@
import fs from 'fs-extra';
import shell from 'shelljs';
const NODE_MAJOR_VERSION = parseInt(
/** @type {string} */ (process.versions.node.split('.')[0]),
10,
);
if (NODE_MAJOR_VERSION < 16) {
throw new Error(
'This generateExamples Docusaurus script requires at least Node.js 16 and npm 7. See why here: https://github.com/facebook/docusaurus/pull/5722#issuecomment-948847891',
);
}
/**
* Generate one example per init template
* We use those generated examples as CodeSandbox projects
@ -35,7 +25,8 @@ async function generateTemplateExample(template) {
// Run the docusaurus script to create the template in the examples folder
const command = template.endsWith('-typescript')
? template.replace('-typescript', ' -- --typescript')
: template;
: `${template} -- --javascript`;
shell.exec(
// We use the published init script on purpose, because the local init is
// too new and could generate upcoming/unavailable config options.
@ -78,9 +69,9 @@ async function generateTemplateExample(template) {
hardReloadOnChange: true,
view: 'browser',
template: 'docusaurus',
node: '16',
node: '18',
container: {
node: '16',
node: '18',
},
};
await fs.writeFile(

View File

@ -52,7 +52,7 @@ git diff --name-only -- '*.json' | sed 's, ,\\&,g' | xargs git checkout --
cd ..
# Build skeleton website with new version
npm_config_registry="$CUSTOM_REGISTRY_URL" npx create-docusaurus@"$NEW_VERSION" test-website classic $EXTRA_OPTS
npm_config_registry="$CUSTOM_REGISTRY_URL" npx create-docusaurus@"$NEW_VERSION" test-website classic --javascript $EXTRA_OPTS
# Stop Docker container
if [[ -z "${KEEP_CONTAINER:-true}" ]] && ( $(docker container inspect "$CONTAINER_NAME" > /dev/null 2>&1) ); then

View File

@ -1,6 +1,6 @@
{
"name": "argos",
"version": "3.0.0-alpha.0",
"version": "3.2.0",
"description": "Argos visual diff tests",
"license": "MIT",
"private": true,
@ -10,9 +10,8 @@
"report": "playwright show-report"
},
"dependencies": {
"@argos-ci/cli": "^0.4.6",
"@argos-ci/playwright": "^0.0.6",
"@playwright/test": "^1.36.1",
"@argos-ci/playwright": "^1.9.3",
"@playwright/test": "^1.41.2",
"cheerio": "^1.0.0-rc.12"
}
}

View File

@ -14,6 +14,10 @@ import type {PlaywrightTestConfig} from '@playwright/test';
const config: PlaywrightTestConfig = {
testDir: './tests',
timeout: 60000,
reporter: [['list'], ['@argos-ci/playwright/reporter']],
// Run website production built
// Need to run "yarn website:build:fast" before
webServer: {

View File

@ -52,8 +52,3 @@ Mermaid diagrams are rendered client-side and produce layout shifts
article.yt-lite {
visibility: hidden;
}
/* Can't remember why we need this one :/ */
h2#using-jsx-markup ~ div > div[class*='browserWindowBody']:has(b) {
visibility: hidden;
}

View File

@ -36,8 +36,12 @@ function isBlacklisted(pathname: string) {
}
// Some paths explicitly blacklisted
const BlacklistedPathnames: string[] = [
'/feature-requests', // Flaky because of Canny widget
'/community/canary', // Flaky because of dynamic canary version fetched from npm
// Flaky because of Canny widget
'/feature-requests',
// Flaky because of dynamic canary version fetched from npm
'/community/canary',
// Long blog post with many image carousels, often timeouts
'/blog/2022/08/01/announcing-docusaurus-2.0',
];
return (

View File

@ -1,6 +1,6 @@
# Website
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
### Installation

View File

@ -14,7 +14,7 @@ Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new
### What you'll need
- [Node.js](https://nodejs.org/en/download/) version 16.14 or above:
- [Node.js](https://nodejs.org/en/download/) version 18.0 or above:
- When installing Node.js, you are recommended to check all checkboxes related to dependencies.
## Generate a new site

View File

@ -28,7 +28,7 @@ tags: [greetings]
Congratulations, you have made your first post!
Feel free to play around and edit this post as much you like.
Feel free to play around and edit this post as much as you like.
```
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).

View File

@ -42,7 +42,7 @@ This is my **first Docusaurus document**!
It is also possible to create your sidebar explicitly in `sidebars.js`:
```js title="sidebars.js"
module.exports = {
export default {
tutorialSidebar: [
'intro',
// highlight-next-line

View File

@ -61,13 +61,13 @@ You can reference images relative to the current file as well. This is particula
Markdown code blocks are supported with Syntax highlighting.
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return (
<h1>Hello, Docusaurus!</h1>
)
}
```
````md
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return <h1>Hello, Docusaurus!</h1>;
}
```
````
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
@ -79,17 +79,19 @@ function HelloDocusaurus() {
Docusaurus has a special syntax to create admonitions and callouts:
:::tip My tip
```md
:::tip My tip
Use this awesome feature option
Use this awesome feature option
:::
:::
:::danger Take care
:::danger Take care
This action is dangerous
This action is dangerous
:::
:::
```
:::tip My tip

View File

@ -28,7 +28,7 @@ To navigate seamlessly across versions, add a version dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
module.exports = {
export default {
themeConfig: {
navbar: {
items: [

View File

@ -11,7 +11,7 @@ Let's translate `docs/intro.md` to French.
Modify `docusaurus.config.js` to add support for the `fr` locale:
```js title="docusaurus.config.js"
module.exports = {
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr'],
@ -43,7 +43,7 @@ Your localized site is accessible at [http://localhost:3000/fr/](http://localhos
:::caution
In development, you can only use one locale at a same time.
In development, you can only use one locale at a time.
:::
@ -54,7 +54,7 @@ To navigate seamlessly across languages, add a locale dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
module.exports = {
export default {
themeConfig: {
navbar: {
items: [

View File

@ -1,139 +0,0 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require('prism-react-renderer/themes/github');
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'My Site',
tagline: 'Dinosaurs are cool',
favicon: 'img/favicon.ico',
// Set the production url of your site here
url: 'https://your-docusaurus-test-site.com',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'facebook', // Usually your GitHub org/user name.
projectName: 'docusaurus', // Usually your repo name.
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
blog: {
showReadingTime: true,
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
}),
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
// Replace with your project's social card
image: 'img/docusaurus-social-card.jpg',
navbar: {
title: 'My Site',
logo: {
alt: 'My Site Logo',
src: 'img/logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Tutorial',
},
{to: '/blog', label: 'Blog', position: 'left'},
{
href: 'https://github.com/facebook/docusaurus',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Docs',
items: [
{
label: 'Tutorial',
to: '/docs/intro',
},
],
},
{
title: 'Community',
items: [
{
label: 'Stack Overflow',
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
},
{
label: 'Discord',
href: 'https://discordapp.com/invite/docusaurus',
},
{
label: 'Twitter',
href: 'https://twitter.com/docusaurus',
},
],
},
{
title: 'More',
items: [
{
label: 'Blog',
to: '/blog',
},
{
label: 'GitHub',
href: 'https://github.com/facebook/docusaurus',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
}),
};
module.exports = config;

View File

@ -0,0 +1,133 @@
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
const config: Config = {
title: 'My Site',
tagline: 'Dinosaurs are cool',
favicon: 'img/favicon.ico',
// Set the production url of your site here
url: 'https://your-docusaurus-site.example.com',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'facebook', // Usually your GitHub org/user name.
projectName: 'docusaurus', // Usually your repo name.
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'classic',
{
docs: {
sidebarPath: './sidebars.ts',
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
blog: {
showReadingTime: true,
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: './src/css/custom.css',
},
} satisfies Preset.Options,
],
],
themeConfig: {
// Replace with your project's social card
image: 'img/docusaurus-social-card.jpg',
navbar: {
title: 'My Site',
logo: {
alt: 'My Site Logo',
src: 'img/logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Tutorial',
},
{to: '/blog', label: 'Blog', position: 'left'},
{
href: 'https://github.com/facebook/docusaurus',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Docs',
items: [
{
label: 'Tutorial',
to: '/docs/intro',
},
],
},
{
title: 'Community',
items: [
{
label: 'Stack Overflow',
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
},
{
label: 'Discord',
href: 'https://discordapp.com/invite/docusaurus',
},
{
label: 'Twitter',
href: 'https://twitter.com/docusaurus',
},
],
},
{
title: 'More',
items: [
{
label: 'Blog',
to: '/blog',
},
{
label: 'GitHub',
href: 'https://github.com/facebook/docusaurus',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};
export default config;

View File

@ -16,18 +16,19 @@
"dev": "docusaurus start"
},
"dependencies": {
"@docusaurus/core": "2.4.1",
"@docusaurus/preset-classic": "2.4.1",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
"@docusaurus/core": "3.2.0",
"@docusaurus/preset-classic": "3.2.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.4.1",
"@tsconfig/docusaurus": "^1.0.5",
"typescript": "^4.7.4"
"@docusaurus/module-type-aliases": "3.2.0",
"@docusaurus/tsconfig": "3.2.0",
"@docusaurus/types": "3.2.0",
"typescript": "~5.2.2"
},
"browserslist": {
"production": [
@ -36,13 +37,13 @@
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
"last 3 chrome version",
"last 3 firefox version",
"last 5 safari version"
]
},
"engines": {
"node": ">=16.14"
"node": ">=18.0"
},
"description": "Docusaurus example project (classic-typescript template)"
}

View File

@ -3,8 +3,8 @@
"hardReloadOnChange": true,
"view": "browser",
"template": "docusaurus",
"node": "16",
"node": "18",
"container": {
"node": "16"
"node": "18"
}
}

View File

@ -1,33 +0,0 @@
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
// @ts-check
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
module.exports = sidebars;

31
examples/classic-typescript/sidebars.ts generated Normal file
View File

@ -0,0 +1,31 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
const sidebars: SidebarsConfig = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
export default sidebars;

View File

@ -1,5 +1,5 @@
import React from 'react';
import clsx from 'clsx';
import Heading from '@theme/Heading';
import styles from './styles.module.css';
type FeatureItem = {
@ -48,7 +48,7 @@ function Feature({title, Svg, description}: FeatureItem) {
<Svg className={styles.featureSvg} role="img" />
</div>
<div className="text--center padding-horiz--md">
<h3>{title}</h3>
<Heading as="h3">{title}</Heading>
<p>{description}</p>
</div>
</div>

View File

@ -1,9 +1,9 @@
import React from 'react';
import clsx from 'clsx';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import HomepageFeatures from '@site/src/components/HomepageFeatures';
import Heading from '@theme/Heading';
import styles from './index.module.css';
@ -12,7 +12,9 @@ function HomepageHeader() {
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className="container">
<h1 className="hero__title">{siteConfig.title}</h1>
<Heading as="h1" className="hero__title">
{siteConfig.title}
</Heading>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link

View File

@ -1,6 +1,6 @@
{
// This file is not used in compilation. It is here just for a nice editor experience.
"extends": "@tsconfig/docusaurus/tsconfig.json",
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
"baseUrl": "."
}

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
# Website
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
### Installation

View File

@ -14,7 +14,7 @@ Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new
### What you'll need
- [Node.js](https://nodejs.org/en/download/) version 16.14 or above:
- [Node.js](https://nodejs.org/en/download/) version 18.0 or above:
- When installing Node.js, you are recommended to check all checkboxes related to dependencies.
## Generate a new site

View File

@ -28,7 +28,7 @@ tags: [greetings]
Congratulations, you have made your first post!
Feel free to play around and edit this post as much you like.
Feel free to play around and edit this post as much as you like.
```
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).

View File

@ -42,7 +42,7 @@ This is my **first Docusaurus document**!
It is also possible to create your sidebar explicitly in `sidebars.js`:
```js title="sidebars.js"
module.exports = {
export default {
tutorialSidebar: [
'intro',
// highlight-next-line

View File

@ -61,13 +61,13 @@ You can reference images relative to the current file as well. This is particula
Markdown code blocks are supported with Syntax highlighting.
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return (
<h1>Hello, Docusaurus!</h1>
)
}
```
````md
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return <h1>Hello, Docusaurus!</h1>;
}
```
````
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
@ -79,17 +79,19 @@ function HelloDocusaurus() {
Docusaurus has a special syntax to create admonitions and callouts:
:::tip My tip
```md
:::tip My tip
Use this awesome feature option
Use this awesome feature option
:::
:::
:::danger Take care
:::danger Take care
This action is dangerous
This action is dangerous
:::
:::
```
:::tip My tip

View File

@ -28,7 +28,7 @@ To navigate seamlessly across versions, add a version dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
module.exports = {
export default {
themeConfig: {
navbar: {
items: [

View File

@ -11,7 +11,7 @@ Let's translate `docs/intro.md` to French.
Modify `docusaurus.config.js` to add support for the `fr` locale:
```js title="docusaurus.config.js"
module.exports = {
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr'],
@ -43,7 +43,7 @@ Your localized site is accessible at [http://localhost:3000/fr/](http://localhos
:::caution
In development, you can only use one locale at a same time.
In development, you can only use one locale at a time.
:::
@ -54,7 +54,7 @@ To navigate seamlessly across languages, add a locale dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
module.exports = {
export default {
themeConfig: {
navbar: {
items: [

View File

@ -1,8 +1,10 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
// `@type` JSDoc annotations allow editor autocompletion and type checking
// (when paired with `@ts-check`).
// There are various equivalent ways to declare your Docusaurus config.
// See: https://docusaurus.io/docs/api/docusaurus-config
const lightCodeTheme = require('prism-react-renderer/themes/github');
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
import {themes as prismThemes} from 'prism-react-renderer';
/** @type {import('@docusaurus/types').Config} */
const config = {
@ -11,7 +13,7 @@ const config = {
favicon: 'img/favicon.ico',
// Set the production url of your site here
url: 'https://your-docusaurus-test-site.com',
url: 'https://your-docusaurus-site.example.com',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
@ -24,9 +26,9 @@ const config = {
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
@ -38,7 +40,7 @@ const config = {
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
sidebarPath: './sidebars.js',
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
@ -52,7 +54,7 @@ const config = {
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
customCss: './src/css/custom.css',
},
}),
],
@ -130,10 +132,10 @@ const config = {
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
}),
};
module.exports = config;
export default config;

View File

@ -15,16 +15,17 @@
"dev": "docusaurus start"
},
"dependencies": {
"@docusaurus/core": "2.4.1",
"@docusaurus/preset-classic": "2.4.1",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
"@docusaurus/core": "3.2.0",
"@docusaurus/preset-classic": "3.2.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.4.1"
"@docusaurus/module-type-aliases": "3.2.0",
"@docusaurus/types": "3.2.0"
},
"browserslist": {
"production": [
@ -33,13 +34,13 @@
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
"last 3 chrome version",
"last 3 firefox version",
"last 5 safari version"
]
},
"engines": {
"node": ">=16.14"
"node": ">=18.0"
},
"description": "Docusaurus example project"
}

View File

@ -3,8 +3,8 @@
"hardReloadOnChange": true,
"view": "browser",
"template": "docusaurus",
"node": "16",
"node": "18",
"container": {
"node": "16"
"node": "18"
}
}

View File

@ -30,4 +30,4 @@ const sidebars = {
*/
};
module.exports = sidebars;
export default sidebars;

View File

@ -1,5 +1,5 @@
import React from 'react';
import clsx from 'clsx';
import Heading from '@theme/Heading';
import styles from './styles.module.css';
const FeatureList = [
@ -42,7 +42,7 @@ function Feature({Svg, title, description}) {
<Svg className={styles.featureSvg} role="img" />
</div>
<div className="text--center padding-horiz--md">
<h3>{title}</h3>
<Heading as="h3">{title}</Heading>
<p>{description}</p>
</div>
</div>

View File

@ -1,10 +1,10 @@
import React from 'react';
import clsx from 'clsx';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import HomepageFeatures from '@site/src/components/HomepageFeatures';
import Heading from '@theme/Heading';
import styles from './index.module.css';
function HomepageHeader() {
@ -12,7 +12,9 @@ function HomepageHeader() {
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className="container">
<h1 className="hero__title">{siteConfig.title}</h1>
<Heading as="h1" className="hero__title">
{siteConfig.title}
</Heading>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link

File diff suppressed because it is too large Load Diff

20
jest.config.mjs vendored
View File

@ -86,16 +86,20 @@ export default {
// MDX packages are ESM-only and it is a pain to use in Jest
// So we use them in Jest tests as CJS versions
// see https://mdxjs.com/docs/troubleshooting-mdx/#problems-integrating-mdx
'^unified$': '<rootDir>/jest/vendor/unified@10.1.2.js',
'^@mdx-js/mdx$': '<rootDir>/jest/vendor/@mdx-js__mdx@2.1.5.js',
'^remark$': '<rootDir>/jest/vendor/remark@14.0.2.js',
'^remark-mdx$': '<rootDir>/jest/vendor/remark-mdx@2.1.5.js',
'^remark-directive$': '<rootDir>/jest/vendor/remark-directive@2.0.1.js',
'^remark-gfm$': '<rootDir>/jest/vendor/remark-gfm@3.0.1.js',
'^@mdx-js/mdx$': '<rootDir>/jest/vendor/@mdx-js__mdx@3.0.0.js',
'^remark$': '<rootDir>/jest/vendor/remark@15.0.1.js',
'^remark-rehype$': '<rootDir>/jest/vendor/remark-rehype@11.0.0.js',
'^remark-mdx$': '<rootDir>/jest/vendor/remark-mdx@3.0.0.js',
'^remark-directive$': '<rootDir>/jest/vendor/remark-directive@3.0.0.js',
'^remark-gfm$': '<rootDir>/jest/vendor/remark-gfm@4.0.0.js',
'^estree-util-value-to-estree$':
'<rootDir>/jest/vendor/estree-util-value-to-estree@2.1.0.js',
'<rootDir>/jest/vendor/estree-util-value-to-estree@3.0.1.js',
'^mdast-util-to-string$':
'<rootDir>/jest/vendor/mdast-util-to-string@3.1.0.js',
'<rootDir>/jest/vendor/mdast-util-to-string@4.0.0.js',
'^unist-util-visit$': '<rootDir>/jest/vendor/unist-util-visit@5.0.0.js',
'^unist-util-remove-position$':
'<rootDir>/jest/vendor/unist-util-remove-position@5.0.0.js',
'^rehype-stringify$': '<rootDir>/jest/vendor/rehype-stringify@10.0.0.js',
},
snapshotSerializers: [
'<rootDir>/jest/snapshotPathNormalizer.ts',

File diff suppressed because it is too large Load Diff

28733
jest/vendor/@mdx-js__mdx@3.0.0.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,151 +0,0 @@
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/estree-util-value-to-estree/index.js
var estree_util_value_to_estree_exports = {};
__export(estree_util_value_to_estree_exports, {
valueToEstree: () => valueToEstree
});
module.exports = __toCommonJS(estree_util_value_to_estree_exports);
// node_modules/estree-util-value-to-estree/node_modules/is-plain-obj/index.js
function isPlainObject(value) {
if (typeof value !== "object" || value === null) {
return false;
}
const prototype = Object.getPrototypeOf(value);
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
}
// node_modules/estree-util-value-to-estree/index.js
function valueToEstree(value, options = {}) {
if (value === void 0 || value === Number.POSITIVE_INFINITY || Number.isNaN(value)) {
return { type: "Identifier", name: String(value) };
}
if (value == null || typeof value === "string" || typeof value === "boolean") {
return { type: "Literal", value };
}
if (typeof value === "bigint") {
return value >= 0 ? { type: "Literal", value, bigint: String(value) } : {
type: "UnaryExpression",
operator: "-",
prefix: true,
argument: valueToEstree(-value, options)
};
}
if (typeof value === "number") {
return value >= 0 ? { type: "Literal", value } : {
type: "UnaryExpression",
operator: "-",
prefix: true,
argument: valueToEstree(-value, options)
};
}
if (typeof value === "symbol") {
if (value.description && value === Symbol.for(value.description)) {
return {
type: "CallExpression",
optional: false,
callee: {
type: "MemberExpression",
computed: false,
optional: false,
object: { type: "Identifier", name: "Symbol" },
property: { type: "Identifier", name: "for" }
},
arguments: [valueToEstree(value.description, options)]
};
}
throw new TypeError(`Only global symbols are supported, got: ${String(value)}`);
}
if (Array.isArray(value)) {
const elements = [];
for (let i = 0; i < value.length; i += 1) {
elements.push(i in value ? valueToEstree(value[i], options) : null);
}
return { type: "ArrayExpression", elements };
}
if (value instanceof Boolean || value instanceof Number || value instanceof String) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: value.constructor.name },
arguments: [valueToEstree(value.valueOf())]
};
}
if (value instanceof RegExp) {
return {
type: "Literal",
value,
regex: { pattern: value.source, flags: value.flags }
};
}
if (value instanceof Date) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: "Date" },
arguments: [valueToEstree(value.getTime(), options)]
};
}
if (typeof Buffer !== "undefined" && Buffer.isBuffer(value)) {
return {
type: "CallExpression",
optional: false,
callee: {
type: "MemberExpression",
computed: false,
optional: false,
object: { type: "Identifier", name: "Buffer" },
property: { type: "Identifier", name: "from" }
},
arguments: [valueToEstree([...value])]
};
}
if (value instanceof BigInt64Array || value instanceof BigUint64Array || value instanceof Float32Array || value instanceof Float64Array || value instanceof Int8Array || value instanceof Int16Array || value instanceof Int32Array || value instanceof Map || value instanceof Set || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Uint16Array || value instanceof Uint32Array) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: value.constructor.name },
arguments: [valueToEstree([...value], options)]
};
}
if (value instanceof URL || value instanceof URLSearchParams) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: value.constructor.name },
arguments: [valueToEstree(String(value), options)]
};
}
if (options.instanceAsObject || isPlainObject(value)) {
return {
type: "ObjectExpression",
properties: Reflect.ownKeys(value).map((key) => ({
type: "Property",
method: false,
shorthand: false,
computed: typeof key !== "string",
kind: "init",
key: valueToEstree(key, options),
value: valueToEstree(value[key], options)
}))
};
}
throw new TypeError(`Unsupported value: ${String(value)}`);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
valueToEstree
});

View File

@ -0,0 +1,163 @@
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/estree-util-value-to-estree/index.js
var estree_util_value_to_estree_exports = {};
__export(estree_util_value_to_estree_exports, {
valueToEstree: () => valueToEstree
});
module.exports = __toCommonJS(estree_util_value_to_estree_exports);
// node_modules/is-plain-obj/index.js
function isPlainObject(value) {
if (typeof value !== "object" || value === null) {
return false;
}
const prototype = Object.getPrototypeOf(value);
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
}
// node_modules/estree-util-value-to-estree/index.js
function valueToEstree(value, options = {}) {
if (value === void 0 || value === Number.POSITIVE_INFINITY || Number.isNaN(value)) {
return { type: "Identifier", name: String(value) };
}
if (value == null || typeof value === "string" || typeof value === "boolean") {
return { type: "Literal", value };
}
if (typeof value === "bigint") {
return value >= 0 ? { type: "Literal", value, bigint: String(value) } : {
type: "UnaryExpression",
operator: "-",
prefix: true,
argument: valueToEstree(-value, options)
};
}
if (typeof value === "number") {
return value >= 0 && !Object.is(value, -0) ? { type: "Literal", value } : {
type: "UnaryExpression",
operator: "-",
prefix: true,
argument: valueToEstree(-value, options)
};
}
if (typeof value === "symbol") {
if (value.description && value === Symbol.for(value.description)) {
return {
type: "CallExpression",
optional: false,
callee: {
type: "MemberExpression",
computed: false,
optional: false,
object: { type: "Identifier", name: "Symbol" },
property: { type: "Identifier", name: "for" }
},
arguments: [valueToEstree(value.description, options)]
};
}
throw new TypeError(`Only global symbols are supported, got: ${String(value)}`);
}
if (Array.isArray(value)) {
const elements = [];
for (let i = 0; i < value.length; i += 1) {
elements.push(i in value ? valueToEstree(value[i], options) : null);
}
return { type: "ArrayExpression", elements };
}
if (value instanceof Boolean || value instanceof Number || value instanceof String) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: value.constructor.name },
arguments: [valueToEstree(value.valueOf())]
};
}
if (value instanceof RegExp) {
return {
type: "Literal",
value,
regex: { pattern: value.source, flags: value.flags }
};
}
if (value instanceof Date) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: "Date" },
arguments: [valueToEstree(value.getTime(), options)]
};
}
if (typeof Buffer !== "undefined" && Buffer.isBuffer(value)) {
return {
type: "CallExpression",
optional: false,
callee: {
type: "MemberExpression",
computed: false,
optional: false,
object: { type: "Identifier", name: "Buffer" },
property: { type: "Identifier", name: "from" }
},
arguments: [valueToEstree([...value])]
};
}
if (value instanceof BigInt64Array || value instanceof BigUint64Array || value instanceof Float32Array || value instanceof Float64Array || value instanceof Int8Array || value instanceof Int16Array || value instanceof Int32Array || value instanceof Map || value instanceof Set || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Uint16Array || value instanceof Uint32Array) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: value.constructor.name },
arguments: [valueToEstree([...value], options)]
};
}
if (value instanceof URL || value instanceof URLSearchParams) {
return {
type: "NewExpression",
callee: { type: "Identifier", name: value.constructor.name },
arguments: [valueToEstree(String(value), options)]
};
}
if (options.instanceAsObject || isPlainObject(value)) {
const properties = Reflect.ownKeys(value).map((key) => ({
type: "Property",
method: false,
shorthand: false,
computed: typeof key !== "string",
kind: "init",
key: valueToEstree(key, options),
value: valueToEstree(value[key], options)
}));
if (Object.getPrototypeOf(value) == null) {
properties.unshift({
type: "Property",
method: false,
shorthand: false,
computed: false,
kind: "init",
key: { type: "Identifier", name: "__proto__" },
value: { type: "Literal", value: null }
});
}
return {
type: "ObjectExpression",
properties
};
}
throw new TypeError(`Unsupported value: ${String(value)}`);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
valueToEstree
});

View File

@ -1,43 +0,0 @@
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all2) => {
for (var name in all2)
__defProp(target, name, { get: all2[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/mdast-util-to-string/index.js
var mdast_util_to_string_exports = {};
__export(mdast_util_to_string_exports, {
toString: () => toString
});
module.exports = __toCommonJS(mdast_util_to_string_exports);
function toString(node, options) {
var { includeImageAlt = true } = options || {};
return one(node, includeImageAlt);
}
function one(node, includeImageAlt) {
return node && typeof node === "object" && (node.value || (includeImageAlt ? node.alt : "") || "children" in node && all(node.children, includeImageAlt) || Array.isArray(node) && all(node, includeImageAlt)) || "";
}
function all(values, includeImageAlt) {
var result = [];
var index = -1;
while (++index < values.length) {
result[index] = one(values[index], includeImageAlt);
}
return result.join("");
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
toString
});

View File

@ -0,0 +1,65 @@
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all2) => {
for (var name in all2)
__defProp(target, name, { get: all2[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/mdast-util-to-string/index.js
var mdast_util_to_string_exports = {};
__export(mdast_util_to_string_exports, {
toString: () => toString
});
module.exports = __toCommonJS(mdast_util_to_string_exports);
// node_modules/mdast-util-to-string/lib/index.js
var emptyOptions = {};
function toString(value, options) {
const settings = options || emptyOptions;
const includeImageAlt = typeof settings.includeImageAlt === "boolean" ? settings.includeImageAlt : true;
const includeHtml = typeof settings.includeHtml === "boolean" ? settings.includeHtml : true;
return one(value, includeImageAlt, includeHtml);
}
function one(value, includeImageAlt, includeHtml) {
if (node(value)) {
if ("value" in value) {
return value.type === "html" && !includeHtml ? "" : value.value;
}
if (includeImageAlt && "alt" in value && value.alt) {
return value.alt;
}
if ("children" in value) {
return all(value.children, includeImageAlt, includeHtml);
}
}
if (Array.isArray(value)) {
return all(value, includeImageAlt, includeHtml);
}
return "";
}
function all(values, includeImageAlt, includeHtml) {
const result = [];
let index = -1;
while (++index < values.length) {
result[index] = one(values[index], includeImageAlt, includeHtml);
}
return result.join("");
}
function node(value) {
return Boolean(value && typeof value === "object");
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
toString
});

2202
jest/vendor/rehype-stringify@10.0.0.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3811
jest/vendor/remark-directive@3.0.0.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3457
jest/vendor/remark-gfm@4.0.0.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

16088
jest/vendor/remark-mdx@3.0.0.js vendored Normal file

File diff suppressed because it is too large Load Diff

1334
jest/vendor/remark-rehype@11.0.0.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

10031
jest/vendor/remark@15.0.1.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,779 +0,0 @@
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/is-buffer/index.js
var require_is_buffer = __commonJS({
"node_modules/is-buffer/index.js"(exports, module2) {
module2.exports = function isBuffer2(obj) {
return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj);
};
}
});
// node_modules/extend/index.js
var require_extend = __commonJS({
"node_modules/extend/index.js"(exports, module2) {
"use strict";
var hasOwn = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;
var defineProperty = Object.defineProperty;
var gOPD = Object.getOwnPropertyDescriptor;
var isArray = function isArray2(arr) {
if (typeof Array.isArray === "function") {
return Array.isArray(arr);
}
return toStr.call(arr) === "[object Array]";
};
var isPlainObject2 = function isPlainObject3(obj) {
if (!obj || toStr.call(obj) !== "[object Object]") {
return false;
}
var hasOwnConstructor = hasOwn.call(obj, "constructor");
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, "isPrototypeOf");
if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
return false;
}
var key;
for (key in obj) {
}
return typeof key === "undefined" || hasOwn.call(obj, key);
};
var setProperty = function setProperty2(target, options) {
if (defineProperty && options.name === "__proto__") {
defineProperty(target, options.name, {
enumerable: true,
configurable: true,
value: options.newValue,
writable: true
});
} else {
target[options.name] = options.newValue;
}
};
var getProperty = function getProperty2(obj, name) {
if (name === "__proto__") {
if (!hasOwn.call(obj, name)) {
return void 0;
} else if (gOPD) {
return gOPD(obj, name).value;
}
}
return obj[name];
};
module2.exports = function extend2() {
var options, name, src, copy, copyIsArray, clone;
var target = arguments[0];
var i = 1;
var length = arguments.length;
var deep = false;
if (typeof target === "boolean") {
deep = target;
target = arguments[1] || {};
i = 2;
}
if (target == null || typeof target !== "object" && typeof target !== "function") {
target = {};
}
for (; i < length; ++i) {
options = arguments[i];
if (options != null) {
for (name in options) {
src = getProperty(target, name);
copy = getProperty(options, name);
if (target !== copy) {
if (deep && copy && (isPlainObject2(copy) || (copyIsArray = isArray(copy)))) {
if (copyIsArray) {
copyIsArray = false;
clone = src && isArray(src) ? src : [];
} else {
clone = src && isPlainObject2(src) ? src : {};
}
setProperty(target, { name, newValue: extend2(deep, clone, copy) });
} else if (typeof copy !== "undefined") {
setProperty(target, { name, newValue: copy });
}
}
}
}
}
return target;
};
}
});
// node_modules/unified/index.js
var unified_exports = {};
__export(unified_exports, {
unified: () => unified1012
});
module.exports = __toCommonJS(unified_exports);
// node_modules/bail/index.js
function bail(error) {
if (error) {
throw error;
}
}
// node_modules/unified/lib/index.js
var import_is_buffer2 = __toESM(require_is_buffer(), 1);
var import_extend = __toESM(require_extend(), 1);
// node_modules/unified/node_modules/is-plain-obj/index.js
function isPlainObject(value) {
if (typeof value !== "object" || value === null) {
return false;
}
const prototype = Object.getPrototypeOf(value);
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
}
// node_modules/trough/index.js
function trough() {
const fns = [];
const pipeline = { run, use };
return pipeline;
function run(...values) {
let middlewareIndex = -1;
const callback = values.pop();
if (typeof callback !== "function") {
throw new TypeError("Expected function as last argument, not " + callback);
}
next(null, ...values);
function next(error, ...output) {
const fn = fns[++middlewareIndex];
let index2 = -1;
if (error) {
callback(error);
return;
}
while (++index2 < values.length) {
if (output[index2] === null || output[index2] === void 0) {
output[index2] = values[index2];
}
}
values = output;
if (fn) {
wrap(fn, next)(...output);
} else {
callback(null, ...output);
}
}
}
function use(middelware) {
if (typeof middelware !== "function") {
throw new TypeError(
"Expected `middelware` to be a function, not " + middelware
);
}
fns.push(middelware);
return pipeline;
}
}
function wrap(middleware, callback) {
let called;
return wrapped;
function wrapped(...parameters) {
const fnExpectsCallback = middleware.length > parameters.length;
let result;
if (fnExpectsCallback) {
parameters.push(done);
}
try {
result = middleware.apply(this, parameters);
} catch (error) {
const exception = error;
if (fnExpectsCallback && called) {
throw exception;
}
return done(exception);
}
if (!fnExpectsCallback) {
if (result instanceof Promise) {
result.then(then, done);
} else if (result instanceof Error) {
done(result);
} else {
then(result);
}
}
}
function done(error, ...output) {
if (!called) {
called = true;
callback(error, ...output);
}
}
function then(value) {
done(null, value);
}
}
// node_modules/vfile/lib/index.js
var import_is_buffer = __toESM(require_is_buffer(), 1);
// node_modules/unist-util-stringify-position/index.js
function stringifyPosition(value) {
if (!value || typeof value !== "object") {
return "";
}
if ("position" in value || "type" in value) {
return position(value.position);
}
if ("start" in value || "end" in value) {
return position(value);
}
if ("line" in value || "column" in value) {
return point(value);
}
return "";
}
function point(point2) {
return index(point2 && point2.line) + ":" + index(point2 && point2.column);
}
function position(pos) {
return point(pos && pos.start) + "-" + point(pos && pos.end);
}
function index(value) {
return value && typeof value === "number" ? value : 1;
}
// node_modules/vfile-message/index.js
var VFileMessage = class extends Error {
constructor(reason, place, origin) {
const parts = [null, null];
let position2 = {
start: { line: null, column: null },
end: { line: null, column: null }
};
super();
if (typeof place === "string") {
origin = place;
place = void 0;
}
if (typeof origin === "string") {
const index2 = origin.indexOf(":");
if (index2 === -1) {
parts[1] = origin;
} else {
parts[0] = origin.slice(0, index2);
parts[1] = origin.slice(index2 + 1);
}
}
if (place) {
if ("type" in place || "position" in place) {
if (place.position) {
position2 = place.position;
}
} else if ("start" in place || "end" in place) {
position2 = place;
} else if ("line" in place || "column" in place) {
position2.start = place;
}
}
this.name = stringifyPosition(place) || "1:1";
this.message = typeof reason === "object" ? reason.message : reason;
this.stack = "";
if (typeof reason === "object" && reason.stack) {
this.stack = reason.stack;
}
this.reason = this.message;
this.fatal;
this.line = position2.start.line;
this.column = position2.start.column;
this.position = position2;
this.source = parts[0];
this.ruleId = parts[1];
this.file;
this.actual;
this.expected;
this.url;
this.note;
}
};
VFileMessage.prototype.file = "";
VFileMessage.prototype.name = "";
VFileMessage.prototype.reason = "";
VFileMessage.prototype.message = "";
VFileMessage.prototype.stack = "";
VFileMessage.prototype.fatal = null;
VFileMessage.prototype.column = null;
VFileMessage.prototype.line = null;
VFileMessage.prototype.source = null;
VFileMessage.prototype.ruleId = null;
VFileMessage.prototype.position = null;
// node_modules/vfile/lib/minpath.js
var import_path = __toESM(require("path"), 1);
// node_modules/vfile/lib/minproc.js
var import_process = __toESM(require("process"), 1);
// node_modules/vfile/lib/minurl.js
var import_url = require("url");
// node_modules/vfile/lib/minurl.shared.js
function isUrl(fileURLOrPath) {
return fileURLOrPath !== null && typeof fileURLOrPath === "object" && fileURLOrPath.href && fileURLOrPath.origin;
}
// node_modules/vfile/lib/index.js
var order = ["history", "path", "basename", "stem", "extname", "dirname"];
var VFile = class {
constructor(value) {
let options;
if (!value) {
options = {};
} else if (typeof value === "string" || (0, import_is_buffer.default)(value)) {
options = { value };
} else if (isUrl(value)) {
options = { path: value };
} else {
options = value;
}
this.data = {};
this.messages = [];
this.history = [];
this.cwd = import_process.default.cwd();
this.value;
this.stored;
this.result;
this.map;
let index2 = -1;
while (++index2 < order.length) {
const prop2 = order[index2];
if (prop2 in options && options[prop2] !== void 0) {
this[prop2] = prop2 === "history" ? [...options[prop2]] : options[prop2];
}
}
let prop;
for (prop in options) {
if (!order.includes(prop))
this[prop] = options[prop];
}
}
get path() {
return this.history[this.history.length - 1];
}
set path(path) {
if (isUrl(path)) {
path = (0, import_url.fileURLToPath)(path);
}
assertNonEmpty(path, "path");
if (this.path !== path) {
this.history.push(path);
}
}
get dirname() {
return typeof this.path === "string" ? import_path.default.dirname(this.path) : void 0;
}
set dirname(dirname) {
assertPath(this.basename, "dirname");
this.path = import_path.default.join(dirname || "", this.basename);
}
get basename() {
return typeof this.path === "string" ? import_path.default.basename(this.path) : void 0;
}
set basename(basename) {
assertNonEmpty(basename, "basename");
assertPart(basename, "basename");
this.path = import_path.default.join(this.dirname || "", basename);
}
get extname() {
return typeof this.path === "string" ? import_path.default.extname(this.path) : void 0;
}
set extname(extname) {
assertPart(extname, "extname");
assertPath(this.dirname, "extname");
if (extname) {
if (extname.charCodeAt(0) !== 46) {
throw new Error("`extname` must start with `.`");
}
if (extname.includes(".", 1)) {
throw new Error("`extname` cannot contain multiple dots");
}
}
this.path = import_path.default.join(this.dirname, this.stem + (extname || ""));
}
get stem() {
return typeof this.path === "string" ? import_path.default.basename(this.path, this.extname) : void 0;
}
set stem(stem) {
assertNonEmpty(stem, "stem");
assertPart(stem, "stem");
this.path = import_path.default.join(this.dirname || "", stem + (this.extname || ""));
}
toString(encoding) {
return (this.value || "").toString(encoding);
}
message(reason, place, origin) {
const message = new VFileMessage(reason, place, origin);
if (this.path) {
message.name = this.path + ":" + message.name;
message.file = this.path;
}
message.fatal = false;
this.messages.push(message);
return message;
}
info(reason, place, origin) {
const message = this.message(reason, place, origin);
message.fatal = null;
return message;
}
fail(reason, place, origin) {
const message = this.message(reason, place, origin);
message.fatal = true;
throw message;
}
};
function assertPart(part, name) {
if (part && part.includes(import_path.default.sep)) {
throw new Error(
"`" + name + "` cannot be a path: did not expect `" + import_path.default.sep + "`"
);
}
}
function assertNonEmpty(part, name) {
if (!part) {
throw new Error("`" + name + "` cannot be empty");
}
}
function assertPath(path, name) {
if (!path) {
throw new Error("Setting `" + name + "` requires `path` to be set too");
}
}
// node_modules/unified/lib/index.js
var unified1012 = base().freeze();
var own = {}.hasOwnProperty;
function base() {
const transformers = trough();
const attachers = [];
let namespace = {};
let frozen;
let freezeIndex = -1;
processor.data = data;
processor.Parser = void 0;
processor.Compiler = void 0;
processor.freeze = freeze;
processor.attachers = attachers;
processor.use = use;
processor.parse = parse;
processor.stringify = stringify;
processor.run = run;
processor.runSync = runSync;
processor.process = process;
processor.processSync = processSync;
return processor;
function processor() {
const destination = base();
let index2 = -1;
while (++index2 < attachers.length) {
destination.use(...attachers[index2]);
}
destination.data((0, import_extend.default)(true, {}, namespace));
return destination;
}
function data(key, value) {
if (typeof key === "string") {
if (arguments.length === 2) {
assertUnfrozen("data", frozen);
namespace[key] = value;
return processor;
}
return own.call(namespace, key) && namespace[key] || null;
}
if (key) {
assertUnfrozen("data", frozen);
namespace = key;
return processor;
}
return namespace;
}
function freeze() {
if (frozen) {
return processor;
}
while (++freezeIndex < attachers.length) {
const [attacher, ...options] = attachers[freezeIndex];
if (options[0] === false) {
continue;
}
if (options[0] === true) {
options[0] = void 0;
}
const transformer = attacher.call(processor, ...options);
if (typeof transformer === "function") {
transformers.use(transformer);
}
}
frozen = true;
freezeIndex = Number.POSITIVE_INFINITY;
return processor;
}
function use(value, ...options) {
let settings;
assertUnfrozen("use", frozen);
if (value === null || value === void 0) {
} else if (typeof value === "function") {
addPlugin(value, ...options);
} else if (typeof value === "object") {
if (Array.isArray(value)) {
addList(value);
} else {
addPreset(value);
}
} else {
throw new TypeError("Expected usable value, not `" + value + "`");
}
if (settings) {
namespace.settings = Object.assign(namespace.settings || {}, settings);
}
return processor;
function add(value2) {
if (typeof value2 === "function") {
addPlugin(value2);
} else if (typeof value2 === "object") {
if (Array.isArray(value2)) {
const [plugin, ...options2] = value2;
addPlugin(plugin, ...options2);
} else {
addPreset(value2);
}
} else {
throw new TypeError("Expected usable value, not `" + value2 + "`");
}
}
function addPreset(result) {
addList(result.plugins);
if (result.settings) {
settings = Object.assign(settings || {}, result.settings);
}
}
function addList(plugins) {
let index2 = -1;
if (plugins === null || plugins === void 0) {
} else if (Array.isArray(plugins)) {
while (++index2 < plugins.length) {
const thing = plugins[index2];
add(thing);
}
} else {
throw new TypeError("Expected a list of plugins, not `" + plugins + "`");
}
}
function addPlugin(plugin, value2) {
let index2 = -1;
let entry;
while (++index2 < attachers.length) {
if (attachers[index2][0] === plugin) {
entry = attachers[index2];
break;
}
}
if (entry) {
if (isPlainObject(entry[1]) && isPlainObject(value2)) {
value2 = (0, import_extend.default)(true, entry[1], value2);
}
entry[1] = value2;
} else {
attachers.push([...arguments]);
}
}
}
function parse(doc) {
processor.freeze();
const file = vfile(doc);
const Parser = processor.Parser;
assertParser("parse", Parser);
if (newable(Parser, "parse")) {
return new Parser(String(file), file).parse();
}
return Parser(String(file), file);
}
function stringify(node, doc) {
processor.freeze();
const file = vfile(doc);
const Compiler = processor.Compiler;
assertCompiler("stringify", Compiler);
assertNode(node);
if (newable(Compiler, "compile")) {
return new Compiler(node, file).compile();
}
return Compiler(node, file);
}
function run(node, doc, callback) {
assertNode(node);
processor.freeze();
if (!callback && typeof doc === "function") {
callback = doc;
doc = void 0;
}
if (!callback) {
return new Promise(executor);
}
executor(null, callback);
function executor(resolve, reject) {
transformers.run(node, vfile(doc), done);
function done(error, tree, file) {
tree = tree || node;
if (error) {
reject(error);
} else if (resolve) {
resolve(tree);
} else {
callback(null, tree, file);
}
}
}
}
function runSync(node, file) {
let result;
let complete;
processor.run(node, file, done);
assertDone("runSync", "run", complete);
return result;
function done(error, tree) {
bail(error);
result = tree;
complete = true;
}
}
function process(doc, callback) {
processor.freeze();
assertParser("process", processor.Parser);
assertCompiler("process", processor.Compiler);
if (!callback) {
return new Promise(executor);
}
executor(null, callback);
function executor(resolve, reject) {
const file = vfile(doc);
processor.run(processor.parse(file), file, (error, tree, file2) => {
if (error || !tree || !file2) {
done(error);
} else {
const result = processor.stringify(tree, file2);
if (result === void 0 || result === null) {
} else if (looksLikeAVFileValue(result)) {
file2.value = result;
} else {
file2.result = result;
}
done(error, file2);
}
});
function done(error, file2) {
if (error || !file2) {
reject(error);
} else if (resolve) {
resolve(file2);
} else {
callback(null, file2);
}
}
}
}
function processSync(doc) {
let complete;
processor.freeze();
assertParser("processSync", processor.Parser);
assertCompiler("processSync", processor.Compiler);
const file = vfile(doc);
processor.process(file, done);
assertDone("processSync", "process", complete);
return file;
function done(error) {
complete = true;
bail(error);
}
}
}
function newable(value, name) {
return typeof value === "function" && value.prototype && (keys(value.prototype) || name in value.prototype);
}
function keys(value) {
let key;
for (key in value) {
if (own.call(value, key)) {
return true;
}
}
return false;
}
function assertParser(name, value) {
if (typeof value !== "function") {
throw new TypeError("Cannot `" + name + "` without `Parser`");
}
}
function assertCompiler(name, value) {
if (typeof value !== "function") {
throw new TypeError("Cannot `" + name + "` without `Compiler`");
}
}
function assertUnfrozen(name, frozen) {
if (frozen) {
throw new Error(
"Cannot call `" + name + "` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`."
);
}
}
function assertNode(node) {
if (!isPlainObject(node) || typeof node.type !== "string") {
throw new TypeError("Expected node, got `" + node + "`");
}
}
function assertDone(name, asyncName, complete) {
if (!complete) {
throw new Error(
"`" + name + "` finished async. Use `" + asyncName + "` instead"
);
}
}
function vfile(value) {
return looksLikeAVFile(value) ? value : new VFile(value);
}
function looksLikeAVFile(value) {
return Boolean(
value && typeof value === "object" && "message" in value && "messages" in value
);
}
function looksLikeAVFileValue(value) {
return typeof value === "string" || (0, import_is_buffer2.default)(value);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
unified: unified1012
});
/*!
* Determine if an object is a Buffer
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/

View File

@ -0,0 +1,240 @@
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/unist-util-remove-position/index.js
var unist_util_remove_position_exports = {};
__export(unist_util_remove_position_exports, {
removePosition: () => removePosition
});
module.exports = __toCommonJS(unist_util_remove_position_exports);
// node_modules/unist-util-is/lib/index.js
var convert = (
// Note: overloads in JSDoc cant yet use different `@template`s.
/**
* @type {(
* (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &
* (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &
* (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &
* ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &
* ((test?: Test) => Check)
* )}
*/
/**
* @param {Test} [test]
* @returns {Check}
*/
function(test) {
if (test === null || test === void 0) {
return ok;
}
if (typeof test === "function") {
return castFactory(test);
}
if (typeof test === "object") {
return Array.isArray(test) ? anyFactory(test) : propsFactory(test);
}
if (typeof test === "string") {
return typeFactory(test);
}
throw new Error("Expected function, string, or object as test");
}
);
function anyFactory(tests) {
const checks = [];
let index = -1;
while (++index < tests.length) {
checks[index] = convert(tests[index]);
}
return castFactory(any);
function any(...parameters) {
let index2 = -1;
while (++index2 < checks.length) {
if (checks[index2].apply(this, parameters))
return true;
}
return false;
}
}
function propsFactory(check) {
const checkAsRecord = (
/** @type {Record<string, unknown>} */
check
);
return castFactory(all);
function all(node) {
const nodeAsRecord = (
/** @type {Record<string, unknown>} */
/** @type {unknown} */
node
);
let key;
for (key in check) {
if (nodeAsRecord[key] !== checkAsRecord[key])
return false;
}
return true;
}
}
function typeFactory(check) {
return castFactory(type);
function type(node) {
return node && node.type === check;
}
}
function castFactory(testFunction) {
return check;
function check(value, index, parent) {
return Boolean(
looksLikeANode(value) && testFunction.call(
this,
value,
typeof index === "number" ? index : void 0,
parent || void 0
)
);
}
}
function ok() {
return true;
}
function looksLikeANode(value) {
return value !== null && typeof value === "object" && "type" in value;
}
// node_modules/unist-util-visit-parents/lib/color.node.js
function color(d) {
return "\x1B[33m" + d + "\x1B[39m";
}
// node_modules/unist-util-visit-parents/lib/index.js
var empty = [];
var CONTINUE = true;
var EXIT = false;
var SKIP = "skip";
function visitParents(tree, test, visitor, reverse) {
let check;
if (typeof test === "function" && typeof visitor !== "function") {
reverse = visitor;
visitor = test;
} else {
check = test;
}
const is2 = convert(check);
const step = reverse ? -1 : 1;
factory(tree, void 0, [])();
function factory(node, index, parents) {
const value = (
/** @type {Record<string, unknown>} */
node && typeof node === "object" ? node : {}
);
if (typeof value.type === "string") {
const name = (
// `hast`
typeof value.tagName === "string" ? value.tagName : (
// `xast`
typeof value.name === "string" ? value.name : void 0
)
);
Object.defineProperty(visit2, "name", {
value: "node (" + color(node.type + (name ? "<" + name + ">" : "")) + ")"
});
}
return visit2;
function visit2() {
let result = empty;
let subresult;
let offset;
let grandparents;
if (!test || is2(node, index, parents[parents.length - 1] || void 0)) {
result = toResult(visitor(node, parents));
if (result[0] === EXIT) {
return result;
}
}
if ("children" in node && node.children) {
const nodeAsParent = (
/** @type {UnistParent} */
node
);
if (nodeAsParent.children && result[0] !== SKIP) {
offset = (reverse ? nodeAsParent.children.length : -1) + step;
grandparents = parents.concat(nodeAsParent);
while (offset > -1 && offset < nodeAsParent.children.length) {
const child = nodeAsParent.children[offset];
subresult = factory(child, offset, grandparents)();
if (subresult[0] === EXIT) {
return subresult;
}
offset = typeof subresult[1] === "number" ? subresult[1] : offset + step;
}
}
}
return result;
}
}
}
function toResult(value) {
if (Array.isArray(value)) {
return value;
}
if (typeof value === "number") {
return [CONTINUE, value];
}
return value === null || value === void 0 ? empty : [value];
}
// node_modules/unist-util-visit/lib/index.js
function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {
let reverse;
let test;
let visitor;
if (typeof testOrVisitor === "function" && typeof visitorOrReverse !== "function") {
test = void 0;
visitor = testOrVisitor;
reverse = visitorOrReverse;
} else {
test = testOrVisitor;
visitor = visitorOrReverse;
reverse = maybeReverse;
}
visitParents(tree, test, overload, reverse);
function overload(node, parents) {
const parent = parents[parents.length - 1];
const index = parent ? parent.children.indexOf(node) : void 0;
return visitor(node, index, parent);
}
}
// node_modules/unist-util-remove-position/lib/index.js
function removePosition(tree, options) {
const config = options || {};
const force = config.force || false;
visit(tree, remove);
function remove(node) {
if (force) {
delete node.position;
} else {
node.position = void 0;
}
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
removePosition
});

232
jest/vendor/unist-util-visit@5.0.0.js vendored Normal file
View File

@ -0,0 +1,232 @@
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/unist-util-visit/index.js
var unist_util_visit_exports = {};
__export(unist_util_visit_exports, {
CONTINUE: () => CONTINUE,
EXIT: () => EXIT,
SKIP: () => SKIP,
visit: () => visit
});
module.exports = __toCommonJS(unist_util_visit_exports);
// node_modules/unist-util-is/lib/index.js
var convert = (
// Note: overloads in JSDoc cant yet use different `@template`s.
/**
* @type {(
* (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &
* (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &
* (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &
* ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &
* ((test?: Test) => Check)
* )}
*/
/**
* @param {Test} [test]
* @returns {Check}
*/
function(test) {
if (test === null || test === void 0) {
return ok;
}
if (typeof test === "function") {
return castFactory(test);
}
if (typeof test === "object") {
return Array.isArray(test) ? anyFactory(test) : propsFactory(test);
}
if (typeof test === "string") {
return typeFactory(test);
}
throw new Error("Expected function, string, or object as test");
}
);
function anyFactory(tests) {
const checks = [];
let index = -1;
while (++index < tests.length) {
checks[index] = convert(tests[index]);
}
return castFactory(any);
function any(...parameters) {
let index2 = -1;
while (++index2 < checks.length) {
if (checks[index2].apply(this, parameters))
return true;
}
return false;
}
}
function propsFactory(check) {
const checkAsRecord = (
/** @type {Record<string, unknown>} */
check
);
return castFactory(all);
function all(node) {
const nodeAsRecord = (
/** @type {Record<string, unknown>} */
/** @type {unknown} */
node
);
let key;
for (key in check) {
if (nodeAsRecord[key] !== checkAsRecord[key])
return false;
}
return true;
}
}
function typeFactory(check) {
return castFactory(type);
function type(node) {
return node && node.type === check;
}
}
function castFactory(testFunction) {
return check;
function check(value, index, parent) {
return Boolean(
looksLikeANode(value) && testFunction.call(
this,
value,
typeof index === "number" ? index : void 0,
parent || void 0
)
);
}
}
function ok() {
return true;
}
function looksLikeANode(value) {
return value !== null && typeof value === "object" && "type" in value;
}
// node_modules/unist-util-visit-parents/lib/color.node.js
function color(d) {
return "\x1B[33m" + d + "\x1B[39m";
}
// node_modules/unist-util-visit-parents/lib/index.js
var empty = [];
var CONTINUE = true;
var EXIT = false;
var SKIP = "skip";
function visitParents(tree, test, visitor, reverse) {
let check;
if (typeof test === "function" && typeof visitor !== "function") {
reverse = visitor;
visitor = test;
} else {
check = test;
}
const is2 = convert(check);
const step = reverse ? -1 : 1;
factory(tree, void 0, [])();
function factory(node, index, parents) {
const value = (
/** @type {Record<string, unknown>} */
node && typeof node === "object" ? node : {}
);
if (typeof value.type === "string") {
const name = (
// `hast`
typeof value.tagName === "string" ? value.tagName : (
// `xast`
typeof value.name === "string" ? value.name : void 0
)
);
Object.defineProperty(visit2, "name", {
value: "node (" + color(node.type + (name ? "<" + name + ">" : "")) + ")"
});
}
return visit2;
function visit2() {
let result = empty;
let subresult;
let offset;
let grandparents;
if (!test || is2(node, index, parents[parents.length - 1] || void 0)) {
result = toResult(visitor(node, parents));
if (result[0] === EXIT) {
return result;
}
}
if ("children" in node && node.children) {
const nodeAsParent = (
/** @type {UnistParent} */
node
);
if (nodeAsParent.children && result[0] !== SKIP) {
offset = (reverse ? nodeAsParent.children.length : -1) + step;
grandparents = parents.concat(nodeAsParent);
while (offset > -1 && offset < nodeAsParent.children.length) {
const child = nodeAsParent.children[offset];
subresult = factory(child, offset, grandparents)();
if (subresult[0] === EXIT) {
return subresult;
}
offset = typeof subresult[1] === "number" ? subresult[1] : offset + step;
}
}
}
return result;
}
}
}
function toResult(value) {
if (Array.isArray(value)) {
return value;
}
if (typeof value === "number") {
return [CONTINUE, value];
}
return value === null || value === void 0 ? empty : [value];
}
// node_modules/unist-util-visit/lib/index.js
function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {
let reverse;
let test;
let visitor;
if (typeof testOrVisitor === "function" && typeof visitorOrReverse !== "function") {
test = void 0;
visitor = testOrVisitor;
reverse = visitorOrReverse;
} else {
test = testOrVisitor;
visitor = visitorOrReverse;
reverse = maybeReverse;
}
visitParents(tree, test, overload, reverse);
function overload(node, parents) {
const parent = parents[parents.length - 1];
const index = parent ? parent.children.indexOf(node) : void 0;
return visitor(node, index, parent);
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
CONTINUE,
EXIT,
SKIP,
visit
});

View File

@ -1,5 +1,5 @@
{
"version": "3.0.0-alpha.0",
"version": "3.2.0",
"npmClient": "yarn",
"useWorkspaces": true,
"useNx": false,

View File

@ -39,7 +39,6 @@
"crowdin:download": "crowdin download --config ./crowdin-v2.yaml",
"crowdin:download:website": "yarn crowdin:download --language fr --language ko --language pt-BR --language zh-CN --language ja",
"argos:screenshot": "yarn workspace argos screenshot",
"argos:upload": "yarn workspace argos upload",
"canary": "yarn canary:bumpVersion && yarn canary:publish",
"canary:version": "echo 0.0.0-`git rev-list --count HEAD`+`git rev-parse --short HEAD`",
"canary:bumpVersion": "yarn lerna version `yarn --silent canary:version` --exact --no-push --yes",
@ -52,18 +51,19 @@
"lint": "yarn lint:js && yarn lint:style && yarn lint:spelling",
"lint:ci": "yarn lint:js --quiet && yarn lint:style && yarn lint:spelling",
"lint:js": "eslint --cache --report-unused-disable-directives \"**/*.{js,jsx,ts,tsx,mjs}\"",
"lint:spelling": "cspell \"**\" --no-progress",
"lint:js:fix": "yarn lint:js --fix",
"lint:spelling": "cspell \"**\" --no-progress --show-context --show-suggestions",
"lint:spelling:fix": "yarn rimraf project-words.txt && echo \"# Project Words - DO NOT TOUCH - This is updated through CI\" >> project-words.txt && yarn -s lint:spelling --words-only --unique --no-exit-code --no-summary \"**\" | sort --ignore-case >> project-words.txt",
"lint:style": "stylelint \"**/*.css\"",
"lint:style:fix": "yarn lint:style --fix",
"lerna": "lerna",
"test": "jest",
"test:build:website": "./admin/scripts/test-release.sh",
"watch": "yarn lerna run --parallel watch",
"clear": "(yarn workspace website clear || echo 'Failure while running docusaurus clear') && yarn rimraf test-website && yarn rimraf test-website-in-workspace && yarn lerna exec --ignore docusaurus yarn rimraf lib",
"test:baseUrl": "yarn build:website:baseUrl && yarn serve:website:baseUrl",
"lock:update": "npx --yes yarn-deduplicate"
},
"dependencies": {
"unified": "^10.1.2"
"lock:update": "npx --yes yarn-deduplicate",
"update-translations": "yarn workspace @docusaurus/theme-translations update"
},
"devDependencies": {
"@crowdin/cli": "^3.13.0",
@ -83,7 +83,7 @@
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"cross-env": "^7.0.3",
"cspell": "^6.31.2",
"cspell": "^8.1.0",
"eslint": "^8.45.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^8.8.0",
@ -109,7 +109,6 @@
"react-dom": "^18.0.0",
"react-helmet-async": "^1.3.0",
"react-test-renderer": "^18.0.0",
"remark-parse": "^8.0.3",
"rimraf": "^3.0.2",
"sharp": "^0.32.3",
"strip-ansi": "^6.0.1",

View File

@ -10,6 +10,10 @@ npm init docusaurus
yarn create docusaurus
```
```bash
npx create-docusaurus@latest
```
## Usage
Please see the [installation documentation](https://docusaurus.io/docs/installation).
@ -21,7 +25,7 @@ For Docusaurus maintainers, templates can be tested with:
```bash
cd `git rev-parse --show-toplevel` # Back to repo root
rm -rf test-website
yarn create-docusaurus test-website classic
yarn create-docusaurus test-website classic --javascript
cd test-website
yarn start
```
@ -33,7 +37,7 @@ Use the following to test the templates against local packages:
```bash
cd `git rev-parse --show-toplevel` # Back to repo root
rm -rf test-website-in-workspace
yarn create-docusaurus test-website-in-workspace classic
yarn create-docusaurus test-website-in-workspace classic --javascript
cd test-website-in-workspace
yarn build
yarn start

View File

@ -38,6 +38,7 @@ program
'Do not run package manager immediately after scaffolding',
)
.option('-t, --typescript', 'Use the TypeScript template variant')
.option('-j, --javascript', 'Use the JavaScript template variant')
.option(
'-g, --git-strategy <strategy>',
`Only used if the template is a git repository.

View File

@ -1,6 +1,6 @@
{
"name": "create-docusaurus",
"version": "3.0.0-alpha.0",
"version": "3.2.0",
"description": "Create Docusaurus apps easily.",
"type": "module",
"repository": {
@ -22,8 +22,8 @@
},
"license": "MIT",
"dependencies": {
"@docusaurus/logger": "3.0.0-alpha.0",
"@docusaurus/utils": "3.0.0-alpha.0",
"@docusaurus/logger": "3.2.0",
"@docusaurus/utils": "3.2.0",
"commander": "^5.1.0",
"fs-extra": "^11.1.1",
"lodash": "^4.17.21",
@ -37,6 +37,6 @@
"@types/supports-color": "^8.1.1"
},
"engines": {
"node": ">=16.14"
"node": ">=18.0"
}
}

View File

@ -13,15 +13,29 @@ import logger from '@docusaurus/logger';
import shell from 'shelljs';
import prompts, {type Choice} from 'prompts';
import supportsColor from 'supports-color';
import {escapeShellArg} from '@docusaurus/utils';
import {escapeShellArg, askPreferredLanguage} from '@docusaurus/utils';
type CLIOptions = {
type LanguagesOptions = {
javascript?: boolean;
typescript?: boolean;
};
type CLIOptions = LanguagesOptions & {
packageManager?: PackageManager;
skipInstall?: boolean;
typescript?: boolean;
gitStrategy?: GitStrategy;
};
async function getLanguage(options: LanguagesOptions) {
if (options.typescript) {
return 'typescript';
}
if (options.javascript) {
return 'javascript';
}
return askPreferredLanguage();
}
// Only used in the rare, rare case of running globally installed create +
// using --skip-install. We need a default name to show the tip text
const defaultPackageManager = 'npm';
@ -153,22 +167,14 @@ async function readTemplates(): Promise<Template[]> {
async function copyTemplate(
template: Template,
dest: string,
typescript: boolean,
language: 'javascript' | 'typescript',
): Promise<void> {
await fs.copy(path.join(templatesDir, 'shared'), dest);
// TypeScript variants will copy duplicate resources like CSS & config from
// base template
if (typescript) {
await fs.copy(template.path, dest, {
filter: async (filePath) =>
(await fs.stat(filePath)).isDirectory() ||
path.extname(filePath) === '.css' ||
path.basename(filePath) === 'docusaurus.config.js',
});
}
const sourcePath =
language === 'typescript' ? template.tsVariantPath! : template.path;
await fs.copy(typescript ? template.tsVariantPath! : template.path, dest, {
await fs.copy(sourcePath, dest, {
// Symlinks don't exist in published npm packages anymore, so this is only
// to prevent errors during local testing
filter: async (filePath) => !(await fs.lstat(filePath)).isSymbolicLink(),
@ -194,6 +200,33 @@ function createTemplateChoices(templates: Template[]): Choice[] {
];
}
async function askTemplateChoice({
templates,
cliOptions,
}: {
templates: Template[];
cliOptions: CLIOptions;
}) {
return cliOptions.gitStrategy
? 'Git repository'
: (
(await prompts(
{
type: 'select',
name: 'template',
message: 'Select a template below...',
choices: createTemplateChoices(templates),
},
{
onCancel() {
logger.error('A choice is required.');
process.exit(1);
},
},
)) as {template: Template | 'Git repository' | 'Local template'}
).template;
}
function isValidGitRepoUrl(gitRepoUrl: string): boolean {
return ['https://', 'git@'].some((item) => gitRepoUrl.startsWith(item));
}
@ -271,7 +304,7 @@ type Source =
| {
type: 'template';
template: Template;
typescript: boolean;
language: 'javascript' | 'typescript';
}
| {
type: 'git';
@ -283,166 +316,193 @@ type Source =
path: string;
};
async function createTemplateSource({
template,
cliOptions,
}: {
template: Template;
cliOptions: CLIOptions;
}): Promise<Source> {
const language = await getLanguage(cliOptions);
if (language === 'typescript' && !template.tsVariantPath) {
logger.error`Template name=${template.name} doesn't provide a TypeScript variant.`;
process.exit(1);
}
return {
type: 'template',
template,
language,
};
}
async function getTemplateSource({
templateName,
templates,
cliOptions,
}: {
templateName: string;
templates: Template[];
cliOptions: CLIOptions;
}): Promise<Source> {
const template = templates.find((t) => t.name === templateName);
if (!template) {
logger.error('Invalid template.');
process.exit(1);
}
return createTemplateSource({template, cliOptions});
}
// Get the template source explicitly requested by the user provided cli option
async function getUserProvidedSource({
reqTemplate,
templates,
cliOptions,
}: {
reqTemplate: string;
templates: Template[];
cliOptions: CLIOptions;
}): Promise<Source> {
if (isValidGitRepoUrl(reqTemplate)) {
if (
cliOptions.gitStrategy &&
!gitStrategies.includes(cliOptions.gitStrategy)
) {
logger.error`Invalid git strategy: name=${
cliOptions.gitStrategy
}. Value must be one of ${gitStrategies.join(', ')}.`;
process.exit(1);
}
return {
type: 'git',
url: reqTemplate,
strategy: cliOptions.gitStrategy ?? 'deep',
};
}
if (await fs.pathExists(path.resolve(reqTemplate))) {
return {
type: 'local',
path: path.resolve(reqTemplate),
};
}
return getTemplateSource({
templateName: reqTemplate,
templates,
cliOptions,
});
}
async function askGitRepositorySource({
cliOptions,
}: {
cliOptions: CLIOptions;
}): Promise<Source> {
const {gitRepoUrl} = (await prompts(
{
type: 'text',
name: 'gitRepoUrl',
validate: (url?: string) => {
if (url && isValidGitRepoUrl(url)) {
return true;
}
return logger.red('Invalid repository URL');
},
message: logger.interpolate`Enter a repository URL from GitHub, Bitbucket, GitLab, or any other public repo.
(e.g: url=${'https://github.com/ownerName/repoName.git'})`,
},
{
onCancel() {
logger.error('A git repo URL is required.');
process.exit(1);
},
},
)) as {gitRepoUrl: string};
let strategy = cliOptions.gitStrategy;
if (!strategy) {
({strategy} = (await prompts(
{
type: 'select',
name: 'strategy',
message: 'How should we clone this repo?',
choices: [
{title: 'Deep clone: preserve full history', value: 'deep'},
{title: 'Shallow clone: clone with --depth=1', value: 'shallow'},
{
title: 'Copy: do a shallow clone, but do not create a git repo',
value: 'copy',
},
{
title: 'Custom: enter your custom git clone command',
value: 'custom',
},
],
},
{
onCancel() {
logger.info`Falling back to name=${'deep'}`;
},
},
)) as {strategy?: GitStrategy});
}
return {
type: 'git',
url: gitRepoUrl,
strategy: strategy ?? 'deep',
};
}
async function askLocalSource(): Promise<Source> {
const {templateDir} = (await prompts(
{
type: 'text',
name: 'templateDir',
validate: async (dir?: string) => {
if (dir) {
const fullDir = path.resolve(dir);
if (await fs.pathExists(fullDir)) {
return true;
}
return logger.red(
logger.interpolate`path=${fullDir} does not exist.`,
);
}
return logger.red('Please enter a valid path.');
},
message:
'Enter a local folder path, relative to the current working directory.',
},
{
onCancel() {
logger.error('A file path is required.');
process.exit(1);
},
},
)) as {templateDir: string};
return {
type: 'local',
path: templateDir,
};
}
async function getSource(
reqTemplate: string | undefined,
templates: Template[],
cliOptions: CLIOptions,
): Promise<Source> {
if (reqTemplate) {
if (isValidGitRepoUrl(reqTemplate)) {
if (
cliOptions.gitStrategy &&
!gitStrategies.includes(cliOptions.gitStrategy)
) {
logger.error`Invalid git strategy: name=${
cliOptions.gitStrategy
}. Value must be one of ${gitStrategies.join(', ')}.`;
process.exit(1);
}
return {
type: 'git',
url: reqTemplate,
strategy: cliOptions.gitStrategy ?? 'deep',
};
} else if (await fs.pathExists(path.resolve(reqTemplate))) {
return {
type: 'local',
path: path.resolve(reqTemplate),
};
}
const template = templates.find((t) => t.name === reqTemplate);
if (!template) {
logger.error('Invalid template.');
process.exit(1);
}
if (cliOptions.typescript && !template.tsVariantPath) {
logger.error`Template name=${reqTemplate} doesn't provide the TypeScript variant.`;
process.exit(1);
}
return {
type: 'template',
template,
typescript: cliOptions.typescript ?? false,
};
return getUserProvidedSource({reqTemplate, templates, cliOptions});
}
const template = cliOptions.gitStrategy
? 'Git repository'
: (
(await prompts(
{
type: 'select',
name: 'template',
message: 'Select a template below...',
choices: createTemplateChoices(templates),
},
{
onCancel() {
logger.error('A choice is required.');
process.exit(1);
},
},
)) as {template: Template | 'Git repository' | 'Local template'}
).template;
const template = await askTemplateChoice({templates, cliOptions});
if (template === 'Git repository') {
const {gitRepoUrl} = (await prompts(
{
type: 'text',
name: 'gitRepoUrl',
validate: (url?: string) => {
if (url && isValidGitRepoUrl(url)) {
return true;
}
return logger.red('Invalid repository URL');
},
message: logger.interpolate`Enter a repository URL from GitHub, Bitbucket, GitLab, or any other public repo.
(e.g: url=${'https://github.com/ownerName/repoName.git'})`,
},
{
onCancel() {
logger.error('A git repo URL is required.');
process.exit(1);
},
},
)) as {gitRepoUrl: string};
let strategy = cliOptions.gitStrategy;
if (!strategy) {
({strategy} = (await prompts(
{
type: 'select',
name: 'strategy',
message: 'How should we clone this repo?',
choices: [
{title: 'Deep clone: preserve full history', value: 'deep'},
{title: 'Shallow clone: clone with --depth=1', value: 'shallow'},
{
title: 'Copy: do a shallow clone, but do not create a git repo',
value: 'copy',
},
{
title: 'Custom: enter your custom git clone command',
value: 'custom',
},
],
},
{
onCancel() {
logger.info`Falling back to name=${'deep'}`;
},
},
)) as {strategy?: GitStrategy});
}
return {
type: 'git',
url: gitRepoUrl,
strategy: strategy ?? 'deep',
};
} else if (template === 'Local template') {
const {templateDir} = (await prompts(
{
type: 'text',
name: 'templateDir',
validate: async (dir?: string) => {
if (dir) {
const fullDir = path.resolve(dir);
if (await fs.pathExists(fullDir)) {
return true;
}
return logger.red(
logger.interpolate`path=${fullDir} does not exist.`,
);
}
return logger.red('Please enter a valid path.');
},
message:
'Enter a local folder path, relative to the current working directory.',
},
{
onCancel() {
logger.error('A file path is required.');
process.exit(1);
},
},
)) as {templateDir: string};
return {
type: 'local',
path: templateDir,
};
return askGitRepositorySource({cliOptions});
}
let useTS = cliOptions.typescript;
if (!useTS && template.tsVariantPath) {
({useTS} = (await prompts({
type: 'confirm',
name: 'useTS',
message:
'This template is available in TypeScript. Do you want to use the TS variant?',
initial: false,
})) as {useTS?: boolean});
if (template === 'Local template') {
return askLocalSource();
}
return {
type: 'template',
return createTemplateSource({
template,
typescript: useTS ?? false,
};
cliOptions,
});
}
async function updatePkg(pkgPath: string, obj: {[key: string]: unknown}) {
@ -463,6 +523,7 @@ export default async function init(
getSiteName(reqName, rootDir),
]);
const dest = path.resolve(rootDir, siteName);
const source = await getSource(reqTemplate, templates, cliOptions);
logger.info('Creating new Docusaurus project...');
@ -481,7 +542,7 @@ export default async function init(
}
} else if (source.type === 'template') {
try {
await copyTemplate(source.template, dest, source.typescript);
await copyTemplate(source.template, dest, source.language);
} catch (err) {
logger.error`Copying Docusaurus template name=${source.template.name} failed!`;
throw err;

View File

@ -0,0 +1,133 @@
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
const config: Config = {
title: 'My Site',
tagline: 'Dinosaurs are cool',
favicon: 'img/favicon.ico',
// Set the production url of your site here
url: 'https://your-docusaurus-site.example.com',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'facebook', // Usually your GitHub org/user name.
projectName: 'docusaurus', // Usually your repo name.
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'classic',
{
docs: {
sidebarPath: './sidebars.ts',
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
blog: {
showReadingTime: true,
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: './src/css/custom.css',
},
} satisfies Preset.Options,
],
],
themeConfig: {
// Replace with your project's social card
image: 'img/docusaurus-social-card.jpg',
navbar: {
title: 'My Site',
logo: {
alt: 'My Site Logo',
src: 'img/logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Tutorial',
},
{to: '/blog', label: 'Blog', position: 'left'},
{
href: 'https://github.com/facebook/docusaurus',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Docs',
items: [
{
label: 'Tutorial',
to: '/docs/intro',
},
],
},
{
title: 'Community',
items: [
{
label: 'Stack Overflow',
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
},
{
label: 'Discord',
href: 'https://discordapp.com/invite/docusaurus',
},
{
label: 'Twitter',
href: 'https://twitter.com/docusaurus',
},
],
},
{
title: 'More',
items: [
{
label: 'Blog',
to: '/blog',
},
{
label: 'GitHub',
href: 'https://github.com/facebook/docusaurus',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};
export default config;

View File

@ -1,6 +1,6 @@
{
"name": "docusaurus-2-classic-typescript-template",
"version": "3.0.0-alpha.0",
"version": "3.2.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
@ -15,17 +15,18 @@
"typecheck": "tsc"
},
"dependencies": {
"@docusaurus/core": "3.0.0-alpha.0",
"@docusaurus/preset-classic": "3.0.0-alpha.0",
"@mdx-js/react": "^2.3.0",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"@docusaurus/core": "3.2.0",
"@docusaurus/preset-classic": "3.2.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.0.0-alpha.0",
"@docusaurus/tsconfig": "3.0.0-alpha.0",
"@docusaurus/module-type-aliases": "3.2.0",
"@docusaurus/tsconfig": "3.2.0",
"@docusaurus/types": "3.2.0",
"typescript": "~5.2.2"
},
"browserslist": {
@ -41,6 +42,6 @@
]
},
"engines": {
"node": ">=16.14"
"node": ">=18.0"
}
}

View File

@ -0,0 +1,31 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
const sidebars: SidebarsConfig = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
export default sidebars;

View File

@ -1 +0,0 @@
../../../../classic/src/components/HomepageFeatures/styles.module.css

View File

@ -1 +0,0 @@
../../../classic/src/pages/index.module.css

View File

@ -4,8 +4,7 @@
// There are various equivalent ways to declare your Docusaurus config.
// See: https://docusaurus.io/docs/api/docusaurus-config
const lightCodeTheme = require('prism-react-renderer/themes/github');
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
import {themes as prismThemes} from 'prism-react-renderer';
/** @type {import('@docusaurus/types').Config} */
const config = {
@ -41,7 +40,7 @@ const config = {
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
sidebarPath: './sidebars.js',
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
@ -55,7 +54,7 @@ const config = {
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
customCss: './src/css/custom.css',
},
}),
],
@ -133,10 +132,10 @@ const config = {
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
}),
};
module.exports = config;
export default config;

View File

@ -1,6 +1,6 @@
{
"name": "docusaurus-2-classic-template",
"version": "3.0.0-alpha.0",
"version": "3.2.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
@ -14,16 +14,17 @@
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
"@docusaurus/core": "3.0.0-alpha.0",
"@docusaurus/preset-classic": "3.0.0-alpha.0",
"@mdx-js/react": "^2.3.0",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"@docusaurus/core": "3.2.0",
"@docusaurus/preset-classic": "3.2.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.0.0-alpha.0"
"@docusaurus/module-type-aliases": "3.2.0",
"@docusaurus/types": "3.2.0"
},
"browserslist": {
"production": [
@ -38,6 +39,6 @@
]
},
"engines": {
"node": ">=16.14"
"node": ">=18.0"
}
}

View File

@ -0,0 +1,33 @@
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
// @ts-check
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
export default sidebars;

View File

@ -1,6 +1,6 @@
# Website
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
### Installation

View File

@ -14,7 +14,7 @@ Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new
### What you'll need
- [Node.js](https://nodejs.org/en/download/) version 16.14 or above:
- [Node.js](https://nodejs.org/en/download/) version 18.0 or above:
- When installing Node.js, you are recommended to check all checkboxes related to dependencies.
## Generate a new site

View File

@ -28,7 +28,7 @@ tags: [greetings]
Congratulations, you have made your first post!
Feel free to play around and edit this post as much you like.
Feel free to play around and edit this post as much as you like.
```
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).

View File

@ -42,7 +42,7 @@ This is my **first Docusaurus document**!
It is also possible to create your sidebar explicitly in `sidebars.js`:
```js title="sidebars.js"
module.exports = {
export default {
tutorialSidebar: [
'intro',
// highlight-next-line

View File

@ -61,13 +61,13 @@ You can reference images relative to the current file as well. This is particula
Markdown code blocks are supported with Syntax highlighting.
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return (
<h1>Hello, Docusaurus!</h1>
)
}
```
````md
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return <h1>Hello, Docusaurus!</h1>;
}
```
````
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
@ -79,17 +79,19 @@ function HelloDocusaurus() {
Docusaurus has a special syntax to create admonitions and callouts:
:::tip My tip
```md
:::tip My tip
Use this awesome feature option
Use this awesome feature option
:::
:::
:::danger Take care
:::danger Take care
This action is dangerous
This action is dangerous
:::
:::
```
:::tip My tip

Some files were not shown because too many files have changed in this diff Show More