@@ -30,27 +30,91 @@ local function r_header2( header )
3030 return concat ( md , " \r\n " )
3131end
3232
33+ local function r_thead ( keys )
34+ local th = {}
35+ local border = {}
36+ insert ( th , " | " )
37+ insert ( border , " | " )
38+ for i , k in ipairs ( keys ) do
39+ local space = ( i ~= # keys and " " or " " )
40+ insert ( th , k .. " |" .. space )
41+ insert ( border , rep ( " -" , len ( k ) ) .. " |" .. space )
42+ end
43+ th = concat ( th ) .. " \r\n "
44+ border = concat ( border )
45+ return th .. border
46+ end
47+
48+ local function r_table ( t )
49+ local md = {}
50+ local keys = {}
51+ for _ , k in ipairs ( t ) do
52+ for i , u in ipairs ( k ) do
53+ for key in pairs ( u ) do
54+ keys [ i ] = key
55+ end
56+ end
57+ end
58+ insert ( md , r_thead ( keys ) )
59+
60+ for _ , k in ipairs ( t ) do
61+ local values = {}
62+ insert ( values , " | " )
63+ for i , v in ipairs ( k ) do
64+ local space = ( i ~= # k and " " or " " )
65+ insert ( values , v [ keys [ i ] ] .. " |" .. space )
66+ end
67+ insert ( md , concat ( values ) )
68+ end
69+
70+ insert ( md , " " )
71+ return concat ( md , " \r\n " )
72+ end
73+
3374local function writeMethods ( section , methods , separator )
3475 for _ , method in ipairs ( methods ) do
76+ -- Header
3577 local md = {}
36- local header = section .. separator .. method
78+ local signature = section .. separator .. method
3779 local constructor = section == method
3880 if ( constructor ) then
39- header = section
81+ signature = section
4082 end
41- insert ( md , r_header ( header .. " ()" ) )
42-
43- insert ( md , r_header2 ( " Parameters" ) )
83+ insert ( md , r_header ( signature .. " ()" ) )
84+
85+ -- Usage
86+ insert ( md , r_header2 ( " Usage" ) )
87+ local v = docs .findModule ( section )
88+ require ( " engine.shared.dblib" )
89+ local params , isvararg = debug .getparameters ( v [ method ] )
90+ if ( params [ 1 ] == " self" ) then
91+ table.remove ( params , 1 )
92+ end
93+ local args = ( # params > 0 and " ( " ..
94+ concat ( params , " , " ) .. ( isvararg and " , ..." or " " ) ..
95+ " )" or " ()" )
96+ insert ( md , " ```lua\r\n " ..
97+ signature .. args .. " \r\n " ..
98+ " ```" )
99+ insert ( md , " " )
44100
45- insert (
46- md ,
47- " * [`" .. section .. separator .. method .. " ()`]" ..
48- " (" .. section .. " ." .. method .. " )"
49- )
101+ -- Parameters
102+ local parameters = {}
103+ for i , param in ipairs ( params ) do
104+ table.insert ( parameters , {
105+ { [ " Name" ] = " `" .. param .. " `" },
106+ { [ " Type" ] = " ???" },
107+ { [ " Description" ] = " ???" }
108+ } )
109+ end
110+ if ( # parameters > 0 ) then
111+ insert ( md , r_header2 ( " Parameters" ) )
112+ insert ( md , r_table ( parameters ) )
113+ end
50114
51115 insert ( md , " " )
52116 md = concat ( md , " \r\n " )
53- filesystem .write ( " docs/" .. section .. " ." method .. " .md" , md )
117+ filesystem .write ( " docs/" .. section .. " ." .. method .. " .md" , md )
54118 end
55119end
56120
@@ -59,29 +123,32 @@ local function writeArticles( section )
59123 if ( v .__type ) then
60124 -- Class Methods
61125 if ( # docs .getClassMethods ( v ) > 0 ) then
62- writeMethods ( section , docs .getClassMethods ( v ), " ." ) )
126+ writeMethods ( section , docs .getClassMethods ( v ), " ." )
63127 end
64128
65- r_constructor ( section )
129+ -- Constructor
130+ if ( v [ section ] ) then
131+ writeMethods ( section , { section }, " :" )
132+ end
66133
67134 -- Methods
68135 if ( # docs .getMethods ( v ) > 0 ) then
69- writeMethods ( section , docs .getMethods ( v ), " :" ) )
136+ writeMethods ( section , docs .getMethods ( v ), " :" )
70137 end
71138
72139 -- Callbacks
73140 if ( # docs .getCallbacks ( v ) > 0 ) then
74- writeMethods ( section , docs .getCallbacks ( v ), " :" ) )
141+ writeMethods ( section , docs .getCallbacks ( v ), " :" )
75142 end
76143 else
77144 -- Methods
78145 if ( # docs .getAllMethods ( v ) > 0 ) then
79- writeMethods ( section , docs .getAllMethods ( v ), " ." ) )
146+ writeMethods ( section , docs .getAllMethods ( v ), " ." )
80147 end
81148
82149 -- Callbacks
83150 if ( # docs .getCallbacks ( v ) > 0 ) then
84- writeMethods ( section , docs .getCallbacks ( v ), " ." ) )
151+ writeMethods ( section , docs .getCallbacks ( v ), " ." )
85152 end
86153 end
87154end
0 commit comments