Data used by the application is provided by GitHub via the REST API.
UI elements and icons by Material UI. Charts were made with MUI X Charts.
The word cloud visualization used in the application is based on react-wordcloud by Chris Zhou. However, a fork made by cyberblast was used for its React 18 support.
Favicon generated by Riku Rauhala with favicon.io
Programming language color codes are based on the Linguist project by GitHub. More specifically, the colors are taken from the language.yml file. The file colors.json has been manually created by Riku Rauhala based on languages.yml.
The list of languages was last updated on 9 May 2024. Some languages could be missing.
Here is a Python script that can be used to update the colors.json
file.
import json
import requests
import yaml
YAML_URL = 'https://raw.githubusercontent.com/github-linguist/linguist/master/lib/linguist/languages.yml'
JSON_FILE = 'colors.json'
response = requests.get(YAML_URL)
if response.status_code != 200:
print(f'Failed to fetch YAML file: {response.status_code}')
exit()
data = yaml.safe_load(response.text)
languages = {}
for language, properties in data.items():
try:
color = properties['color'].lower()
languages[language] = color
except KeyError:
pass
sorted_languages = {
language: languages[language] for language in sorted(languages.keys(), key=lambda key: key.lower())
}
with open(JSON_FILE, 'w') as json_file:
json.dump(sorted_languages, json_file, indent=2)
print(f'Data written to {JSON_FILE}')