From ebba86261a0e82a8e1cbfafe2a7a5ef7a79ccb8c Mon Sep 17 00:00:00 2001
From: "carpentry-heartbeat[bot]"
Date: Fri, 21 Aug 2026 17:49:12 +0200
Subject: [PATCH] Sync docs/index.html with the generated module page
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
GitHub Pages serves docs/index.html as the landing page, but `save-docs`
names the generated module page after the project title — docs/http_index.html
— and never writes index.html, so index.html is a hand-kept copy of it.
PR #34 regenerated the docs without copying it over, leaving the landing page
missing the ETag, ETagList and Precondition sidebar entries and carrying the
pre-#34 description paragraph.
`carp -x gendocs.carp` at f5f8f29 reproduces every generated page byte for
byte, so index.html was the only stale file in docs/; it is now byte-identical
to docs/http_index.html again (sha256 34f2b720…), and all 25 module links and
6 prelude anchors resolve.
---
docs/index.html | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/docs/index.html b/docs/index.html
index 95f80ac..76b81c0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -118,6 +118,21 @@
ContentRange
+
+
+ ETag
+
+
+
+
+ ETagList
+
+
+
+
+ Precondition
+
+
CacheControl
@@ -143,7 +158,10 @@
AcceptEncoding and
AcceptLanguage, or the Request wrappers around them.
Auth reads and writes the RFC 7235 authentication headers,
-ByteRange the RFC 9110 range headers.
+ByteRange the RFC 9110 range headers, and
+Precondition evaluates the RFC 9110 conditional request
+headers — If-Match, If-None-Match, If-Modified-Since and
+If-Unmodified-Since — into the 304 or 412 they demand.
Parsing
(match (Request.parse "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
(Result.Success req) (println* (Request.verb &req))