Functioning generation system

This commit is contained in:
Lucas
2025-03-22 10:59:24 -07:00
parent 51c6944c9f
commit 71a3d8365c
9 changed files with 4574 additions and 1451 deletions

View File

@@ -1,35 +1,49 @@
import json
import os
from tableofcontents_generator import generate_table_of_contents
from contents_generator import generate_contents
from tableofcontents_generator import generate_tableofcontents
from contents_generator import generate_markdown
# List of target platforms
platforms = ["all", "windows", "macos", "linux", "selfhost"]
def load_file(filename):
with open(filename, "r", encoding="utf-8") as f:
return f.read()
# Map platform to the header file to use
header_files = {
"all": "source/components/header.md",
"windows": "source/components/windowsheader.md",
"macos": "source/components/macosheader.md",
"linux": "source/components/linuxheader.md",
"selfhost": "source/components/selfhostheader.md"
}
def generate_readme(platform="all"):
header_map = {
"macos": "source/components/macosheader.md",
"windows": "source/components/windowsheader.md",
"selfhost": "source/components/selfhostheader.md",
}
def generate_readme_for_platform(platform):
content = ""
header_file = header_files.get(platform, "source/components/header.md")
header_file = header_map.get(platform, "source/components/header.md")
header = load_file(header_file)
tags = load_file("source/components/tags.md")
footer = load_file("source/components/footer.md")
# Inject header (for 'all', use header.md; for others, use the platform-specific header)
with open(header_file, "r", encoding="utf-8") as f:
content += f.read() + "\n"
toc = generate_tableofcontents()
content = generate_markdown(platform)
# Inject tags.md
with open("source/components/tags.md", "r", encoding="utf-8") as f:
content += f.read() + "\n"
readme_content = "\n".join([header, tags, toc, content, footer])
# Generate Table of Contents using the imported function
toc_md = generate_table_of_contents()
content += toc_md + "\n"
output_file = f"readmes/{platform}.md" if platform != "all" else "source/testing/test.md"
with open(output_file, "w", encoding="utf-8") as f:
f.write(readme_content)
print(f"Generated {output_file}")
# Generate the actual list of contents (Markdown list) for the given platform
contents_md = generate_contents(platform)
content += contents_md + "\n"
# Inject footer.md
with open("source/components/footer.md", "r", encoding="utf-8") as f:
content += f.read() + "\n"
# Write output file; for "all" use README.md, otherwise README-<platform>.md
output_filename = "source/testing/test.md" if platform == "all" else f"readmes/{platform}.md"
with open(output_filename, "w", encoding="utf-8") as f:
f.write(content)
print(f"Generated {output_filename}")
if __name__ == "__main__":
for platform in ["all", "windows", "macos", "linux", "selfhost"]:
generate_readme(platform)
for platform in platforms:
generate_readme_for_platform(platform)