Compare commits

...

9 Commits

Author SHA1 Message Date
SARTHAK SHISHODIA
34f04901c4 Merge e0d5ac11c6 into 9402eb7f92 2025-02-11 16:06:56 +05:30
Shmavon Gazanchyan
9402eb7f92 Update README.md 2025-02-09 20:28:12 +00:00
Sammy Hori
9a564fd37b Merge pull request #1571 from MunGell/add-improvedtube
Add ImprovedTube's repository to the list
2025-02-09 20:27:59 +00:00
Sammy Hori
46d0830e0b Added ImprovedTube's repository to the data.json
This repo appears activae and has lots of appropriately labelled issues
2025-02-09 20:18:25 +00:00
Shmavon Gazanchyan
66bd9315aa Update README.md 2025-02-07 21:16:54 +00:00
Sammy Hori
0ac6520bfb Merge pull request #1568 from MunGell/remove-shouldy
Removed Shouldly for a lack of appropriate issues
2025-02-07 21:16:41 +00:00
Sammy Hori
bbbd6e907e Removed Shouldy for a lack of appropriate issues
Their last appropriately labelled issue was closed in Feb 2020 which is somehow 5 years ago.
2025-02-07 21:16:09 +00:00
sarthakshishodia20
e0d5ac11c6 ChangesMadeSecondTime 2025-01-22 22:03:10 +05:30
sarthakshishodia20
663f4c351e ChangesMadeBySarthakShishodia 2025-01-22 22:00:27 +05:30
3 changed files with 80 additions and 23 deletions

View File

@@ -1,5 +1,10 @@
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
import json import json
import os
import logging
# Configuring logging
logging.basicConfig(level=logging.INFO)
DATAFILE = "./data.json" DATAFILE = "./data.json"
TEMPLATEPATH = "./.github/" TEMPLATEPATH = "./.github/"
@@ -9,34 +14,61 @@ TARGETFILE = "./README.md"
def new_technology_dict(repo_technology): def new_technology_dict(repo_technology):
return {"link_id": repo_technology.lower(), "entries": []} return {"link_id": repo_technology.lower(), "entries": []}
# Function to log warnings for missing data
def log_warning(message):
logging.warning(message)
# Check if the data file exists
if not os.path.exists(DATAFILE):
log_warning(f"Data file {DATAFILE} does not exist.")
exit(1)
# Load data from the JSON file
try:
with open(DATAFILE, "r") as datafile:
data = json.loads(datafile.read())
except json.JSONDecodeError:
log_warning("Error: Failed to parse JSON data in the file.")
exit(1)
# Initialize technologies dictionary
technologies = {} technologies = {}
with open(DATAFILE, "r") as datafile: # Processing technologies
data = json.loads(datafile.read()) for technology in data.get("technologies", {}):
for technology in data["technologies"]:
technologies[technology] = { technologies[technology] = {
"link_id": data["technologies"][technology], "link_id": data["technologies"].get(technology),
"entries": [], "entries": [],
} }
for repository in data["repositories"]: # Processing repositories
repo_technologies = repository["technologies"] for repository in data.get("repositories", []):
repo_technologies = repository.get("technologies", [])
if not repo_technologies:
log_warning(f"Repository {repository['name']} has no technologies listed.")
for repo_technology in repo_technologies: for repo_technology in repo_technologies:
if not technologies.get(repo_technology, False): if repo_technology not in technologies:
technologies[repo_technology] = new_technology_dict(repo_technology) technologies[repo_technology] = new_technology_dict(repo_technology)
log_warning(f"Technology {repo_technology} is newly added.")
technologies[repo_technology]["entries"].append(repository) technologies[repo_technology]["entries"].append(repository)
# Create Jinja2 environment and load the template
env = Environment(loader=FileSystemLoader(TEMPLATEPATH)) env = Environment(loader=FileSystemLoader(TEMPLATEPATH))
if not os.path.exists(os.path.join(TEMPLATEPATH, TEMPLATEFILE)):
log_warning(f"Template file {TEMPLATEFILE} does not exist in the provided path.")
exit(1)
template = env.get_template(TEMPLATEFILE) template = env.get_template(TEMPLATEFILE)
# Create categories from the technologies
categories = [] categories = []
for key, value in zip(technologies.keys(), technologies.values()): for key, value in technologies.items():
categories.append( categories.append(
{"title": key, "link_id": value["link_id"], "entries": value["entries"]} {"title": key, "link_id": value["link_id"], "entries": value["entries"]}
) )
# Sorting categories and entries
categories = sorted(categories, key=lambda x: x["title"].upper()) categories = sorted(categories, key=lambda x: x["title"].upper())
category_groups = {"Misc": []} category_groups = {"Misc": []}
for category in categories: for category in categories:
category["entries"] = sorted(category["entries"], key=lambda x: x["name"].upper()) category["entries"] = sorted(category["entries"], key=lambda x: x["name"].upper())
@@ -48,8 +80,28 @@ for category in categories:
else: else:
category_groups["Misc"].append(category) category_groups["Misc"].append(category)
sponsors = data["sponsors"] # Process sponsors
sponsors = data.get("sponsors", [])
output = template.render(category_groups=category_groups, categories=categories, sponsors=sponsors) # Generate Table of Contents (TOC)
toc = []
for category in categories:
toc.append(f"- [{category['title']}]({category['link_id']})")
open(TARGETFILE, "w").write(output) # Prepare context for rendering the template
context = {
"category_groups": category_groups,
"categories": categories,
"sponsors": sponsors,
"toc": toc # Adding TOC to context
}
# Rendering the README file
try:
output = template.render(context)
with open(TARGETFILE, "w") as targetfile:
targetfile.write(output)
logging.info("README file generated successfully.")
except Exception as e:
log_warning(f"Error while rendering template: {e}")
exit(1)

