Reduced the table of contents length by putting it into a table

Categories are grouped by their first character in the table
This commit is contained in:
Sammy Hori
2024-12-13 20:42:45 +00:00
parent 9fa6b2699e
commit 5d353dea89
2 changed files with 14 additions and 5 deletions

View File

@@ -11,9 +11,12 @@ If you are a maintainer of open-source projects, add the label `first-timers-onl
If you are not a programmer but would like to contribute, check out the [Awesome for non-programmers](https://github.com/szabgab/awesome-for-non-programmers) list.
## Table of Contents:
{% for category in categories %}
- [{{ category.title }}](#{{ category.link_id }}){% endfor %}
||Languages|
|--|--|{% for category_group, categories in category_groups.items() %}
|{{ category_group }}|{% for category in categories %}[{{ category.title }}](#{{ category.link_id }}){% if loop.index < (categories | length) %}, {% endif %}{% endfor %}|{% endfor %}
{% for category in categories %}
## {{ category.title }}
{% for entry in category.entries %}

View File

@@ -6,11 +6,9 @@ TEMPLATEPATH = "./.github/"
TEMPLATEFILE = "README-template.j2"
TARGETFILE = "./README.md"
def new_technology_dict(repo_technology):
return {"link_id": repo_technology.lower(), "entries": []}
technologies = {}
with open(DATAFILE, "r") as datafile:
@@ -39,11 +37,19 @@ for key, value in zip(technologies.keys(), technologies.values()):
)
categories = sorted(categories, key=lambda x: x["title"].upper())
category_groups = {"Misc": []}
for category in categories:
category["entries"] = sorted(category["entries"], key=lambda x: x["name"].upper())
first_char = category["title"][0].upper()
if first_char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
if first_char not in category_groups:
category_groups[first_char] = []
category_groups[first_char].append(category)
else:
category_groups["Misc"].append(category)
sponsors = data["sponsors"]
output = template.render(categories=categories, sponsors=sponsors)
output = template.render(category_groups=category_groups, categories=categories, sponsors=sponsors)
open(TARGETFILE, "w").write(output)