fix: restliche Befunde der unabhängigen QA (QA2-09 bis QA2-19)
- QA2-09: Formeln in HTML-Tabellen als MathML/Formelbild statt $…$; Inline-Noten dort als HTML-Verweis (Markdown wird in HTML-Blöcken nicht gerendert) - QA2-10: PDF-Weg Markdown → HTML → PDF in README, Bedienungsanleitung und Buch-README. Beim direkten Weg Markdown → LaTeX verwirft Pandoc HTML-Tabellen und <a id>-Ziele. Geprüft: C-Buch 405 Seiten, 34 Tabellen, 728/755 Links. - QA2-11: Hinweis code-language-hint bei einsprachigen Büchern - QA2-12: --strict bricht bei nicht dekodierbarem XHTML ab (Exit 3); Hilfetext präzisiert - QA2-13: verdächtig große Medien werden übersprungen (Fehler media-skipped, Platzhalter) statt die ganze Konvertierung abzubrechen - QA2-14: Formelklasse am <img> selbst wird erkannt - QA2-15: wiederholte Diagnosen werden gezählt (count, ×n); MathML in HTML-Tabellen zählt im Formelbericht mit - QA2-16: Unicode-Buchstaben in Ankernamen bleiben erhalten - QA2-17: keine leeren Links (#) auf den eigenen Kapitelanfang; keine namespaced Attribute (epub:type → type=) in HTML-Tabellen - QA2-18: nicht definierte Entitäten werden gemeldet (undefined-entity) - QA2-19: Bild-Platzhalter ohne Kursivschrift (benachbarte ergaben **) Regressionstests: tests/test_qa2_open.py (11 Tests, vorher alle rot). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
daa99415b5
commit
109612db28
1 changed files with 247 additions and 49 deletions
|
|
@ -136,6 +136,9 @@ def readme(md: BookMetadata, chapters: list[Chapter], endnotes: Chapter | None,
|
|||
"# danach in diesem Ordner:",
|
||||
f"pandoc {shlex.quote(stem + '.md')} --toc -s{math} -o {shlex.quote(stem + '.html')}",
|
||||
f"pandoc {shlex.quote(stem + '.md')} --toc -o {shlex.quote(stem + '.epub')}",
|
||||
"# PDF über HTML: Pandoc übernimmt dann auch HTML-Tabellen und interne Sprungziele",
|
||||
f"pandoc {shlex.quote(stem + '.md')} -s{math} -o {shlex.quote(stem + '.html')} && "
|
||||
f"pandoc {shlex.quote(stem + '.html')} --toc --pdf-engine=xelatex -o {shlex.quote(stem + '.pdf')}",
|
||||
]
|
||||
out.append("## Weiterverarbeitung")
|
||||
out.append("```bash\n" + "\n".join(commands) + "\n```")
|
||||
|
|
@ -163,7 +166,8 @@ def warnings_md(diag: Diagnostics) -> str:
|
|||
out += ["", f"## {key} ({len(items)})", ""]
|
||||
for d in items:
|
||||
where = " · ".join(x for x in (d.source, d.chapter) if x)
|
||||
out.append(f"- {md_escape(d.message)}" + (f" (`{where}`)" if where else ""))
|
||||
times = f" (×{d.count})" if d.count > 1 else ""
|
||||
out.append(f"- {md_escape(d.message)}{times}" + (f" (`{where}`)" if where else ""))
|
||||
return "\n".join(out) + "\n"
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue