Skip to content

aoughwl/docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docs

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/ui pack is finished.

How it fits together

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:

  1. The IA is data. gNav in nav.aowl is the single source of truth for the sidebar and the page walk. Add a leaf to add a page; add a branch to add a section. Nothing else changes.
  2. Chrome is one function. shell() in layout.aowl is the only place that knows about layout, sidebar, and theme. Pages never build chrome.
  3. A page is a pure function. Each pages/**/*.aowl exports proc page*(): HTMLNode composed from aoughwl/ui components (stack, card, sectionHeader, callout, codeBlock, tabs, …).

Authoring a page

## <title> — one-line summary.
import aoughwl/ui

proc page*(): HTMLNode =
  stack(@[
    sectionHeader("Title", "One-line summary"),
    card("Overview", @[ … ]),
    codeBlock("import foo\n", "nim"),
  ])

Sidebar structure

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".

Relationship to the old site

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.

About

The aoughwl documentation site, authored entirely in .aowl — pure UI, no Markdown, no Jekyll: every page is a nimony module returning an HTML fragment from the aoughwl/ui pack, framed by a shared shell into static HTML.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages