mirror of
https://github.com/marvinscham/marvinscham.git
synced 2025-12-07 18:50:46 +01:00
Compare commits
151 Commits
912c0f1d64
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d069a6b42e | ||
|
|
85483f09d3 | ||
|
|
7678e43dd2 | ||
|
|
e0502ed0c0 | ||
|
|
5d199d7e49 | ||
|
|
21c51ca1cd | ||
|
|
1f3d598aeb | ||
|
|
e667618aa4 | ||
|
|
4b7187a19a | ||
|
|
4684260066 | ||
|
|
fbc4aee8ac | ||
|
|
155095b35e | ||
|
|
fdeac72d68 | ||
|
|
6e2530a38a | ||
|
|
f4cd22ac0c | ||
|
|
fe1d9ee1fc | ||
|
|
464a6b2e71 | ||
|
|
c431640cd1 | ||
|
|
18daec6404 | ||
|
|
ebeca6e6b1 | ||
|
|
ad6a98800c | ||
|
|
d5f2606fc8 | ||
|
|
ec58bcb542 | ||
|
|
a679456936 | ||
|
|
adcba88590 | ||
|
|
e412a5367c | ||
|
|
c461784f94 | ||
|
|
e89f983169 | ||
|
|
7f89b4b3f3 | ||
|
|
1617d9746c | ||
|
|
6b4962f4fd | ||
|
|
9899061f6d | ||
|
|
3fe20dbbcf | ||
|
|
ff291d1958 | ||
|
|
e52e2601f7 | ||
|
|
033a383161 | ||
|
|
07a8b7c24b | ||
|
|
0690c56450 | ||
|
|
54634723c0 | ||
|
|
cc266cc264 | ||
|
|
367792f933 | ||
|
|
3b122aa476 | ||
|
|
3a061a6353 | ||
|
|
9d1690d8fe | ||
|
|
d25b8dc623 | ||
|
|
164e6789c1 | ||
|
|
c6b7d4c8ea | ||
|
|
598aae3685 | ||
|
|
de475b8600 | ||
|
|
535e4840c0 | ||
|
|
11403f6881 | ||
|
|
84cd04bbe1 | ||
|
|
71d43f0eb5 | ||
|
|
9516fadcad | ||
|
|
158e4e4743 | ||
|
|
71b3060595 | ||
|
|
b7a6dc646c | ||
|
|
eebfe11abf | ||
|
|
e72fad8601 | ||
|
|
4209971b62 | ||
|
|
58f09b2f78 | ||
|
|
3f67b810d9 | ||
|
|
9700c6754e | ||
|
|
d586cb943f | ||
|
|
76b7e14894 | ||
|
|
f84f97cae9 | ||
|
|
e02f6212e3 | ||
|
|
8c17eed374 | ||
|
|
0220133666 | ||
|
|
aea52ec616 | ||
|
|
6745b6f42b | ||
|
|
bc4e2957f0 | ||
|
|
c76273a5f8 | ||
|
|
3ac5cf6d3d | ||
|
|
139eff58d8 | ||
|
|
fb5ad0edb9 | ||
|
|
e9e6254603 | ||
|
|
ab9c00a7e9 | ||
|
|
82a99c5606 | ||
|
|
78c5acee7f | ||
|
|
a438f9864b | ||
|
|
079899a3ea | ||
|
|
7ed502acac | ||
|
|
97acaa7baf | ||
|
|
7543dcb7e9 | ||
|
|
e319b49d72 | ||
|
|
a148b3bbb3 | ||
|
|
5d80445ae2 | ||
|
|
35e347a2b0 | ||
|
|
a9e503968b | ||
|
|
80abff33f5 | ||
|
|
63f75aa0d3 | ||
|
|
3f1da97d38 | ||
|
|
49ca67e2b8 | ||
|
|
f80e719e9d | ||
|
|
1af0a8633f | ||
|
|
ea6d38708c | ||
|
|
7f40b7d599 | ||
|
|
2cd070959c | ||
|
|
7186ab1772 | ||
|
|
edc30c55a0 | ||
|
|
5156b5dd50 | ||
|
|
e462166183 | ||
|
|
6a9df37c05 | ||
|
|
b79ffd2a77 | ||
|
|
9ef5f5d25b | ||
|
|
fd003cc8a8 | ||
|
|
426daa80b3 | ||
|
|
22a045fd17 | ||
|
|
8877780066 | ||
|
|
31e9a66a71 | ||
|
|
b5cbd8bac8 | ||
|
|
42b9ba8b1b | ||
|
|
d0c666cc33 | ||
|
|
4a107ae997 | ||
|
|
ea9f2b5f78 | ||
|
|
9f390b4bc2 | ||
|
|
637ee5bae6 | ||
|
|
55d4806620 | ||
|
|
22376bc4c5 | ||
|
|
0c852b2a2f | ||
|
|
b8cb569755 | ||
|
|
47dffcd4f1 | ||
|
|
989179d856 | ||
|
|
82a25260d3 | ||
|
|
9327da9695 | ||
|
|
8d8fc0c47f | ||
|
|
7611da5f0e | ||
|
|
6faa2376e1 | ||
|
|
35c265623a | ||
|
|
ab4fb613fb | ||
|
|
50c6e079d2 | ||
|
|
001ef26305 | ||
|
|
9d3bf8623a | ||
|
|
3c75812a24 | ||
|
|
0552eb08f0 | ||
|
|
c1fc9cd9bc | ||
|
|
c7de215758 | ||
|
|
4d9064654b | ||
|
|
cfceb12664 | ||
|
|
0c51ce9353 | ||
|
|
e4d3c754bb | ||
|
|
e2947e069c | ||
|
|
644eebb8ac | ||
|
|
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:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v6
|
||||||
with:
|
with:
|
||||||
python-version: '3.12'
|
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>
|
<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>
|
<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="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="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="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="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="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="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="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="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="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="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="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="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>
|
</p>
|
||||||
|
|
||||||
<h2>🎁 Open source</h2>
|
<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>
|
<td><img alt="Last Commit" src="https://img.shields.io/github/last-commit/marvinscham/bibtex-oss?style=flat-square&labelColor=343b41"/></td>
|
||||||
</tr></tbody>
|
</tr></tbody>
|
||||||
</table>
|
</table>
|
||||||
<h2>📊 30-day breakdown</h2>
|
<h2>📊 30-day coding activity</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
C++ 1:03:30 █████████████████████------------------- 53%
|
Lang hh:mm
|
||||||
YAML 7:49 ██████---------------------------------- 15%
|
Python 15:24 █████████████--------------------------- 33%
|
||||||
Docker 2:33 █--------------------------------------- 4%
|
C++ 12:28 ██████████------------------------------ 27%
|
||||||
Python 2:12 █--------------------------------------- 4%
|
PHP 4:10 ███------------------------------------- 9%
|
||||||
Bash 2:06 █--------------------------------------- 4%
|
YAML 4:06 ███------------------------------------- 9%
|
||||||
Json 1:49 █--------------------------------------- 3%
|
Markdown 2:19 ██-------------------------------------- 5%
|
||||||
|
Bash 1:33 █--------------------------------------- 3%
|
||||||
</pre>
|
</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>
|
<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>
|
<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=github&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=linkedin&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=duolingo&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>
|
</p>
|
||||||
|
|
||||||
<hr>
|
<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: Monday, 24 November 05:36 CET</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>
|
<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):
|
def seconds_to_string(seconds):
|
||||||
days = seconds // 86400
|
hours = seconds // 3600
|
||||||
remaining_seconds = seconds % 86400
|
remaining_minutes = (seconds % 3600) // 60
|
||||||
hours = remaining_seconds // 3600
|
|
||||||
remaining_minutes = (remaining_seconds % 3600) // 60
|
|
||||||
|
|
||||||
time_string = ""
|
time_string = f"{hours}"
|
||||||
if days > 0:
|
|
||||||
time_string += f"{days}:{hours:02}"
|
|
||||||
else:
|
|
||||||
time_string += f"{hours}"
|
|
||||||
time_string += f":{remaining_minutes:02}"
|
time_string += f":{remaining_minutes:02}"
|
||||||
|
|
||||||
return time_string
|
return time_string
|
||||||
@@ -71,7 +65,7 @@ with open(os.path.join(resource_dir, "socials.json")) as f:
|
|||||||
socials = json.load(f)
|
socials = json.load(f)
|
||||||
|
|
||||||
# Sort to build rainbow
|
# Sort to build rainbow
|
||||||
hue_shift = 0.35
|
hue_shift = 0.8
|
||||||
darkness_bias = 0.2
|
darkness_bias = 0.2
|
||||||
|
|
||||||
technologies = sorted(
|
technologies = sorted(
|
||||||
@@ -81,8 +75,10 @@ technologies = sorted(
|
|||||||
|
|
||||||
blog_entries = {}
|
blog_entries = {}
|
||||||
try:
|
try:
|
||||||
|
ghost_base_url = os.getenv("GHOST_URL").rstrip("/")
|
||||||
|
ghost_api_key = os.getenv("GHOST_API_KEY")
|
||||||
response = requests.get(
|
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]
|
blog_entries = response.json()["posts"][:3]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -95,8 +91,9 @@ try:
|
|||||||
waka_token = base64.b64encode(os.getenv("WAKAPI_KEY").encode("ascii")).decode(
|
waka_token = base64.b64encode(os.getenv("WAKAPI_KEY").encode("ascii")).decode(
|
||||||
"ascii"
|
"ascii"
|
||||||
)
|
)
|
||||||
|
wakapi_base_url = os.getenv("WAKAPI_URL").rstrip("/")
|
||||||
response = requests.get(
|
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}"},
|
headers={"Authorization": f"Basic {waka_token}"},
|
||||||
)
|
)
|
||||||
waka_info = response.json()
|
waka_info = response.json()
|
||||||
@@ -106,17 +103,19 @@ try:
|
|||||||
project_list = waka_info["projects"][:4]
|
project_list = waka_info["projects"][:4]
|
||||||
lang_list = waka_info["languages"][:6]
|
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_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(
|
# max_proj_time_len = max(
|
||||||
len(seconds_to_string(entry["total"])) for entry in project_list
|
# len(seconds_to_string(entry["total"])) for entry in project_list
|
||||||
)
|
# )
|
||||||
max_lang_time_len = max(
|
max_lang_time_len = max(
|
||||||
len(seconds_to_string(entry["total"])) for entry in lang_list
|
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"
|
# waka_projects += "<pre>\n"
|
||||||
# for project in project_list:
|
# for project in project_list:
|
||||||
@@ -135,15 +134,18 @@ try:
|
|||||||
# waka_projects += "</pre>"
|
# waka_projects += "</pre>"
|
||||||
|
|
||||||
waka_langs += "<pre>\n"
|
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:
|
for lang in lang_list:
|
||||||
filled_length = int((lang["total"] / total_duration) * MAX_BAR_LENGTH)
|
filled_length = int((lang["total"] / total_duration) * MAX_BAR_LENGTH)
|
||||||
progress_bar = BAR_CHAR * filled_length + EMPTY_BAR_CHAR * (
|
progress_bar = BAR_CHAR * filled_length + EMPTY_BAR_CHAR * (
|
||||||
MAX_BAR_LENGTH - filled_length
|
MAX_BAR_LENGTH - filled_length
|
||||||
)
|
)
|
||||||
percentage_str = str(int((lang["total"] / total_duration * 100))) + "%"
|
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"{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"{progress_bar} "
|
||||||
waka_langs += f"{percentage_str:>3}\n"
|
waka_langs += f"{percentage_str:>3}\n"
|
||||||
waka_langs += "</pre>"
|
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>
|
<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 #}
|
{# Derived from https://github.com/thmsgbrt/thmsgbrt #}
|
||||||
|
|
||||||
<h2>🛠 Tools I use</h2>
|
<h2>🛠 Things I use</h2>
|
||||||
<p>
|
<p>
|
||||||
{% for item in technologies -%}
|
{% 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" />
|
<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>
|
</table>
|
||||||
|
|
||||||
{%- if waka_stats|length > 1 %}
|
{%- if waka_stats|length > 1 %}
|
||||||
<h2>📊 30-day breakdown</h2>
|
<h2>📊 30-day coding activity</h2>
|
||||||
|
|
||||||
{{ waka_stats }}
|
{{ waka_stats }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -3,24 +3,24 @@
|
|||||||
"name": "Homepage",
|
"name": "Homepage",
|
||||||
"url": "https://marvinscham.de",
|
"url": "https://marvinscham.de",
|
||||||
"color": "#0d254c",
|
"color": "#0d254c",
|
||||||
"logo": "googlechrome"
|
"logo": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "GitHub",
|
"name": "GitHub",
|
||||||
"url": "https://github.vom/marvinscham",
|
"url": "https://github.vom/marvinscham",
|
||||||
"color": "#181717",
|
"color": "#181717",
|
||||||
"logo": "github"
|
"logo": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "LinkedIn",
|
"name": "LinkedIn",
|
||||||
"url": "https://www.linkedin.com/in/marvin-scham-58576216b/",
|
"url": "https://www.linkedin.com/in/marvin-scham-58576216b/",
|
||||||
"color": "#0A66C2",
|
"color": "#0A66C2",
|
||||||
"logo": "linkedin"
|
"logo": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Duolingo",
|
"name": "Duolingo",
|
||||||
"url": "https://duolingo.com/profile/marvinscham",
|
"url": "https://duolingo.com/profile/marvinscham",
|
||||||
"color": "#58CC02",
|
"color": "#58CC02",
|
||||||
"logo": "duolingo"
|
"logo": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
[
|
[
|
||||||
|
{ "name": "Adminer", "logo": "adminer", "color": "#34567C" },
|
||||||
{ "name": "Authentik", "logo": "authentik", "color": "#FD4B2D" },
|
{ "name": "Authentik", "logo": "authentik", "color": "#FD4B2D" },
|
||||||
{ "name": "Bash", "logo": "gnubash", "color": "#4EAA25" },
|
{ "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": "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": "D3.js", "logo": "d3", "color": "#F9A03C" },
|
||||||
{ "name": "Django", "logo": "django", "color": "#092E20" },
|
|
||||||
{ "name": "Docker", "logo": "Docker", "color": "#2496ED" },
|
{ "name": "Docker", "logo": "Docker", "color": "#2496ED" },
|
||||||
{ "name": "Ghost", "logo": "ghost", "color": "#15171A" },
|
{ "name": "Ghost", "logo": "ghost", "color": "#15171A" },
|
||||||
{ "name": "Git", "logo": "git", "color": "#F05032" },
|
{ "name": "Git", "logo": "git", "color": "#F05032" },
|
||||||
@@ -12,17 +14,23 @@
|
|||||||
{ "name": "Immich", "logo": "immich", "color": "#4250AF" },
|
{ "name": "Immich", "logo": "immich", "color": "#4250AF" },
|
||||||
{ "name": "JavaScript", "logo": "javascript", "color": "#F7DF1E" },
|
{ "name": "JavaScript", "logo": "javascript", "color": "#F7DF1E" },
|
||||||
{ "name": "LaTeX", "logo": "latex", "color": "#008080" },
|
{ "name": "LaTeX", "logo": "latex", "color": "#008080" },
|
||||||
|
{ "name": "Linux Mint", "logo": "linuxmint", "color": "#86BE43" },
|
||||||
{ "name": "MariaDB", "logo": "mariadb", "color": "#1F305F" },
|
{ "name": "MariaDB", "logo": "mariadb", "color": "#1F305F" },
|
||||||
{ "name": "Markdown", "logo": "markdown", "color": "#000000" },
|
{ "name": "Markdown", "logo": "markdown", "color": "#000000" },
|
||||||
{ "name": "n8n", "logo": "n8n", "color": "#EA4B71" },
|
{ "name": "n8n", "logo": "n8n", "color": "#EA4B71" },
|
||||||
|
{ "name": "Nextcloud", "logo": "nextcloud", "color": "#0082C9" },
|
||||||
{ "name": "nginx", "logo": "nginx", "color": "#009639" },
|
{ "name": "nginx", "logo": "nginx", "color": "#009639" },
|
||||||
{ "name": "Obsidian", "logo": "obsidian", "color": "#7C3AED" },
|
{ "name": "Obsidian", "logo": "obsidian", "color": "#7C3AED" },
|
||||||
{ "name": "Paperless", "logo": "paperlessngx", "color": "#17541F" },
|
{ "name": "Paperless", "logo": "paperlessngx", "color": "#17541F" },
|
||||||
{ "name": "PHP", "logo": "php", "color": "#777BB4" },
|
{ "name": "PHP", "logo": "php", "color": "#777BB4" },
|
||||||
{ "name": "Plausible", "logo": "plausibleanalytics", "color": "#5850EC" },
|
{ "name": "Plausible", "logo": "plausibleanalytics", "color": "#5850EC" },
|
||||||
{ "name": "Python", "logo": "python", "color": "#3776AB" },
|
{ "name": "Python", "logo": "python", "color": "#3776AB" },
|
||||||
|
{ "name": "Redis", "logo": "redis", "color": "#FF4438" },
|
||||||
{ "name": "Riot API", "logo": "riotgames", "color": "#EB0029" },
|
{ "name": "Riot API", "logo": "riotgames", "color": "#EB0029" },
|
||||||
{ "name": "SonarQube", "logo": "sonarqube", "color": "#4E9BCD" },
|
{ "name": "Sass", "logo": "sass", "color": "#CC6699" },
|
||||||
{ "name": "Tailwind", "logo": "tailwindcss", "color": "#06B6D4" },
|
{ "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" }
|
{ "name": "WireGuard", "logo": "wireguard", "color": "#88171A" }
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user