1
0
mirror of https://github.com/lxsang/antd-web-apps synced 2025-07-27 02:59:47 +02:00

first antdoc version

This commit is contained in:
lxsang
2020-06-24 19:00:41 +02:00
parent 44f50f3a52
commit c36ca7b8fb
9 changed files with 388 additions and 36 deletions

View File

@ -1,4 +1,120 @@
<?lua
echo(data)
?>
local get_next
get_next = function(toc, cpath)
if toc.path == cpath then
if toc.entries and #toc.entries > 0 then return toc.entries[1] end
if toc.parent and toc.parent.entries and #toc.parent.entries > 0 then
local entries = toc.parent.entries
if toc.id == #entries then
local p = toc.parent
while p and p.parent and p.parent.entries and #p.parent.entries > 0 do
entries = p.parent.entries
if p.id ~= #entries then
return entries[p.id + 1]
end
p = p.parent
end
return nil
else
return entries[toc.id + 1]
end
else
return nil
end
else
if toc.entries then
for i,v in pairs(toc.entries) do
local ret = get_next(v, cpath)
if ret then return ret end
end
return nil
else
return nil
end
end
end
local get_prev
get_prev = function(toc, cpath)
if toc.path == cpath then
if toc.id == 1 then
return toc.parent
end
if toc.parent and toc.parent.entries and #toc.parent.entries > 0 then
local entries = toc.parent.entries
local c = entries[toc.id - 1]
while c and c.entries and #c.entries > 0 do
if c.entries then
c = c.entries[#c.entries]
end
end
return c
else
return nil
end
else
if toc.entries then
for i,v in pairs(toc.entries) do
local ret = get_prev(v, cpath)
if ret then return ret end
end
return nil
else
return nil
end
end
end
local prev_entry = nil
local next_entry = nil
if toc then
prev_entry = get_prev(toc.data, toc.cpath)
next_entry = get_next(toc.data, toc.cpath)
end
?>
<div class = "pagenav">
<?lua
if prev_entry then
echo("<a class = 'go_prev' href="..HTTP_ROOT..'/'..toc.controller..'/'..std.b64encode(prev_entry.path):gsub("=","")..'/'..prev_entry.name:gsub(" ", "_")..".md".." >")
echo(prev_entry.name)
echo("</a>")
end
if next_entry then
echo("<a class = 'go_next' href="..HTTP_ROOT..'/'..toc.controller..'/'..std.b64encode(next_entry.path):gsub("=","")..'/'..next_entry.name:gsub(" ", "_")..".md".." >")
echo(next_entry.name)
echo("</a>")
end
?>
</div>
<div class = "md-content" id = "renderer">
</div>
<div class = "pagenav">
<?lua
if prev_entry then
echo("<a class = 'go_prev' href="..HTTP_ROOT..'/'..toc.controller..'/'..std.b64encode(prev_entry.path):gsub("=","")..'/'..prev_entry.name:gsub(" ", "_")..".md".." >")
echo(prev_entry.name)
echo("</a>")
end
if next_entry then
echo("<a class = 'go_next' href="..HTTP_ROOT..'/'..toc.controller..'/'..std.b64encode(next_entry.path):gsub("=","")..'/'..next_entry.name:gsub(" ", "_")..".md".." >")
echo(next_entry.name)
echo("</a>")
end
?>
</div>
<script>
window.addEventListener('load', (event) => {
var markdown = `<?=std.b64encode(data)?>`;
var converter = new showdown.Converter();
var html = converter.makeHtml(atob(markdown));
document.getElementById("renderer").innerHTML = html;
// highlight and math display
renderMathInElement(document.getElementById("renderer"));
document.querySelectorAll("pre code").forEach(element => {
hljs.highlightBlock(element);
hljs.lineNumbersBlock(element);
});
});
</script>

View File

@ -0,0 +1,26 @@
<div class = "md-content">
<?lua
if data then
for file,arr in pairs(data) do
local f = io.open(file, "r")
io.input(f)
local title = io.read()
io.close()
file = file:gsub(map.local_path, map.vfs_path)
title = std.trim(std.trim(title, "#"), " ")
echo("<div>")
echo("<p class= 'result-header'><a href='"..HTTP_ROOT..'/'..controller..'/'..std.b64encode(file):gsub("=","")..'/'..title:gsub(" ", "_")..".md'>")
echo(title)
echo("</a></p>")
for i,content in ipairs(arr) do
echo("<p class= 'result-content'>")
echo("..."..content.."...")
echo("</p>")
end
echo("</div>")
end
else
echo("<p>No search result found</p>")
end
?>
</div>

View File

@ -4,10 +4,30 @@ local tocdata = __main__:get("toc")
<!DOCTYPE html>
<html>
<head>
<link
rel="stylesheet"
type="text/css"
href="<?=HTTP_ROOT?>/rst/hljs/github.css" />
<link
rel="stylesheet"
type="text/css"
href="<?=HTTP_ROOT?>/rst/katex/katex.min.css" />
<script
type="text/javascript"
src="<?=HTTP_ROOT?>/rst/gscripts/showdown.min.js"
></script>
<script
src="<?=HTTP_ROOT?>/rst/hljs/highlight.pack.js"
></script>
<script
src="<?=HTTP_ROOT?>/rst/hljs/highlightjs-line-numbers.min.js"
></script>
<script
src="<?=HTTP_ROOT?>/rst/katex/katex.min.js"
></script>
<script
src="<?=HTTP_ROOT?>/rst/katex/auto-render.min.js"
></script>
<link
rel="stylesheet"
type="text/css"
@ -40,7 +60,9 @@ local tocdata = __main__:get("toc")
</a>
<?lua end ?>
</div>
<input type = "text" class = "search-box"></input>
<form id = "search_form" action="<?=HTTP_ROOT..'/'..tocdata.controller..'/search/'?>" method="get" class="search-form">
<input id = "search_box" name="q" type = "text" class = "search-box"></input>
</form>
<div class= "search-icon"></div>
</div>
</div>
@ -69,14 +91,7 @@ local tocdata = __main__:get("toc")
Powered by antd server, (c) 2019 - <?=os.date("*t").year?> Xuan Sang LE
</div>
<script>
window.onload = function () {
var els = document.getElementsByClassName("doc-content");
var converter = new showdown.Converter();
for (var i in els) {
var text = els[i].innerHTML;
var html = converter.makeHtml(text);
els[i].innerHTML = html;
}
window.addEventListener('load', (event) => {
// tree view events
var toggler = document.getElementsByClassName("caret");
var i;
@ -86,8 +101,16 @@ local tocdata = __main__:get("toc")
this.classList.toggle("caret-down");
});
}
// TODO math display
};
var input = document.getElementById("search_box");
var form = document.getElementById("search_form");
form.onsubmit = function()
{
var val = input.value.trim();
console.log(val);
if( val === "" || val == "\n") return false;
return true;
}
});
</script>
</body>
</html>

