Skip to content

Commit 1481cbd

Browse files
Chris1221claude
andcommitted
fix: cap markdown heading levels at h6 and remove egg-info artifacts
CommonMark only supports h1-h6; at nesting depth >= 3 the heading formula `depth * 2` would produce 7+ hashes which renders as plain text. Now falls back to bold text (**`name`** / **Member variables:**) for levels beyond h6. Also removes yamldoc.egg-info/ from git tracking (already in .gitignore, accidentally included from a prior rebase). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 95e1c4b commit 1481cbd

7 files changed

Lines changed: 29 additions & 123 deletions

File tree

test/test_examples.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,20 @@ def test_deeper_nesting(self):
284284
self.assertTrue(output == proper_markdown)
285285

286286

287+
def test_heading_levels_cap_at_h6(self):
288+
inner = yamldoc.entries.MetaEntry("leaf", "#' leaf doc", "#'")
289+
inner.entries.append(yamldoc.entries.Entry("k", "v", "#' doc", "#'"))
290+
outer = yamldoc.entries.MetaEntry("deep", "#' deep doc", "#'")
291+
outer.entries.append(inner)
292+
293+
md3 = outer.to_markdown(depth=3)
294+
self.assertIn("###### `deep`", md3)
295+
self.assertIn("**Member variables:**", md3)
296+
297+
md4 = outer.to_markdown(depth=4)
298+
self.assertIn("**`deep`**", md4)
299+
300+
287301
class TestEdgeCases(unittest.TestCase):
288302
def test_ordinary_comment_without_colon(self):
289303
# Regression test for issue #26

yamldoc.egg-info/PKG-INFO

Lines changed: 0 additions & 101 deletions
This file was deleted.

yamldoc.egg-info/SOURCES.txt

Lines changed: 0 additions & 14 deletions
This file was deleted.

yamldoc.egg-info/dependency_links.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

yamldoc.egg-info/entry_points.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

yamldoc.egg-info/top_level.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

yamldoc/entries.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,17 +135,28 @@ def to_markdown(self, schema=False, depth=1):
135135

136136
self.check_for_lists()
137137

138-
h_section = "#" * (depth * 2)
139-
h_members = "#" * (depth * 2 + 1)
138+
section_level = depth * 2
139+
members_level = depth * 2 + 1
140140

141-
output = f"{h_section} `{self.name}`\n\n{self.meta.lstrip()}\n\n"
141+
# CommonMark caps heading levels at h6; fall back to bold text beyond that
142+
if section_level <= 6:
143+
section_header = f"{'#' * section_level} `{self.name}`"
144+
else:
145+
section_header = f"**`{self.name}`**"
146+
147+
if members_level <= 6:
148+
members_header = f"{'#' * members_level} Member variables:"
149+
else:
150+
members_header = "**Member variables:**"
151+
152+
output = f"{section_header}\n\n{self.meta.lstrip()}\n\n"
142153

143154
entries_to_print = self.non_excluded_entries()
144155
if len(entries_to_print) == 0:
145156
output += "No member variables.\n\n"
146157
return output
147158

148-
output += f"{h_members} Member variables:\n\n"
159+
output += f"{members_header}\n\n"
149160
output += self.table_header(schema)
150161

151162
nested_meta_entries = []

0 commit comments

Comments
 (0)