Skip to content

Commit

Permalink
fix(datasheet): force minimum heading in info.md
Browse files Browse the repository at this point in the history
  • Loading branch information
htfab committed May 13, 2024
1 parent 111e220 commit 08af29d
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions markdown_utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import math
import os
import shutil
from typing import Any, Dict
Expand All @@ -9,18 +10,18 @@
class HeadingsRenderer(MarkdownRenderer):
def __init__(self, min_level: int):
super().__init__()
self.min_level = min_level
self.initial_level = float("inf")
self.min_level_allowed = min_level
self.min_level_found = math.inf

def heading(self, token: Dict[str, Any], state: Any):
if self.initial_level == float("inf"):
self.initial_level = token["attrs"]["level"]
token["attrs"]["level"] += self.min_level - max(1, self.initial_level)
self.min_level_found = min(self.min_level_found, token["attrs"]["level"])
token["attrs"]["level"] += self.min_level_allowed - self.min_level_found
return super().heading(token, state)


def limit_markdown_headings(source: str, min_level: int) -> str:
markdown = mistune.create_markdown(renderer=HeadingsRenderer(min_level))
markdown(source) # first pass, populate min_level_found
return markdown(source)


Expand Down

0 comments on commit 08af29d

Please sign in to comment.