From 01dbcbf47f50030d1df0aa1adec3d417c6328977 Mon Sep 17 00:00:00 2001 From: BukeLy Date: Thu, 16 Jul 2026 19:36:52 +0800 Subject: [PATCH] fix(markdown): skip empty bold headings --- pageindex/page_index_md.py | 5 +++-- tests/test_page_index_md.py | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 tests/test_page_index_md.py diff --git a/pageindex/page_index_md.py b/pageindex/page_index_md.py index 7785f81..7c5e958 100644 --- a/pageindex/page_index_md.py +++ b/pageindex/page_index_md.py @@ -62,7 +62,8 @@ def extract_nodes_from_markdown(markdown_content): bold_match = re.match(bold_heading_pattern, stripped_line) if bold_match: title = bold_match.group(1).strip() - node_list.append({'node_title': title, 'line_num': line_num, 'level': 1}) + if title: + node_list.append({'node_title': title, 'line_num': line_num, 'level': 1}) return node_list, lines @@ -340,4 +341,4 @@ if __name__ == "__main__": with open(output_path, 'w', encoding='utf-8') as f: json.dump(tree_structure, f, indent=2, ensure_ascii=False) - print(f"\nTree structure saved to: {output_path}") \ No newline at end of file + print(f"\nTree structure saved to: {output_path}") diff --git a/tests/test_page_index_md.py b/tests/test_page_index_md.py new file mode 100644 index 0000000..12aa908 --- /dev/null +++ b/tests/test_page_index_md.py @@ -0,0 +1,23 @@ +import unittest + +from pageindex.page_index_md import extract_nodes_from_markdown + + +class ExtractNodesFromMarkdownTest(unittest.TestCase): + def test_skips_bold_heading_with_only_whitespace(self): + nodes, _ = extract_nodes_from_markdown("** **\n**Valid heading**") + + self.assertEqual( + nodes, + [ + { + "node_title": "Valid heading", + "line_num": 2, + "level": 1, + } + ], + ) + + +if __name__ == "__main__": + unittest.main()