diff --git a/.gitignore b/.gitignore
index 0d2619a..e23656f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
# generated directories
/public/*
/resources/_gen/*
+.vscode/
# ignored files
.directory
diff --git a/assets/footer.scss b/assets/footer.scss
new file mode 100644
index 0000000..a82421a
--- /dev/null
+++ b/assets/footer.scss
@@ -0,0 +1,25 @@
+footer {
+ color: var(--text-secondary);
+ grid-area: footer;
+ margin: 1em auto;
+ text-align: center;
+ p{
+ margin: .25em;
+ span {
+ &:not(:last-child) {
+ &::after {
+ content: '·';
+ padding: .25em;
+ }
+ }
+ a {
+ color: var(--text-secondary);
+ text-decoration-color: transparent;
+ &:hover {
+ text-decoration: underline;
+ text-decoration-color: var(--text-secondary);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/home.scss b/assets/home.scss
new file mode 100644
index 0000000..1693b5f
--- /dev/null
+++ b/assets/home.scss
@@ -0,0 +1,25 @@
+#introduction {
+ background: var(--vriish-gradient);
+}
+
+section {
+ position: relative;
+ h2 {
+ .more{
+ font-size: .75em;
+ font-weight: normal;
+ hyphens: none;
+ &::after {
+ content: "\27F6";
+ margin-left: .25em;
+ transition: margin .5s;
+ }
+ &:hover::after {
+ margin-left: .5em !important;
+ }
+ }
+ &:hover .more::after {
+ margin-left: .35em;
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/shortcodes/_index.scss b/assets/shortcodes/_index.scss
new file mode 100644
index 0000000..be86844
--- /dev/null
+++ b/assets/shortcodes/_index.scss
@@ -0,0 +1 @@
+@import "verticalposts";
\ No newline at end of file
diff --git a/assets/shortcodes/_verticalposts.scss b/assets/shortcodes/_verticalposts.scss
new file mode 100644
index 0000000..79aaf62
--- /dev/null
+++ b/assets/shortcodes/_verticalposts.scss
@@ -0,0 +1,31 @@
+.verticalposts {
+ hyphens: auto;
+ margin-top: 4em;
+ .verticalposts-wrapper {
+ border-radius: .5em;
+ display: flex;
+ flex-direction: row;
+ gap: 1em;
+ overflow-x: scroll;
+ scroll-snap-type: x proximity;
+ .post-group {
+ background: var(--vriish-gradient);
+ border-radius: .5em;
+ display: flex;
+ flex-direction: column;
+ scroll-snap-align: start;
+ min-width: 15em;
+ width: 33.333%;
+ .title {
+ flex: auto;
+ margin: 1em;
+ }
+ aside {
+ margin: 1em;
+ }
+ }
+ }
+ a {
+ text-decoration: none;
+ }
+}
\ No newline at end of file
diff --git a/assets/sidebar.scss b/assets/sidebar.scss
new file mode 100644
index 0000000..c3e3587
--- /dev/null
+++ b/assets/sidebar.scss
@@ -0,0 +1,156 @@
+// -----------
+// - sidebar -
+// -----------
+
+#sidebar {
+ background: var(--sidebar-background);
+ border-top: 2px solid var(--vriish-rose);
+ display: flex;
+ flex-direction: column;
+ grid-area: sidebar;
+ margin-top: -2px;
+ position: sticky;
+ top: 0;
+ z-index: 1;
+ gap: 1em;
+ padding: 1em;
+ @media (min-width: 921px) {
+ bottom: 0;
+ height: 100%;
+ }
+ header {
+ text-align: center;
+ user-select: none;
+ #avatar {
+ border-radius: 100%;
+ width: calc(100% - 2em);
+ max-width: 200px;
+ }
+ #name {
+ margin: 0;
+ font-weight: bold;
+ font-size: 1.8em;
+ }
+ #information {
+ margin: 0;
+ font-size: .8em;
+ }
+ }
+ #sidebar-menu {
+ user-select: none;
+ ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ }
+ li {
+ border-radius: .5em;
+ margin: .5em 0;
+ position: relative;
+ letter-spacing: .025em;
+ a {
+ display: block;
+ padding: .25em .5em;
+ }
+ ::after {
+ background: var(--vriish-gradient);
+ border-radius: .5em;
+ bottom: 0;
+ content: "";
+ left: 0;
+ position: absolute;
+ right: 100%;
+ top: 0;
+ transition: opacity .5s, width .5s;
+ opacity: 0;
+ width: 0;
+ z-index: -1;
+ }
+ &.active {
+ background: var(--vriish-gradient);
+ }
+ &:hover {
+ ::after {
+ opacity: 1;
+ right: 0;
+ width: 100%;
+ }
+ }
+ }
+ a {
+ text-decoration: none;
+ }
+ }
+ aside {
+ bottom: 1em;
+ position: absolute;
+ left: 1em;
+ right: 1em;
+ @media (max-width: 920px) {
+ position: initial;
+ }
+ #language-select {
+ position: relative;
+ pointer-events: none;
+ &:hover {
+ #languages {
+ //display: block;
+ bottom: 2em;
+ opacity: 100%;
+ pointer-events: all;
+ * {
+ pointer-events: all;
+ }
+ }
+ }
+ #language-icon {
+ text-decoration: none;
+ padding-top: 1em;
+ pointer-events: all;
+ &::after {
+ content: attr(data-page-lang);
+ position: absolute;
+ left: -4px;
+ font-size: 0.6em;
+ line-height: 1.5em;
+ bottom: 0;
+ text-transform: uppercase;
+ }
+ }
+ #languages {
+ background-color: var(--background);
+ border-radius: .5em;
+ margin: 0;
+ padding: 0;
+ user-select: none;
+ position: absolute;
+ //display: none;
+ bottom: 1em;
+ opacity: 0%;
+ transition: bottom .5s, opacity .5s;
+ li {
+ list-style: none;
+ overflow: hidden;
+ padding: .25em .5em;
+ position: relative;
+ transition: background .5s;
+ border-radius: .5em;
+ margin: .2em;
+ &:not(:last-of-type) {
+ margin-bottom: .5em;
+ }
+ &.active {
+ background: var(--vriish-gradient);
+ }
+ &:hover {
+ background: var(--vriish-gradient);
+ }
+ a {
+ text-decoration: none;
+ display: block;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/style.scss b/assets/style.scss
index 05c8c52..928e9bc 100644
--- a/assets/style.scss
+++ b/assets/style.scss
@@ -1,98 +1,108 @@
-:root {
- --background: hsl(210, 21%, 15%);
- --border: hsl(210, 21%, 20%);
- --text: hsl(210, 21%, 95%);
- --text-2: hsl(210, 21%, 80%);
- --text-secondary: hsl(210, 21%, 40%);
- --vriish-red: hsl(0, 100%, 75%);
- --rose: hsl(0, 100%, 75%);
- --orange: hsl(25, 100%, 75%);
- --gold: hsl(50, 100%, 75%);
- --emerald: hsl(130, 100%, 75%);
- --sky: hsl(215, 100%, 75%);
- --purpur: hsl(275, 100%, 75%);
- --white: hsl(360, 100%, 100%);
-}
-@media (prefers-color-scheme: light) {
- :root {
- --background: rgb(255, 245, 235);
- --border: rgb(225, 215, 205);
- --text: rgb(50, 40, 30);
- --text-2: rgb(90, 80, 70);
- }
-}
+// general
+@import "variables";
+@import "shortcodes";
+
+// site parts
+@import "sidebar";
+@import "footer";
+
+// pages
+@import "home";
* {
box-sizing: border-box;
- scrollbar-color: var(--vriish-red) var(--background);
+ scrollbar-color: var(--vriish-rose) var(--background);
scrollbar-width: thin;
&::-webkit-scrollbar {
background: var(--background);
width: 6px;
}
- &::-webkit-scrollbar-thumb { background: var(--vriish-red); }
+ &::-webkit-scrollbar-thumb { background: var(--vriish-rose); }
}
html {
+ margin: 0;
overflow-x: hidden;
overflow-y: scroll;
-}
-body {
- background: var(--background);
- color: var(--text);
- display: grid;
- font-family: system-ui, sans-serif;
- font-size: 1.2em;
- line-height: 1.7;
- margin: 0;
-}
-
-h1, h2, h3, h4, h5, h6 {
- line-height: 1em;
- margin: .8em 0;
-}
-
-a {
- color: var(--text);
- text-decoration: underline;
- text-decoration-color: var(--vriish-red);
- text-underline-offset: 3px;
- transition: text-decoration-color .2s;
- &:hover { text-decoration-color: var(--text); }
-}
-
-center {
- margin: 19.2px 0;
- text-align: center;
-}
-
-pre {
- border: 1px solid var(--vriish-red);
- border-radius: 4px;
- overflow: auto;
- padding: 10px 15px;
-}
-
-p {
- hyphens: auto;
- img {
- border: 2px solid var(--border);
- border-radius: 4px;
- display: block;
- margin: 0 auto;
+ padding: 0;
+ body {
+ background: var(--background);
+ color: var(--text);
+ display: grid;
+ font-family: system-ui, sans-serif;
+ font-size: 1.2em;
+ grid-template-areas:
+ "header header"
+ "sidebar content"
+ "sidebar footer";
+ grid-template-columns: 250px 1fr;
+ grid-template-rows: min-content;
+ line-height: 1.7;
+ margin: 0;
+ min-height: 100vh;
+ @media (max-width: 920px) {
+ font-size: 1em;
+ grid-template-areas:
+ "header"
+ "content"
+ "sidebar"
+ "footer";
+ grid-template-columns: 1fr;
+ }
+ h1, h2, h3, h4, h5, h6 {
+ line-height: 1em;
+ margin: .8em 0;
+ }
+ a {
+ color: var(--text);
+ text-decoration: underline;
+ text-decoration-color: var(--vriish-rose);
+ text-underline-offset: 3px;
+ transition: text-decoration-color .2s;
+ &:hover { text-decoration-color: var(--text); }
+ }
+ pre {
+ border: 1px solid var(--vriish-rose);
+ border-radius: 4px;
+ overflow: auto;
+ padding: 10px 15px;
+ }
+ p {
+ hyphens: auto;
+ img {
+ border: 2px solid var(--border);
+ border-radius: 4px;
+ display: block;
+ margin: 0 auto;
+ }
+ }
+ hr {
+ border: 1px solid var(--border);
+ color: var(--border);
+ margin: 60px 0;
+ }
}
}
-hr {
- border: 1px solid var(--border);
- color: var(--border);
- margin: 60px 0;
+.global-header {
+ align-items: center;
+ grid-area: header;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ gap: .5em;
+ justify-content: center;
+ padding: 3em 0;
+ z-index: 2;
+ h1, p {
+ margin: 0;
+ }
}
// ------------------------
// - header / nav; footer -
// ------------------------
-header, footer {
+/*header, footer {
align-items: center;
display: flex;
overflow: auto;
@@ -104,7 +114,7 @@ header, footer {
text-decoration-thickness: 2px !important;
text-underline-offset: 6px;
margin: 0 15px;
- &:hover { text-decoration-color: var(--vriish-red); }
+ &:hover { text-decoration-color: var(--vriish-rose); }
}
}
header {
@@ -116,7 +126,7 @@ header {
font-size: 1em;
margin: 0;
a {
- color: var(--vriish-red);
+ color: var(--vriish-rose);
}
}
nav {
@@ -126,51 +136,25 @@ header {
aside {
margin-left: auto;
}
-}
-footer {
- bottom: 0;
- color: var(--text-secondary);
- position: absolute;
- a { color: var(--text-secondary); }
- span {
- padding: 17.6px 30px;
- margin-right: auto;
- }
-}
+}*/
+
// --------
// - main -
// --------
main {
+ grid-area: content;
margin: 20px auto;
- max-width: 720px;
+ max-width: 1000px;
overflow: hidden;
padding: 30px;
width: 100%;
span { font-size: .8em; }
}
-#intro-heading {
- background-image: linear-gradient(180deg, var(--rose) 0%, var(--rose) 50%, var(--gold) 95%, var(--rose) 100%);
- background-clip: text;
- -webkit-background-clip: text;
- color: transparent;
- display: inline-block;
- margin: 0.55em 0;
-}
-
-span[title="Freude"], span[title="happiness"] {
- font-size: 1em;
-}
-
p.date-published {
margin-bottom: -1.5em;
font-size: smaller;
font-style: italic;
}
-@media (max-width: 576px) {
- main {
- margin: 0 auto;
- }
-}
diff --git a/assets/variables.scss b/assets/variables.scss
new file mode 100644
index 0000000..f7e9061
--- /dev/null
+++ b/assets/variables.scss
@@ -0,0 +1,32 @@
+:root {
+ --background: hsl(210, 21%, 15%);
+ --border: hsl(210, 21%, 20%);
+
+ --text: hsl(210, 21%, 95%);
+ --text-2: hsl(210, 21%, 80%);
+ --text-secondary: hsl(210, 21%, 40%);
+
+ --sidebar-background: hsl(210, 21%, 10%);
+
+ --vriish-rose: hsl(0, 100%, 75%);
+ --orange: hsl(25, 100%, 75%);
+ --gold: hsl(50, 100%, 75%);
+ --emerald: hsl(130, 100%, 75%);
+ --sky: hsl(215, 100%, 75%);
+ --purpur: hsl(275, 100%, 75%);
+ --white: hsl(360, 100%, 100%);
+
+ --vriish-gradient: linear-gradient(30deg, var(--orange) -100%, var(--vriish-rose) 100%);
+ --vriish-gradient-shadow: 2px 2px 10px var(--background);
+}
+@media (prefers-color-scheme: light) {
+ :root {
+ --background: hsl(0, 100%, 97.5%);
+ --border: hsl(0, 100%, 90%);
+
+ --text: hsl(0, 100%, 5%);
+ --text-2: hsl(0, 100%, 10%);
+
+ --sidebar-background: hsl(0, 100%, 95%);
+ }
+}
\ No newline at end of file
diff --git a/config.toml b/config.toml
deleted file mode 100644
index d20b093..0000000
--- a/config.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-baseURL = "https://vrifox.cc/"
-title = "Vris Cute Corner"
-enableRobotsTXT = true
-[menu]
-[[menu.name]]
- identifier = "vrifox.cc"
- name = "VrifoxCC"
- url = "/"
- weight = 1
-[[menu.main]]
- identifier = "kenntnisse"
- name = "Kenntnisse"
- url = "/kenntnisse/"
- weight = 1
-[[menu.main]]
- identifier = "Portfolio"
- name = "Portfolio"
- url = "/portfolio/"
- weight = 2
-[[menu.footer]]
- identifier = "blog"
- name = "Blog"
- url = "/blog/"
- weight = 1
-[[menu.footer]]
- identifier = "blogroll"
- name = "Empfehlungen"
- url = "/blogroll/"
- weight = 2
-[markup]
- [highlight]
- anchorLineNos = false
- lineNos = false
- lineNumbersInTable = false
- noClasses = false
- style = "dracula"
- tabWidth = 4
- [goldmark]
- [extensions]
- linkify = false
- [renderer]
- unsafe = true
diff --git a/config.yaml b/config.yaml
deleted file mode 100644
index f96239b..0000000
--- a/config.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-baseURL: https://vrifox.cc/
-title: "Vris Cute Corner"
-menu:
- name:
- - identifier: vrifox.cc
- name: VrifoxCC
- url: /
- weight: 1
- main:
- - identifier: kenntnisse
- name: Kenntnisse
- url: /kenntnisse/
- weight: 1
- - identifier: Portfolio
- name: Portfolio
- url: /portfolio/
- weight: 2
- footer:
- - identifier: blog
- name: Blog
- url: /blog/
- weight: 1
- - identifier: blogroll
- name: Empfehlungen
- url: /blogroll/
- weight: 2
-enableRobotsTXT: true
-markup:
- highlight:
- anchorLineNos: false
- lineNos: false
- lineNumbersInTable: false
- noClasses: false
- style: dracula
- tabWidth: 4
- goldmark:
- extensions:
- linkify: false
- renderer:
- unsafe: true
diff --git a/config/_default/config.yaml b/config/_default/config.yaml
new file mode 100644
index 0000000..0b57952
--- /dev/null
+++ b/config/_default/config.yaml
@@ -0,0 +1,29 @@
+baseURL: "https://vrifox.cc/"
+title: "Vris Cute Corner"
+
+enableRobotsTXT: true
+defaultContentLanguage: de
+defaultContentLanguageInSubdir: true
+
+params:
+ displayName: "Vri 🌈"
+ username: "@vrifox"
+ staticSiteGenerator: "Hugo"
+ staticSiteGeneratorLink: "https://gohugo.io/"
+
+markup:
+ highlight:
+ anchorLineNos: false
+ lineNos: false
+ lineNumbersInTable: false
+ noClasses: false
+ style: "dracula"
+ tabWidth: 4
+ goldmark:
+ extensions:
+ linkify: false
+ renderer:
+ unsafe: true
+
+disableKinds:
+ - sitemap
\ No newline at end of file
diff --git a/config/_default/languages.yaml b/config/_default/languages.yaml
new file mode 100644
index 0000000..e7c1f7e
--- /dev/null
+++ b/config/_default/languages.yaml
@@ -0,0 +1,6 @@
+de:
+ languageName: Deutsch
+ weight: 1
+en:
+ languageName: English
+ weight: 2
\ No newline at end of file
diff --git a/config/_default/menu.yaml b/config/_default/menu.yaml
new file mode 100644
index 0000000..51af38d
--- /dev/null
+++ b/config/_default/menu.yaml
@@ -0,0 +1,26 @@
+main:
+ - identifier: "home"
+ name: "Start"
+ pageref: "/"
+ weight: 1
+# - identifier: "skills"
+# name: "Kenntnisse"
+# pageref: "/kenntnisse/"
+# weight: 2
+# - identifier: "projects"
+# name: "Projekte"
+# pageref: "/portfolio/"
+# weight: 3
+ - identifier: "blog"
+ name: "Blog"
+ pageref: "/blog/"
+ weight: 4
+# - identifier: "blogroll"
+# name: "Empfehlungen"
+# pageref: "/blogroll/"
+# weight: 5
+footer_source:
+ - identifier: "sourcecode"
+ name: "Quellcode"
+ url: "https://code.cozy.town/vri/website"
+ weight: 1
\ No newline at end of file
diff --git a/content/_index.de.md b/content/_index.de.md
new file mode 100644
index 0000000..002c177
--- /dev/null
+++ b/content/_index.de.md
@@ -0,0 +1,8 @@
+---
+title: "Hola 🖖"
+---
+Ich erstelle gerne Grafiken und Websites.
+
+Ich betreibe und pflege Dienste auf [Cozy Town](https://cozy.town).
+
+{{< verticalposts header="latest-posts-heading" >}}
\ No newline at end of file
diff --git a/content/_index.en.md b/content/_index.en.md
new file mode 100644
index 0000000..6d8bbc9
--- /dev/null
+++ b/content/_index.en.md
@@ -0,0 +1,8 @@
+---
+title: "Hola 🖖"
+---
+I like to create Graphics and Websites.
+
+I host and maintain services at [Cozy Town](https://cozy.town).
+
+{{< verticalposts header="latest-posts-heading" >}}
\ No newline at end of file
diff --git a/content/_index.md b/content/_index.md
deleted file mode 100644
index b2c232e..0000000
--- a/content/_index.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Über Vri"
----
-
-# Vris Atelier {#intro-heading}
-
-**Grafik.**
-Vektorgrafiken setzen und Rastergrafiken pixeln.
-
-**Gestaltung.**
-Webseiten entwerfen, umsetzen und optimieren.
-
-**Infrastruktur.**
-Server und Dienste aufsetzen, absichern und betreiben.
diff --git a/content/blog/firefox-dark-mode/index.de.md b/content/blog/firefox-dark-mode/index.de.md
new file mode 100644
index 0000000..265a219
--- /dev/null
+++ b/content/blog/firefox-dark-mode/index.de.md
@@ -0,0 +1,26 @@
+---
+title: "Der dunkle Modus von Firefox"
+author: ""
+date: 2021-05-15T11:54:53+02:00
+categories:
+tags:
+
+draft: false
+type: "post"
+description: ""
+slug: "dunkler-modus-von-firefox"
+---
+
+In diesem Artikel möchte ich zeigen, wie man den Dark-Mode auf kompatiblen Websites in Firefox aktiviert.
+
+## Erweiterte Einstellungen von Firefox
+
+Um den Dark-Mode von Firefox zu aktivieren, öffne [about:config](https://support.mozilla.org/en-US/kb/about-config-editor-firefox) und füge einen **neuen** Boolean mit dem Namen `ui.systemUsesDarkTheme` hinzu und setze ihn auf `1`.
+
+## Websites Entwickeln
+
+Falls du Websites entwickelst, könnte es hilfreich sein, schnell zwischen dem hellen und dem dunklen Modus zu wechseln. Öffne hierzu den *Inspektor* (Rechtsklick → Untersuchen):
+
+![Dark- und Light-Mode im Firefox Inspektor](/upload/2021-05-15%20Firefox%20Inspector%20Dark%20Light%20Mode.png)
+
+Du kannst das übrigens direkt auf meiner Website testen 🙂
diff --git a/content/blog/firefox-dark-mode.md b/content/blog/firefox-dark-mode/index.en.md
similarity index 86%
rename from content/blog/firefox-dark-mode.md
rename to content/blog/firefox-dark-mode/index.en.md
index 462422a..86fd7bc 100644
--- a/content/blog/firefox-dark-mode.md
+++ b/content/blog/firefox-dark-mode/index.en.md
@@ -1,5 +1,5 @@
---
-title: "Firefox Dark Mode"
+title: "Firefox' Dark Mode"
author: ""
date: 2021-05-15T11:54:53+02:00
categories:
@@ -8,6 +8,7 @@ tags:
draft: false
type: "post"
description: ""
+slug: "firefox-dark-mode"
---
This is how to enable the dark mode for all compatible websites in your Firefox.
@@ -18,7 +19,7 @@ To enable the Firefox Dark Mode open your Firefox' [about:config](https://suppor
## Debugging
-For debugging purposes you can switch between dark and light mode using the *Inspector* (right-click > Inspect):
+For debugging purposes you can switch between dark and light mode using the *Inspector* (right-click → Inspect):
![Firefox' Inspector dark and light mode](/upload/2021-05-15%20Firefox%20Inspector%20Dark%20Light%20Mode.png)
diff --git a/content/blog/graphic-for-natenoms-blog.md b/content/blog/graphic-for-natenoms-blog/graphic-for-natenoms-blog.en.md
similarity index 100%
rename from content/blog/graphic-for-natenoms-blog.md
rename to content/blog/graphic-for-natenoms-blog/graphic-for-natenoms-blog.en.md
diff --git a/content/blog/indieauth-using-gpg.md b/content/blog/indieauth-using-gpg/indieauth-using-gpg.en.md
similarity index 100%
rename from content/blog/indieauth-using-gpg.md
rename to content/blog/indieauth-using-gpg/indieauth-using-gpg.en.md
diff --git a/content/blog/optimizing-is-fun.md b/content/blog/optimizing-is-fun/optimizing-is-fun.en.md
similarity index 100%
rename from content/blog/optimizing-is-fun.md
rename to content/blog/optimizing-is-fun/optimizing-is-fun.en.md
diff --git a/content/blog/privacy-friendlier-nginx-logging.md b/content/blog/privacy-friendlier-nginx-logging/privacy-friendlier-nginx-logging.en.md
similarity index 100%
rename from content/blog/privacy-friendlier-nginx-logging.md
rename to content/blog/privacy-friendlier-nginx-logging/privacy-friendlier-nginx-logging.en.md
diff --git a/content/blog/pure-css-icons-gitea-theme.md b/content/blog/pure-css-icons-gitea-theme/pure-css-icons-gitea-theme.en.md
similarity index 100%
rename from content/blog/pure-css-icons-gitea-theme.md
rename to content/blog/pure-css-icons-gitea-theme/pure-css-icons-gitea-theme.en.md
diff --git a/content/blog/the-broken-dns.md b/content/blog/the-broken-dns/the-broken-dns.en.md
similarity index 100%
rename from content/blog/the-broken-dns.md
rename to content/blog/the-broken-dns/the-broken-dns.en.md
diff --git a/content/blog/theme-for-gitea.md b/content/blog/theme-for-gitea/theme-for-gitea.en.md
similarity index 100%
rename from content/blog/theme-for-gitea.md
rename to content/blog/theme-for-gitea/theme-for-gitea.en.md
diff --git a/content/blog/vrifox.cc-rewritten-using-a-static-site-generator.md b/content/blog/vrifox.cc-rewritten-using-a-static-site-generator/vrifox.cc-rewritten-using-a-static-site-generator.en.md
similarity index 100%
rename from content/blog/vrifox.cc-rewritten-using-a-static-site-generator.md
rename to content/blog/vrifox.cc-rewritten-using-a-static-site-generator/vrifox.cc-rewritten-using-a-static-site-generator.en.md
diff --git a/i18n/de.yaml b/i18n/de.yaml
new file mode 100644
index 0000000..15f11c6
--- /dev/null
+++ b/i18n/de.yaml
@@ -0,0 +1,32 @@
+# Menus
+home:
+ other: Start
+projects:
+ other: Projekte
+blog:
+ other: Blog
+
+sourcecode:
+ other: "Quellcode"
+
+# Footer
+build:
+ other: "Build "
+build-title-tag:
+ other: "Build von "
+
+made-with:
+ other: "Erstellt mit "
+
+# Shortcodes
+verticalposts-more:
+ other: mehr
+
+# Content
+introduction-heading:
+ other: Hola 🖖
+introduction-sub:
+ other: Ich bin Vri 🙂
+
+latest-posts-heading:
+ other: Aus meinem Blog
\ No newline at end of file
diff --git a/i18n/en.yaml b/i18n/en.yaml
new file mode 100644
index 0000000..e11be0f
--- /dev/null
+++ b/i18n/en.yaml
@@ -0,0 +1,32 @@
+# Menus
+home:
+ other: Home
+projects:
+ other: Projects
+blog:
+ other: Blog
+
+sourcecode:
+ other: "Sourcecode"
+
+# Footer
+build:
+ other: "Build "
+build-title-tag:
+ other: "Build from "
+
+made-with:
+ other: "Made with "
+
+# Shortcodes
+verticalposts-more:
+ other: more
+
+# Content
+introduction-heading:
+ other: Hola 🖖
+introduction-sub:
+ other: I am Vri 🙂
+
+latest-posts-heading:
+ other: From my Blog
\ No newline at end of file
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 72a1958..568e8bd 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -1,5 +1,5 @@
-
+
{{ with .Title }} {{ . }} – {{ end }}{{ .Site.Title }}
{{- $style := resources.Get "/style.scss" | resources.ToCSS (dict "outputStyle" "compressed") }}
@@ -8,8 +8,9 @@
-
- {{ partial "nav.html" . }}
+
+ {{- block "header" . }}{{ end }}
+ {{ partial "sidebar.html" . }}
{{- block "main" . }}{{ end }}
{{ partial "footer.html" . }}
diff --git a/layouts/_default/robots.txt b/layouts/_default/robots.txt
new file mode 100644
index 0000000..77470cb
--- /dev/null
+++ b/layouts/_default/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
\ No newline at end of file
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 4ec34cb..b96a499 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -1,7 +1,7 @@
{{- define "main" }}
{{- if eq .Params.type "post" }}
- {{ .Date.Day }}. {{ if eq .Params.lang "de"}} {{ index $.Site.Data.monate (printf "%d" .Date.Month) }} {{ else }} {{ .Date.Month }} {{ end }} {{ .Date.Year }}
+ {{ .Date | time.Format "2. January 2006" }}
{{- end }}
{{ .Title }}
{{ .Content -}}
diff --git a/layouts/index.html b/layouts/index.html
index bbd0e56..9f931a6 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -1,5 +1,12 @@
+{{- define "header" }}
+
+{{ end }}
+
{{- define "main" }}
- {{ .Content -}}
+ {{ .Content }}
{{- end }}
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
index 547f869..61d56e0 100644
--- a/layouts/partials/footer.html
+++ b/layouts/partials/footer.html
@@ -1,7 +1,12 @@
diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html
deleted file mode 100644
index 5ca83a4..0000000
--- a/layouts/partials/nav.html
+++ /dev/null
@@ -1,18 +0,0 @@
- {{- $currentPage := . }}
-
- {{- range .Site.Menus.name }}
-
- {{- end }}
-
- {{- range .Site.Menus.main }}
- {{ .Name }}
- {{- end }}
-
- {{- if .IsTranslated }}
-
- {{- end }}
-
diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html
new file mode 100644
index 0000000..3861f5f
--- /dev/null
+++ b/layouts/partials/sidebar.html
@@ -0,0 +1,44 @@
+{{ $currentPage := . }}
+
+
diff --git a/layouts/shortcodes/verticalposts.html b/layouts/shortcodes/verticalposts.html
new file mode 100644
index 0000000..0114a15
--- /dev/null
+++ b/layouts/shortcodes/verticalposts.html
@@ -0,0 +1,14 @@
+
+ {{ with .Get "header" }}{{ end }}
+
+{{ range first 3 (where .Site.RegularPages "Section" "blog") }}
+
+ {{ .Title }}
+
+
+{{ end }}
+
+
\ No newline at end of file
diff --git a/static/2021_vrifox-avatar.png b/static/2021_vrifox-avatar.png
new file mode 100644
index 0000000..18d87cb
Binary files /dev/null and b/static/2021_vrifox-avatar.png differ