ouvert",
"<<<>>>",
"
",
"\x00\x01garbage",
"
" * 5000,
):
r = html_to_markdown(html, "https://ex.com")
assert isinstance(r.markdown, str)
def test_citations() -> None:
r = html_to_markdown(
"Voir A et B puis A encore. Un paragraphe assez long pour que le scoring le garde comme contenu principal, avec plusieurs phrases, des virgules, et du texte.
",
"https://ex.com",
citations=True,
)
assert "[A][1]" in r.markdown and "[B][2]" in r.markdown and "[A encore][1]" in r.markdown
assert "[1]: https://a.com" in r.markdown
def test_headings_normalized() -> None:
r = html_to_markdown(
"
Un
Texte assez long pour compter comme du contenu, avec des phrases et de la ponctuation. Encore une phrase ici.
Deux
Suite du texte, encore quelques mots pour la densité, et une virgule.
",
"https://ex.com",
only_main_content=False,
)
assert r.markdown.count("\n# ") + (1 if r.markdown.startswith("# ") else 0) == 1
assert "## Deux" in r.markdown
def test_definition_list_and_details() -> None:
r = html_to_markdown(
"
- Terme
- Définition
Plus
Caché
",
"https://ex.com",
only_main_content=False,
)
assert (
"**Terme**" in r.markdown
and ": Définition" in r.markdown
and "**Plus**" in r.markdown
and "Caché" in r.markdown
)