Updated generation script

This commit is contained in:
Lucas
2025-03-18 11:42:54 -07:00
parent 9933ffd434
commit e87f57d58d
15 changed files with 3004 additions and 905 deletions

View File

@@ -663,19 +663,19 @@
{
"Name": "Other",
"id": "other",
"parent": "",
"parent": "other",
"description": ""
},
{
"Name": "Uncategorized",
"id": "uncategorized",
"parent": "",
"parent": "other",
"description": ""
},
{
"Name": "Removed Projects",
"id": "removed-projects",
"parent": "",
"parent": "other",
"description": ""
}
]

View File

View File

@@ -1 +1,52 @@
## Honorable Mentions of Closed-Source Software
Some proprietary software just deserve recognition.
- [Davinci Resolve](https://www.blackmagicdesign.com/products/davinciresolve) - Professional Editing, Color, Effects and Audio Post!
- [Obsidian](https://obsidian.md/) - The free and flexible app for your private thoughts.
- [LM Studio](https://lmstudio.ai/) - Discover, download, and run local LLMs
- [JetBrains](https://www.jetbrains.com/) - A rich suite of tools that provide an exceptional developer experience
- [Raycast](https://www.raycast.com/) - A collection of powerful productivity tools all within an extendable launcher.
## Removed Projects
Projects that were once on this list but removed - usually due to abandonement or going closed source.
<details>
<summary><b>Archive</b></summary> <br />
- [eqMac](https://github.com/bitgapp/eqMac) - `Closed source`
- [Hyper](https://github.com/vercel/hyper) - `Abandoned`
- [DiffusionBee](https://github.com/divamgupta/diffusionbee-stable-diffusion-ui) - `Closed source`
- [Lunarvim](https://github.com/LunarVim/LunarVim) - `Abandoned`
- [Motrix](https://github.com/agalwood/Motrix) - `Abandoned`
- [StableSwarmUI](https://github.com/Stability-AI/StableSwarmUI) - `Abandoned`
- [Trilium](https://github.com/zadam/trilium) - `Abandoned`
</details>
## FAQ
<details>
<summary><b>How about a JSON file with scripts or a website?</b></summary> <br />
A JSON file with scripts that generate the README(s) would make fundamental changes and reorganization far easier whilst minimizing formatting and grammatical errors. A website would provide much requested features like tag based filtering and even automation.
<p>&nbsp;</p>
However, for the foreseeable future, the list will to be edited directly as a markdown file for one reason: to keep things simple. The current system lets me focus solely on the projects within, not how to present said projects.
<p>&nbsp;</p>
The current markdown system could also be considered a stepping stone to guage the community's needs prior to building a more complex system. I will likely migrate to a JSON file as the project scales and when I have time to architect such a system.
<p>&nbsp;</p>
As for the website, the complexities of web development seem unnecessary and an added pain for a task that can suffice, for now, as a markdown file. Depending on the popularity of the project, however, this idea will remain in the back of my mind.
</details>
## License
This project is released under the `MIT license`, hereby granting anyone to use, distribute, or modify this project for, but not limited to, commercial purposes. See the license tab for further information.
<p>&nbsp;</p>
<p align="center">
<table>
<tbody>
<td align="center" width="2000px" height="100px">
<b><a href="#tags">Go To Top</a></b><br>
</td>
<td align="center" width="2000px" height="100px">
<b><a href="https://opensource.org/">Open Source Initiative</a></b><br>
</td>
</tbody>
</table>
</p>

View File

View File

View File

View File

View File

@@ -1,9 +1,9 @@
import json
def load_data():
with open("categories.json", "r", encoding="utf-8") as f:
with open("source/data/categories.json", "r", encoding="utf-8") as f:
categories_data = json.load(f)
with open("applications.json", "r", encoding="utf-8") as f:
with open("source/data/applications.json", "r", encoding="utf-8") as f:
applications_data = json.load(f)
return categories_data, applications_data

View File

@@ -1,7 +1,7 @@
import json
import os
from tableofcontents_generator import generate_table_of_contents
from tableofcontents_generator import generate_tableofcontents
from contents_generator import generate_markdown
def load_file(filename):
@@ -10,18 +10,18 @@ def load_file(filename):
def generate_readme(platform="all"):
header_map = {
"cross": "crossheader.md",
"macos": "macosheader.md",
"windows": "windowsheader.md",
"selfhost": "selfhostheader.md",
"cross": "source/lib/crossheader.md",
"macos": "source/lib/macosheader.md",
"windows": "source/lib/windowsheader.md",
"selfhost": "source/lib/selfhostheader.md",
}
header_file = header_map.get(platform, "header.md")
header_file = header_map.get(platform, "source/lib/header.md")
header = load_file(header_file)
tags = load_file("tags.md")
footer = load_file("footer.md")
tags = load_file("source/lib/tags.md")
footer = load_file("source/lib/footer.md")
toc = generate_table_of_contents()
toc = generate_tableofcontents()
content = generate_markdown(platform)
readme_content = "\n".join([header, tags, toc, content, footer])

View File

@@ -1,10 +1,10 @@
import json
def load_categories():
with open("categories.json", "r", encoding="utf-8") as f:
with open("source/data/categories.json", "r", encoding="utf-8") as f:
return json.load(f)
def generate_table_of_contents():
def generate_tableofcontents():
data = load_categories()
categories = sorted(data["categories"], key=lambda x: x["Name"].lower())
subcategories = sorted(data["subcategories"], key=lambda x: x["Name"].lower())
@@ -44,7 +44,7 @@ def generate_table_of_contents():
return "\n".join(toc)
if __name__ == "__main__":
toc_content = generate_table_of_contents()
toc_content = generate_tableofcontents()
with open("tableofcontents.md", "w", encoding="utf-8") as f:
f.write(toc_content)
print("Generated tableofcontents.md")

File diff suppressed because it is too large Load Diff