diff --git a/apps/worker/app/services/document_parser/structure/heading_candidates.py b/apps/worker/app/services/document_parser/structure/heading_candidates.py index b6f80512..b77b51e4 100644 --- a/apps/worker/app/services/document_parser/structure/heading_candidates.py +++ b/apps/worker/app/services/document_parser/structure/heading_candidates.py @@ -303,6 +303,10 @@ def _estimate_markdown_heading_level(line: str, meta_ctx: Any | None): if hash_level <= 0: return code_level, code_reason, line_clean + # "#" / "##" with no title text must not become headings via hash_level alone. + if not stripped_line.strip(): + return -1, f"{hash_level}# AND empty-title {code_reason}", line_clean + if isinstance(code_level, int): est_level = max(hash_level, code_level) else: