The public website for ARKlight,
written in ARKlight itself: a home page, getting started, a tutorial lesson, a
reference, an example, and the project pages. Modeled on the shape of the Svelte v2
site (see docs/SVELTE-REFERENCE.md for what that reference checkout actually is) --
that reference is a layout model only, not a source of styling; the visual design is
Material You (see "Design" below).
Written against ARKlight v0.70.1 (main, commit 10a2225).
This repository, like ARKlight
itself, is public on GitHub: anyone can read the source, open an issue, or send a
pull request. There is no private build step and no hidden content -- what you see
in this checkout, make build turns into exactly what ships. The footer of every
page links back here and to the compiler's own repository.
pip install arklight
export ARKLIGHT_ACCEPT_LICENSE=1 # only after reading ARKlight's LICENSE
export SITE_URL=https://your-domain # no default on purpose; canonical tags need it
make build # check -> generate site.py -> arklight build -> sitemap/robots
make serve # http://localhost:8000, with extensionless URLs like GitHub Pagesmake help lists everything.
pages/manifest.py the source of truth: 15 routes, section, nav label
content/*.py page content as plain Python data (title, description, blocks)
components/render.py turns content into ARKlight Page(...) trees; SEO head tags
theme.py Material You (MD3) design tokens; applied to the Site in site.py
site.py GENERATED by scripts/gen_site.py (routes must be literal decorators)
scripts/ gen_site, check_content, postbuild (sitemap/robots), serve
assets/ the official ARKlight mark (favicon, apple-touch-icon, og-image)
docs/ architecture, authoring, SEO, Svelte-reference notes
reference/ Svelte v2.16.1 source (shallow, no .git), see docs/SVELTE-REFERENCE.md
The visual design is Material You (Material Design 3):
Material's color-role system (primary/surface/outline/...), seeded from a
crimson tone taken from the official ARKlight mark rather than Material's stock
baseline purple, its shape scale (pill-shaped nav and buttons, 16px cards), and its
two-tier elevation shadows. All of it lives in theme.py as data -- one ROLES
dict, applied once via site.style_selector(...) in scripts/gen_site.py -- not
scattered across the page content. The Svelte v2 checkout in reference/ informed
only this site's page structure (home, tutorial, reference, examples); none of its
styling was used.
The favicon, apple-touch-icon and Open Graph image are all generated from the one
official logo, assets/ARKlight-logo.png -- see docs/SEO.md for how.
docs/AUTHORING.md: how to add or edit a pagedocs/SEO.md: what is done, what is not, what to verify once this is hosted somewheredocs/ARCHITECTURE.md: whysite.pyis generated
- The layout was verified by inspecting generated HTML, not by looking at it in a browser.
- This is the core site only: one tutorial lesson, one example, and the reference pages that are written. It covers "what is it, how do I start, what are the rules, what are the limits" and nothing past that; it does not try to be a full docs site.