fix: parse html with omitted body tag (#818)

* fix: parse HTML files without body tag

Parse HTML files without 'body' tag, since it is optional in HTML5 specification.

Signed-off-by: Cesar Berrospi Ramis <75900930+ceberam@users.noreply.github.com>

* test: ensure docling converts HTML without body tag

Signed-off-by: Cesar Berrospi Ramis <75900930+ceberam@users.noreply.github.com>

---------

Signed-off-by: Cesar Berrospi Ramis <75900930+ceberam@users.noreply.github.com>
This commit is contained in:
Cesar Berrospi Ramis
2025-01-27 16:59:00 +01:00
committed by GitHub
parent 95b293a723
commit a112d7a035
6 changed files with 364 additions and 3 deletions

View File

@@ -78,10 +78,11 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
if self.is_valid():
assert self.soup is not None
content = self.soup.body or self.soup
# Replace <br> tags with newline characters
for br in self.soup.body.find_all("br"):
for br in content.find_all("br"):
br.replace_with("\n")
doc = self.walk(self.soup.body, doc)
doc = self.walk(content, doc)
else:
raise RuntimeError(
f"Cannot convert doc with {self.document_hash} because the backend failed to init."