View File

@@ -19,7 +19,7 @@ If you would like to be guided through how to contribute to a repository on GitH
|--|--| |--|--|
|Misc|[.NET](#net)| |Misc|[.NET](#net)|
|A|[Angular](#angular), [Ansible](#ansible)| |A|[Angular](#angular), [Ansible](#ansible)|
|C|[C](#c), [C#](#c-1), [C++](#c-2), [Clojure](#clojure)| |C|[C](#c), [C#](#c-1), [C++](#c-2), [Clojure](#clojure), [CSS](#css)|
|D|[Dart](#dart)| |D|[Dart](#dart)|
|E|[Elixir](#elixir), [Elm](#elm)| |E|[Elixir](#elixir), [Elm](#elm)|
|G|[Go](#go)| |G|[Go](#go)|
@@ -38,7 +38,6 @@ If you would like to be guided through how to contribute to a repository on GitH
- [Legerity for Uno Platform](https://github.com/MADE-Apps/legerity-uno) _(label: good first issue)_ <br> An extension framework to Legerity for speeding up the development of automated UI tests for Uno Platform applications with Appium/Selenium on .NET. - [Legerity for Uno Platform](https://github.com/MADE-Apps/legerity-uno) _(label: good first issue)_ <br> An extension framework to Legerity for speeding up the development of automated UI tests for Uno Platform applications with Appium/Selenium on .NET.
- [MvvmCross](https://github.com/MvvmCross/MvvmCross) _(label: first-timers-only)_ <br> The .NET MVVM framework for cross-platform solutions, including Xamarin.iOS, Xamarin.Android, Windows and Mac. - [MvvmCross](https://github.com/MvvmCross/MvvmCross) _(label: first-timers-only)_ <br> The .NET MVVM framework for cross-platform solutions, including Xamarin.iOS, Xamarin.Android, Windows and Mac.
- [RawCMS](https://github.com/arduosoft/RawCMS) _(label: good first issue)_ <br> RawCMS is a headless CMS written in ASP.NET Core, built for developers that embrace API-first technology. - [RawCMS](https://github.com/arduosoft/RawCMS) _(label: good first issue)_ <br> RawCMS is a headless CMS written in ASP.NET Core, built for developers that embrace API-first technology.
- [Shouldly](https://github.com/shouldly/shouldly) _(label: Jump-In)_ <br> Should testing for .NET - the way Asserting Should be!
## Angular ## Angular
@@ -76,6 +75,10 @@ If you would like to be guided through how to contribute to a repository on GitH
- [Metabase](https://github.com/metabase/metabase) _(label: good first issue)_ <br> Open source business intelligence and analytics platform - [Metabase](https://github.com/metabase/metabase) _(label: good first issue)_ <br> Open source business intelligence and analytics platform
## CSS
- [ImprovedTube](https://github.com/code-charity/youtube) _(label: good first issue)_ <br> A powerful but lightweight extension, to enrich your video experience & enable your content selection.
## Dart ## Dart
- [dart.dev](https://github.com/dart-lang/site-www) _(label: beginner)_ <br> A website covering Dart language and common libraries, for developers of Dart libraries, web apps, server-side code, and mobile (Flutter) apps. - [dart.dev](https://github.com/dart-lang/site-www) _(label: beginner)_ <br> A website covering Dart language and common libraries, for developers of Dart libraries, web apps, server-side code, and mobile (Flutter) apps.
@@ -163,6 +166,7 @@ If you would like to be guided through how to contribute to a repository on GitH
- [Hoppscotch](https://github.com/hoppscotch/hoppscotch) _(label: good first issue)_ <br> A free, fast and beautiful API request builder. - [Hoppscotch](https://github.com/hoppscotch/hoppscotch) _(label: good first issue)_ <br> A free, fast and beautiful API request builder.
- [HueHive](https://github.com/croma-app/croma) _(label: good first issue)_ <br> A open source react native app iOS and android for color palette management - [HueHive](https://github.com/croma-app/croma) _(label: good first issue)_ <br> A open source react native app iOS and android for color palette management
- [iD](https://github.com/openstreetmap/iD) _(label: good first issue)_ <br> The easy-to-use OpenStreetMap editor in JavaScript. - [iD](https://github.com/openstreetmap/iD) _(label: good first issue)_ <br> The easy-to-use OpenStreetMap editor in JavaScript.
- [ImprovedTube](https://github.com/code-charity/youtube) _(label: good first issue)_ <br> A powerful but lightweight extension, to enrich your video experience & enable your content selection.
- [Jasmine](https://github.com/jasmine/jasmine) _(label: good first issue)_ <br> Simple JavaScript testing framework for browsers and node.js. - [Jasmine](https://github.com/jasmine/jasmine) _(label: good first issue)_ <br> Simple JavaScript testing framework for browsers and node.js.
- [Jest](https://github.com/facebook/jest) _(label: good first issue)_ <br> A complete and easy to set up JavaScript testing solution. - [Jest](https://github.com/facebook/jest) _(label: good first issue)_ <br> A complete and easy to set up JavaScript testing solution.
- [json-editor](https://github.com/json-editor/json-editor) _(label: good first issue)_ <br> JSON Schema Based Editor. JSON Editor takes a JSON Schema and uses it to generate an HTML form. It has full support for JSON Schema version 3 and 4 and can integrate with several popular CSS frameworks (bootstrap, spectre, tailwind). - [json-editor](https://github.com/json-editor/json-editor) _(label: good first issue)_ <br> JSON Schema Based Editor. JSON Editor takes a JSON Schema and uses it to generate an HTML form. It has full support for JSON Schema version 3 and 4 and can integrate with several popular CSS frameworks (bootstrap, spectre, tailwind).

View File

@@ -30,15 +30,6 @@
], ],
"description": "RawCMS is a headless CMS written in ASP.NET Core, built for developers that embrace API-first technology." "description": "RawCMS is a headless CMS written in ASP.NET Core, built for developers that embrace API-first technology."
}, },
{
"name": "Shouldly",
"link": "https://github.com/shouldly/shouldly",
"label": "Jump-In",
"technologies": [
".NET"
],
"description": "Should testing for .NET - the way Asserting Should be!"
},
{ {
"name": "grok.net", "name": "grok.net",
"link": "https://github.com/Marusyk/grok.net", "link": "https://github.com/Marusyk/grok.net",
@@ -624,6 +615,16 @@
], ],
"description": "A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates." "description": "A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates."
}, },
{
"name": "ImprovedTube",
"link": "https://github.com/code-charity/youtube",
"label": "good first issue",
"technologies": [
"JavaScript",
"CSS"
],
"description": "A powerful but lightweight extension, to enrich your video experience & enable your content selection."
},
{ {
"name": "serverless", "name": "serverless",
"link": "https://github.com/serverless/serverless", "link": "https://github.com/serverless/serverless",