The aoughwl documentation site, authored entirely in .aowl — pure UI, no
Markdown and no Jekyll. Every page is a nimony module that returns an HTML
fragment built from the aoughwl/ui component
pack; the site generator frames each fragment with the shared shell and writes
static HTML.
Status: structural scaffold. The page tree, the information architecture, and the build shape are in place. Page bodies are stubs and the final emit is wired once the
aoughwl/uipack is finished.
nav.aowl # the information architecture, as DATA (one value: gNav)
layout.aowl # shell(): theme + sidebar (generated from gNav) + breadcrumb
main.aowl # build entry: walk gNav → render each page in the shell → static HTML
pages/ # one .aowl module per page; each exports `page(): HTMLNode`
index.aowl
nimony/… # "Aoughwl's Nimony" — our fork; overview + changelog
backends/… # nimony-web (JS/WASM), nimony-ts, nimony-py, nimony-hl
stdlib/… # net stack (tcp/net/http/serve/requests), web, html, css, ui, reactive, js
tooling/… # nim-code, niflens, nimony-lsp
reference/… # verbatim API archives
Three ideas, mirroring the rest of the ecosystem's "swap the file → different result, no recompile" style:
- The IA is data.
gNavinnav.aowlis the single source of truth for the sidebar and the page walk. Add aleafto add a page; add abranchto add a section. Nothing else changes. - Chrome is one function.
shell()inlayout.aowlis the only place that knows about layout, sidebar, and theme. Pages never build chrome. - A page is a pure function. Each
pages/**/*.aowlexportsproc page*(): HTMLNodecomposed fromaoughwl/uicomponents (stack,card,sectionHeader,callout,codeBlock,tabs, …).
## <title> — one-line summary.
import aoughwl/ui
proc page*(): HTMLNode =
stack(@[
sectionHeader("Title", "One-line summary"),
card("Overview", @[ … ]),
codeBlock("import foo\n…", "nim"),
])The nav renders three levels — section → project → page — matching gNav.
The headline section is labelled "Aoughwl's Nimony" (our opinionated fork),
deliberately not the generic "Nimony".
This repo supersedes the Jekyll aoughwl.github.io site. The prose content from
there is ported into these .aowl pages as the UI pack matures; the build here
ultimately produces the static site.