feat(moritzgrafde): rewrite personal website with Vue 3, Vite, and Tailwind CSS

- Replace legacy Hugo static site generator and hugo-goa theme with a modern Vue 3 + Vite + TypeScript application
- Implement Clean Enterprise design system using Tailwind CSS with light/dark mode support
- Position website around Cloud Platform & Infrastructure Leadership (GCP & AWS central platforms, Kubernetes at scale, enterprise spin-off governance, and systems depth) without chronological resumes
- Add 6 comprehensive capability dossiers and verified credential badges (CKA, PSM II, M.Sc.)
- Implement interactive skill matrix with real-time text search and category filtering
- Add engineering philosophy section, contact channels with one-click email copying, and Impressum modal
- Configure multi-stage Dockerfile (Node builder to Nginx runtime) with custom gzip, caching, and security headers
- Update build scripts (Makefile, build.sh), .gitignore, and AGENTS.md documentation across the monorepo
This commit is contained in:
Moritz Graf
2026-09-26 20:37:53 +02:00
parent afb80bbba8
commit d2dac3470f
103 changed files with 3872 additions and 1924 deletions
-79
View File
@@ -1,79 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="Online business card - Moritz Graf">
<meta name="keywords" content="monitoring,ansible,configuration management,icinga2,grafana,ELK-Stack,prometheus,kubernetes,k3s,cncf,grafana,boto3,aws,terraform,terragrunt,atlantis,serverless,packer,loki,kustomize,jenkins,dependabot,oauth">
<base href="https://moritzgraf.de/">
<title>Moritz Graf</title>
<meta name="generator" content="Hugo 0.160.1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400|Roboto+Slab:400,700|Roboto:300,300i,400,400i,500,500i,700,700i">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="https://moritzgraf.de/css/main.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="theme-color" content="#ffffff">
</head>
<body lang="en-US">
<div class="container">
<section id="error-pane" class="row text-center error">
<h1 class="text-center">404</h1>
<p>Sorry! That page does not exist. It may have been removed or moved to a new section on the site. Click <a href="/">here</a> go back to the home page.</p>
</section>
<footer class="row text-center footer">
<hr />
<h6 class="text-center copyright">© 2021. Moritz Graf. <a href="http://creativecommons.org/licenses/by/3.0/">Some Rights Reserved</a>.</h6>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script type="text/javascript">
hljs.initHighlightingOnLoad();
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="js/main.js"></script>
</body>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#ffc40d</TileColor>
</tile>
</msapplication>
</browserconfig>
@@ -1,89 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="Online business card - Moritz Graf">
<meta name="keywords" content="monitoring,ansible,configuration management,icinga2,grafana,ELK-Stack,prometheus,kubernetes,k3s,cncf,grafana,boto3,aws,terraform,terragrunt,atlantis,serverless,packer,loki,kustomize,jenkins,dependabot,oauth">
<base href="https://moritzgraf.de/">
<title>Moritz Graf</title>
<meta name="generator" content="Hugo 0.160.1">
<link href="https://moritzgraf.de/categories/index.xml" rel="alternate" type="application/rss+xml" title="Moritz Graf" />
<link href="https://moritzgraf.de/categories/index.xml" rel="feed" type="application/rss+xml" title="Moritz Graf" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400|Roboto+Slab:400,700|Roboto:300,300i,400,400i,500,500i,700,700i">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="https://moritzgraf.de/css/main.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="theme-color" content="#ffffff">
</head>
<body lang="en-US">
<div class="container">
<section id="list-pane" class="row list">
<ul >
</ul>
</section>
<section id="menu-pane" class="row menu text-center">
<h4 class="text-center"><a class="menu-item" href="https://moritzgraf.de/">home</a></h4>
</section>
<footer class="row text-center footer">
<hr />
<h6 class="text-center copyright">© 2021. Moritz Graf. <a href="http://creativecommons.org/licenses/by/3.0/">Some Rights Reserved</a>.</h6>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script type="text/javascript">
hljs.initHighlightingOnLoad();
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="js/main.js"></script>
</body>
</html>
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on Moritz Graf</title>
<link>https://moritzgraf.de/categories/</link>
<description>Recent content in Categories on Moritz Graf</description>
<generator>Hugo</generator>
<language>en-US</language>
<atom:link href="https://moritzgraf.de/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>
-257
View File
@@ -1,257 +0,0 @@
@-ms-viewport
{
width: device-width;
}
@-o-viewport
{
width: device-width;
}
@viewport
{
width: device-width;
}
a,
a:hover,
a:visited,
a:link
{
text-decoration: none;
color: #526d7a;
}
body
{
font-family: 'Roboto Slab', 'Roboto', 'Lato', sans-serif;
font-size: 20px;
font-weight: 400;
width: auto;
height: 100%;
min-height: 100%;
margin: 0;
background-color: #fcfcfc;
}
html
{
position: relative;
height: 100%;
min-height: 100%;
margin: 0;
}
.author
{
color: #444;
}
.author h1,
.author h2,
.author h3,
.author h4,
.author h5,
.author h6,
.author p
{
font-family: 'Roboto Slab', serif;
}
.category
{
color: #966 !important;
}
.container
{
overflow: auto;
max-width: 680px;
padding: 0 15px;
}
.content
{
margin-top: 20px;
margin-bottom: 20px;
}
div.content
{
font-family: 'Roboto', sans-serif;
font-size: 18px;
font-weight: 300;
color: #777;
}
.copyright
{
font-family: 'Roboto', sans-serif;
font-size: 12px;
font-weight: 200;
}
.description
{
font-family: 'Roboto', sans-serif;
font-weight: 200;
color: #bbb;
}
.error
{
font-family: 'Roboto', sans-serif;
margin-top: 100px;
}
.error h1
{
font-size: 80px;
color: #bbb;
}
.error p
{
margin-top: 150px;
color: #777;
}
.excerpt
{
font-family: 'Lato', sans-serif;
font-size: 18px;
font-weight: 200;
color: #555;
margin-bottom: 20px;
}
.footer
{
margin-top: 10px;
color: #bbb;
}
.header
{
margin-top: 60px;
margin-bottom: 20px;
}
.headshot
{
width: 200px;
height: 200px;
}
.info
{
margin-top: 10px;
margin-bottom: 20px;
}
.intro
{
font-family: 'Roboto Slab', serif;
font-weight: 200;
color: #777;
}
h3.intro
{
margin-top: 0px
}
.list
{
font-family: 'Roboto', sans-serif;
margin-top: 50px;
}
.list li
{
list-style: none;
}
.list-entry
{
font-family: 'Roboto Slab', serif;
font-size: 25px;
font-weight: 400;
margin-top: 10px;
margin-bottom: 20px;
}
.list-entry-link
{
padding: 0;
}
.main-menu
{
margin-top: 10px;
margin-bottom: 20px;
}
.menu
{
margin-top: 10px;
margin-bottom: 20px;
}
.menu-item
{
font-family: 'Lato', sans-serif;
font-size: 20px;
font-weight: 300;
text-decoration: none;
color: #966 !important;
}
.meta
{
font-family: 'Roboto', sans-serif;
font-size: 12px;
font-weight: 200;
color: #bbb;
}
a.meta
{
color: #966;
}
h6.meta
{
font-family: 'Roboto', sans-serif;
font-size: 12px;
font-weight: 200;
color: #bbb;
}
section.meta {
margin-top:
}
.powered
{
font-family: 'Roboto', sans-serif;
font-size: 12px;
font-weight: 300;
}
.social {
margin-top: 10px;
margin-bottom: 20px;
}
.social,
.social a
{
color: #526d7a;
}
.title
{
font-family: 'Roboto Slab', serif;
font-weight: 400;
color: #555;
}
header.title
{
margin-top: 50px;
padding: 0 15px;
}
@media (max-width: 991px)
{
.header
{
margin-top: 50px;
margin-bottom: 20px;
}
.list
{
font-family: 'Roboto', sans-serif;
margin-top: 30px;
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

Before

Width:  |  Height:  |  Size: 874 KiB

After

Width:  |  Height:  |  Size: 874 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 888 KiB

-127
View File
@@ -1,127 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="Online business card - Moritz Graf">
<meta name="keywords" content="monitoring,ansible,configuration management,icinga2,grafana,ELK-Stack,prometheus,kubernetes,k3s,cncf,grafana,boto3,aws,terraform,terragrunt,atlantis,serverless,packer,loki,kustomize,jenkins,dependabot,oauth">
<base href="https://moritzgraf.de/">
<title>Moritz Graf</title>
<meta name="generator" content="Hugo 0.160.1">
<link href="https://moritzgraf.de/index.xml" rel="alternate" type="application/rss+xml" title="Moritz Graf" />
<link href="https://moritzgraf.de/index.xml" rel="feed" type="application/rss+xml" title="Moritz Graf" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400|Roboto+Slab:400,700|Roboto:300,300i,400,400i,500,500i,700,700i">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="https://moritzgraf.de/css/main.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="theme-color" content="#ffffff">
</head>
<body lang="en-US">
<div class="container">
<header class="row text-center header">
<img src="img/headshot.jpg" alt="Author Image" class="img-circle text-center headshot">
<h1 class="author">Moritz Graf</h1>
</header>
<section id="info-pane" class="row text-center info">
<h3 class="intro"><hr>
</h3>
<h4 class="description"><hr>
</h4>
</section>
<section id="social-pane" class="row text-center social">
<a href="https://twitter.com/TheIPtizer"><i class="fa fa-twitter" aria-hidden="true"></i></a>
<a href="https://github.com/iptizer"><i class="fa fa-github" aria-hidden="true"></i></a>
<a href="https://linkedin.com/in/moritz-graf-92abaa91"><i class="fa fa-linkedin" aria-hidden="true"></i></a>
<a href="https://stackoverflow.com/users/7779723"><i class="fa fa-stack-overflow" aria-hidden="true"></i></a>
<a href="mailto:contact-moritz@moritzgraf.de"><i class="fa fa-envelope-o" aria-hidden="true"></i></a>
<a href="https://www.xing.com/profile/Moritz_Graf4"><i class="fa fa-xing" aria-hidden="true"></i></a>
</section>
<section id="main-menu-pane" class="row text-center main-menu">
</section>
<footer class="row text-center footer">
<hr />
<h6 class="text-center copyright">© 2021. Moritz Graf. <a href="http://creativecommons.org/licenses/by/3.0/">Some Rights Reserved</a>.</h6>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script type="text/javascript">
hljs.initHighlightingOnLoad();
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="js/main.js"></script>
</body>
</html>
-11
View File
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Moritz Graf</title>
<link>https://moritzgraf.de/</link>
<description>Recent content on Moritz Graf</description>
<generator>Hugo</generator>
<language>en-US</language>
<atom:link href="https://moritzgraf.de/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>
-11
View File
@@ -1,11 +0,0 @@
// Copyright 2014-2015 Twitter, Inc.
// Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
var msViewportStyle = document.createElement('style')
msViewportStyle.appendChild(
document.createTextNode(
'@-ms-viewport{width:auto!important}'
)
)
document.querySelector('head').appendChild(msViewportStyle)
}
@@ -1,7 +0,0 @@
{
"name": "hugo-goa",
"icons": [
],
"theme_color": "#ffffff",
"display": "standalone"
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

@@ -1,30 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="152.000000pt" height="152.000000pt" viewBox="0 0 152.000000 152.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,152.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M719 1506 c-177 -61 -281 -271 -231 -465 14 -57 55 -145 71 -155 5
-3 12 -27 16 -53 3 -27 9 -62 11 -79 6 -36 -58 -232 -90 -279 -25 -37 -62 -72
-98 -91 -25 -13 -28 -12 -47 12 -12 15 -21 32 -22 38 0 6 -2 20 -5 31 -2 11
-5 32 -6 47 -2 29 -13 27 -42 -9 -10 -13 -23 -22 -30 -20 -14 5 -35 -22 -36
-48 -1 -19 -2 -19 -9 -1 -7 18 -9 17 -35 -10 -97 -103 -111 -239 -31 -314 26
-24 149 -70 175 -65 94 20 146 37 173 57 18 13 44 30 59 37 15 8 35 30 44 50
9 20 23 39 30 44 7 4 25 30 40 57 14 27 32 51 40 54 13 5 14 11 -30 -143 -22
-74 -21 -134 2 -154 20 -18 84 -47 105 -47 7 0 21 6 31 13 16 12 19 31 22 123
5 170 6 175 42 189 30 13 31 13 46 -26 9 -22 16 -48 16 -58 0 -21 67 -128 98
-155 38 -33 130 -73 159 -69 16 2 49 4 74 3 37 0 51 5 79 30 18 16 36 30 40
30 3 0 13 12 22 28 22 37 17 116 -10 167 -18 34 -23 34 -22 0 1 -10 -33 -69
-46 -82 -18 -19 -52 -16 -80 6 l-25 20 36 17 c19 9 42 28 51 43 9 15 32 36 52
46 74 40 89 123 39 222 l-24 46 -7 -39 c-8 -43 -31 -84 -46 -84 -6 0 -10 7
-10 15 0 24 -16 17 -17 -7 -3 -30 -27 -46 -64 -42 -74 9 -129 56 -182 155 -22
42 -24 55 -20 150 4 112 5 129 15 144 62 103 82 176 75 281 -10 145 -82 266
-191 319 -64 31 -152 40 -207 21z m167 -1062 c2 -16 6 -39 9 -51 7 -29 -13
-40 -20 -11 -9 36 -13 82 -8 91 7 12 13 3 19 -29z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

-11
View File
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://moritzgraf.de/categories/</loc>
</url><url>
<loc>https://moritzgraf.de/</loc>
</url><url>
<loc>https://moritzgraf.de/tags/</loc>
</url>
</urlset>
@@ -1,89 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="Online business card - Moritz Graf">
<meta name="keywords" content="monitoring,ansible,configuration management,icinga2,grafana,ELK-Stack,prometheus,kubernetes,k3s,cncf,grafana,boto3,aws,terraform,terragrunt,atlantis,serverless,packer,loki,kustomize,jenkins,dependabot,oauth">
<base href="https://moritzgraf.de/">
<title>Moritz Graf</title>
<meta name="generator" content="Hugo 0.160.1">
<link href="https://moritzgraf.de/tags/index.xml" rel="alternate" type="application/rss+xml" title="Moritz Graf" />
<link href="https://moritzgraf.de/tags/index.xml" rel="feed" type="application/rss+xml" title="Moritz Graf" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400|Roboto+Slab:400,700|Roboto:300,300i,400,400i,500,500i,700,700i">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="https://moritzgraf.de/css/main.css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="theme-color" content="#ffffff">
</head>
<body lang="en-US">
<div class="container">
<section id="list-pane" class="row list">
<ul >
</ul>
</section>
<section id="menu-pane" class="row menu text-center">
<h4 class="text-center"><a class="menu-item" href="https://moritzgraf.de/">home</a></h4>
</section>
<footer class="row text-center footer">
<hr />
<h6 class="text-center copyright">© 2021. Moritz Graf. <a href="http://creativecommons.org/licenses/by/3.0/">Some Rights Reserved</a>.</h6>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script type="text/javascript">
hljs.initHighlightingOnLoad();
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="js/main.js"></script>
</body>
</html>
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on Moritz Graf</title>
<link>https://moritzgraf.de/tags/</link>
<description>Recent content in Tags on Moritz Graf</description>
<generator>Hugo</generator>
<language>en-US</language>
<atom:link href="https://moritzgraf.de/tags/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>