fi-notes/transform-footnotes.py

42 lines
1.2 KiB
Python

import os
import re
TARGET_DIR = "src/content/docs/szmgr"
footnote_pattern = re.compile(r"\[([a-zA-Z0-9_-]+)\]\(#[a-zA-Z0-9_-]+\)")
explanation_pattern = re.compile(r"- \[\[\[([\w+-]+).+\]\]\]")
files = [f for f in os.listdir(TARGET_DIR) if f.endswith(".md")]
for f in files:
print(f"\t- {f}")
lines = []
with open(os.path.join(TARGET_DIR, f), "r") as file:
lines = file.readlines()
for i in range(len(lines)):
l = lines[i]
matches = list(footnote_pattern.finditer(l))
if matches:
# Reverse so replacements don't mess up span positions
for match in reversed(matches):
topic = match.group(1)
start, end = match.span()
l = l[:start] + f"[^{topic}]" + l[end:]
lines[i] = l
m = explanation_pattern.match(l + "\n")
if m:
topic = m.group(1)
start, end = m.span()
l = l[:start] + f"[^{topic}]:" + l[end:]
lines[i] = l
if "## Zdroje" in l:
lines[i] = ""
with open(os.path.join(TARGET_DIR, f), "w") as file:
file.writelines(lines)