mirror of
https://github.com/feather-wallet/feather.git
synced 2024-12-22 19:49:28 +00:00
64 lines
1.6 KiB
Python
64 lines
1.6 KiB
Python
|
import os
|
||
|
import glob
|
||
|
|
||
|
DOCS_DIR = "external/feather-docs/content/_guides"
|
||
|
OUT_DIR = "src/assets/docs"
|
||
|
|
||
|
CATEGORY_MAP = {
|
||
|
"getting-started": "1. Getting started",
|
||
|
"howto": "2. How to",
|
||
|
"faq": "3. Faq",
|
||
|
"advanced": "4. Advanced",
|
||
|
"troubleshooting": "5. Troubleshooting",
|
||
|
"help": "6. Help",
|
||
|
}
|
||
|
|
||
|
if not os.path.isdir(DOCS_DIR):
|
||
|
print("feather-docs submodule not found. Run `git submodule update --init --recursive`")
|
||
|
exit(1)
|
||
|
|
||
|
outfiles = glob.glob(f"{OUT_DIR}/*.md")
|
||
|
for file in outfiles:
|
||
|
os.remove(file)
|
||
|
|
||
|
files = glob.glob(f"{DOCS_DIR}/*.md")
|
||
|
|
||
|
for file in files:
|
||
|
with open(file) as f:
|
||
|
doc = f.read()
|
||
|
|
||
|
if not doc:
|
||
|
continue
|
||
|
|
||
|
# yaml frontmatter missing
|
||
|
if doc.count("---") < 2:
|
||
|
continue
|
||
|
|
||
|
_, front, body = doc.split("---", 2)
|
||
|
front = {x: y.strip(" \"") for (x, y) in [x.split(':', 1) for x in front.splitlines()[1:]]}
|
||
|
|
||
|
if not all((x in front) for x in ['category', 'nav_title']):
|
||
|
continue
|
||
|
|
||
|
if front['category'] not in CATEGORY_MAP:
|
||
|
continue
|
||
|
|
||
|
title = front['nav_title'].replace("(", "\\(").replace(")", "\\)")
|
||
|
|
||
|
# We use this format to insert metadata while preventing it from showing up in QTextBrowser
|
||
|
# This is easier than adding item tags to .qrc files and parsing the XML
|
||
|
# We need to be able to setSource on a resource directly, otherwise history doesn't work
|
||
|
docString = f"""
|
||
|
[nav_title]: # ({title})
|
||
|
[category]: # ({CATEGORY_MAP[front['category']]})
|
||
|
|
||
|
## {front['title']}
|
||
|
{body}
|
||
|
"""
|
||
|
|
||
|
_, filename = file.rsplit('/', 1)
|
||
|
|
||
|
with open(f"{OUT_DIR}/{filename}", 'w') as f:
|
||
|
print(filename)
|
||
|
f.write(docString)
|