feat: Verzeichnisse unterhalb von --chapter-level als eigene Datei
Überschriften, die genau einem Verzeichnisnamen entsprechen (Quellen, Literatur, Glossar, Register, Index …), beginnen auch unterhalb von --chapter-level eine eigene Datei mit passendem Typ. Die nächste Überschrift gleicher oder höherer Ebene beendet den Abschnitt; innerhalb eines Kapitels, das selbst ein Verzeichnis ist, wird nicht weiter geteilt. Im Roman-Beispiel wird 'Quellen' aus dem Anhang so zum Literaturverzeichnis; die anderen vier Beispielbücher bleiben unverändert. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
7835cde1ca
commit
2125555e2a
1 changed files with 77 additions and 5 deletions
|
|
@ -164,3 +164,24 @@ def test_adjacent_field_spans_get_a_separator(convert):
|
|||
assert "J. Liesen, V. Mehrmann Lineare Algebra Springer Studium" in text
|
||||
assert "Das Wetter war schlecht." in text
|
||||
assert "Hauptbahnhof und x<sub>i</sub>." in text
|
||||
|
||||
|
||||
def test_special_sections_below_chapter_level_get_own_files(convert):
|
||||
body = ("<h1>Anhang</h1><p>Vorbemerkung.</p>"
|
||||
"<h2><em>Quellen</em></h2><ul><li>Archiv A</li><li>Buch B, ISBN 978-0-201-89683-1</li></ul>"
|
||||
"<h2>Danksagung</h2><p>Danke allen.</p>"
|
||||
"<h2>Literatur und Film</h2><p>Ein normaler Abschnitt.</p>")
|
||||
run = convert(Book(docs=[Doc("a.xhtml", body)]))
|
||||
assert [p.name for p in run.chapters()] == ["001-anhang.md", "002-quellen.md", "003-danksagung.md"]
|
||||
assert "Literatur und Film" in run.chapter("003") # not a special heading: stays in the chapter
|
||||
assert "Archiv A" in run.chapter("002") and "Danke" not in run.chapter("002")
|
||||
assert frontmatter(run.chapter("002"))["epub_type"] == ["bibliography"]
|
||||
readme = (run.out / "README.md").read_text(encoding="utf-8")
|
||||
assert "Literatur / Quellen: [Quellen](chapters/002-quellen.md)" in readme
|
||||
|
||||
|
||||
def test_special_chapter_is_not_split_further(convert):
|
||||
body = ("<h1>Literatur</h1><h2>Quellen</h2><p>Q1</p><h2>Sekundärliteratur</h2><p>S1</p>"
|
||||
"<h1>Register</h1><h2>A</h2><p>Apfel</p><h2>Index</h2><p>x</p>")
|
||||
run = convert(Book(docs=[Doc("a.xhtml", body)]))
|
||||
assert [p.name for p in run.chapters()] == ["001-literatur.md", "002-register.md"]
|
||||
|
|
|
|||
Loading…
Reference in a new issue