mirror of
https://github.com/marvinscham/marvinscham.git
synced 2025-12-06 18:20:46 +01:00
Compare commits
7 Commits
912c0f1d64
...
47cd265737
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47cd265737 | ||
|
|
90e0d85c95 | ||
|
|
eb42340266 | ||
|
|
6484be297e | ||
|
|
86822b79d6 | ||
|
|
ff922ca95c | ||
|
929ffaadf7
|
9
.github/dependabot.yml
vendored
Normal file
9
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
commit-message:
|
||||
prefix: "chore"
|
||||
include: "scope"
|
||||
4
.github/workflows/metrics.yml
vendored
4
.github/workflows/metrics.yml
vendored
@@ -8,10 +8,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
|
||||
72
README.md
72
README.md
@@ -1,35 +1,43 @@
|
||||
<h1 align="center" style="text-align:center;">Welcome! <img height="28" style="height:1em;display:inline-block;" src="https://raw.githubusercontent.com/marvinscham/marvinscham/main/resources/wave.gif"></h1>
|
||||
<p align="center" style="text-align:center;">I'm Marvin – M.Sc. student, fullstack developer and creator of <a href="https://masterychart.com">Mastery Chart</a>.<br>Located in Baden-Württemberg, Germany <img height="16" style="height:1em;display:inline-block;" src="https://marvinscham.de/assets/img/lang/de.png">.</p>
|
||||
<p align="center" style="text-align:center;">I'm Marvin – Software engineer and creator of <a href="https://masterychart.com">Mastery Chart</a>.<br>Located in Baden-Württemberg, Germany <img height="16" style="height:1em;display:inline-block;" src="https://marvinscham.de/assets/img/lang/de.png">.</p>
|
||||
|
||||
|
||||
<h2>🛠 Tools I use</h2>
|
||||
<h2>🛠 Things I use</h2>
|
||||
<p>
|
||||
<img alt="Linux Mint" style="display:inline-block;" src="https://img.shields.io/badge/-Linux_Mint-86BE43?style=flat-square&logo=linuxmint&logoColor=white" />
|
||||
<img alt="Gitea" style="display:inline-block;" src="https://img.shields.io/badge/-Gitea-609926?style=flat-square&logo=gitea&logoColor=white" />
|
||||
<img alt="Bash" style="display:inline-block;" src="https://img.shields.io/badge/-Bash-4EAA25?style=flat-square&logo=gnubash&logoColor=white" />
|
||||
<img alt="Paperless" style="display:inline-block;" src="https://img.shields.io/badge/-Paperless-17541F?style=flat-square&logo=paperlessngx&logoColor=white" />
|
||||
<img alt="nginx" style="display:inline-block;" src="https://img.shields.io/badge/-nginx-009639?style=flat-square&logo=nginx&logoColor=white" />
|
||||
<img alt="Calibre--Web" style="display:inline-block;" src="https://img.shields.io/badge/-Calibre--Web-45B29D?style=flat-square&logo=calibreweb&logoColor=white" />
|
||||
<img alt="LaTeX" style="display:inline-block;" src="https://img.shields.io/badge/-LaTeX-008080?style=flat-square&logo=latex&logoColor=white" />
|
||||
<img alt="Traefik" style="display:inline-block;" src="https://img.shields.io/badge/-Traefik-24A1C1?style=flat-square&logo=traefikproxy&logoColor=white" />
|
||||
<img alt="Nextcloud" style="display:inline-block;" src="https://img.shields.io/badge/-Nextcloud-0082C9?style=flat-square&logo=nextcloud&logoColor=white" />
|
||||
<img alt="C%2b%2b" style="display:inline-block;" src="https://img.shields.io/badge/-C%2b%2b-00599C?style=flat-square&logo=cplusplus&logoColor=white" />
|
||||
<img alt="Docker" style="display:inline-block;" src="https://img.shields.io/badge/-Docker-2496ED?style=flat-square&logo=Docker&logoColor=white" />
|
||||
<img alt="Python" style="display:inline-block;" src="https://img.shields.io/badge/-Python-3776AB?style=flat-square&logo=python&logoColor=white" />
|
||||
<img alt="SonarQube" style="display:inline-block;" src="https://img.shields.io/badge/-SonarQube-126ED3?style=flat-square&logo=sonarqubeserver&logoColor=white" />
|
||||
<img alt="Adminer" style="display:inline-block;" src="https://img.shields.io/badge/-Adminer-34567C?style=flat-square&logo=adminer&logoColor=white" />
|
||||
<img alt="MariaDB" style="display:inline-block;" src="https://img.shields.io/badge/-MariaDB-1F305F?style=flat-square&logo=mariadb&logoColor=white" />
|
||||
<img alt="Immich" style="display:inline-block;" src="https://img.shields.io/badge/-Immich-4250AF?style=flat-square&logo=immich&logoColor=white" />
|
||||
<img alt="PHP" style="display:inline-block;" src="https://img.shields.io/badge/-PHP-777BB4?style=flat-square&logo=php&logoColor=white" />
|
||||
<img alt="Plausible" style="display:inline-block;" src="https://img.shields.io/badge/-Plausible-5850EC?style=flat-square&logo=plausibleanalytics&logoColor=white" />
|
||||
<img alt="Obsidian" style="display:inline-block;" src="https://img.shields.io/badge/-Obsidian-7C3AED?style=flat-square&logo=obsidian&logoColor=white" />
|
||||
<img alt="CSS" style="display:inline-block;" src="https://img.shields.io/badge/-CSS-663399?style=flat-square&logo=css&logoColor=white" />
|
||||
<img alt="Sass" style="display:inline-block;" src="https://img.shields.io/badge/-Sass-CC6699?style=flat-square&logo=sass&logoColor=white" />
|
||||
<img alt="n8n" style="display:inline-block;" src="https://img.shields.io/badge/-n8n-EA4B71?style=flat-square&logo=n8n&logoColor=white" />
|
||||
<img alt="Chart.js" style="display:inline-block;" src="https://img.shields.io/badge/-Chart.js-FF6384?style=flat-square&logo=chartdotjs&logoColor=white" />
|
||||
<img alt="Riot API" style="display:inline-block;" src="https://img.shields.io/badge/-Riot_API-EB0029?style=flat-square&logo=riotgames&logoColor=white" />
|
||||
<img alt="WireGuard" style="display:inline-block;" src="https://img.shields.io/badge/-WireGuard-88171A?style=flat-square&logo=wireguard&logoColor=white" />
|
||||
<img alt="uBlock" style="display:inline-block;" src="https://img.shields.io/badge/-uBlock-800000?style=flat-square&logo=ublockorigin&logoColor=white" />
|
||||
<img alt="Redis" style="display:inline-block;" src="https://img.shields.io/badge/-Redis-FF4438?style=flat-square&logo=redis&logoColor=white" />
|
||||
<img alt="Authentik" style="display:inline-block;" src="https://img.shields.io/badge/-Authentik-FD4B2D?style=flat-square&logo=authentik&logoColor=white" />
|
||||
<img alt="Git" style="display:inline-block;" src="https://img.shields.io/badge/-Git-F05032?style=flat-square&logo=git&logoColor=white" />
|
||||
<img alt="Cloudflare" style="display:inline-block;" src="https://img.shields.io/badge/-Cloudflare-F38020?style=flat-square&logo=cloudflare&logoColor=white" />
|
||||
<img alt="D3.js" style="display:inline-block;" src="https://img.shields.io/badge/-D3.js-F9A03C?style=flat-square&logo=d3&logoColor=white" />
|
||||
<img alt="JavaScript" style="display:inline-block;" src="https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat-square&logo=javascript&logoColor=white" />
|
||||
<img alt="Gitea" style="display:inline-block;" src="https://img.shields.io/badge/-Gitea-609926?style=flat-square&logo=gitea&logoColor=white" />
|
||||
<img alt="Bash" style="display:inline-block;" src="https://img.shields.io/badge/-Bash-4EAA25?style=flat-square&logo=gnubash&logoColor=white" />
|
||||
<img alt="Paperless" style="display:inline-block;" src="https://img.shields.io/badge/-Paperless-17541F?style=flat-square&logo=paperlessngx&logoColor=white" />
|
||||
<img alt="nginx" style="display:inline-block;" src="https://img.shields.io/badge/-nginx-009639?style=flat-square&logo=nginx&logoColor=white" />
|
||||
<img alt="LaTeX" style="display:inline-block;" src="https://img.shields.io/badge/-LaTeX-008080?style=flat-square&logo=latex&logoColor=white" />
|
||||
<img alt="Tailwind" style="display:inline-block;" src="https://img.shields.io/badge/-Tailwind-06B6D4?style=flat-square&logo=tailwindcss&logoColor=white" />
|
||||
<img alt="SonarQube" style="display:inline-block;" src="https://img.shields.io/badge/-SonarQube-4E9BCD?style=flat-square&logo=sonarqube&logoColor=white" />
|
||||
<img alt="Docker" style="display:inline-block;" src="https://img.shields.io/badge/-Docker-2496ED?style=flat-square&logo=Docker&logoColor=white" />
|
||||
<img alt="Python" style="display:inline-block;" src="https://img.shields.io/badge/-Python-3776AB?style=flat-square&logo=python&logoColor=white" />
|
||||
<img alt="MariaDB" style="display:inline-block;" src="https://img.shields.io/badge/-MariaDB-1F305F?style=flat-square&logo=mariadb&logoColor=white" />
|
||||
<img alt="Immich" style="display:inline-block;" src="https://img.shields.io/badge/-Immich-4250AF?style=flat-square&logo=immich&logoColor=white" />
|
||||
<img alt="Markdown" style="display:inline-block;" src="https://img.shields.io/badge/-Markdown-000000?style=flat-square&logo=markdown&logoColor=white" />
|
||||
<img alt="Django" style="display:inline-block;" src="https://img.shields.io/badge/-Django-092E20?style=flat-square&logo=django&logoColor=white" />
|
||||
<img alt="Ghost" style="display:inline-block;" src="https://img.shields.io/badge/-Ghost-15171A?style=flat-square&logo=ghost&logoColor=white" />
|
||||
<img alt="Markdown" style="display:inline-block;" src="https://img.shields.io/badge/-Markdown-000000?style=flat-square&logo=markdown&logoColor=white" />
|
||||
<img alt="Vaultwarden" style="display:inline-block;" src="https://img.shields.io/badge/-Vaultwarden-000000?style=flat-square&logo=vaultwarden&logoColor=white" />
|
||||
</p>
|
||||
|
||||
<h2>🎁 Open source</h2>
|
||||
@@ -55,37 +63,31 @@
|
||||
<td><img alt="Last Commit" src="https://img.shields.io/github/last-commit/marvinscham/bibtex-oss?style=flat-square&labelColor=343b41"/></td>
|
||||
</tr></tbody>
|
||||
</table>
|
||||
<h2>📊 30-day breakdown</h2>
|
||||
<h2>📊 30-day coding activity</h2>
|
||||
|
||||
|
||||
|
||||
<pre>
|
||||
C++ 1:03:30 █████████████████████------------------- 53%
|
||||
YAML 7:49 ██████---------------------------------- 15%
|
||||
Docker 2:33 █--------------------------------------- 4%
|
||||
Python 2:12 █--------------------------------------- 4%
|
||||
Bash 2:06 █--------------------------------------- 4%
|
||||
Json 1:49 █--------------------------------------- 3%
|
||||
Lang hh:mm
|
||||
C++ 27:30 █████████████████████------------------- 53%
|
||||
YAML 7:34 █████----------------------------------- 14%
|
||||
Python 2:31 █--------------------------------------- 4%
|
||||
Json 2:14 █--------------------------------------- 4%
|
||||
Docker 2:12 █--------------------------------------- 4%
|
||||
Bash 2:08 █--------------------------------------- 4%
|
||||
</pre>
|
||||
|
||||
<h2>📓 Latest blog posts</h2>
|
||||
<ul>
|
||||
<li><a href="https://blog.marvinscham.de/css-color-filtering-svg/">CSS: Color Filtering SVG images</a></li>
|
||||
<li><a href="https://blog.marvinscham.de/splitting-midi/">Splitting MIDI Controller Input</a></li>
|
||||
<li><a href="https://blog.marvinscham.de/dkim-strato-cloudflare/">(DE) DKIM mit Strato SMTP und Cloudflare DNS</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>👥 Social</h2>
|
||||
|
||||
<p align="center" style="text-align:center;"><a href="https://marvinscham.de" style="display:inline-block;" target="_blank"><img alt="Homepage" src="https://img.shields.io/badge/Homepage-%230d254c.svg?&style=for-the-badge&logo=googlechrome&logoColor=white" /></a>
|
||||
<a href="https://github.vom/marvinscham" style="display:inline-block;" target="_blank"><img alt="GitHub" src="https://img.shields.io/badge/GitHub-%23181717.svg?&style=for-the-badge&logo=github&logoColor=white" /></a>
|
||||
<a href="https://www.linkedin.com/in/marvin-scham-58576216b/" style="display:inline-block;" target="_blank"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-%230A66C2.svg?&style=for-the-badge&logo=linkedin&logoColor=white" /></a>
|
||||
<a href="https://duolingo.com/profile/marvinscham" style="display:inline-block;" target="_blank"><img alt="Duolingo" src="https://img.shields.io/badge/Duolingo-%2358CC02.svg?&style=for-the-badge&logo=duolingo&logoColor=white" /></a>
|
||||
<p align="center" style="text-align:center;"><a href="https://marvinscham.de" style="display:inline-block;" target="_blank"><img alt="Homepage" src="https://img.shields.io/badge/Homepage-%230d254c.svg?&style=for-the-badge&logo=&logoColor=white" /></a>
|
||||
<a href="https://github.vom/marvinscham" style="display:inline-block;" target="_blank"><img alt="GitHub" src="https://img.shields.io/badge/GitHub-%23181717.svg?&style=for-the-badge&logo=&logoColor=white" /></a>
|
||||
<a href="https://www.linkedin.com/in/marvin-scham-58576216b/" style="display:inline-block;" target="_blank"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-%230A66C2.svg?&style=for-the-badge&logo=&logoColor=white" /></a>
|
||||
<a href="https://duolingo.com/profile/marvinscham" style="display:inline-block;" target="_blank"><img alt="Duolingo" src="https://img.shields.io/badge/Duolingo-%2358CC02.svg?&style=for-the-badge&logo=&logoColor=white" /></a>
|
||||
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p align="center" style="text-align:center;">Last update: Saturday, 13 September 18:22 CEST</p>
|
||||
<p align="center" style="text-align:center;">Last update: Sunday, 14 September 01:58 CEST</p>
|
||||
<p align="center" style="text-align:center;"><a href="https://github.com/marvinscham/marvinscham/actions/workflows/metrics.yml"><img src="https://github.com/marvinscham/marvinscham/actions/workflows/metrics.yml/badge.svg" alt="Update README" style="display:inline-block;"></a> <img alt="made with ♥" style="display:inline-block;" src="https://img.shields.io/badge/made_with-%E2%99%A5-663399?style=flat&labelColor=%23343B41"></p>
|
||||
@@ -41,16 +41,10 @@ def calc_darkness_bias(obj, threshold):
|
||||
|
||||
|
||||
def seconds_to_string(seconds):
|
||||
days = seconds // 86400
|
||||
remaining_seconds = seconds % 86400
|
||||
hours = remaining_seconds // 3600
|
||||
remaining_minutes = (remaining_seconds % 3600) // 60
|
||||
hours = seconds // 3600
|
||||
remaining_minutes = (seconds % 3600) // 60
|
||||
|
||||
time_string = ""
|
||||
if days > 0:
|
||||
time_string += f"{days}:{hours:02}"
|
||||
else:
|
||||
time_string += f"{hours}"
|
||||
time_string = f"{hours}"
|
||||
time_string += f":{remaining_minutes:02}"
|
||||
|
||||
return time_string
|
||||
@@ -71,7 +65,7 @@ with open(os.path.join(resource_dir, "socials.json")) as f:
|
||||
socials = json.load(f)
|
||||
|
||||
# Sort to build rainbow
|
||||
hue_shift = 0.35
|
||||
hue_shift = 0.8
|
||||
darkness_bias = 0.2
|
||||
|
||||
technologies = sorted(
|
||||
@@ -81,8 +75,10 @@ technologies = sorted(
|
||||
|
||||
blog_entries = {}
|
||||
try:
|
||||
ghost_base_url = os.getenv("GHOST_URL").rstrip("/")
|
||||
ghost_api_key = os.getenv("GHOST_API_KEY")
|
||||
response = requests.get(
|
||||
f"{os.getenv("GHOST_URL")}/ghost/api/content/posts/?key={os.getenv("GHOST_KEY")}"
|
||||
f"{ghost_base_url}/ghost/api/content/posts/?key={ghost_api_key}"
|
||||
)
|
||||
blog_entries = response.json()["posts"][:3]
|
||||
except Exception as e:
|
||||
@@ -95,8 +91,9 @@ try:
|
||||
waka_token = base64.b64encode(os.getenv("WAKAPI_KEY").encode("ascii")).decode(
|
||||
"ascii"
|
||||
)
|
||||
wakapi_base_url = os.getenv("WAKAPI_URL").rstrip("/")
|
||||
response = requests.get(
|
||||
f"{os.getenv("WAKAPI_URL")}/api/summary?interval=30_days",
|
||||
f"{wakapi_base_url}/api/summary?interval=30_days",
|
||||
headers={"Authorization": f"Basic {waka_token}"},
|
||||
)
|
||||
waka_info = response.json()
|
||||
@@ -106,17 +103,19 @@ try:
|
||||
project_list = waka_info["projects"][:4]
|
||||
lang_list = waka_info["languages"][:6]
|
||||
|
||||
max_name_len = max(len(entry["key"]) for entry in project_list)
|
||||
# max_name_len = max(len(entry["key"]) for entry in project_list)
|
||||
max_lang_len = max(len(entry["key"]) for entry in lang_list)
|
||||
max_key_len = max(max_name_len, max_lang_len)
|
||||
# max_key_len = max(max_name_len, max_lang_len)
|
||||
max_key_len = max_lang_len
|
||||
|
||||
max_proj_time_len = max(
|
||||
len(seconds_to_string(entry["total"])) for entry in project_list
|
||||
)
|
||||
# max_proj_time_len = max(
|
||||
# len(seconds_to_string(entry["total"])) for entry in project_list
|
||||
# )
|
||||
max_lang_time_len = max(
|
||||
len(seconds_to_string(entry["total"])) for entry in lang_list
|
||||
)
|
||||
max_total_len = max(max_proj_time_len, max_lang_time_len)
|
||||
# max_total_len = max(max_proj_time_len, max_lang_time_len)
|
||||
max_total_len = max_lang_time_len
|
||||
|
||||
# waka_projects += "<pre>\n"
|
||||
# for project in project_list:
|
||||
@@ -135,15 +134,18 @@ try:
|
||||
# waka_projects += "</pre>"
|
||||
|
||||
waka_langs += "<pre>\n"
|
||||
waka_langs += f"{'Lang':<{max_key_len}} "
|
||||
waka_langs += f"{'hh:mm':>{max_total_len}} \n"
|
||||
for lang in lang_list:
|
||||
filled_length = int((lang["total"] / total_duration) * MAX_BAR_LENGTH)
|
||||
progress_bar = BAR_CHAR * filled_length + EMPTY_BAR_CHAR * (
|
||||
MAX_BAR_LENGTH - filled_length
|
||||
)
|
||||
percentage_str = str(int((lang["total"] / total_duration * 100))) + "%"
|
||||
time_string = seconds_to_string(lang["total"])
|
||||
|
||||
waka_langs += f"{lang['key']:<{max_key_len}} "
|
||||
waka_langs += f"{seconds_to_string(lang["total"]):>{max_total_len}} "
|
||||
waka_langs += f"{time_string:>{max_total_len}} "
|
||||
waka_langs += f"{progress_bar} "
|
||||
waka_langs += f"{percentage_str:>3}\n"
|
||||
waka_langs += "</pre>"
|
||||
|
||||
5
resources/README.md
Normal file
5
resources/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Resources
|
||||
|
||||
## Logo source for shields.io icons
|
||||
|
||||
> https://simpleicons.org/
|
||||
@@ -1,8 +1,8 @@
|
||||
<h1 align="center" style="text-align:center;">Welcome! <img height="28" style="height:1em;display:inline-block;" src="https://raw.githubusercontent.com/marvinscham/marvinscham/main/resources/wave.gif"></h1>
|
||||
<p align="center" style="text-align:center;">I'm Marvin – M.Sc. student, fullstack developer and creator of <a href="https://masterychart.com">Mastery Chart</a>.<br>Located in Baden-Württemberg, Germany <img height="16" style="height:1em;display:inline-block;" src="https://marvinscham.de/assets/img/lang/de.png">.</p>
|
||||
<p align="center" style="text-align:center;">I'm Marvin – Software engineer and creator of <a href="https://masterychart.com">Mastery Chart</a>.<br>Located in Baden-Württemberg, Germany <img height="16" style="height:1em;display:inline-block;" src="https://marvinscham.de/assets/img/lang/de.png">.</p>
|
||||
{# Derived from https://github.com/thmsgbrt/thmsgbrt #}
|
||||
|
||||
<h2>🛠 Tools I use</h2>
|
||||
<h2>🛠 Things I use</h2>
|
||||
<p>
|
||||
{% for item in technologies -%}
|
||||
<img alt="{{ item['name'] }}" style="display:inline-block;" src="https://img.shields.io/badge/-{{ item["name"] | replace(" ", "_") }}-{{ item['color'] | replace("#", "") }}?style=flat-square&logo={{ item['logo'] or item['name'] | replace(" ", "_") }}&logoColor=white" />
|
||||
@@ -26,7 +26,7 @@
|
||||
</table>
|
||||
|
||||
{%- if waka_stats|length > 1 %}
|
||||
<h2>📊 30-day breakdown</h2>
|
||||
<h2>📊 30-day coding activity</h2>
|
||||
|
||||
{{ waka_stats }}
|
||||
{% endif %}
|
||||
|
||||
@@ -3,24 +3,24 @@
|
||||
"name": "Homepage",
|
||||
"url": "https://marvinscham.de",
|
||||
"color": "#0d254c",
|
||||
"logo": "googlechrome"
|
||||
"logo": ""
|
||||
},
|
||||
{
|
||||
"name": "GitHub",
|
||||
"url": "https://github.vom/marvinscham",
|
||||
"color": "#181717",
|
||||
"logo": "github"
|
||||
"logo": ""
|
||||
},
|
||||
{
|
||||
"name": "LinkedIn",
|
||||
"url": "https://www.linkedin.com/in/marvin-scham-58576216b/",
|
||||
"color": "#0A66C2",
|
||||
"logo": "linkedin"
|
||||
"logo": ""
|
||||
},
|
||||
{
|
||||
"name": "Duolingo",
|
||||
"url": "https://duolingo.com/profile/marvinscham",
|
||||
"color": "#58CC02",
|
||||
"logo": "duolingo"
|
||||
"logo": ""
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
[
|
||||
{ "name": "Adminer", "logo": "adminer", "color": "#34567C" },
|
||||
{ "name": "Authentik", "logo": "authentik", "color": "#FD4B2D" },
|
||||
{ "name": "Bash", "logo": "gnubash", "color": "#4EAA25" },
|
||||
{ "name": "Chart.js", "logo": "chartdotjs", "color": "#FF6384" },
|
||||
{ "name": "Calibre--Web", "logo": "calibreweb", "color": "#45B29D" },
|
||||
{ "name": "Cloudflare", "logo": "cloudflare", "color": "#F38020" },
|
||||
{ "name": "C%2b%2b", "logo": "cplusplus", "color": "#00599C" },
|
||||
{ "name": "CSS", "logo": "css", "color": "#663399" },
|
||||
{ "name": "D3.js", "logo": "d3", "color": "#F9A03C" },
|
||||
{ "name": "Django", "logo": "django", "color": "#092E20" },
|
||||
{ "name": "Docker", "logo": "Docker", "color": "#2496ED" },
|
||||
{ "name": "Ghost", "logo": "ghost", "color": "#15171A" },
|
||||
{ "name": "Git", "logo": "git", "color": "#F05032" },
|
||||
@@ -12,17 +14,23 @@
|
||||
{ "name": "Immich", "logo": "immich", "color": "#4250AF" },
|
||||
{ "name": "JavaScript", "logo": "javascript", "color": "#F7DF1E" },
|
||||
{ "name": "LaTeX", "logo": "latex", "color": "#008080" },
|
||||
{ "name": "Linux Mint", "logo": "linuxmint", "color": "#86BE43" },
|
||||
{ "name": "MariaDB", "logo": "mariadb", "color": "#1F305F" },
|
||||
{ "name": "Markdown", "logo": "markdown", "color": "#000000" },
|
||||
{ "name": "n8n", "logo": "n8n", "color": "#EA4B71" },
|
||||
{ "name": "Nextcloud", "logo": "nextcloud", "color": "#0082C9" },
|
||||
{ "name": "nginx", "logo": "nginx", "color": "#009639" },
|
||||
{ "name": "Obsidian", "logo": "obsidian", "color": "#7C3AED" },
|
||||
{ "name": "Paperless", "logo": "paperlessngx", "color": "#17541F" },
|
||||
{ "name": "PHP", "logo": "php", "color": "#777BB4" },
|
||||
{ "name": "Plausible", "logo": "plausibleanalytics", "color": "#5850EC" },
|
||||
{ "name": "Python", "logo": "python", "color": "#3776AB" },
|
||||
{ "name": "Redis", "logo": "redis", "color": "#FF4438" },
|
||||
{ "name": "Riot API", "logo": "riotgames", "color": "#EB0029" },
|
||||
{ "name": "SonarQube", "logo": "sonarqube", "color": "#4E9BCD" },
|
||||
{ "name": "Tailwind", "logo": "tailwindcss", "color": "#06B6D4" },
|
||||
{ "name": "Sass", "logo": "sass", "color": "#CC6699" },
|
||||
{ "name": "SonarQube", "logo": "sonarqubeserver", "color": "#126ED3" },
|
||||
{ "name": "Traefik", "logo": "traefikproxy", "color": "#24A1C1" },
|
||||
{ "name": "uBlock", "logo": "ublockorigin", "color": "#800000" },
|
||||
{ "name": "Vaultwarden", "logo": "vaultwarden", "color": "#000000" },
|
||||
{ "name": "WireGuard", "logo": "wireguard", "color": "#88171A" }
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user