feat: wikify sporty&rich meeting minutes and update index (2026-04-29)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
wiki_root = r"E:\Wiki\2nd\10_Wiki"
|
||||
all_files = set()
|
||||
for root, dirs, files in os.walk(wiki_root):
|
||||
for file in files:
|
||||
if file.endswith(".md"):
|
||||
name = os.path.splitext(file)[0]
|
||||
all_files.add(name)
|
||||
|
||||
broken_links = []
|
||||
link_pattern = re.compile(r"\[\[([^\]|]+)(?:\|[^\]]+)?\]\]")
|
||||
|
||||
for root, dirs, files in os.walk(wiki_root):
|
||||
for file in files:
|
||||
if file.endswith(".md"):
|
||||
abs_path = os.path.join(root, file)
|
||||
try:
|
||||
with open(abs_path, "r", encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
links = link_pattern.findall(content)
|
||||
for link in links:
|
||||
link_target = link.strip().replace("\\", "/").split("/")[-1]
|
||||
if link_target and link_target not in all_files and link_target != "Index":
|
||||
broken_links.append((os.path.relpath(abs_path, wiki_root), link))
|
||||
except:
|
||||
pass
|
||||
|
||||
if broken_links:
|
||||
with open(r"E:\Wiki\2nd\scratch\broken_links.txt", "w", encoding="utf-8") as out:
|
||||
for source, target in broken_links:
|
||||
out.write(f"{source} -> {target}\n")
|
||||
print(f"Found {len(broken_links)} broken links. Saved to orphans.txt")
|
||||
else:
|
||||
print("No broken links found!")
|
||||
Reference in New Issue
Block a user