mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-11 07:12:29 +02:00
feat:docs translation + versioning 💥
This commit is contained in:
parent
31d333b82f
commit
0f38ae3979
20 changed files with 1133 additions and 520 deletions
|
@ -1,15 +1,38 @@
|
|||
async function genRoutesConfig({docsData = [], pagesData = []}) {
|
||||
function genDocsRoute({path: docsPath, source}) {
|
||||
const {idx} = require('./utils');
|
||||
|
||||
async function genRoutesConfig({
|
||||
docsData = {},
|
||||
pagesData = [],
|
||||
env,
|
||||
siteConfig
|
||||
}) {
|
||||
function genDocsRoute(metadata) {
|
||||
const {permalink, source, version, language} = metadata;
|
||||
const defaultLanguage = idx(env, ['translation', 'defaultLanguage']);
|
||||
let importPath = `@docs/${source}`;
|
||||
if (language && language !== defaultLanguage.tag) {
|
||||
importPath = `@translated_docs/${source}`;
|
||||
} else if (version && version !== 'next') {
|
||||
importPath = `@versioned_docs/${source}`;
|
||||
}
|
||||
|
||||
const {baseUrl} = siteConfig;
|
||||
const docsPath = `${baseUrl}${permalink}`;
|
||||
|
||||
return `
|
||||
{
|
||||
path: ${JSON.stringify(docsPath)},
|
||||
exact: true,
|
||||
component: Loadable({
|
||||
loader: () => import('@docs/${source}'),
|
||||
loader: () => import(${JSON.stringify(importPath)}),
|
||||
loading: Loading,
|
||||
render(loaded, props) {
|
||||
let Content = loaded.default;
|
||||
return <Docs {...props}><Content /></Docs>;
|
||||
return (
|
||||
<Docs {...props} metadata={${JSON.stringify(metadata)}}>
|
||||
<Content />
|
||||
</Docs>
|
||||
);
|
||||
}
|
||||
})
|
||||
}`;
|
||||
|
@ -33,13 +56,17 @@ async function genRoutesConfig({docsData = [], pagesData = []}) {
|
|||
component: NotFound
|
||||
}`;
|
||||
|
||||
const docsRoutes = Object.values(docsData)
|
||||
.map(genDocsRoute)
|
||||
.join(',');
|
||||
|
||||
return (
|
||||
`import React from 'react';\n` +
|
||||
`import Loadable from 'react-loadable';\n` +
|
||||
`import Loading from '@theme/Loading';\n` +
|
||||
`import Docs from '@theme/Docs';\n` +
|
||||
`import NotFound from '@theme/NotFound';\n` +
|
||||
`const routes = [${docsData.map(genDocsRoute).join(',')},${pagesData
|
||||
`const routes = [${docsRoutes},${pagesData
|
||||
.map(genPagesRoute)
|
||||
.join(',')}${notFoundRoute}\n];\n` +
|
||||
`export default routes;\n`
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue