Compare commits
210 Commits
v3.0.0-bet
...
main
| Author | SHA1 | Date |
|---|---|---|
|
|
26e0bd928c | |
|
|
70415a4cef | |
|
|
a34e3f8f91 | |
|
|
7edfe0e2d1 | |
|
|
debfc87d34 | |
|
|
1a5fe5c412 | |
|
|
821247142e | |
|
|
efbe474e9c | |
|
|
06e70a4f9a | |
|
|
1430c85a82 | |
|
|
8024d9b858 | |
|
|
3877c1254f | |
|
|
6f17d54938 | |
|
|
93a09ea086 | |
|
|
91f93656d8 | |
|
|
9a47ec0581 | |
|
|
9017fb9b1d | |
|
|
465cf4d82c | |
|
|
6c724ed857 | |
|
|
c745021b01 | |
|
|
7938803747 | |
|
|
14bec09670 | |
|
|
032e3b8f4d | |
|
|
6151a41428 | |
|
|
8d115a9e0d | |
|
|
d02b96f7f5 | |
|
|
eb6424cc27 | |
|
|
ee53208f9d | |
|
|
9d89607d4d | |
|
|
319d73d54f | |
|
|
2b6d8bd646 | |
|
|
6d8108b653 | |
|
|
2851c93d0d | |
|
|
05279dc3d8 | |
|
|
324c853da0 | |
|
|
2152572a3b | |
|
|
0589b1475d | |
|
|
f159bb2472 | |
|
|
0279c329ad | |
|
|
6bf21d215c | |
|
|
85d74245f8 | |
|
|
76c0f5c2d9 | |
|
|
7a4826baa8 | |
|
|
06dabc69bd | |
|
|
4ca9b8e508 | |
|
|
6b0f9703a3 | |
|
|
0d3ac877d5 | |
|
|
1bbc68bc30 | |
|
|
3426f848a3 | |
|
|
b26e262981 | |
|
|
60d9346965 | |
|
|
8abd1899a6 | |
|
|
628752d92a | |
|
|
6fd8408a2c | |
|
|
77723a1121 | |
|
|
70ba9d2d01 | |
|
|
cc7f43580c | |
|
|
a296d727b6 | |
|
|
34297bc56d | |
|
|
d740be0e9c | |
|
|
506e763c07 | |
|
|
9e5679ff1a | |
|
|
c1ac06768b | |
|
|
436e20a42a | |
|
|
09b2005759 | |
|
|
48cab8e3fb | |
|
|
ed88097f63 | |
|
|
3d8b70e0b3 | |
|
|
d3142c5ed5 | |
|
|
2f2ed41829 | |
|
|
cce1698c60 | |
|
|
0266549a51 | |
|
|
c827b6de2d | |
|
|
8597e5dcdb | |
|
|
4b444d55e5 | |
|
|
333889d38d | |
|
|
3c982127d7 | |
|
|
bed11f62bc | |
|
|
f794559962 | |
|
|
604ccaa89c | |
|
|
0469590cc4 | |
|
|
e1899786a4 | |
|
|
d75f99f9a6 | |
|
|
0a2e6e67d3 | |
|
|
4388267c26 | |
|
|
d94adf6a6c | |
|
|
21599e22d0 | |
|
|
849608bcab | |
|
|
e19b681e51 | |
|
|
c7e090f13a | |
|
|
16500436f7 | |
|
|
ca09f238f3 | |
|
|
e0052edc4c | |
|
|
fd49301a45 | |
|
|
332a466893 | |
|
|
ece3d04d57 | |
|
|
ac5642079d | |
|
|
5baa68bea0 | |
|
|
5123035333 | |
|
|
3389daefac | |
|
|
bfb882c2f0 | |
|
|
bd7d64f455 | |
|
|
d9d700c54f | |
|
|
a180a3012f | |
|
|
60d62d1d65 | |
|
|
affca7a9a2 | |
|
|
28e7298211 | |
|
|
63d9bf2fbc | |
|
|
e844c57e89 | |
|
|
991429ff8a | |
|
|
61116e2ad6 | |
|
|
d3752d227b | |
|
|
e00340331d | |
|
|
c8c93a3854 | |
|
|
8dd1e13f2a | |
|
|
56396f32eb | |
|
|
4cc56133f7 | |
|
|
7650829e91 | |
|
|
209b035399 | |
|
|
b40524fe5f | |
|
|
452adcf735 | |
|
|
bfd2cdbd65 | |
|
|
321e674cc6 | |
|
|
13cd6d4ffd | |
|
|
d59ea067ec | |
|
|
dc3584c2aa | |
|
|
24e5b2c95c | |
|
|
6e8292da4c | |
|
|
17c93e444e | |
|
|
829fbbdea6 | |
|
|
dcb36facc6 | |
|
|
6cc29fac01 | |
|
|
8dc24b6a98 | |
|
|
bda8f14f89 | |
|
|
7c32fc341f | |
|
|
2c0bf8a3d8 | |
|
|
afacb110b5 | |
|
|
58f59e7f89 | |
|
|
424ffd2e29 | |
|
|
7dcad0c632 | |
|
|
aeca87a202 | |
|
|
6f70b27694 | |
|
|
cf08ec9790 | |
|
|
5e1587b4d9 | |
|
|
78606c4d9a | |
|
|
daf47dfba1 | |
|
|
fed25eed0b | |
|
|
b464545629 | |
|
|
95d3a65e74 | |
|
|
be5b5c660f | |
|
|
e68ef88336 | |
|
|
328e5f7ddc | |
|
|
e494f16d3c | |
|
|
9b66f575e7 | |
|
|
791da2e4a1 | |
|
|
9a425bc51b | |
|
|
b3e16c66f3 | |
|
|
a456fefca1 | |
|
|
85e5e552cb | |
|
|
10897416dc | |
|
|
495c7936b6 | |
|
|
4a0bd92148 | |
|
|
7e456ece3c | |
|
|
8d19054d91 | |
|
|
d07567e411 | |
|
|
dd03a25a71 | |
|
|
c6762a2542 | |
|
|
56cc8e8ffa | |
|
|
f80e1bdb32 | |
|
|
911dfb46d7 | |
|
|
e525794c9e | |
|
|
aa958f0cc1 | |
|
|
2bb4fd0a65 | |
|
|
f674e02320 | |
|
|
7ee2f75ce1 | |
|
|
4e150d2b82 | |
|
|
45f1a669b5 | |
|
|
336a44f3ea | |
|
|
ae3191654c | |
|
|
d7890a18d4 | |
|
|
209aae6e57 | |
|
|
4245b3d721 | |
|
|
643a7fe5a3 | |
|
|
d86aa0da5f | |
|
|
35441b38e4 | |
|
|
77b3b54def | |
|
|
1319996083 | |
|
|
dceaae41d7 | |
|
|
df42d891c2 | |
|
|
e17784effa | |
|
|
15647a3abd | |
|
|
81d30a4712 | |
|
|
bca375238f | |
|
|
360b80468f | |
|
|
683fe37806 | |
|
|
0624007271 | |
|
|
8ae5264fd4 | |
|
|
e9e4635d76 | |
|
|
bde9cfd84d | |
|
|
a178654446 | |
|
|
ae4a6f9d94 | |
|
|
519428bce2 | |
|
|
46407ecc2d | |
|
|
84b165c4f9 | |
|
|
710dd1ab8e | |
|
|
6b8c5dfd11 | |
|
|
bca980aeef | |
|
|
68e4ceaaaa | |
|
|
507d65800d | |
|
|
52d79c4e0c |
|
|
@ -37,5 +37,6 @@
|
|||
"*.min.*",
|
||||
"jest/vendor"
|
||||
],
|
||||
"ignoreRegExpList": ["Email", "Urls", "#[\\w-]*"]
|
||||
"ignoreRegExpList": ["Email", "Urls", "#[\\w-]*"],
|
||||
"enableFiletypes": ["mdx"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
|
|
|
|||
|
|
@ -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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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
|
||||
|
|
|
|||
|
|
@ -22,11 +22,11 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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
|
||||
|
|
|
|||
|
|
@ -36,11 +36,11 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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: |
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@cdcdbb579706841c47f7063dda365e292e5cad7a # 2.13.4
|
||||
|
|
|
|||
|
|
@ -13,6 +13,6 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
- name: Dependency Review
|
||||
uses: actions/dependency-review-action@6c5ccdad469c9f8a2996bfecaec55a631a347034 # 3.1.0
|
||||
uses: actions/dependency-review-action@733dd5d4a5203f238c33806593ec0f5fc5343d8c # 4.2.4
|
||||
|
|
|
|||
|
|
@ -21,28 +21,38 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
- 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 }}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
{
|
||||
"ci": {
|
||||
"collect": {
|
||||
"startServerCommand": "yarn serve:website",
|
||||
"startServerReadyPattern": "Serving",
|
||||
"startServerReadyTimeout": 10000,
|
||||
|
||||
"numberOfRuns": 1,
|
||||
|
||||
"settings": {
|
||||
"skipAudits": [
|
||||
"robots-txt",
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
@ -20,11 +20,11 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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
|
||||
|
|
|
|||
|
|
@ -22,11 +22,11 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
- 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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
- 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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -26,11 +26,11 @@ jobs:
|
|||
variant: ['js', 'ts']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
823
CHANGELOG.md
823
CHANGELOG.md
|
|
@ -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
|
||||
|
|
|
|||
20
README.md
20
README.md
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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])),
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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: [
|
||||
|
|
|
|||
|
|
@ -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: [
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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)"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
"hardReloadOnChange": true,
|
||||
"view": "browser",
|
||||
"template": "docusaurus",
|
||||
"node": "16",
|
||||
"node": "18",
|
||||
"container": {
|
||||
"node": "16"
|
||||
"node": "18"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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: [
|
||||
|
|
|
|||
|
|
@ -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: [
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
"hardReloadOnChange": true,
|
||||
"view": "browser",
|
||||
"template": "docusaurus",
|
||||
"node": "16",
|
||||
"node": "18",
|
||||
"container": {
|
||||
"node": "16"
|
||||
"node": "18"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,4 +30,4 @@ const sidebars = {
|
|||
*/
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
||||
export default sidebars;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
||||
});
|
||||
|
|
@ -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
|
||||
});
|
||||
|
|
@ -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
|
||||
});
|
||||
|
|
@ -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
|
||||
});
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
||||
*/
|
||||
|
|
@ -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 can’t 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
|
||||
});
|
||||
|
|
@ -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 can’t 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
|
||||
});
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "3.0.0-alpha.0",
|
||||
"version": "3.2.0",
|
||||
"npmClient": "yarn",
|
||||
"useWorkspaces": true,
|
||||
"useNx": false,
|
||||
|
|
|
|||
12
package.json
12
package.json
|
|
@ -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,8 +51,11 @@
|
|||
"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",
|
||||
|
|
@ -63,9 +65,6 @@
|
|||
"lock:update": "npx --yes yarn-deduplicate",
|
||||
"update-translations": "yarn workspace @docusaurus/theme-translations update"
|
||||
},
|
||||
"dependencies": {
|
||||
"unified": "^10.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@crowdin/cli": "^3.13.0",
|
||||
"@swc/core": "1.2.197",
|
||||
|
|
@ -84,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",
|
||||
|
|
@ -110,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",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
133
packages/create-docusaurus/templates/classic-typescript/docusaurus.config.ts
vendored
Normal file
133
packages/create-docusaurus/templates/classic-typescript/docusaurus.config.ts
vendored
Normal 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;
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../../../classic/src/components/HomepageFeatures/styles.module.css
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../../classic/src/pages/index.module.css
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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: [
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue