From 082bb6840de10ae7d3dc005a5512f0ca5df5134e Mon Sep 17 00:00:00 2001
From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com>
Date: Tue, 13 Oct 2026 20:55:27 +0100
Subject: [PATCH 1/2] fix(examples): restore Markdown example pages lost in
AsciiDoc migration
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit bb2e421a ("refactor: migrate Markdown to AsciiDoc (#17)") renamed
examples/index.md and examples/about.md to .adoc and converted them. That
broke the sample site in two ways:
- Ddraig only builds `.md`/`.markdown` sources (`isMarkdown` in Ddraig.idr),
so `ddraig build examples _site` found zero pages. The CI `build` job then
uploaded an essentially empty `_site` as the GitHub Pages artifact.
- The converter mangled the YAML front matter into a bogus `== ` heading
followed by a single run-on paragraph
(`title: Ddraig site: Ddraig description: ... date: 2026-06-22 —`).
These files are test fixtures for a Markdown static-site generator, not
project documentation, so they must stay Markdown. Restore both from
bb2e421a^ byte-for-byte (including the CC-BY-SA-4.0 SPDX comment, which
`parseFrontmatter` skips as a single leading HTML comment) and remove the
broken .adoc copies.
The restored pages satisfy the O3 build-time certification (`certify` in
Attest.idr): index.md has headings h1, h2, h2 and about.md has a single h1,
so each has exactly one
and no skipped levels.
Co-Authored-By: Claude Opus 5.5
---
examples/about.adoc | 10 ----------
examples/about.md | 12 ++++++++++++
examples/index.adoc | 33 ---------------------------------
examples/index.md | 30 ++++++++++++++++++++++++++++++
4 files changed, 42 insertions(+), 43 deletions(-)
delete mode 100644 examples/about.adoc
create mode 100644 examples/about.md
delete mode 100644 examples/index.adoc
create mode 100644 examples/index.md
diff --git a/examples/about.adoc b/examples/about.adoc
deleted file mode 100644
index 59c3026..0000000
--- a/examples/about.adoc
+++ /dev/null
@@ -1,10 +0,0 @@
-==
-
-title: Getting started site: Ddraig description: How to build a site
-with Ddraig. date: 2026-06-22 —
-
-== Getting started
-
-[arabic]
-. Compile: `+idris2 Ddraig.idr -o ddraig+`
-. Build: `+ddraig build examples _site+`
diff --git a/examples/about.md b/examples/about.md
new file mode 100644
index 0000000..ee726e5
--- /dev/null
+++ b/examples/about.md
@@ -0,0 +1,12 @@
+
+---
+title: Getting started
+site: Ddraig
+description: How to build a site with Ddraig.
+date: 2026-06-22
+---
+
+# Getting started
+
+1. Compile: `idris2 Ddraig.idr -o ddraig`
+2. Build: `ddraig build examples _site`
diff --git a/examples/index.adoc b/examples/index.adoc
deleted file mode 100644
index b45d38e..0000000
--- a/examples/index.adoc
+++ /dev/null
@@ -1,33 +0,0 @@
-==
-
-title: Ddraig site: Ddraig description: A dependently-typed static-site
-generator written in Idris 2. date: 2026-06-22 —
-
-== Ddraig
-
-Types that breathe fire. A static-site generator in pure Idris 2.
-
-____
-Built-in accessible theme, WCAG 2.2 AAA-capable.
-____
-
-=== Feature matrix
-
-[cols=",",options="header",]
-|===
-|Feature |Status
-|Markdown |full
-|Tables |yes
-|Raw HTML |yes
-|===
-
-=== Code
-
-[source,idris]
-----
-main : IO ()
-main = putStrLn "Ddraig"
-----
-
-See the link:/about.html[getting-started page] and the project
-https://github.com/hyperpolymath/ddraig-ssg[README].
diff --git a/examples/index.md b/examples/index.md
new file mode 100644
index 0000000..7a310c1
--- /dev/null
+++ b/examples/index.md
@@ -0,0 +1,30 @@
+
+---
+title: Ddraig
+site: Ddraig
+description: A dependently-typed static-site generator written in Idris 2.
+date: 2026-06-22
+---
+
+# Ddraig
+
+Types that breathe fire. A static-site generator in pure Idris 2.
+
+> Built-in accessible theme, WCAG 2.2 AAA-capable.
+
+## Feature matrix
+
+| Feature | Status |
+|---------|--------|
+| Markdown | full |
+| Tables | yes |
+| Raw HTML | yes |
+
+## Code
+
+```idris
+main : IO ()
+main = putStrLn "Ddraig"
+```
+
+See the [getting-started page](/about.html) and the project [README](https://github.com/hyperpolymath/ddraig-ssg).
From 5ac04498e2b2ff327af10065d17b39bf5cf46a45 Mon Sep 17 00:00:00 2001
From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com>
Date: Tue, 13 Oct 2026 21:48:45 +0100
Subject: [PATCH 2/2] fix(ci): bump upload-pages-artifact to v5.0.0 to satisfy
SHA-pin policy
Every `build` job since run #43 (2026-09-22) has failed at "Set up job",
before any step runs, with:
The action actions/upload-artifact@v4 is not allowed in
hyperpolymath/ddraig-ssg because all actions must be pinned to a
full-length commit SHA.
The pinned upload-pages-artifact v3.0.1 is a composite action that calls
`actions/upload-artifact@v4` by tag. The SHA-pin policy also applies to
those nested actions, so it rejects the job. The `test` job is unaffected
and still passes. The last green build was run #42 (2026-09-03), so the
policy was switched on between those runs; ci.yml did not change.
v5.0.0 pins its inner upload-artifact to a SHA (v7.0.0). Since v4,
upload-pages-artifact excludes dotfiles by default, which would silently
drop .well-known/accessibility-attestation.json (the O3 attestation) from
the Pages artifact, so set include-hidden-files: true to keep v3's
behaviour.
Co-Authored-By: Claude Opus 5.5
---
.github/workflows/ci.yml | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f856620..45f4c52 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -55,6 +55,11 @@ jobs:
# site moves to a custom domain.
run: ./build/exec/ddraig build examples _site https://hyperpolymath.github.io/ddraig-ssg
- name: Upload artifact
- uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
+ # v5 pins its inner actions/upload-artifact to a commit SHA; v3 used the
+ # `@v4` tag, which the SHA-pin policy rejects at job set-up. v4+ drops
+ # dotfiles by default, so keep them: .well-known/ carries the O3
+ # accessibility attestation.
+ uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
with:
path: _site
+ include-hidden-files: true