spork-site
spork-site 0.1.1
Structural markup, CommonMark content, deterministic static publishing, and full-rebuild development serving.
spork-site is a source-first static publishing library that owns the top-level spork site command. Sites remain ordinary Spork projects: a configured source function returns an immutable site value, and the package command checks, builds, inspects, or serves it.
Install#
Declare the package and a source factory in spork.it:
{:spork-version "==0.6.0"
:dependencies ["spork-site==0.1.1"]
:source-paths ["src"]
:site {:target "example.site:make-site"
:watch ["spork.it" "src" "content" "static"]}}
Then synchronize and inspect the complete plan:
spork sync
spork site check
spork site routes
spork site build
Complete reference#
- Getting started
- Content and front matter
- Document collections
- Routing and layouts
- Builds and commands
- Development server
- Feeds and sitemaps
- Markup
- Markdown and transforms
- Node API
Contracts#
- Markup and Markdown produce the same immutable node representation.
- Routes, content discovery, feeds, sitemaps, static assets, and output plans are deterministic.
- Unsafe output paths and route or target conflicts fail before deletion or writing.
checkandroutesvalidate complete plans without modifying output.- Development serving rebuilds in a fresh worker process and activates only complete successful generations.
- A failed rebuild retains the last successful generation.
- Browser reload code is injected only into served HTML, never generated files.
This website is a source-only production consumer of the package. Its make-site source composes Markdown documents, generated outputs, and byte-for-byte static assets without a separate Python application entry point.