Skip to content

Full-featured, WCAG 2.2 AAA-capable casket-ssg#34

Merged
hyperpolymath merged 3 commits into
mainfrom
feat/site-build-engine
Jun 22, 2026
Merged

Full-featured, WCAG 2.2 AAA-capable casket-ssg#34
hyperpolymath merged 3 commits into
mainfrom
feat/site-build-engine

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Turns casket-ssg into a full-featured static-site generator and makes its default output WCAG 2.2 AAA-capable, plus repo cleanup.

Engine (src/CasketGnosis.hs)

  • Recursive multi-page build; frontmatter + draft-skipping
  • Pandoc rich markdown (anchors, pipe tables, footnotes, task lists, strikethrough, smart punctuation, raw HTML) + syntax highlighting → /assets/highlight.css
  • File layouts + partials ({{> name}} / {{include:}}) + {{toc}}/{{nav}}/{{site.*}}; site.conf
  • Collections + tag pages; sitemap.xml + Atom feed.xml; clean URLs

Accessibility (WCAG 2.2 AAA-capable, engine-owned surface)

  • Contrast-verified ≥7:1 palette (light+dark), skip link, labelled landmarks, :focus-visible, reduced-motion, reflow, ≥44px targets
  • Generated tables get <th scope="col">
  • Verified vnu-clean (W3C Nu validator); see docs/ACCESSIBILITY-CHECKLIST.adoc

Cleanup

  • Removed dead top-level Casket.hs (cabal builds CasketGnosis.hs)
  • Removed duplicate, mislabelled README.md (AsciiDoc-in-.md with a wrong PMPL-1.0 badge); kept README.adoc + added Sponsor badge

All commits signed.

🤖 Generated with Claude Code

hyperpolymath and others added 3 commits June 22, 2026 15:28
Wire CasketGnosis (the real executable) for full site builds:
- Load templates/default.html (vars: title, brand, date, content) with a
  built-in fallback; substitute {{content}} last so body HTML is not
  re-processed.
- copyAssets: copy assets/static/css/js/images into the output tree.
- copyPublic: copy <site>/public/ to the output ROOT so root web files ship
  (.well-known/security.txt, CNAME, robots.txt, favicon.svg).
- Tolerate a leading SPDX HTML comment before the frontmatter fence.
- Enable Pandoc.pandocExtensions (raw_html + pipe tables) so hero/badge/card
  HTML and tables render instead of being escaped.

Add a dark-mode-aware default theme (templates/default.html) and design
system (assets/style.css).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Engine (src/CasketGnosis.hs): recursive multi-page build, frontmatter +
draft-skip, Pandoc rich markdown (anchors, pipe tables w/ <th scope>,
footnotes, task lists, strikethrough, smart punctuation, raw HTML) +
syntax highlighting (skylighting -> /assets/highlight.css), file layouts +
partials ({{> name}}/{{include:}}) + {{toc}}/{{nav}}/{{site.*}}, site.conf,
collections + tag pages, sitemap.xml + Atom feed.xml, clean URLs; accessible
builtin fallback template.

Accessibility: default theme (templates/default.html + assets/style.css) is
WCAG 2.2 AAA-capable (contrast-verified >=7:1 palette light+dark, skip link,
labelled landmarks, :focus-visible, reduced-motion, reflow, >=44px targets);
generated tables get <th scope="col">. Verified vnu-clean (W3C Nu).

Cleanup: remove dead top-level Casket.hs (cabal builds CasketGnosis.hs);
remove duplicate, mislabelled README.md (AsciiDoc-in-.md with a wrong PMPL-1.0
badge) keeping README.adoc as canonical; add Sponsor badge to README.adoc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Maps each WCAG 2.2 AAA success criterion to engine-owned (handled by the
default theme + generated markup) vs author-owned (per-page content). Prose,
CC-BY-SA-4.0 per estate Rule 1.

Also fixes the local license-enforcer pre-commit hook to expect the correct
licence per file type (.adoc/.md -> CC-BY-SA-4.0, code -> MPL-2.0) instead of
hard-coding MPL-2.0 for all files (owner-directed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@hyperpolymath
hyperpolymath merged commit 24636ab into main Jun 22, 2026
7 of 13 checks passed
@hyperpolymath
hyperpolymath deleted the feat/site-build-engine branch June 22, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant