From 0e42c77404c866041d21c3ade750d0aa905f6e90 Mon Sep 17 00:00:00 2001 From: tannevaled Date: Mon, 12 Oct 2026 12:44:42 +0200 Subject: [PATCH] A FictionBook becomes a PDF: fb2-to-pdf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit go-richdoc/fb2 v0.1.0 reads FictionBook 2 into richdoc, which go-pdfkit composes, so the claim is the reader rather than a new verb -- the same shape as markdown-to-pdf and the four data formats. covered 90 not covered 24 parity 78.9% (90/114), every claim verified pasted from the tool, with fb2 checked out in -src so the symbol claim is read from the Go source and not from this message. ⛔ The claim names `func Parse` rather than the repository, for the reason every other converter claim does: a "go-richdoc/fb2 exists" claim would go on saying yes after the reader had been dropped. ⛔ EPUB and MOBI stay in the uncovered list rather than being folded into "ebooks". FictionBook is the one ebook format a reader can do with encoding/xml alone -- a single XML file, no ZIP, no package document, no spine, images base64 in the same file -- while those two each need an HTML reader into richdoc, which nothing in the fleet has yet. Naming the gap is how it gets closed; absorbing it into a vague claim is how it does not. Co-Authored-By: Claude Opus 5 --- README.md | 6 +++--- parity/table.go | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1ec8be7..901ce5e 100644 --- a/README.md +++ b/README.md @@ -766,9 +766,9 @@ bentoparity -tools ~/src/bentopdf/docs/tools -pdfops ./pdfops -src ~/src/go-pdfk ``` ``` -covered 89 -not covered 25 -parity 78.1% (89/114), every claim verified +covered 90 +not covered 24 +parity 78.9% (90/114), every claim verified ``` ⛔ **It refuses to report a figure if a single claim cannot be checked.** A diff --git a/parity/table.go b/parity/table.go index 96453a7..bd2866b 100644 --- a/parity/table.go +++ b/parity/table.go @@ -196,6 +196,15 @@ var BentoPDF = []Claim{ // written down can be closed by whoever reads it, and the three share one. {Tool: "markdown-to-pdf", Claim: "go-richdoc/markdown#func Parse"}, + // ⛔ FictionBook, and the claim names Parse rather than the repository for + // the reason every other converter claim does. It is the one ebook format + // this fleet reads at all, and it is the one an `encoding/xml` reader can + // do: a single XML file, no ZIP, no package document, no spine, its images + // base64 inside the same file. EPUB and MOBI each need an HTML reader into + // richdoc, which nothing here has, so those two stay in the uncovered list + // rather than being quietly folded into "ebooks". + {Tool: "fb2-to-pdf", Claim: "go-richdoc/fb2#func Parse"}, + // --- the data formats, through go-richdoc/data ------------------------- // ⛔ Each claim names that format's own DECISION — the function that does // the thing the format needs — rather than the repository. A single