You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(readme): truth the README to match the actual binary (#43)
## What
Aligns `README.adoc` with what the built binary (`CasketGnosis.hs`)
actually does — the first cheap slice from ADR-0001's "ship honest
first" sequencing.
**Removed claims the binary does not implement:**
- `casket-ssg init` scaffolding and `casket-ssg serve` / live-reload
(the CLI is `build <in> [out]` / `clean` / `--version`)
- "compile-time template validation" (templates are runtime string
substitution with a built-in fallback)
- "schema-enforced frontmatter" (it's a simple `key: value` parser)
- "incremental builds" (the build is a full rebuild)
- "asset pipeline … hash-based cache busting" (assets are copied
verbatim)
**Surfaced the real differentiators the old README omitted:**
- Accessibility by construction — accessible default theme, automatic
`scope="col"` on table headers (WCAG 1.3.1), and `FlexiText` making
empty alt-text a constructor error.
- The Gnosis metadata layer — `(:placeholder)` substitution,
`{{#if}}`/`{{#for}}` (DAX), Shields badges from typed metadata.
**Also:** documented the real CLI + flags (`--drafts`,
`--no-clean-urls`, `CASKET_DRAFTS`), separated *Implemented* vs
*Planned*, set Status: alpha, and linked ADR-0001 for the engine
direction.
## Notes
- Docs-only; no engine change.
- Inherits the two pre-existing `main` reds (Pandoc `HighlightMethod`
build break; the 18 Hypatia findings) — neither introduced here.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01WN6nPWWe4dvXfoqBG6auWN
---
_Generated by [Claude
Code](https://claude.ai/code/session_01WN6nPWWe4dvXfoqBG6auWN)_
Co-authored-by: Claude <noreply@anthropic.com>
* **Haskell developers** who want to build sites with tools they know and love
27
-
* **Functional programming enthusiasts** who appreciate compositional design
28
-
* **Teams requiring reliability** where type safety prevents runtime surprises
29
-
* **Anyone frustrated** by dynamic language site builders that fail at deploy time
35
+
* **Haskell developers** who want a small, scriptable content-site generator
36
+
* **Accessibility-conscious authors** who want WCAG-aware output by default
37
+
* **poly-ssg / estate** users who want metadata-driven pages (the Gnosis layer)
30
38
31
39
== Why casket-ssg?
32
40
33
-
=== Type Safety That Matters
34
-
35
-
Your site structure is checked at compile time. Missing templates, broken links, malformed frontmatter - all caught before deployment, not discovered by users.
36
-
37
-
=== Composable Pipelines
41
+
=== Accessibility by construction
38
42
39
-
Content transformations compose like functions should. Chain markdown processing, templating, and asset handling with confidence that types align.
43
+
The built-in default theme is accessible by default — `<html lang>`, a skip link,
44
+
labelled `header`/`nav`/`main`/`footer` landmarks, viewport meta, and a light/dark
45
+
`color-scheme`. casket also rewrites Pandoc's table headers to add `scope="col"`
46
+
(WCAG 1.3.1), and the Gnosis `FlexiText` type makes *empty alt-text a constructor
47
+
error* — generated badges cannot ship without alt text.
40
48
41
-
=== Lazy Large-Site Builds
49
+
=== Metadata-driven rendering (Gnosis)
42
50
43
-
Haskell's lazy evaluation means casket-ssg only processes what's needed. Incremental builds are natural, not bolted on.
51
+
An optional layer runs over the Markdown before Pandoc: `(:placeholder)`
52
+
substitution from a metadata context, `{{#if}}` / `{{#for}}` conditionals and loops
53
+
(DAX), and Shields.io badges generated from typed metadata.
44
54
45
-
=== Pandoc Integration
55
+
=== Pandoc-based content (today)
46
56
47
-
Best-in-class document conversion with full Pandoc support. Markdown, reStructuredText, Org-mode - your content, your format.
57
+
Rich Markdown via Pandoc — anchors, pipe tables, fenced code with syntax
58
+
highlighting, footnotes, task lists, strikethrough, smart punctuation. See
59
+
link:docs/decisions/ADR-0001-content-engine.adoc[ADR-0001] for the planned move to
60
+
a Djot core with Pandoc relegated to a one-shot importer.
48
61
49
62
== Quick Start
50
63
64
+
casket-ssg is not yet published to Hackage; build it from source.
65
+
51
66
[source,bash]
52
67
----
53
-
# Install
54
-
cabal update
55
-
cabal install casket-ssg
68
+
# Build (Stack or Cabal)
69
+
stack build # or: cabal build
70
+
71
+
# Build a site: build <input-dir> [output-dir] (default output: _site)
0 commit comments