update doc page

This commit is contained in:
2026-01-22 22:27:34 -05:00
parent 0c3d8ae20d
commit c6bc5b3056
4 changed files with 453 additions and 78 deletions

View File

@@ -1,9 +0,0 @@
local header = {}
header.render = function(std)
return table.concat({
std.center(std.ha("/", std.h1("Free Software Distributions Project documentation"))),
})
end
return header

View File

@@ -276,10 +276,6 @@ return site</code></pre>
<td><code>-p &lt;port&gt;</code></td> <td><code>-p &lt;port&gt;</code></td>
<td>Set the server port.</td> <td>Set the server port.</td>
</tr> </tr>
<tr>
<td><code>-static</code></td>
<td>Render and save all pages. (this feature is yet to be implemented)</td>
</tr>
<tr> <tr>
<td><code>-version</code></td> <td><code>-version</code></td>
<td>Print the version.</td> <td>Print the version.</td>
@@ -305,7 +301,7 @@ return site</code></pre>
<td>Generate a site object</td> <td>Generate a site object</td>
</tr> </tr>
<tr> <tr>
<td><code>:custom()</code></td> <td><code>:g()</code></td>
<td>Add a custom string to the site body</td> <td>Add a custom string to the site body</td>
</tr> </tr>
<tr> <tr>
@@ -323,30 +319,6 @@ return site</code></pre>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr>
<td><code>std.fes_version()</code></td>
<td>Get the current version of fes.</td>
</tr>
<tr>
<td><code>std.site_version()</code></td>
<td>Get the current version of the site, defined in <code>Fes.toml</code>.</td>
</tr>
<tr>
<td><code>std.site_name()</code></td>
<td>Get the current name of the site, defined in <code>Fes.toml</code>.</td>
</tr>
<tr>
<td><code>std.site_title()</code></td>
<td>Get the current name of the site, defined in <code>Fes.toml</code>.</td>
</tr>
<tr>
<td><code>std.site_authors()</code></td>
<td>Get a table of the authors of the site, defined in <code>Fes.toml</code>.</td>
</tr>
<tr>
<td><code>std.join</code></td>
<td>Get a table of the authors of the site, defined in <code>Fes.toml</code>.</td>
</tr>
<tr> <tr>
<td><code>std.a(link: string, str: string)</code></td> <td><code>std.a(link: string, str: string)</code></td>
<td>Returns an anchor tag.</td> <td>Returns an anchor tag.</td>
@@ -448,7 +420,7 @@ return site</code></pre>
<td>Returns a div of class <code>class</code> with content of <code>content</code>.</td> <td>Returns a div of class <code>class</code> with content of <code>content</code>.</td>
</tr> </tr>
<tr> <tr>
<td><code>std.spa(content: string, class: string)</code></td> <td><code>std.span(content: string, class: string)</code></td>
<td>Returns a span of class <code>class</code> with content of <code>content</code>.</td> <td>Returns a span of class <code>class</code> with content of <code>content</code>.</td>
</tr> </tr>
<tr> <tr>
@@ -486,15 +458,179 @@ return site</code></pre>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><code>symbol.copyright</code></td> <td><code>symbol.legal.copyright</code></td>
<td>&#169;</td> </tr> <td>&copy;</td> </tr>
<tr> <tr>
<td><code>Registered Trademark</code></td> <td><code>symbol.legal.registered_trademark</code></td>
<td>&#174;</td> <td>&reg;</td>
</tr> </tr>
<tr> <tr>
<td><code>Trademark</code></td> <td><code>symbol.legal.trademark</code></td>
<td>&#8482;</td> <td>&trade;</td>
</tr>
<tr>
<td><code>symbol.currency.euro</code></td>
<td>&euro;</td>
</tr>
<tr>
<td><code>symbol.currency.pound</code></td>
<td>&pound;</td>
</tr>
<tr>
<td><code>symbol.currency.yen</code></td>
<td>&yen;</td>
</tr>
<tr>
<td><code>symbol.currency.cent</code></td>
<td>&cent;</td>
</tr>
<tr>
<td><code>symbol.currency.dollar</code></td>
<td>$</td>
</tr>
<tr>
<td><code>symbol.currency.plus_minus</code></td>
<td>&plusmn;</td>
</tr>
<tr>
<td><code>symbol.currency.multiply</code></td>
<td>&times;</td>
</tr>
<tr>
<td><code>symbol.currency.divide</code></td>
<td>&divide;</td>
</tr>
<tr>
<td><code>symbol.currency.not_equal</code></td>
<td>&ne;</td>
</tr>
<tr>
<td><code>symbol.currency.less_equal</code></td>
<td>&le;</td>
</tr>
<tr>
<td><code>symbol.currency.greater_equal</code></td>
<td>&ge;</td>
</tr>
<tr>
<td><code>symbol.currency.infinity</code></td>
<td>&infin;</td>
</tr>
<tr>
<td><code>symbol.currency.approx</code></td>
<td>&asymp;</td>
</tr>
<tr>
<td><code>symbol.arrows.left</code></td>
<td>&larr;</td>
</tr>
<tr>
<td><code>symbol.arrows.right</code></td>
<td>&rarr;</td>
</tr>
<tr>
<td><code>symbol.arrows.up</code></td>
<td>&uarr;</td>
</tr>
<tr>
<td><code>symbol.arrows.down</code></td>
<td>&darr;</td>
</tr>
<tr>
<td><code>symbol.arrows.left_right</code></td>
<td>&harr;</td>
</tr>
<tr>
<td><code>symbol.punctuation.left_double_quote</code></td>
<td>&ldquo;</td>
</tr>
<tr>
<td><code>symbol.punctuation.right_double_quote</code></td>
<td>&rdquo;</td>
</tr>
<tr>
<td><code>symbol.punctuation.left_single_quote</code></td>
<td>&lsquo;</td>
</tr>
<tr>
<td><code>symbol.punctuation.right_single_quote</code></td>
<td>&rsquo;</td>
</tr>
<tr>
<td><code>symbol.punctuation.ellipsis</code></td>
<td>&hellip;</td>
</tr>
<tr>
<td><code>symbol.punctuation.em_dash</code></td>
<td>&mdash;</td>
</tr>
<tr>
<td><code>symbol.punctuation.en_dash</code></td>
<td>&ndash;</td>
</tr>
<tr>
<td><code>symbol.whitespace.non_breaking</code></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>symbol.whitespace.thin</code></td>
<td>&thinsp;</td>
</tr>
<tr>
<td><code>symbol.symbols.degree</code></td>
<td>&deg;</td>
</tr>
<tr>
<td><code>symbol.symbols.micro</code></td>
<td>&micro;</td>
</tr>
<tr>
<td><code>symbol.symbols.section</code></td>
<td>&sect;</td>
</tr>
<tr>
<td><code>symbol.symbols.paragraph</code></td>
<td>&para;</td>
</tr>
<tr>
<td><code>symbol.symbols.check</code></td>
<td>&check;</td>
</tr>
<tr>
<td><code>symbol.symbols.cross</code></td>
<td>&cross;</td>
</tr>
<tr>
<td><code>symbol.symbols.bullet</code></td>
<td>&bull;</td>
</tr>
<tr>
<td><code>symbol.symbols.middle_dot</code></td>
<td>&middot;</td>
</tr>
<tr>
<td><code>symbol.symbols.broken_bar</code></td>
<td>&brvbar;</td>
</tr>
<tr>
<td><code>symbol.html.less_than</code></td>
<td>&lt;</td>
</tr>
<tr>
<td><code>symbol.html.greater_than</code></td>
<td>&gt;</td>
</tr>
<tr>
<td><code>symbol.html.ampersand</code></td>
<td>&amp;</td>
</tr>
<tr>
<td><code>symbol.html.double_quote</code></td>
<td>&quot;</td>
</tr>
<tr>
<td><code>symbol.html.single_quote</code></td>
<td>&apos;</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -553,28 +689,6 @@ return site</code></pre>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3>Site</h3>
<table> <thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>site.version</code></td>
<td>The version of the website found in the Fes.toml</td>
</tr>
<tr>
<td><code>site.name</code></td>
<td>The name of the website found in the Fes.toml</td>
</tr>
<tr>
<td><code>site.authors</code></td>
<td>A table of all authors defined in Fes.toml</td>
</tr>
</tbody>
</table>
<h3>App</h3> <h3>App</h3>
Fes's <code>app</code> module is a special table Fes's <code>app</code> module is a special table
because it contains user defined functions. These because it contains user defined functions. These
@@ -627,7 +741,7 @@ return hello</pre></code> This can be called from another with,
</section> </section>
<footer> <footer>
<p>Last updated: 2025-12-27</p> <p>Last updated: 2026-01-22</p>
</footer> </footer>
</main> </main>
</body> </body>

