Files
tt-support-tools/markdown_utils.py
T
Uri Shaked 1aa125fdd5 fix(datasheet): broken images, replace scanchain info with mux
- fix some of the broken images
- render the mux's info doc in place of the scanchain doc
2023-07-30 23:09:31 +03:00

36 lines
1.1 KiB
Python

import os
import mistune
from mistune.renderers.markdown import MarkdownRenderer
class HeadingsRenderer(MarkdownRenderer):
def __init__(self, min_level: int):
super().__init__()
self.min_level = min_level
def heading(self, token, state):
token["attrs"]["level"] += self.min_level - 1
return super().heading(token, state)
def limit_markdown_headings(source: str, min_level: int) -> str:
markdown = mistune.create_markdown(renderer=HeadingsRenderer(min_level))
return markdown(source)
class ImagePathRewriterRenderer(MarkdownRenderer):
def __init__(self, prefix: str):
super().__init__()
self.prefix = prefix
def image(self, token, state):
url = token["attrs"]["url"]
if not "://" in url and not url.startswith("/"):
token["attrs"]["url"] = os.path.join(self.prefix, url)
return super().image(token, state)
def rewrite_image_paths(source: str, prefix: str) -> str:
markdown = mistune.create_markdown(renderer=ImagePathRewriterRenderer(prefix))
return markdown(source)