generated from hjess/PythonTemplateProject
44 lines
1.7 KiB
Python
44 lines
1.7 KiB
Python
import os
|
|
from app.services.markdown_render import render_markdown_with_jinja
|
|
|
|
def process_markdown_files(input_dir: str, output_dir: str):
|
|
"""
|
|
Recursively process all Markdown files in the input directory,
|
|
render them to HTML, and save them to the output directory.
|
|
"""
|
|
for root, _, files in os.walk(input_dir):
|
|
for file in files:
|
|
if file.endswith(".md"):
|
|
input_file_path = os.path.join(root, file)
|
|
|
|
# Determine output file path (convert .md to .html)
|
|
relative_path = os.path.relpath(input_file_path, input_dir)
|
|
output_file_path = os.path.join(output_dir, os.path.splitext(relative_path)[0] + ".html")
|
|
|
|
# Ensure the output directory exists
|
|
os.makedirs(os.path.dirname(output_file_path), exist_ok=True)
|
|
|
|
# Read Markdown content
|
|
with open(input_file_path, "r", encoding="utf-8") as md_file:
|
|
markdown_content = md_file.read()
|
|
|
|
# Render Markdown with Jinja2
|
|
print(f"Processing: {input_file_path} -> {output_file_path}")
|
|
rendered_html = render_markdown_with_jinja(markdown_content)
|
|
|
|
# Write the rendered HTML to the output file
|
|
with open(output_file_path, "w", encoding="utf-8") as html_file:
|
|
html_file.write(rendered_html)
|
|
|
|
print("Markdown processing complete!")
|
|
|
|
if __name__ == "__main__":
|
|
# Input directory containing Markdown files
|
|
input_directory = "./data"
|
|
|
|
# Output directory where HTML files will be stored
|
|
output_directory = "./data"
|
|
|
|
# Start the processing
|
|
process_markdown_files(input_directory, output_directory)
|