@@ -8,6 +8,7 @@ var template = require('jsdoc/template'),
88 helper = require ( 'jsdoc/util/templateHelper' ) ,
99 logger = require ( 'jsdoc/util/logger' ) ,
1010 typeLinks = require ( './typeLinkExt' ) . typeLinks ,
11+ moduleCategoriesConfig = require ( './module-categories.json' ) ,
1112 _ = require ( 'underscore' ) ,
1213 htmlsafe = helper . htmlsafe ,
1314 linkto = helper . linkto ,
@@ -20,6 +21,7 @@ var template = require('jsdoc/template'),
2021 language ,
2122 outdir = env . opts . destination ;
2223var util = require ( 'util' ) ;
24+ var chalk = require ( 'chalk' ) ;
2325
2426function find ( spec ) {
2527 return helper . find ( data , spec ) ;
@@ -259,7 +261,7 @@ function buildNav(members, view, templatePath) {
259261 } else {
260262 methods [ element . fileName ] = m ;
261263 }
262-
264+
263265 }
264266 }
265267 var methodsPath = path . join ( outdir , 'methods.json' ) ;
@@ -298,6 +300,50 @@ function buildCategories(members, templatePath) {
298300 return categories ;
299301}
300302
303+ function buildModuleCategories ( data , outdir , conf ) {
304+ var clientModuleName = conf . namespace . replace ( '.supermap' , '' ) ;
305+ var moduleCategories = moduleCategoriesConfig . moduleCategories ;
306+ var rootDes = moduleCategoriesConfig . moduleRoots [ clientModuleName ] ;
307+ var categories = Object . keys ( moduleCategories ) . reduce ( ( sum , key ) => {
308+ const info = moduleCategories [ key ] ;
309+ sum [ key ] = {
310+ name : key ,
311+ ...info ,
312+ children : [ ]
313+ }
314+ return sum ;
315+ } , { } ) ;
316+
317+ data ( ) . each ( function ( v ) {
318+ var categoryInfo = v . modulecategory ;
319+ if ( ! categoryInfo ) {
320+ return ;
321+ }
322+ if ( ! categories [ categoryInfo . category ] ) {
323+ console . log ( chalk . red ( `ERROR [${ clientModuleName } ]: The @modulecategory(${ categoryInfo . category } ) is not exsist in ${ v . meta . filename } \n` ) ) ;
324+ return ;
325+ }
326+ if ( ! categoryInfo . des ) {
327+ console . log ( chalk . red ( `ERROR [${ clientModuleName } ]: The @classdesc cannot be empty in ${ v . meta . filename } \n` ) ) ;
328+ }
329+ categories [ categoryInfo . category ] . children . push ( {
330+ name : categoryInfo . name ,
331+ des : categoryInfo . des ,
332+ des_en : categoryInfo . des_en ,
333+ docName : categoryInfo . className
334+ } ) ;
335+ } ) ;
336+ const finalContent = {
337+ id : clientModuleName ,
338+ name : rootDes ,
339+ des : rootDes ,
340+ children : Object . values ( categories ) . filter ( item => item . children . length > 0 )
341+ }
342+ var outpath = path . join ( outdir , 'module-categories.js' ) ;
343+ fs . writeFileSync ( outpath , `var deps = ${ JSON . stringify ( finalContent , null , 2 ) } ` , 'utf8' ) ;
344+ return categories ;
345+ }
346+
301347/**
302348 * Create the navigation sidebar.
303349 * @param {object } members The members that will be used to create the sidebar.
@@ -1139,7 +1185,8 @@ exports.publish = function (taffyData, opts, tutorials) {
11391185 const dir = outdir . replace ( './docs/' , '' ) ;
11401186 return whiteLists [ dir ] ;
11411187 }
1142-
1188+ // 生成产品介绍中模块说明的g6配置
1189+ buildModuleCategories ( data , outdir , conf ) ;
11431190 const allFiles = getFileNames ( ) ;
11441191 console . error ( '生成的多余的文档页面: ' , getMorePages ( allFiles , getHtmlLinks ( allFiles ) ) ) ;
11451192 console . error ( '没有链接的类型: ' , getWrongLink ( allFiles ) ) ;
0 commit comments