mirror of
https://gitlab.com/lvra/lvra.gitlab.io.git
synced 2024-11-10 02:20:26 +01:00
33 lines
741 B
Python
33 lines
741 B
Python
#!/usr/bin/env python3
|
|
from pathlib import Path
|
|
import re
|
|
from typing import List
|
|
from os.path import exists
|
|
|
|
|
|
def get_all_markdown_files():
|
|
return Path("content").rglob("*.md")
|
|
|
|
|
|
def find_links(f: str) -> List[str]:
|
|
with open(f, "r") as fd:
|
|
content = fd.read()
|
|
return [
|
|
link.lstrip("]").strip("()") for link in re.findall(r"\]\(\/[\w\/]+\)", content)
|
|
]
|
|
|
|
|
|
def verify_link_exists(link: str) -> bool:
|
|
return exists(f"content{link}/_index.md") or exists(f'content{link.rstrip("/")}.md')
|
|
|
|
|
|
md_files = get_all_markdown_files()
|
|
|
|
res = 0
|
|
for f in md_files:
|
|
for link in find_links(f):
|
|
if not verify_link_exists(link):
|
|
print(f"E: {f}: {link} does not exist")
|
|
res = 1
|
|
|
|
exit(res)
|