fix(datasheet): unescape braces in .md templates

This commit is contained in:
htfab
2024-05-06 23:21:17 +03:00
committed by Uri Shaked
parent 96e1ab948e
commit d490f49edb
2 changed files with 20 additions and 14 deletions
+1 -5
View File
@@ -103,11 +103,7 @@ class Docs:
# now build the doc & print it # now build the doc & print it
try: try:
doc = ( doc = doc_template.format(**yaml_data)
doc_template.replace("__git_url__", "{git_url}")
.replace("__doc_link__", "{doc_link}")
.format(**yaml_data)
)
fh.write(doc) fh.write(doc)
fh.write("\n\\clearpage\n") fh.write("\n\\clearpage\n")
except IndexError: except IndexError:
+19 -9
View File
@@ -24,6 +24,10 @@ def limit_markdown_headings(source: str, min_level: int) -> str:
return markdown(source) return markdown(source)
def unescape_braces(text: str):
return text.replace("%7B", "{").replace("%7D", "}")
class ImagePathRewriterRenderer(MarkdownRenderer): class ImagePathRewriterRenderer(MarkdownRenderer):
def __init__(self, prefix: str): def __init__(self, prefix: str):
super().__init__() super().__init__()
@@ -31,18 +35,21 @@ class ImagePathRewriterRenderer(MarkdownRenderer):
def image(self, token, state): def image(self, token, state):
url = token["attrs"]["url"] url = token["attrs"]["url"]
if "://" not in url and not url.startswith("/"): if "%7B" in url:
token["attrs"]["url"] = os.path.join(self.prefix, url) pass
elif "://" not in url and not url.startswith("/"):
url = os.path.join(self.prefix, url)
elif ".." in url: elif ".." in url:
token["attrs"]["url"] = "" url = ""
elif url.startswith("/"): elif url.startswith("/"):
token["attrs"]["url"] = os.path.join(self.prefix, "../" + url[1:]) url = os.path.join(self.prefix, "../" + url[1:])
token["attrs"]["url"] = url
return super().image(token, state) return super().image(token, state)
def rewrite_image_paths(source: str, prefix: str) -> str: def rewrite_image_paths(source: str, prefix: str) -> str:
markdown = mistune.create_markdown(renderer=ImagePathRewriterRenderer(prefix)) markdown = mistune.create_markdown(renderer=ImagePathRewriterRenderer(prefix))
return markdown(source) return unescape_braces(markdown(source))
class WebsiteImagePathRewriterRenderer(MarkdownRenderer): class WebsiteImagePathRewriterRenderer(MarkdownRenderer):
@@ -53,8 +60,10 @@ class WebsiteImagePathRewriterRenderer(MarkdownRenderer):
def image(self, token, state): def image(self, token, state):
url = token["attrs"]["url"] url = token["attrs"]["url"]
if ".." in url: if "%7B" in url:
token["attrs"]["url"] = "" pass
elif ".." in url:
url = ""
elif "://" not in url and not url.startswith("/"): elif "://" not in url and not url.startswith("/"):
filename = os.path.basename(url) filename = os.path.basename(url)
if url.startswith("/"): if url.startswith("/"):
@@ -63,7 +72,8 @@ class WebsiteImagePathRewriterRenderer(MarkdownRenderer):
os.path.join(self.source_dir, url), os.path.join(self.source_dir, url),
os.path.join(self.target_dir, filename), os.path.join(self.target_dir, filename),
) )
token["attrs"]["url"] = f"images/{filename}" url = f"images/{filename}"
token["attrs"]["url"] = url
return super().image(token, state) return super().image(token, state)
@@ -73,4 +83,4 @@ def rewrite_image_paths_for_website(
markdown = mistune.create_markdown( markdown = mistune.create_markdown(
renderer=WebsiteImagePathRewriterRenderer(source_dir, target_dir) renderer=WebsiteImagePathRewriterRenderer(source_dir, target_dir)
) )
return markdown(source) return unescape_braces(markdown(source))