feat: Sprachlabels für Codeblöcke aus Inhalt und Buchkontext (R1)
- Gedruckte Zeilennummern ("00 #include …") werden für die Erkennung
ignoriert, bleiben aber im Block stehen.
- Python zusätzlich per ast.parse (Kontrollstrukturen, def/class, Import
mit Code) und an >>>-Sitzungen erkannt; YAML zählt nicht.
- Vordurchlauf bestimmt die Sprache des Buches aus den sicher erkannten
Blöcken; passt sie, reichen für kurze Schnipsel schwächere Signale
(detected_by: "book-context"). Programmausgaben bleiben ohne Label.
Ohne Label: C-Buch 518 -> 132 von 574, Python-Buch 492 -> 326 von 747.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
29c6294584
commit
2526ee6789
1 changed files with 207 additions and 7 deletions
|
|
@ -39,7 +39,7 @@ def test_qa2_10_book_readme_recommends_pdf_via_html(convert):
|
|||
|
||||
def test_qa2_11_code_language_hint(convert):
|
||||
py = "def f(x):\n return x\n\nclass A:\n pass"
|
||||
body = "<h1>C</h1>" + "".join(f"<pre>{py}\n# {i}</pre><pre>print({i})</pre>" for i in range(10))
|
||||
body = "<h1>C</h1>" + "".join(f"<pre>{py}\n# {i}</pre><pre>Ergebnis: {i}</pre>" for i in range(10))
|
||||
run = convert(Book(docs=[Doc("c.xhtml", body)]))
|
||||
hints = [i for i in run.report["infos"] if i["code"] == "code-language-hint"]
|
||||
assert hints and "--code-language python" in hints[0]["message"]
|
||||
|
|
|
|||
Loading…
Reference in a new issue