docs: redirect old docs urls (#13060)

* docs: redirect old docs urls

* fix: fix start en docs script
This commit is contained in:
Tony 2023-08-17 08:33:40 +08:00 committed by GitHub
parent 816277ceae
commit d1eaccabcb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 146 additions and 34 deletions

View File

@ -138,15 +138,9 @@ jobs:
cache: 'pnpm'
cache-dependency-path: website/pnpm-lock.yaml
- run: pnpm i
- name: Set environment variable for Node v16 above
if: ${{ matrix.node-version > '16' }}
run: echo "NODE_OPTIONS=--openssl-legacy-provider" >> $GITHUB_ENV
- name: Build docs
run: npm run build
run: pnpm run build
working-directory: website
- name: Unset environment variable for Node v16 above
if: ${{ matrix.node-version > '16' }}
run: echo "NODE_OPTIONS=''" >> $GITHUB_ENV
all:
runs-on: ubuntu-latest

5
website/_redirects Normal file
View File

@ -0,0 +1,5 @@
# https://docs.netlify.com/routing/redirects/redirect-options/#custom-404-page-handling
# redirect all nonexistent paths in /en/ to /en/404
/en/* /en/404 404
# redirect all en browser language request to homepage to /en/
/ /en 302 Language=en

View File

@ -32,6 +32,36 @@ const config = {
locales: ['zh', 'en'],
},
plugins: [
[
'@dipakparmar/docusaurus-plugin-umami',
/** @type {import('@dipakparmar/docusaurus-plugin-umami').Options} */
({
websiteID: 'be1761be-7547-49d5-91b8-5c97c8f7cec7', // Required
analyticsDomain: 'umami.diygod.dev', // Required
}),
],
[
'@docusaurus/plugin-client-redirects',
/** @type {import('@docusaurus/plugin-client-redirects').Options} */
({
fromExtensions: ['html'],
redirects: [
{ from: '/joinus', to: '/joinus/quick-start' },
{ from: '/joinus/script-standard', to: '/joinus/advanced/script-standard' },
{ from: '/joinus/pub-date', to: '/joinus/advanced/pub-date' },
{ from: '/joinus/use-cache', to: '/joinus/advanced/use-cache' },
...Object.values(require('./sidebars').guideSidebar)
.find((s) => s.label === '路由')
.items.map((category) => ({
from: `/${category.split('/')[1]}`,
to: `/routes/${category.split('/')[1]}`,
})),
],
}),
],
],
presets: [
[
'@docusaurus/preset-classic',
@ -44,6 +74,8 @@ const config = {
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl: 'https://github.com/DIYgod/RSSHub/blob/master/website/',
showLastUpdateAuthor: true,
showLastUpdateTime: true,
},
blog: false,
theme: {
@ -65,17 +97,6 @@ const config = {
},
},
plugins: [
[
'@dipakparmar/docusaurus-plugin-umami',
/** @type {import('@dipakparmar/docusaurus-plugin-umami').Options} */
({
websiteID: 'be1761be-7547-49d5-91b8-5c97c8f7cec7', // Required
analyticsDomain: 'umami.diygod.dev', // Required
}),
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({

View File

@ -5,6 +5,7 @@
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"start:en": "docusaurus start --locale en",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
@ -17,6 +18,7 @@
"dependencies": {
"@dipakparmar/docusaurus-plugin-umami": "^2.1.0",
"@docusaurus/core": "2.4.1",
"@docusaurus/plugin-client-redirects": "2.4.1",
"@docusaurus/preset-classic": "2.4.1",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
@ -29,7 +31,12 @@
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.4.1",
"@docusaurus/types": "^2.4.1",
"@tsconfig/docusaurus": "^2.0.0",
"@types/markdown-it": "^13.0.0",
"@types/mdx-js__react": "^1.5.5",
"@types/react": "^17.0.64",
"@types/react-dom": "^17.0.20",
"typescript": "^4.7.4"
},
"browserslist": {

View File

@ -11,9 +11,12 @@ dependencies:
'@docusaurus/core':
specifier: 2.4.1
version: 2.4.1(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-client-redirects':
specifier: 2.4.1
version: 2.4.1(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/preset-classic':
specifier: 2.4.1
version: 2.4.1(@algolia/client-search@4.19.1)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4)
version: 2.4.1(@algolia/client-search@4.19.1)(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4)
'@mdx-js/react':
specifier: ^1.6.22
version: 1.6.22(react@17.0.2)
@ -43,9 +46,24 @@ devDependencies:
'@docusaurus/module-type-aliases':
specifier: 2.4.1
version: 2.4.1(react-dom@17.0.2)(react@17.0.2)
'@docusaurus/types':
specifier: ^2.4.1
version: 2.4.1(react-dom@17.0.2)(react@17.0.2)
'@tsconfig/docusaurus':
specifier: ^2.0.0
version: 2.0.0
'@types/markdown-it':
specifier: ^13.0.0
version: 13.0.0
'@types/mdx-js__react':
specifier: ^1.5.5
version: 1.5.5
'@types/react':
specifier: ^17.0.64
version: 17.0.64
'@types/react-dom':
specifier: ^17.0.20
version: 17.0.20
typescript:
specifier: ^4.7.4
version: 4.7.4
@ -1617,7 +1635,7 @@ packages:
resolution: {integrity: sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==}
dev: false
/@docsearch/react@3.5.1(@algolia/client-search@4.19.1)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0):
/@docsearch/react@3.5.1(@algolia/client-search@4.19.1)(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0):
resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==}
peerDependencies:
'@types/react': '>= 16.8.0 < 19.0.0'
@ -1634,6 +1652,7 @@ packages:
'@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.19.1)(search-insights@2.7.0)
'@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.19.1)
'@docsearch/css': 3.5.1
'@types/react': 17.0.64
algoliasearch: 4.19.1
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
@ -1817,6 +1836,43 @@ packages:
- uglify-js
- webpack-cli
/@docusaurus/plugin-client-redirects@2.4.1(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4):
resolution: {integrity: sha512-tp0j16gaLIJ4p+IR0P6KDOFsTOGGMY54MNPnmM61Vaqqt5omLqsuKUO8UlCGU1oW/4EIQOhXYy99XYY5MjE+7A==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/logger': 2.4.1
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
'@docusaurus/utils-common': 2.4.1(@docusaurus/types@2.4.1)
'@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
eta: 2.2.0
fs-extra: 10.1.0
lodash: 4.17.21
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
tslib: 2.6.1
transitivePeerDependencies:
- '@docusaurus/types'
- '@parcel/css'
- '@swc/core'
- '@swc/css'
- bufferutil
- csso
- debug
- esbuild
- eslint
- lightningcss
- supports-color
- typescript
- uglify-js
- utf-8-validate
- vue-template-compiler
- webpack-cli
dev: false
/@docusaurus/plugin-content-blog@2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4):
resolution: {integrity: sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==}
engines: {node: '>=16.14'}
@ -1938,7 +1994,7 @@ packages:
- webpack-cli
dev: false
/@docusaurus/plugin-debug@2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4):
/@docusaurus/plugin-debug@2.4.1(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4):
resolution: {integrity: sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==}
engines: {node: '>=16.14'}
peerDependencies:
@ -1951,7 +2007,7 @@ packages:
fs-extra: 10.1.0
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
react-json-view: 1.21.3(react-dom@17.0.2)(react@17.0.2)
react-json-view: 1.21.3(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)
tslib: 2.6.1
transitivePeerDependencies:
- '@parcel/css'
@ -2102,7 +2158,7 @@ packages:
- webpack-cli
dev: false
/@docusaurus/preset-classic@2.4.1(@algolia/client-search@4.19.1)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4):
/@docusaurus/preset-classic@2.4.1(@algolia/client-search@4.19.1)(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4):
resolution: {integrity: sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==}
engines: {node: '>=16.14'}
peerDependencies:
@ -2113,14 +2169,14 @@ packages:
'@docusaurus/plugin-content-blog': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-content-docs': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-content-pages': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-debug': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-debug': 2.4.1(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-google-analytics': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-google-gtag': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-google-tag-manager': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/plugin-sitemap': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/theme-classic': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/theme-search-algolia': 2.4.1(@algolia/client-search@4.19.1)(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4)
'@docusaurus/theme-search-algolia': 2.4.1(@algolia/client-search@4.19.1)(@docusaurus/types@2.4.1)(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4)
'@docusaurus/types': 2.4.1(react-dom@17.0.2)(react@17.0.2)
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
@ -2251,14 +2307,14 @@ packages:
- webpack-cli
dev: false
/@docusaurus/theme-search-algolia@2.4.1(@algolia/client-search@4.19.1)(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4):
/@docusaurus/theme-search-algolia@2.4.1(@algolia/client-search@4.19.1)(@docusaurus/types@2.4.1)(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)(typescript@4.7.4):
resolution: {integrity: sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docsearch/react': 3.5.1(@algolia/client-search@4.19.1)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)
'@docsearch/react': 3.5.1(@algolia/client-search@4.19.1)(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.7.0)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
'@docusaurus/logger': 2.4.1
'@docusaurus/plugin-content-docs': 2.4.1(react-dom@17.0.2)(react@17.0.2)(typescript@4.7.4)
@ -2823,12 +2879,33 @@ packages:
'@types/node': 20.5.0
dev: false
/@types/linkify-it@3.0.2:
resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==}
dev: true
/@types/markdown-it@13.0.0:
resolution: {integrity: sha512-mPTaUl5glYfzdJFeCsvhXQwZKdyszNAZcMm5ZTP5SfpTu+vIbog7J3z8Fa4x/Fzv5TB4R6OA/pHBYIYmkYOWGQ==}
dependencies:
'@types/linkify-it': 3.0.2
'@types/mdurl': 1.0.2
dev: true
/@types/mdast@3.0.12:
resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==}
dependencies:
'@types/unist': 2.0.7
dev: false
/@types/mdurl@1.0.2:
resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==}
dev: true
/@types/mdx-js__react@1.5.5:
resolution: {integrity: sha512-k8pnaP6JXVlQh18HgL5X6sYFNC/qZnzO7R2+HsmwrwUd+JnnsU0d9lyyT0RQrHg1anxDU36S98TI/fsGtmYqqg==}
dependencies:
'@types/react': 17.0.64
dev: true
/@types/mime@1.3.2:
resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==}
dev: false
@ -2863,6 +2940,12 @@ packages:
resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==}
dev: false
/@types/react-dom@17.0.20:
resolution: {integrity: sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA==}
dependencies:
'@types/react': 17.0.64
dev: true
/@types/react-router-config@5.0.7:
resolution: {integrity: sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w==}
dependencies:
@ -6918,7 +7001,7 @@ packages:
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
/react-json-view@1.21.3(react-dom@17.0.2)(react@17.0.2):
/react-json-view@1.21.3(@types/react@17.0.64)(react-dom@17.0.2)(react@17.0.2):
resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==}
peerDependencies:
react: ^17.0.0 || ^16.3.0 || ^15.5.4
@ -6929,7 +7012,7 @@ packages:
react-base16-styling: 0.6.0
react-dom: 17.0.2(react@17.0.2)
react-lifecycles-compat: 3.0.4
react-textarea-autosize: 8.5.2(react@17.0.2)
react-textarea-autosize: 8.5.2(@types/react@17.0.64)(react@17.0.2)
transitivePeerDependencies:
- '@types/react'
- encoding
@ -6994,7 +7077,7 @@ packages:
tiny-warning: 1.0.3
dev: false
/react-textarea-autosize@8.5.2(react@17.0.2):
/react-textarea-autosize@8.5.2(@types/react@17.0.64)(react@17.0.2):
resolution: {integrity: sha512-uOkyjkEl0ByEK21eCJMHDGBAAd/BoFQBawYK5XItjAmCTeSbjxghd8qnt7nzsLYzidjnoObu6M26xts0YGKsGg==}
engines: {node: '>=10'}
peerDependencies:
@ -7003,7 +7086,7 @@ packages:
'@babel/runtime': 7.22.10
react: 17.0.2
use-composed-ref: 1.3.0(react@17.0.2)
use-latest: 1.2.1(react@17.0.2)
use-latest: 1.2.1(@types/react@17.0.64)(react@17.0.2)
transitivePeerDependencies:
- '@types/react'
dev: false
@ -8098,7 +8181,7 @@ packages:
react: 17.0.2
dev: false
/use-isomorphic-layout-effect@1.1.2(react@17.0.2):
/use-isomorphic-layout-effect@1.1.2(@types/react@17.0.64)(react@17.0.2):
resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
peerDependencies:
'@types/react': '*'
@ -8107,10 +8190,11 @@ packages:
'@types/react':
optional: true
dependencies:
'@types/react': 17.0.64
react: 17.0.2
dev: false
/use-latest@1.2.1(react@17.0.2):
/use-latest@1.2.1(@types/react@17.0.64)(react@17.0.2):
resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==}
peerDependencies:
'@types/react': '*'
@ -8119,8 +8203,9 @@ packages:
'@types/react':
optional: true
dependencies:
'@types/react': 17.0.64
react: 17.0.2
use-isomorphic-layout-effect: 1.1.2(react@17.0.2)
use-isomorphic-layout-effect: 1.1.2(@types/react@17.0.64)(react@17.0.2)
dev: false
/use-sync-external-store@1.2.0(react@17.0.2):