Feature: Site Build
Purpose
The project contains a static-site input directory (site.in/) and a generated static-site output directory (site.out/).
The Site Build feature provides the script that converts site.in/ into site.out/.
Requirements
scripts/site-build.shmust generate the static site insite.out/from the input insite.in/.- Each
site.in/*.txtinput file must producesite.out/<name>.html. - Every non-
.txt, non-template.htmlfile undersite.in/(authored assets such as scripts, styles, and images) must be copied verbatim intosite.out/. - Pages may contain
__KEY__placeholders for live state; values come from the state file (dataflow.out/site-state.txtby default, overridable withSITE_STATE_FILE), written byscripts/site-state-fetch.sh. When the state file is absent, remaining placeholders render as “unavailable”, so the build stays portable. - Generated output must be identified as generated.
- The script must accept optional input and output directory arguments.
- When no arguments are given, the script must use
site.in/andsite.out/relative to the repository root. - The script must be a POSIX shell script.
- The HTML page structure must live in
site.in/template.html, not in the build script. site.in/template.htmlmust contain the marker line<!-- SITE-CONTENT -->where page content is inserted.
Behavior
- Running the script recreates
site.out/fromsite.in/(pages and assets). - Re-running the script overwrites existing output deterministically.
Dependencies
- None.