-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathutils.py
35 lines (27 loc) · 963 Bytes
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import re
PRESENTATION_CONFIG = """
[comment]: # (CODE_THEME = base16/zenburn)
[comment]: # (controls: true)
[comment]: # (keyboard: true)
"""
def get_presentation_config() -> str:
return PRESENTATION_CONFIG
def get_safe_foldername(topic: str) -> str:
# return topic.replace(" ", "_").lower()
return re.sub(r"[^a-zA-Z0-9]", "_", topic).lower()
def sanitize_markdown(text: str) -> str:
pattern = r"(?s)(```mermaid.*?)(^.*?Note over.*?$)(.*?```)"
result = re.sub(
pattern,
lambda m: m.group(1)
+ re.sub(r"^.*?Note over.*?\n?", "", m.group(2), flags=re.M)
+ m.group(3),
text,
flags=re.M,
)
pattern2 = r"^(#{1,2})\s"
result = re.sub(pattern2, r"### ", result, flags=re.M)
pattern3 = r"!\[.+\]\(\./(.*?\.png)\)"
result = re.sub(pattern3, r"", result, flags=re.M)
result = result.replace("flowchart TD", "flowchart LR")
return result + "\n\n"