diff --git a/.github/README-template.j2 b/.github/README-template.j2 index ed859d5..981c45d 100644 --- a/.github/README-template.j2 +++ b/.github/README-template.j2 @@ -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 %} diff --git a/.github/scripts/render-readme.py b/.github/scripts/render-readme.py index ce88f70..d109ca4 100755 --- a/.github/scripts/render-readme.py +++ b/.github/scripts/render-readme.py @@ -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)