@@ -8,47 +8,65 @@ const getDirTree = (cmd) => {
88 extensions : / \. m d / ,
99 prerender : true ,
1010 }
11+ const tagsArr = [ ]
1112 const dirTree = dirs . map ( path => DirectoryTree ( {
1213 path,
1314 options : otherProps ,
15+ tagsArr
1416 } ) )
15- return dirTree
17+
18+ return {
19+ dirTree,
20+ // duplicate total tags from document.
21+ tagsArr : Array . from ( new Set ( tagsArr ) )
22+ }
1623}
1724
1825// eg: ['docs/quick_start.md', 'a']
1926// output: ['/quick_start', '/a/b', '/a/b/c']
2027const getPrerenderRoutes = ( dirTree ) => {
2128 const dpCloneDirTree = JSON . parse ( JSON . stringify ( dirTree ) )
22- const result = getPrerenderRoute ( dpCloneDirTree )
29+ const result = recursiveDirTree ( dpCloneDirTree )
2330 result . push ( '/404' )
2431 return result
2532}
2633
27- function getPrerenderRoute ( data ) {
28- const arr = [ ]
29- return recursive ( data , '' , arr )
34+ function recursiveDirTree ( data ) {
35+ return recursive (
36+ data ,
37+ '' ,
38+ [ ]
39+ )
3040}
3141
32- function recursive ( data , routePath , arr ) {
42+ function recursive (
43+ data ,
44+ routePath ,
45+ prerenderRouteArr ,
46+ ) {
3347 data . forEach ( ( item ) => {
3448 const { mdconf } = item || { }
35- const { abbrlink } = mdconf || { }
49+ const { abbrlink, tags } = mdconf || { }
3650 const composeRouteName = `${ routePath } /${ item . name } ` . replace ( / .m d $ / , '' )
3751
3852 if ( item . type === 'directory' ) {
3953 if ( item . children && item . children . length > 0 ) {
40- item . children = recursive ( item . children , composeRouteName , arr )
54+ item . children = recursive (
55+ item . children ,
56+ composeRouteName ,
57+ prerenderRouteArr ,
58+ )
4159 } else {
4260 item . children = [ ]
4361 }
4462 } else if ( item . type === 'file' ) {
4563 const prerenderRouteName = abbrlink
4664 ? `/${ abbrlink } `
4765 : composeRouteName
48- arr . push ( prerenderRouteName )
66+ prerenderRouteArr . push ( prerenderRouteName )
4967 }
5068 } )
51- return arr
69+ return prerenderRouteArr
5270}
5371
5472module . exports = {
0 commit comments