View File

@@ -0,0 +1,263 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Documentation</title>
<style>
html, body {
min-height: 100%;
margin: 0;
padding: 0;
background: #0f1113;
color: #e6eef3;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
main {
max-width: 830px;
margin: 0 auto;
padding: 36px;
}
header {
margin-bottom: 36px;
}
h1 {
font-size: 40px;
font-weight: 700;
margin: 0 0 20px 0;
}
h2 {
font-size: 32px;
margin: 26px 0 14px;
border-bottom: 1px solid rgba(255,255,255,.1);
padding-bottom: 6px;
}
h3 {
font-size: 26px;
margin: 22px 0 12px;
}
p {
margin: 14px 0;
}
header p {
color: #9aa6b1;
}
nav {
margin: 28px 0;
padding: 20px;
background: #1a1c20;
border: 1px solid rgba(255,255,255,.06);
border-radius: 4px;
}
nav h2 {
font-size: 20px;
margin: 0 0 12px 0;
border: none;
padding: 0;
}
nav ul {
list-style: none;
padding: 0;
margin: 0;
}
nav li {
margin: 6px 0;
}
a {
color: #68a6ff;
text-decoration: none;
transition: color .15s ease;
}
a:hover {
text-decoration: underline;
}
section {
margin-top: 36px;
}
ul, ol {
margin: 14px 0;
padding-left: 26px;
}
li {
margin: 6px 0;
}
code {
padding: 3px 7px;
border-radius: 3px;
font-family: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;
font-size: .9em;
color: #cde7ff;
background: #1a1c20;
border: 1px solid rgba(255,255,255,.06);
}
pre {
padding: 20px;
border-radius: 4px;
margin: 14px 0;
overflow-x: auto;
background: #1a1c20;
border: 1px solid rgba(255,255,255,.06);
font-family: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;
font-size: 14px;
line-height: 1.6;
}
pre code {
background: none;
border: none;
padding: 0;
font-size: inherit;
color: inherit;
}
blockquote {
border-left: 3px solid #68a6ff;
padding-left: 18px;
margin: 14px 0;
color: #dfe9ee;
font-style: italic;
}
table {
width: 100%;
border-collapse: collapse;
margin: 14px 0;
}
th, td {
padding: 12px 16px;
text-align: left;
border-bottom: 1px solid rgba(255,255,255,.06);
}
th {
background: #1a1c20;
font-weight: 600;
color: #f0f6f8;
}
tr:hover {
background: rgba(255,255,255,.02);
}
footer {
margin-top: 48px;
padding-top: 20px;
border-top: 1px solid rgba(255,255,255,.1);
color: #9aa6b1;
font-size: 14px;
}
</style>
</head>
<body>
<main>
<header>
<h1>Documentation</h1>
<p>Yait: Yet Another Init Tool</p>
</header>
<nav>
<h2>Contents</h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#quick">Quick Start</a></li>
<li><a href="#cli-reference">Cli Reference</a></li>
</ul>
</nav>
<section id="introduction">
<h2>Introduction</h2>
<p>Yait, or Yet Another Init Tool, is a small shell script that templates minimal programs. It provides argument parsing and a general framework for your projects.</p>
</section>
<section id="installation">
<h2>Installation</h2>
<pre><code>git clone https://git.vxserver.dev/fSD/yait</code></pre>
<pre><code>cd fes</code></pre>
<pre><code>sudo make install</code></pre>
</section>
<section id="quick">
<h2>Quick Start</h2>
<pre><code>yait hello</code></pre>
<p>This creates a C project.</p>
<pre><code>yait -x sh hello</code></pre>
<p>This creates a SH project.</p>
<section id="cli-reference">
<h2>Cli Reference</h2>
<table> <thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--help</code></td>
<td>Display help information.</td>
</tr>
<tr>
<td><code>--version</code></td>
<td>Print version information.</td>
</tr>
<tr>
<td><code>-x &lt;language&gt;</code></td>
<td>Set project language.</td>
</tr>
<tr>
<td><code>-d &lt;description&gt;</code></td>
<td>Set a description.</td>
</tr>
<tr>
<td><code>-S</code></td>
<td>small project creation (only for shell scripts)</td>
</tr>
<tr>
<td><code>-f</code></td>
<td>overwrite existing files</td>
</tr>
<tr>
<td><code>-d &lt;author&gt;</code></td>
<td>Disable color output.</td>
</tr>
<tr>
<td><code>-r</code></td>
<td>Initalize a Git repository.</td>
</tr>
<tr>
<td><code>-q</code></td>
<td>Suppress non-critical output.</td>
</tr>
</tbody>
</table>
</section>
<footer>
<p>Last updated: 2026-01-22</p>
</footer>
</main>
</body>
</html>

View File

@@ -1,22 +1,29 @@
local fes = require("fes") local fes = require("fes")
local std = fes.std local std = fes.std
local u = fes.util local u = fes.util
local site = fes.fes() local site = fes.fes()
local title = "Free Software Distributions Project documentation" site.title = "Free Software Distributions Documentation"
site.copyright = fes.util.copyright("https://fsdproject.org", "fSD")
site.title = title
site.copyright = u.copyright("https://git.vxserver.dev/fSD", "fSD")
site.favicon = "/static/favicon.ico" site.favicon = "/static/favicon.ico"
site:banner(fes.util.cc {
site:banner(fes.app.header.render(std)) fes.std.center(fes.std.ha("/", fes.std.h1("Free Software Distributions"))),
})
site:note(u.cc { site:note(u.cc {
std.h2("Documentation pages"), std.center(std.h1("Online fSD manuals")),
std.ul { std.note(u.cc {
std.a("static/fes.html", "fes"), std.center(std.h3("Fes")),
} std.a("/static/fes.html", std.h4("Fes")),
std.p("&emsp; Free Easy Site Online Documentation. [" .. std.a("https://fsdproject.org/releases/fes", "fes home") .. "]"),
}),
std.note(u.cc {
std.center(std.h3("Tools")),
std.a("/static/yait.html", std.h4("Yait")),
std.p("&emsp; Yet Another Init Tool Online Documentation. [" .. std.a("https://fsdproject.org/releases/yait", "yait home") .. "]"),
})
}) })
return site return site