diff --git a/idl/zh-cn/collect.json b/idl/zh-cn/collect.json new file mode 100644 index 0000000000..3d93d8778a --- /dev/null +++ b/idl/zh-cn/collect.json @@ -0,0 +1,10 @@ +{ + "System": ["console", "coroutine", "global", "gui", "os", "process", "registry", "timers", "tty"], + "File System": ["fs", "io", "path", "path_posix", "path_win32"], + "Network": ["dgram", "dns", "http", "mq", "net", "punycode", "querystring", "ssl", "url", "ws", "zmq"], + "Encoding": ["base32", "base64", "base64vlq", "bson", "encoding", "hex", "iconv", "json", "string_decoder"], + "Crypto": ["crypto", "hash"], + "Compress": ["zip", "zlib"], + "Test Suite": ["assert", "profiler", "test"], + "Utility": ["db", "gd", "util", "uuid", "vm", "xml"] +} \ No newline at end of file diff --git a/tools/util/parser.js b/tools/util/parser.js index 5e433184e0..3ccbe22f3a 100644 --- a/tools/util/parser.js +++ b/tools/util/parser.js @@ -406,9 +406,13 @@ function parser_comment(comment) { module.exports = function (baseFolder, defs) { var defs1 = {}; + var collect = {}; fs.readdir(baseFolder).sort().forEach(f => { - if (path.extname(f) == '.idl') { + if (f === 'collect.json') { + f = path.join(baseFolder, f); + collect = JSON.parse(fs.readTextFile(f)); + } else if (path.extname(f) == '.idl') { f = path.join(baseFolder, f); var def = parser.parse(fs.readTextFile(f)); @@ -420,14 +424,28 @@ module.exports = function (baseFolder, defs) { } }); + var defs2 = {}; + for (var g in collect) { + collect[g].forEach(n => { + var def = defs1[n]; + def.collect = g; + defs2[n] = def; + delete defs1[n]; + }); + } + + for (var n in defs1) { + defs2[n] = defs1[n]; + } + if (defs) { for (var n in defs) { defs[n].__skip = true; - defs1[n] = defs[n]; + defs2[n] = defs[n]; } - - delete defs1['object'].declare.extend; } - return defs1; + delete defs2['object'].declare.extend; + + return defs2; }; \ No newline at end of file diff --git a/tools/util/tmpl/README.md b/tools/util/tmpl/README.md index ca35570f00..6b8d74cb41 100644 --- a/tools/util/tmpl/README.md +++ b/tools/util/tmpl/README.md @@ -1,5 +1,11 @@ # <%-title%> -<% for(var m in defs){ +<% var now_collect = ''; + for(var m in defs){ if(defs[m].declare.type == type){ - %>* [<%-defs[m].declare.name%>](ifs/<%-defs[m].declare.name%>.md) - <%-defs[m].declare.doc.descript%> + if(now_collect !== defs[m].collect) + { + now_collect = defs[m].collect; + if(now_collect){%>* <%-now_collect%> +<%}} + if(now_collect){%> -<%}else{%>*<%}%> [<%-defs[m].declare.name%>](ifs/<%-defs[m].declare.name%>.md) - <%-defs[m].declare.doc.descript%> <%}}%> \ No newline at end of file diff --git a/tools/util/tmpl/SUMMARY.md b/tools/util/tmpl/SUMMARY.md index 121f7815d0..46ff0453cd 100644 --- a/tools/util/tmpl/SUMMARY.md +++ b/tools/util/tmpl/SUMMARY.md @@ -1,4 +1,6 @@ -<% for(var m in defs){ +<% var keys = Object.keys(defs); + keys.sort(); + keys.forEach(m => { if(defs[m].declare.type == type){ %>* [<%-defs[m].declare.name%>](ifs/<%-defs[m].declare.name%>.md) -<%}}%> \ No newline at end of file +<%}})%> \ No newline at end of file