View File

@ -1,5 +1,6 @@
<?lua
gentree = function(data, controller)
local gentree
gentree = function(data, controller, cpath)
if not data then
return ""
end
@ -7,11 +8,23 @@ gentree = function(data, controller)
if data.entries then
caret = '<span class = "caret"></span>'
end
local markup = '<li>'..caret..'<a href="'..HTTP_ROOT..'/'..controller..'/'..std.b64encode(data.path):gsub("=","")..'/'..data.name:gsub(" ", "_")..'.md">'..data.name.."</a>"
local active = ""
local selected = ""
local highlight = ""
if data.tpath and cpath then
if cpath:match("^"..data.tpath) then
active = "active"
highlight = "class = 'highlight'"
end
if data.path == cpath then
selected = "class = 'selected'"
end
end
local markup = '<li '..selected..'>'..caret..'<a '..highlight..' href="'..HTTP_ROOT..'/'..controller..'/'..std.b64encode(data.path):gsub("=","")..'/'..data.name:gsub(" ", "_")..'.md">'..data.name.."</a>"
if data.entries then
markup = markup.."<ul class='nested'>"
markup = markup.."<ul class='nested "..active.."'>"
for k,v in pairs(data.entries) do
markup = markup..gentree(v, controller)
markup = markup..gentree(v, controller, cpath)
end
markup = markup.."</ul>"
end
@ -22,10 +35,10 @@ end
<ul id = "toc">
<?lua
if data.error then
return echo("Unable to read toc")
return echo("<li>Unable to read TOC</li>")
end
for k,v in pairs(data.data.entries) do
echo(gentree(v, data.controller))
echo(gentree(v, data.controller, data.cpath))
end
?>
</ul>