import re
from pathlib import Path
def fix_links_in_file(file_path):
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
original_content = content
if 'commands' not in str(file_path):
return False
pattern = r'\[([^\]]+)\]\(commands/([^\)]+)\)'
def replace_link(match):
link_text = match.group(1)
url = match.group(2)
return f"[{link_text}]({url})"
new_content = re.sub(pattern, replace_link, content)
if new_content != original_content:
with open(file_path, 'w', encoding='utf-8') as f:
f.write(new_content)
return True
return False
except Exception as e:
print(f"Error processing {file_path}: {e}")
return False
def main():
docs_dir = Path("docs")
if not docs_dir.exists():
print("Error: docs directory not found")
return
commands_dir = docs_dir / "commands"
if not commands_dir.exists():
print("Error: commands directory not found")
return
md_files = list(commands_dir.glob("*.md"))
print(f"Found {len(md_files)} markdown files in commands directory")
print("\nFixing relative links...")
fixed_count = 0
for md_file in md_files:
if fix_links_in_file(md_file):
try:
rel_path = md_file.relative_to(Path.cwd())
except ValueError:
rel_path = md_file
print(f" Fixed: {rel_path}")
fixed_count += 1
print(f"\nFixed {fixed_count} files")
if __name__ == "__main__":
main()