mirror of https://github.com/Hilbis/Hilbish
feat: add nature module docs
parent
f312cc2cac
commit
b0e05d4b16
|
@ -17,17 +17,53 @@ for _, fname in ipairs(files) do
|
|||
pieces[mod] = {}
|
||||
|
||||
local docPiece = {}
|
||||
local lines = {}
|
||||
local lineno = 0
|
||||
for line in f:lines() do
|
||||
lineno = lineno + 1
|
||||
lines[lineno] = line
|
||||
|
||||
if line == header then goto continue2 end
|
||||
if not line:match(emmyPattern) then
|
||||
if line:match '^function' then
|
||||
local pattern = (string.format('^function %s%%.', mod) .. '(%w+)')
|
||||
local funcName = line:match(pattern)
|
||||
if not funcName then goto continue2 end
|
||||
print(line)
|
||||
print(pattern)
|
||||
print(funcName)
|
||||
pieces[iface][funcName] = docPiece
|
||||
|
||||
local dps = {
|
||||
description = {},
|
||||
params = {}
|
||||
}
|
||||
|
||||
local offset = 1
|
||||
while true do
|
||||
local prev = lines[lineno - offset]
|
||||
|
||||
local docline = prev:match '^%-+ (.+)'
|
||||
if docline then
|
||||
local emmy = docline:match '@(%w+)'
|
||||
local cut = 0
|
||||
|
||||
if emmy then cut = emmy:len() + 3 end
|
||||
local emmythings = string.split(docline:sub(cut), ' ')
|
||||
|
||||
if emmy then
|
||||
if emmy == 'param' then
|
||||
table.insert(dps.params, 1, {
|
||||
name = emmythings[1],
|
||||
type = emmythings[2]
|
||||
})
|
||||
end
|
||||
else
|
||||
table.insert(dps.description, 1, docline)
|
||||
end
|
||||
offset = offset + 1
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
pieces[mod][funcName] = dps
|
||||
end
|
||||
docPiece = {}
|
||||
goto continue2
|
||||
|
@ -39,20 +75,57 @@ for _, fname in ipairs(files) do
|
|||
::continue::
|
||||
end
|
||||
|
||||
local header = [[---
|
||||
title: %s %s
|
||||
description: %s
|
||||
layout: doc
|
||||
menu:
|
||||
docs:
|
||||
parent: "Nature"
|
||||
---
|
||||
|
||||
]]
|
||||
|
||||
for iface, dps in pairs(pieces) do
|
||||
local mod = iface:match '(%w+)%.' or 'nature'
|
||||
local path = string.format('luadocs/api/%s/%s.md', mod, iface)
|
||||
local f <close> = io.open(path, 'a+')
|
||||
local path = string.format('docs/%s/%s.md', mod, iface)
|
||||
fs.mkdir(fs.dir(path), true)
|
||||
local f <close> = io.open(path, 'w')
|
||||
f:write(string.format(header, 'Module', iface, 'No description.'))
|
||||
print(f)
|
||||
|
||||
print(mod, path)
|
||||
fs.mkdir(fs.dir(path), true)
|
||||
|
||||
for func, docs in pairs(dps) do
|
||||
f:write(string.format('<hr>\n<div id=\'%s\'>', func))
|
||||
local sig = string.format('%s.%s(', iface, func)
|
||||
for idx, param in ipairs(docs.params) do
|
||||
sig = sig .. ((param.name:gsub('%?$', '')))
|
||||
if idx ~= #docs.params then sig = sig .. ', ' end
|
||||
end
|
||||
sig = sig .. ')'
|
||||
f:write(string.format([[
|
||||
<h4 class='heading'>
|
||||
%s
|
||||
<a href="#%s" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
]], sig, func))
|
||||
|
||||
f:write(table.concat(docs.description, '\n') .. '\n')
|
||||
f:write '#### Parameters\n'
|
||||
if #docs.params == 0 then
|
||||
f:write 'This function has no parameters. \n'
|
||||
end
|
||||
for _, param in ipairs(docs.params) do
|
||||
f:write(string.format('`%s` **`%s`**\n', param.name:gsub('%?$', ''), param.type))
|
||||
end
|
||||
--[[
|
||||
local params = table.filter(docs, function(t)
|
||||
return t:match '^%-%-%- @param'
|
||||
end)
|
||||
f:write(string.format('## %s(', func))
|
||||
for i, str in ipairs(params) do
|
||||
if i ~= 1 then
|
||||
f:write ', '
|
||||
|
@ -66,7 +139,8 @@ for iface, dps in pairs(pieces) do
|
|||
f:write(str:match '^%-%-%- (.+)' .. '\n')
|
||||
end
|
||||
end
|
||||
f:write('\n')
|
||||
]]--
|
||||
f:write('</div>')
|
||||
f:write('\n\n')
|
||||
end
|
||||
f:flush()
|
||||
end
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
---
|
||||
title: Module dirs
|
||||
description: No description.
|
||||
layout: doc
|
||||
menu:
|
||||
docs:
|
||||
parent: "Nature"
|
||||
---
|
||||
|
||||
<hr>
|
||||
<div id='setOld'>
|
||||
<h4 class='heading'>
|
||||
dirs.setOld(d)
|
||||
<a href="#setOld" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Sets the old directory string.
|
||||
#### Parameters
|
||||
`d` **`string`**
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='push'>
|
||||
<h4 class='heading'>
|
||||
dirs.push()
|
||||
<a href="#push" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Add `d` to the recent directories list.
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='peak'>
|
||||
<h4 class='heading'>
|
||||
dirs.peak(num)
|
||||
<a href="#peak" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Look at `num` amount of recent directories, starting from the latest.
|
||||
#### Parameters
|
||||
`num` **`number`**
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='pop'>
|
||||
<h4 class='heading'>
|
||||
dirs.pop(num)
|
||||
<a href="#pop" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Remove the specified amount of dirs from the recent directories list.
|
||||
#### Parameters
|
||||
`num` **`number`**
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='recent'>
|
||||
<h4 class='heading'>
|
||||
dirs.recent(idx)
|
||||
<a href="#recent" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Get entry from recent directories list based on index.
|
||||
#### Parameters
|
||||
`idx` **`number`**
|
||||
</div>
|
||||
|
|
@ -40,7 +40,7 @@ function dirs.peak(num)
|
|||
return dirRecents(num)
|
||||
end
|
||||
|
||||
--- Add `d` to the recent directories.
|
||||
--- Add `d` to the recent directories list.
|
||||
function dirs.push(d)
|
||||
dirs.recentDirs[dirs.recentSize + 1] = nil
|
||||
if dirs.recentDirs[#dirs.recentDirs - 1] ~= d then
|
||||
|
@ -51,19 +51,19 @@ function dirs.push(d)
|
|||
end
|
||||
end
|
||||
|
||||
--- Remove `num` amount of dirs from the recent directories.
|
||||
--- Remove the specified amount of dirs from the recent directories list.
|
||||
-- @param num number
|
||||
function dirs.pop(num)
|
||||
return dirRecents(num, true)
|
||||
end
|
||||
|
||||
--- Get entry from recent directories.
|
||||
--- Get entry from recent directories list based on index.
|
||||
-- @param idx number
|
||||
function dirs.recent(idx)
|
||||
return dirs.recentDirs[idx]
|
||||
end
|
||||
|
||||
--- Sets the old directory.
|
||||
--- Sets the old directory string.
|
||||
-- @param d string
|
||||
function dirs.setOld(d)
|
||||
ok, d = pcall(fs.abs, d)
|
||||
|
|
Loading…
Reference in New Issue