mirror of
https://github.com/mustbeperfect/definitive-opensource.git
synced 2026-04-18 03:54:10 +02:00
Functioning generation system
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user