88 genVersionChunks,
99} = require ( './utils' )
1010
11+ const languages = [ 'en' , 'zh' , 'ja' ]
12+
1113const createDocs = async ( { graphql, createPage, createRedirect } ) => {
1214 const docTemplate = path . resolve ( `${ __dirname } /../src/templates/doc.js` )
1315
@@ -69,6 +71,35 @@ const createDocs = async ({ graphql, createPage, createRedirect }) => {
6971 }
7072 ` )
7173
74+ const docsJa = await graphql ( `
75+ query {
76+ allMdx(
77+ filter: {
78+ fields: { langCollection: { eq: "markdown-pages/contents/ja" } }
79+ fileAbsolutePath: { regex: "/^(?!.*TOC).*$/" }
80+ frontmatter: { draft: { ne: true } }
81+ }
82+ ) {
83+ nodes {
84+ id
85+ fields {
86+ langCollection
87+ }
88+ frontmatter {
89+ aliases
90+ }
91+ parent {
92+ ... on File {
93+ relativeDirectory
94+ relativePath
95+ base
96+ }
97+ }
98+ }
99+ }
100+ }
101+ ` )
102+
72103 // create pages for different language docs
73104 function _createDocs ( docs , locale , pathPrefix = '' ) {
74105 const nodes = docs . data . allMdx . nodes
@@ -83,12 +114,23 @@ const createDocs = async ({ graphql, createPage, createRedirect }) => {
83114 const _fullPath = `${ replacePath ( relativeDir , base ) } `
84115 const fullPath = `${ pathPrefix } ${ _fullPath } `
85116 node . path = fullPath
86- const filePathInDiffLang = path . resolve (
87- `${ __dirname } /../markdown-pages/contents${
88- locale === 'en' ? '/zh/' : '/en/'
89- } ${ relativePath } `
90- )
91- node . langSwitchable = fs . existsSync ( filePathInDiffLang ) ? true : false
117+ const switchableLangs = { }
118+
119+ languages . forEach ( ( lang ) => {
120+ if ( locale != lang ) {
121+ const filePathInDiffLang = path . resolve (
122+ `${ __dirname } /../markdown-pages/contents/${ lang } /${ relativePath } `
123+ )
124+
125+ iSSwitchable = fs . existsSync ( filePathInDiffLang ) ? true : false
126+
127+ switchableLangs [ lang ] = iSSwitchable
128+ } else {
129+ switchableLangs [ lang ] = true
130+ }
131+ } )
132+
133+ node . switchableLangs = switchableLangs
92134 const vChunks = genVersionChunks ( _fullPath )
93135 node . version = vChunks [ 0 ]
94136 node . pathWithoutVersion = vChunks [ 1 ]
@@ -115,7 +157,7 @@ const createDocs = async ({ graphql, createPage, createRedirect }) => {
115157 pathPrefix,
116158 tocPath,
117159 parent,
118- langSwitchable ,
160+ switchableLangs ,
119161 } = node
120162 createPage ( {
121163 path : path ,
@@ -131,7 +173,7 @@ const createDocs = async ({ graphql, createPage, createRedirect }) => {
131173 downloadURL,
132174 fullPath : path ,
133175 versions : versionsMap [ node . pathWithoutVersion ] ,
134- langSwitchable ,
176+ switchableLangs ,
135177 } ,
136178 } )
137179
@@ -152,6 +194,7 @@ const createDocs = async ({ graphql, createPage, createRedirect }) => {
152194
153195 _createDocs ( docsEn , 'en' )
154196 _createDocs ( docsZh , 'zh' , '/zh' )
197+ _createDocs ( docsJa , 'ja' , '/ja' )
155198}
156199
157200module . exports = createDocs
0 commit comments