54 lines
1.5 KiB
Lua
54 lines
1.5 KiB
Lua
|
-- This is an example of how to process the generated `doc.json` file.
|
||
|
-- You can use it to generate a markdown file or a html file.
|
||
|
|
||
|
local jsonc = require 'jsonc'
|
||
|
local util = require 'utility'
|
||
|
local markdown = require 'provider.markdown'
|
||
|
|
||
|
local export = {}
|
||
|
|
||
|
function export.buildMD(outputPath)
|
||
|
local doc = jsonc.decode_jsonc(util.loadFile(outputPath .. '/doc.json'))
|
||
|
local md = markdown()
|
||
|
|
||
|
assert(type(doc) == 'table')
|
||
|
|
||
|
for _, class in ipairs(doc) do
|
||
|
md:add('md', '# ' .. class.name)
|
||
|
md:emptyLine()
|
||
|
md:add('md', class.desc)
|
||
|
md:emptyLine()
|
||
|
if class.defines then
|
||
|
for _, define in ipairs(class.defines) do
|
||
|
if define.extends then
|
||
|
md:add('lua', define.extends.view)
|
||
|
md:emptyLine()
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
if class.fields then
|
||
|
local mark = {}
|
||
|
for _, field in ipairs(class.fields) do
|
||
|
if not mark[field.name] then
|
||
|
mark[field.name] = true
|
||
|
md:add('md', '## ' .. field.name)
|
||
|
md:emptyLine()
|
||
|
md:add('lua', field.extends.view)
|
||
|
md:emptyLine()
|
||
|
md:add('md', field.desc)
|
||
|
md:emptyLine()
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
md:splitLine()
|
||
|
end
|
||
|
|
||
|
local mdPath = outputPath .. '/doc.md'
|
||
|
|
||
|
util.saveFile(mdPath, md:string())
|
||
|
|
||
|
return mdPath
|
||
|
end
|
||
|
|
||
|
return export
|