website/plugins/redirect.js (53 lines of code) (raw):

const path = require('path'); module.exports = function (config) { return { name: 'docusaurus-redirect-plugin', async contentLoaded({ actions }) { const { createData, addRoute } = actions; const routes = [ // { // from: '/docs/guide/advance/fusion', // to: '/docs/plugin/list/fusion', // }, // { // from: '/docs/guide/advance/antd', // to: '/docs/plugin/list/antd', // }, // { // from: '/docs/guide/develop/plugin-dev', // to: '/docs/plugin/develop/start', // }, // { // from: '/docs/guide/develop/plugin-build', // to: '/docs/plugin/develop/build', // }, // { // from: '/docs/guide/develop/plugin-runtime', // to: '/docs/plugin/develop/runtime', // }, // { // from: '/docs/guide/develop/plugin-list', // to: '/docs/plugin/list/moment-locales', // }, // { // from: '/docs/guide/basic/api', // to: '/docs/config/about', // }, ]; const redirectConfigPath = await createData( 'redirectConfig.json', JSON.stringify(routes), ); routes.forEach((item) => { addRoute({ path: item.from, component: '@site/src/components/Redirect', modules: { // propName -> JSON file path redirectConfig: redirectConfigPath, }, exact: true, }); }); addRoute({ path: path.join(config.baseUrl, '/component'), component: '@site/src/components/Redirect', modules: { // propName -> JSON file path redirectConfig: redirectConfigPath, }, }); addRoute({ path: path.join(config.baseUrl, '/docs/guide/advance'), component: '@site/src/components/Redirect', modules: { // propName -> JSON file path redirectConfig: redirectConfigPath, }, }); addRoute({ path: path.join(config.baseUrl, '/docs/materials'), component: '@site/src/components/Redirect', modules: { // propName -> JSON file path redirectConfig: redirectConfigPath, }, }); addRoute({ path: path.join(config.baseUrl, '/docs/icestark'), component: '@site/src/components/Redirect', modules: { // propName -> JSON file path redirectConfig: redirectConfigPath, }, }); }, }; };