35 lines
		
	
	
	
		
			962 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			962 B
		
	
	
	
		
			Python
		
	
	
	
	
	
# Flatten markdown links such that depth is reduced to /link.md
 | 
						|
 | 
						|
import os
 | 
						|
import re
 | 
						|
 | 
						|
 | 
						|
def trim_markdown_links(filepath):
 | 
						|
    with open(filepath, "r") as file:
 | 
						|
        content = file.read()
 | 
						|
 | 
						|
    # Regular expression to match Markdown links
 | 
						|
    pattern = r"\[([^\]]+)\]\(([^)]+)\)"
 | 
						|
    links = re.findall(pattern, content)
 | 
						|
 | 
						|
    # For each link, extract the filename and replace the link
 | 
						|
    for text, link in links:
 | 
						|
        link_filename = os.path.basename(link)
 | 
						|
        content = content.replace(f"[{text}]({link})", f"[{text}]({link_filename})")
 | 
						|
 | 
						|
    # Write the modified content back to the file
 | 
						|
    with open(filepath, "w") as file:
 | 
						|
        file.write(content)
 | 
						|
 | 
						|
 | 
						|
def process_directory(directory):
 | 
						|
    for filename in os.listdir(directory):
 | 
						|
        if filename.endswith(".md"):
 | 
						|
            trim_markdown_links(os.path.join(directory, filename))
 | 
						|
 | 
						|
 | 
						|
# Usage
 | 
						|
# process_directory('/path/to/your/directory')
 | 
						|
 | 
						|
# Usage
 | 
						|
process_directory("/home/thomas/repos/eolas/zk")
 |