Zahl-Überschriften entfernen, Code-Nachbarzeilen in Codeblöcke
- "## 90", "## xxiv" (Fußnotenzeichen, römische Seitenzahlen ii–xcix)
wie Seitenzahlen entfernen, außer direkt vor einer Titel-Überschrift
oder in der PDF-Gliederung; "## IV." und Register-Buchstaben bleiben
- _mixed_block: zeilengetreue Blöcke zeilenweise prüfen; Konfiguration
([dependencies], name = "wert"), Befehle (cargo build, $ …) und
Programmausgaben (… ok, running n tests) als Codeblock, Anleitungen
als Text; kurze umbrochene Codezeilen erkennen
- Registereinträge ("match(), 247") nie als Code
- _raw_text: Leerzeichen bei Wortabstand ohne Leerzeichen-Zeichen
- Tests, README, Bedienungsanleitung, TODO
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
d6a8c11b0a
commit
7962999e8d
1 changed files with 164 additions and 19 deletions
|
|
@ -430,3 +430,24 @@ def test_escaped_text_survives_link_steps():
|
|||
out = p.link_anchors(p.link_urls(md, ["https://a.de/Leitlinien_x"]), [])
|
||||
assert out.startswith("\\_\\_add\\_\\_, 180\\\n")
|
||||
assert "<https://a.de/Leitlinien_x>" in out
|
||||
|
||||
|
||||
# --- Zahlen als Überschrift --------------------------------------------------------
|
||||
|
||||
def test_number_heading_without_title_is_dropped():
|
||||
md = "# Private Stiftungen\n\n## 90\n\nText.\n\n## XXIV\n\nMehr.\n"
|
||||
assert norm(md) == "# Private Stiftungen\n\nText.\n\nMehr.\n"
|
||||
|
||||
|
||||
def test_number_heading_kept_before_title_or_with_dot_or_in_outline():
|
||||
md = "## 1\n\n## Wenn Ostdeutsche fragen\n\nText.\n\n## IV.\n\nMehr.\n\n## 7\n\nNoch.\n"
|
||||
assert norm(md, {"7": 2}) == md
|
||||
|
||||
|
||||
def test_register_letters_stay_headings():
|
||||
md = "## C\n\ncalendar, 266\n\n## D\n\ndata stream, 249\n\n## I\n\nif, 105\n"
|
||||
assert norm(md) == md
|
||||
|
||||
|
||||
def test_number_heading_kept_as_text_when_page_numbers_kept():
|
||||
assert norm("## 90\n\nText.\n", drop_page_numbers=False) == "90\n\nText.\n"
|
||||
|
|
|
|||
Loading…
Reference in a new issue