homepage iniT
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
{{ define "content" }}
|
||||
<style>
|
||||
.error {
|
||||
text-align: center;
|
||||
}
|
||||
.error h1 {
|
||||
font-size: 2.8rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.error h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
<section class="container centered">
|
||||
<div class="error">
|
||||
<h1>404</h1>
|
||||
<h2>Page Not Found</h2>
|
||||
<p>This page does not exist.<br /><a href="{{ .Site.BaseURL }}">Go to homepage</a></p>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,30 @@
|
||||
{{ $emojis := dict
|
||||
"tip" ":bulb:"
|
||||
"note" ":page_with_curl:"
|
||||
"info" ":information_source:"
|
||||
"warning" ":warning:"
|
||||
"caution" ":exclamation:"
|
||||
"danger" ":bangbang:"
|
||||
}}
|
||||
|
||||
{{ if eq .Type "alert" }}
|
||||
<blockquote class="alert alert-{{ .AlertType }}">
|
||||
<div class="alert-heading">
|
||||
<p class="alert-heading-emoji">
|
||||
{{ transform.Emojify (index $emojis .AlertType) }}
|
||||
</p>
|
||||
<p class="alert-heading-text">
|
||||
{{ with .AlertTitle }}
|
||||
{{ . }}
|
||||
{{ else }}
|
||||
{{ or (i18n .AlertType) (title .AlertType) }}
|
||||
{{ end }}
|
||||
</p>
|
||||
</div>
|
||||
{{ .Text }}
|
||||
</blockquote>
|
||||
{{ else }}
|
||||
<blockquote>
|
||||
{{ .Text }}
|
||||
</blockquote>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,6 @@
|
||||
<a
|
||||
href="{{ .Destination }}"
|
||||
{{ with .Title }}title="{{ . }}"{{ end }}
|
||||
{{ if strings.HasPrefix .Destination "http" }}target="_blank" rel="noopener"{{ end }}
|
||||
>{{ .Text | safeHTML }}</a
|
||||
>
|
||||
@@ -0,0 +1,47 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ .Site.LanguageCode }}">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
{{ with site.Params.author }}<meta name="author" content="{{ . }}" />{{ end }}
|
||||
{{ if eq .Type "blog" }}
|
||||
{{ with .Params.metadescription }}<meta name="description" content="{{ . }}" />{{ end }}
|
||||
{{ with .Params.metakeywords }}<meta name="keywords" content="{{ . }}" />{{ end }}
|
||||
{{ else }}
|
||||
{{ with site.Params.description }}<meta name="description" content="{{ . }}" />{{ end }}
|
||||
{{ with site.Params.keywords }}<meta name="keywords" content="{{ . }}" />{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<base href="{{ .Permalink }}" />
|
||||
<title>{{ block "title" . }}{{ site.Title }}{{ end }}</title>
|
||||
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Sans+Mono:400,600,700" />
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Anonymous+Pro:400,500,700" />
|
||||
|
||||
<link rel="stylesheet" href="{{ "css/styles.css" | absURL }}" />
|
||||
|
||||
<link rel="icon" type="image/png" href="{{ "/images/favicon.png" | absURL }}" sizes="32x32" />
|
||||
|
||||
{{ with .OutputFormats.Get "RSS" }}
|
||||
<link href="{{ .RelPermalink }}" rel="alternate" type="application/rss+xml" title="{{ site.Title }}" />
|
||||
<link href="{{ .RelPermalink }}" rel="feed" type="application/rss+xml" title="{{ site.Title }}" />
|
||||
{{ end }}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<main class="wrapper">
|
||||
{{ partial "header.html" . }}
|
||||
|
||||
|
||||
<div class="content">
|
||||
{{ block "content" . }}{{ end }}
|
||||
</div>
|
||||
|
||||
{{ partial "footer.html" . }}
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ·
|
||||
{{ .Site.Title }}
|
||||
{{ end }}
|
||||
{{ define "content" }}
|
||||
{{ partial "list.html" . }}
|
||||
{{ end }}
|
||||
@@ -0,0 +1,13 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ·
|
||||
{{ .Site.Title }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
{{ if eq .Type "blog" }}
|
||||
{{ partial "post.html" . }}
|
||||
{{ else }}
|
||||
{{ partial "page.html" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
@@ -0,0 +1,51 @@
|
||||
{{ define "content" }}
|
||||
<style>
|
||||
.home {
|
||||
text-align: center;
|
||||
}
|
||||
.home h1 {
|
||||
margin-bottom: 1.6rem;
|
||||
}
|
||||
.home h2 {
|
||||
font-size: 2.4rem;
|
||||
margin-top: 0;
|
||||
margin-bottom: 3.6rem;
|
||||
}
|
||||
.home ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.home li {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.home li a {
|
||||
margin: 0 0.6rem;
|
||||
}
|
||||
|
||||
footer .ai-disclaimer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
h2 {
|
||||
font-size: 1.2em !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<section class="container centered">
|
||||
<div class="home">
|
||||
<h1>{{ .Site.Params.author }}</h1>
|
||||
<h2>{{ .Site.Params.info }}</h2>
|
||||
{{ with .Site.Params.social }}
|
||||
<ul>
|
||||
{{ range sort . }}
|
||||
<li><a href="{{ .url }}" target="_blank">{{ .name }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,65 @@
|
||||
<style>
|
||||
.footer {
|
||||
line-height: 4rem;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
line-height: 1.8em;
|
||||
margin-bottom: 40px !important;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
.ai-disclaimer {
|
||||
text-align: center;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.site-disclaimer {
|
||||
font-size: 10px;
|
||||
line-height: 1.4;
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
</style>
|
||||
<footer class="footer">
|
||||
<section class="container">
|
||||
<p class="ai-disclaimer">
|
||||
<i
|
||||
>All content on this website is handwritten.
|
||||
<br />
|
||||
This website does not contain AI-generated content.</i
|
||||
>
|
||||
</p>
|
||||
|
||||
<br style="line-height: 0;" />
|
||||
|
||||
©
|
||||
<script>
|
||||
document.write(`${new Date().getFullYear()} <b>Dr. Ing. Thomas Sindt</b>`);
|
||||
</script>
|
||||
|
||||
<br style="line-height: 8px;" />
|
||||
|
||||
<p class="site-disclaimer">
|
||||
{{ with .Site.Params.social }}
|
||||
{{ $len := sub (len .) 1 }}
|
||||
{{ range $i, $e := sort . }}
|
||||
<a href="{{ $e.url }}" target="_blank">{{ $e.name }}</a>{{ if lt $i $len }} |{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</p>
|
||||
<p class="site-disclaimer">
|
||||
Die Website wurde mit HUGO erstellt, so wie das Internet ursprünglich gedacht war: als ein Ort, an dem Menschen ihre Gedanken und ihr Wissen frei teilen können.
|
||||
<br />
|
||||
Das bedeutet eine einfache, inhaltsorientierte Website, die Gedanken und Wissen kostenlos teilt.
|
||||
<br />
|
||||
Dies ist der Grund, warum diese Website keine Tracker, keine Werbung und keine Anforderung zur Ausführung von <span id="javascript-text">Javascript</span> hat.
|
||||
</p>
|
||||
<p class="site-disclaimer">Posts: CC-BY-SA | Source code: AGPL-3.0</p>
|
||||
</section>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
const jsText = document.querySelector("#javascript-text")
|
||||
jsText.addEventListener("dblclick", e => {
|
||||
const style = document.createElement("style");
|
||||
style.innerHTML = "* { font-family: 'Comic Sans MS', 'Comic Sans', 'Noto Sans Mono', monospace !important; }";
|
||||
document.head.appendChild(style);
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,29 @@
|
||||
<script>
|
||||
function toggleMenu() {
|
||||
const x = document.getElementById("topnav-items");
|
||||
console.log(x);
|
||||
if (x.className === "topnav-list") {
|
||||
x.className += " navopen";
|
||||
} else {
|
||||
x.className = "topnav-list";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<section class="container">
|
||||
<nav class="topnav">
|
||||
<a class="topnav-title" href="{{ .Site.BaseURL }}">
|
||||
{{ .Site.Title }}
|
||||
</a>
|
||||
{{ with .Site.Menus.main }}
|
||||
<a href="javascript:void(0);" class="mobilemenu" onclick="toggleMenu()">Menu</a>
|
||||
<ul id="topnav-items" class="topnav-list">
|
||||
{{ range sort . }}
|
||||
<li class="topnav-item">
|
||||
<a class="topnav-link" href="{{ .URL }}">{{ .Name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
|
||||
</nav>
|
||||
</section>
|
||||
@@ -0,0 +1,21 @@
|
||||
<section class="container list">
|
||||
<h1 class="title">{{ .Title }}</h1>
|
||||
<p>Posts are also available as an <a href="/blog/index.xml" target="_blank">RSS feed</a>.</p>
|
||||
<p style="text-align: center;">
|
||||
<b>Categories: </b>
|
||||
<a href="/blog"><i>all</i></a>
|
||||
<br />
|
||||
{{ $categories := slice }}
|
||||
{{ range site.Taxonomies.categories.Alphabetical }}
|
||||
{{ $term := .Term }}
|
||||
{{ $url := printf "/categories/%s/" $term | urlize }}
|
||||
{{ $categories = $categories | append (printf `<a href="%s">%s</a>` $url $term) }}
|
||||
{{ end }}
|
||||
{{ delimit $categories " | " | safeHTML }}
|
||||
</p>
|
||||
<ul>
|
||||
{{ range .Pages }}
|
||||
<li><span>{{ .Date.Format "January 2, 2006" }}</span><a href="{{ .Permalink }}">{{ .Title }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
@@ -0,0 +1,9 @@
|
||||
<section class="container page">
|
||||
<article>
|
||||
<header>
|
||||
<h1>{{ .Title }}</h1>
|
||||
</header>
|
||||
|
||||
{{ .Content }}
|
||||
</article>
|
||||
</section>
|
||||
@@ -0,0 +1,60 @@
|
||||
<section class="container">
|
||||
<article class="blogpost">
|
||||
<header>
|
||||
<h1 class="title">{{ .Title }}</h1>
|
||||
<h2 class="date">{{ .Date.Format "January 2, 2006" }}</h2>
|
||||
<p style="margin-bottom: 0">
|
||||
<b>Reading time</b>:
|
||||
{{ if eq .ReadingTime 1 }}
|
||||
1 minute
|
||||
{{ else }}
|
||||
{{ .ReadingTime }} minutes
|
||||
{{ end }}
|
||||
</p>
|
||||
<p style="margin-bottom: 0; margin-top: 0;">
|
||||
{{ with .GetTerms "categories" }}
|
||||
<b>Categories:</b>
|
||||
{{ $categories := slice }}
|
||||
{{ range . }}
|
||||
{{ $categories = $categories | append (printf `<a href="%s">%s</a>` .RelPermalink .LinkTitle) }}
|
||||
{{ end }}
|
||||
{{ delimit $categories ", " | safeHTML }}
|
||||
{{ end }}
|
||||
</p>
|
||||
<p style="margin-top: 0">
|
||||
{{ with .GetTerms "tags" }}
|
||||
<b>Tags:</b>
|
||||
{{ $tags := slice }}
|
||||
{{ range . }}
|
||||
{{ $tags = $tags | append (printf `<a href="%s">%s</a>` .RelPermalink .LinkTitle) }}
|
||||
{{ end }}
|
||||
{{ delimit $tags ", " | safeHTML }}
|
||||
{{ end }}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<div class="post-content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
|
||||
<hr class="endofpost" />
|
||||
|
||||
<p style="text-align: center;">
|
||||
<i>
|
||||
Thoughts or questions about this article?
|
||||
<br />
|
||||
Feel free to drop me a
|
||||
<a href="https://www.linkedin.com/in/lucianonooijen/" target="_blank">message on LinkedIn</a>
|
||||
or a
|
||||
<a href="https://x.com/LucianoNooijen">Twitter DM</a>!
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
If you like my articles, please consider subscribing to my <a href="/blog/index.xml" target="_blank">RSS feed</a>.
|
||||
</i>
|
||||
</p>
|
||||
|
||||
<hr class="endofpost" />
|
||||
</article>
|
||||
</section>
|
||||
@@ -0,0 +1,7 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ·
|
||||
{{ .Site.Title }}
|
||||
{{ end }}
|
||||
{{ define "content" }}
|
||||
{{ partial "post.html" . }}
|
||||
{{ end }}
|
||||
@@ -0,0 +1,2 @@
|
||||
{{ $file := .Get "file" }}
|
||||
{{- $file | readFile | markdownify -}}
|
||||
Reference in New Issue
Block a user