Markdown-Sonderzeichen maskieren, Verszeilen mit Satzende erhalten

- md_escape im Span-Patch: \ ` * [ ] < > $ ~ ^ und "_" an Wortgrenzen
  werden maskiert (__add__ nicht mehr fett, <p> nicht mehr HTML); Code
  bleibt wörtlich
- Folgeschritte maskierungsfest: norm_title, clean_inline, link_urls
  (Positionstabelle inkl. Backslash), link_anchors, --split-Titel
- Kurze Zeile mit Satzende ist nur bei eingerückter Folgezeile ein
  Absatzende, sonst eine Verszeile; Einrückung gegen den Spaltenrand der
  Seite gemessen (trennt auch verklebte einzeilige Dialogabsätze)
- Tests, README, Bedienungsanleitung, TODO

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-10-02 19:28:56 +02:00
commit d6a8c11b0a

View file

@ -161,3 +161,21 @@ def test_outline_like_lines_outside_contents_become_paragraphs():
"## Vorschau Band Zwei\n\n32 Oberst a.D.\n\n33 Wolga-Attacke\n\n"
"Teil VI: Polen\n\nOperation Morgenlicht\n"
)
def test_poem_lines_with_sentence_ends_stay_lines(tmp_path):
md = convert(tmp_path, [
(50, "Der Mond ist aufgegangen."),
(50, "Die Sterne prangen hell."),
(50, "Der Wald steht schwarz."),
])
assert "Der Mond ist aufgegangen.\\\nDie Sterne prangen hell.\\\nDer Wald steht schwarz." in md
def test_indented_dialogue_lines_stay_paragraphs(tmp_path):
md = convert(tmp_path, [
(62, "»Und sind es heute noch«, lachte er."),
(62, "»Und sind es heute noch«, echote sie."),
])
assert "lachte er.\n\n»Und sind es heute noch«, echote sie." in md
assert "lachte er.\\" not in md