StringMap* already_shown_items;
void render_doc_page(String page)
{
(*already_shown_items)[page] = "Y";
auto doc = split(file_get_contents("pages/"+page+".txt"), "\n");
String layout_class = "text";
u32 line_idx = 0;
for(auto s : doc)
{
line_idx++;
if(s == "")
{
}
else if(s.substr(0, 1) == ":")
{
layout_class = s.substr(1);
if(line_idx > 1)
{
<>>
}
<>
>
if(layout_class == "params")
{
<>
Parameters
>
}
else if(layout_class == "sig")
{
String page_name = page;
if(page[1] == '_')
{
nibble(page_name, "_");
}
<>
= page_name ?>
>
}
else if(layout_class == "pre")
{
layout_class = "sig";
}
else if(layout_class == "desc")
{
<>
Description
>
}
else if(layout_class == "related")
{
<>
Related PHP and JS
>
}
else if(layout_class == "see")
{
}
else
{
<>
= layout_class ?>
>
}
}
else
{
if(s.substr(0, 1) == "-")
{
nibble(s, "-");
<>
= (s) ?>>
}
else if(layout_class == "sig")
{
<>
print(s); ?>
>
}
else if(layout_class == "params")
{
<>
= trim(nibble(s, ":")) ?> : = trim(s) ?>
>
}
else if(layout_class == "see")
{
if(s[0] == '>')
{
//render_see_section(s.substr(1));
}
else
{
<>
>
}
}
else
{
<>
>
}
}
}
}
void render_see_section(String name)
{
StringList lines = split(file_get_contents("areas/"+name+".txt"), "\n");
s32 idx = 0;
for(auto line : lines)
{
if(idx == 0)
{
<>
= line ?>
>
}
else if(line != "")
{
render_doc_page(line);
}
idx += 1;
}
}
RENDER(Request& context)
{
already_shown_items = new StringMap();
String page = first(context.get["p"], "index");
<>
UCE API
for(auto file_name : ls("areas/"))
{
String ft = nibble(file_name, ".");
render_see_section(ft);
}
?>
Other Functions and Data Structures
for(auto file_name : ls("pages/"))
{
String ft = nibble(file_name, ".");
if((*already_shown_items)[ft] == "")
render_doc_page(ft);
}
?>
>
}