current status
Dieser Commit ist enthalten in:
Commit
17f405192f
|
@ -0,0 +1,12 @@
|
|||
# EditorConfig is awesome: https://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = false
|
||||
insert_final_newline = false
|
|
@ -0,0 +1,3 @@
|
|||
public
|
||||
.hugo_build.lock
|
||||
resources/_gen
|
|
@ -0,0 +1,25 @@
|
|||
baseURL = 'https://excalibur.home.tobie/'
|
||||
defaultContentLanguage = "de"
|
||||
disableAliases = true
|
||||
enableEmoji = true
|
||||
enableGitInfo = false
|
||||
languageCode = 'de-de'
|
||||
paginate = 3
|
||||
#theme = ["github.com/theNewDynamic/gohugo-theme-ananke"]
|
||||
disableHugoGeneratorInject = true
|
||||
disableKinds = ["sitemap", "RSS", "robotsTXT", "taxonomy"]
|
||||
ignoreErrors = ["error-disable-taxonomy"]
|
||||
theme = 'meins'
|
||||
title = "Sebastian Tobie"
|
||||
|
||||
[taxonomies]
|
||||
tag = "tags"
|
||||
|
||||
[minify]
|
||||
disableCSS = false
|
||||
disableHTML = false
|
||||
disableJS = false
|
||||
disableJSON = false
|
||||
disableSVG = false
|
||||
disableXML = false
|
||||
minifyOutput = false
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: Lebenslauf
|
||||
menu:
|
||||
main:
|
||||
weight: 100
|
||||
draft: true
|
||||
---
|
||||
{{% lebenslauf %}}
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: Home
|
||||
menu:
|
||||
main:
|
||||
weight: -1
|
||||
---
|
||||
# Hallo
|
||||
Hallo
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "Blog"
|
||||
menu:
|
||||
main:
|
||||
weight: 1
|
||||
---
|
||||
BLA BLA BLA
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: "Abtreibungsrecht"
|
||||
date: 2022-06-26T17:24:30+02:00
|
||||
draft: true
|
||||
---
|
||||
# Meine Gedanken zum Abtreibungsrecht
|
||||
|
||||
Am {{< date "2022-06-24" "2. January" >}} haben der Supreme Court der Vereinigten Staaten und der Bundestag zwei unterschiedliche Entscheidungen getroffen.
|
||||
|
||||
Der Supreme Court entschied sich die in den USA davor gültige Regelung das bis zur Lebensfähigkeit der Abruch möglich ist zu kippen.
|
||||
Jetzt gibt es in vielen Staaten {{< hervorhebung "euphemsimus" "warning" >}}Heartbeat Laws{{< /hervorhebung >}} die ungeborenes Leben nach der 6 Schwangerschaftswoche schützen soll.
|
||||
Das ist fast so streng wie die Strengste Auslegung im Islam (40 Tage), die von den Republikanern selber als unforttschrittlich gezeigt werden,
|
||||
in den restlichen Auslegungen wird die Seele am 120. Schwangerschaftstag empfangen.
|
||||
|
||||
Währendessen hat der Bundestag erlaubt Ärzten auf ihren Webseiten zu informieren
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: "Impressum"
|
||||
date: 2022-06-19T18:17:34+02:00
|
||||
menu:
|
||||
main:
|
||||
weight: 1000
|
||||
_build:
|
||||
list: never
|
||||
---
|
||||
|
||||
# Impressum
|
|
@ -0,0 +1,39 @@
|
|||
<lebenslauf>
|
||||
<schule>
|
||||
<name>Realstufe der Anne-Frank-Schule Fritzlar</name>
|
||||
<von>2010-08-01</von>
|
||||
<bis>2013-07-31</bis>
|
||||
</schule>
|
||||
<schule>
|
||||
<name>Höhere Handelsschule an der Reichspräsident Friedrich Ebert Schule Fritzlar</name>
|
||||
<von>2013-08-01</von>
|
||||
<bis>2014-07-01</bis>
|
||||
</schule>
|
||||
<arbeit>
|
||||
<firma>Berufsbildungswerk Südhessen gGmbH</firma>
|
||||
<job>Teilnehmer Brufsvorbeitende Maßnahme</job>
|
||||
<von>2014-09-01</von>
|
||||
<bis>2015-08-01</bis>
|
||||
</arbeit>
|
||||
<arbeit>
|
||||
<firma>Berufsbildungswerk Südhessen gGmbH</firma>
|
||||
<job>Auszubildender Fachinformatiker für Systemintegration</job>
|
||||
<von>2015-08-01</von>
|
||||
<bis>2018-06-01</bis>
|
||||
</arbeit>
|
||||
<arbeit>
|
||||
<firma>ANG GmbH</firma>
|
||||
<job>Fachinformatiker für Systemintegration</job>
|
||||
<von>2015-10-01</von>
|
||||
<bis>HEUTE</bis>
|
||||
</arbeit>
|
||||
<fähigkeit>
|
||||
<name>Golang</name>
|
||||
<framework></framework>
|
||||
</fähigkeit>
|
||||
<fähigkeit>
|
||||
<name>Python</name>
|
||||
<framework>Flask</framework>
|
||||
<framework>Django</framework>
|
||||
</fähigkeit>
|
||||
</lebenslauf>
|
|
@ -0,0 +1,5 @@
|
|||
module go.sebtobie.de/website
|
||||
|
||||
go 1.18
|
||||
|
||||
require github.com/theNewDynamic/gohugo-theme-ananke v0.0.0-20220610193657-470ea40982f5 // indirect
|
|
@ -0,0 +1,2 @@
|
|||
github.com/theNewDynamic/gohugo-theme-ananke v0.0.0-20220610193657-470ea40982f5 h1:VGGhujiIbPAGTzunwhrs4AGzDU3//45crPtbN0iW+Ck=
|
||||
github.com/theNewDynamic/gohugo-theme-ananke v0.0.0-20220610193657-470ea40982f5/go.mod h1:yY14BLqqh5G61rO81YcJKMHY1rClY5iIiUK+K2JKSUM=
|
Binäre Datei nicht angezeigt.
Nachher Breite: | Höhe: | Größe: 70 B |
|
@ -0,0 +1,20 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2022 YOUR_NAME_HERE
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
# {{ replace .Name "-" " " | title }}
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: false
|
||||
---
|
|
@ -0,0 +1,185 @@
|
|||
@mixin theming($background, $foreground) {
|
||||
$link: #0000FF;
|
||||
$link_visited: mix($link, $foreground, $weight: 50%);
|
||||
$link_notvisited: mix($link, $foreground, $weight: 75%);
|
||||
--background: #{$background};
|
||||
--text: #{$foreground};
|
||||
|
||||
a:visited {
|
||||
color: $link_visited;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: $link_notvisited;
|
||||
}
|
||||
|
||||
span {
|
||||
&.warning {
|
||||
transition-property: background-color;
|
||||
transition-duration: 1s;
|
||||
transition-timing-function: linear;
|
||||
&:hover {
|
||||
background-color: mix(#FFFF00, $background, 50%);
|
||||
transition-property: background-color;
|
||||
transition-duration: 1s;
|
||||
transition-timing-function: linear;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin theme($schema, $background, $foreground) {
|
||||
|
||||
body.#{$schema} {
|
||||
@include theming($background, $foreground);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: $schema) {
|
||||
body {
|
||||
@include theming($background, $foreground);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@include theme("dark", #333333, #ffffff);
|
||||
@include theme("black", #000000, #ffffff);
|
||||
@include theme("light", #ffffff, #000000);
|
||||
|
||||
@media (not ((prefers-color-scheme: light) or (prefers-color-scheme: dark) or (prefers-color-scheme: black))) {
|
||||
body {
|
||||
@include theming(#000001, #ffffff);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background-color: var(--background);
|
||||
color: var(--text);
|
||||
|
||||
>header,
|
||||
>footer {
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
>main {
|
||||
flex: 1 1 auto;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
>.menu {
|
||||
flex-direction: row;
|
||||
margin: 2em 0;
|
||||
padding: 0;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
>li {
|
||||
list-style: none;
|
||||
flex-wrap: wrap;
|
||||
padding: 0.5em;
|
||||
border: 0.1em;
|
||||
border-color: black;
|
||||
border-style: solid;
|
||||
}
|
||||
}
|
||||
|
||||
>.menu,
|
||||
>main {
|
||||
max-width: 90vw;
|
||||
display: flex;
|
||||
|
||||
>* {
|
||||
margin: 0;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
|
||||
>header,
|
||||
>footer,
|
||||
>.menu {
|
||||
flex: 0 min-content;
|
||||
}
|
||||
|
||||
>div.colorscheme {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.interactive>div.colorscheme {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
.colorscheme {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
||||
>input[type=radio] {
|
||||
display: none;
|
||||
|
||||
&:checked+label {
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
&+label {
|
||||
background-color: green;
|
||||
}
|
||||
}
|
||||
|
||||
.icon,
|
||||
label {
|
||||
display: block;
|
||||
height: 3em;
|
||||
width: 3em;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
height: 1em;
|
||||
width: 1em;
|
||||
stroke-width: 5;
|
||||
stroke-linecap: round;
|
||||
}
|
||||
|
||||
form {
|
||||
display: grid;
|
||||
grid-template-columns: min-content auto;
|
||||
column-gap: 1em;
|
||||
row-gap: 0.5em;
|
||||
|
||||
input[type="submit"] {
|
||||
grid-column: 1 / 3;
|
||||
}
|
||||
}
|
||||
|
||||
span {
|
||||
&.euphemsimus {
|
||||
font-style: italic;
|
||||
|
||||
&::before {
|
||||
content: open-quote;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: close-quote;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg class="icons" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="light">
|
||||
<circle cx="50" cy="50" stroke="#ffffff" fill="none" r="30" id="lightcircle" />
|
||||
<line x1="50" y1="20" x2="50" y2="10" stroke="#ffffff" id="n" />
|
||||
<line x1="20" y1="50" x2="10" y2="50" stroke="#ffffff" id="w" />
|
||||
<line x1="90" y1="50" x2="80" y2="50" stroke="#ffffff" id="e" />
|
||||
<line x1="50" y1="90" x2="50" y2="80" stroke="#ffffff" id="s" />
|
||||
<line x1="21.92" y1="21.92" x2="28.72" y2="28.72" stroke="#ffffff" id="nw" />
|
||||
<line x1="71.27" y1="28.72" x2="78.07" y2="21.92" stroke="#ffffff" id="ne" />
|
||||
<line x1="21.92" y1="78.07" x2="28.72" y2="71.27" stroke="#ffffff" id="sw" />
|
||||
<line x1="78.07" y1="78.07" x2="71.27" y2="71.27" stroke="#ffffff" id="se" />
|
||||
</g>
|
||||
<g id="dark">
|
||||
<path d="m 50,20 a 30,30 0 0 0 0,60 Q 10,50 50,20" stroke="#000000" />
|
||||
</g>
|
||||
<g id="black">
|
||||
<circle cx="50" cy="50" fill="#000000" stroke="#000000" r="30" />
|
||||
</g>
|
||||
<g id="auto">
|
||||
<circle cx="50" cy="50" stroke="#ffffff" fill="none" r="30" id="autocircle" />
|
||||
<text x="50" y="50" text-anchor="middle" font-size="55" font-family="sans-serif" dominant-baseline="middle" fill="#ffffff">A</text>
|
||||
</g>
|
||||
</svg>
|
Nachher Breite: | Höhe: | Größe: 1.3 KiB |
|
@ -0,0 +1,82 @@
|
|||
|
||||
class Storage {
|
||||
enabled: boolean
|
||||
constructor() {
|
||||
try {
|
||||
if (localStorage) {
|
||||
localStorage.setItem("__test", "")
|
||||
localStorage.removeItem("__test")
|
||||
this.enabled = true
|
||||
console.debug("localstorage enabled")
|
||||
}
|
||||
} catch {
|
||||
console.debug("Local storage not available")
|
||||
}
|
||||
}
|
||||
set(key: string, value: any): void {
|
||||
if (this.enabled) {
|
||||
try {
|
||||
localStorage.setItem(key, JSON.stringify(value))
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
}
|
||||
get(key: string, _default: any = null): any {
|
||||
if (this.enabled) {
|
||||
try {
|
||||
let value = localStorage.getItem(key);
|
||||
if (value !== null) {
|
||||
return JSON.parse(value)
|
||||
}
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
return _default;
|
||||
}
|
||||
}
|
||||
|
||||
var storage = new Storage();
|
||||
|
||||
|
||||
|
||||
|
||||
function settheme(theme: string): EventListener {
|
||||
let body = document.getElementsByTagName("body")[0]
|
||||
let classes = new Set(["dark", "black", "light"])
|
||||
classes.delete(theme)
|
||||
return function () {
|
||||
console.info("Overriding theme to", theme)
|
||||
body.classList.remove(...classes)
|
||||
if (theme !== "auto") {
|
||||
if (!body.classList.contains(theme)) {
|
||||
body.classList.add(theme)
|
||||
}
|
||||
}
|
||||
storage.set("theme", theme)
|
||||
}
|
||||
}
|
||||
|
||||
function init() {
|
||||
let theme_elems = document.getElementsByClassName("theme")
|
||||
let themeconfig: string = storage.get("theme", "auto")
|
||||
for (let i = 0; i < theme_elems.length; i++) {
|
||||
let theme_el = theme_elems.item(i) as HTMLInputElement
|
||||
if (theme_el !== null) {
|
||||
let theme = settheme(theme_el.id)
|
||||
if (themeconfig === theme_el.id) {
|
||||
theme(new Event("change"))
|
||||
console.log(typeof theme_el, theme_el)
|
||||
theme_el.select()
|
||||
}
|
||||
theme_el.addEventListener("change", theme)
|
||||
console.info("added event to ", theme_el, "for theme", theme_el.id)
|
||||
}
|
||||
}
|
||||
let body = document.getElementsByTagName("body")[0]
|
||||
body.classList.add("interactive")
|
||||
}
|
||||
|
||||
|
||||
export {
|
||||
init,
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
schule = "Schule"
|
||||
arbeit = "Bisherige Arbeitsplätze"
|
|
@ -0,0 +1,54 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
{{- $sourcemap := "" -}}
|
||||
{{- if not hugo.IsProduction -}}
|
||||
{{- $sourcemap = "inline" -}}
|
||||
{{- end -}}
|
||||
{{- $cssoptions := (dict "outputStyle" "compressed" "enableSourceMap" (not hugo.IsProduction))
|
||||
-}}
|
||||
{{- $jsoptions := (dict "minify" (not hugo.IsProduction) "format" "esm" "sourceMap" $sourcemap ) -}}
|
||||
{{- $scss := resources.Get "css/style.scss" | toCSS $cssoptions | fingerprint "sha512" -}}
|
||||
{{- $module := resources.Get "js/index.ts" | js.Build $jsoptions | fingerprint "sha512" -}}
|
||||
<link rel="stylesheet" href="{{ $scss.RelPermalink }}" integrity="{{ $scss.Data.Integrity}}">
|
||||
<script name="/main" type="module" src="{{ $module.RelPermalink }}" integrity="{{ $module.Data.Integrity }}"></script>
|
||||
<script type="module">
|
||||
import { init } from "{{ $module.RelPermalink }}";
|
||||
init();
|
||||
</script>
|
||||
<title>{{.Title}}</title>
|
||||
<meta name="referrer" content="no-referrer">
|
||||
<meta name="color-scheme" content="light dark black">
|
||||
{{- range (slice "description" ) -}}
|
||||
{{- $header := . -}}
|
||||
{{- if in $.Params $header -}}
|
||||
<meta name="{{ $header }}" content="{{ .Param $header }}">
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</head>
|
||||
<body>
|
||||
<div role="none" class="colorscheme">
|
||||
<input class="theme" id="auto" selected type="radio" name="colorscheme">
|
||||
<label for="auto">{{ partial "icon" "auto" }}</label>
|
||||
{{ range (slice "light" "dark" "black") }}
|
||||
<input class="theme" id="{{ . }}" type="radio" name="colorscheme">
|
||||
<label for="{{ . }}">{{ partial "icon" . }}</label>
|
||||
{{ end }}
|
||||
</div>
|
||||
<header></header>
|
||||
{{ if .Site.Menus.main }}
|
||||
<ul role="navigation" aria-label="Main" class="menu">
|
||||
{{ range .Site.Menus.main }}
|
||||
<li>
|
||||
<a href="{{.URL}}">{{ .Name}}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
<main>{{ block "main" . }}
|
||||
{{ .Content }}
|
||||
{{ end }}</main>
|
||||
<footer>{{ block "footer" . }}{{ end }}</footer>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,22 @@
|
|||
{{ define "main" }}
|
||||
<div>
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{.Content}}
|
||||
</div>
|
||||
{{ range .Paginator.Pages }}
|
||||
<a alt="" href="{{.Permalink}}">
|
||||
<article>
|
||||
<h2>{{ .Title }}</h2>
|
||||
{{ .Render "Summary"}}
|
||||
</article>
|
||||
</a>
|
||||
{{ end }}
|
||||
<nav aria-label="Page Navigation">
|
||||
{{ if .Paginator.HasPrev }}
|
||||
<a href="{{ .Paginator.Prev.URL }}">Vorherige Seite</a>
|
||||
{{ end }}
|
||||
{{ if .Paginator.HasNext }}
|
||||
<a href="{{ .Paginator.Next.URL }}">Nächste Seite</a>
|
||||
{{ end }}
|
||||
</nav>
|
||||
{{ end }}
|
|
@ -0,0 +1,3 @@
|
|||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
|
@ -0,0 +1,3 @@
|
|||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
|
@ -0,0 +1,12 @@
|
|||
<!--
|
||||
Icon shortcut
|
||||
Params:
|
||||
icon
|
||||
Example: {{/*
|
||||
{{% icon "icon" %}}
|
||||
*/}}
|
||||
-->
|
||||
{{ $icon := resources.Get "img/symbols.svg" | fingerprint }}
|
||||
<svg class="icon" viewBox="0 0 100 100">
|
||||
<use xlink:href="{{ $icon.RelPermalink }}#{{ . }}" />
|
||||
</svg>
|
|
@ -0,0 +1,14 @@
|
|||
<!--
|
||||
date renderer
|
||||
Params:
|
||||
date
|
||||
Creates a lightSlider on your page, call it with: {{/*
|
||||
{{% lightslider name="<your-slider-name>" url="<url_or_path-to-your-slider.json" [includejs="true"] %}}
|
||||
*/}}
|
||||
Example: {{/*
|
||||
{{% date "2006-01-02" "2. Jan" %}}
|
||||
*/}}
|
||||
-->
|
||||
{{ $t := .Get 0 | time }}
|
||||
{{ $format := .Get 1 }}
|
||||
<time datetime="{{ time.Format "2006-01-02" $t }}">{{ time.Format $format $t }}</time>
|
|
@ -0,0 +1,6 @@
|
|||
{{ $class := .Get 0 }}
|
||||
{{ if .Get 1 }}
|
||||
<span class="{{ .Get 1 }}">
|
||||
{{ end }}
|
||||
<span title="{{ .Get 0 | title }}" class="{{ $class }}" >{{ .Inner }}</span>
|
||||
{{ if .Get 1 }}</span>{{ end }}
|
|
@ -0,0 +1,46 @@
|
|||
<!--
|
||||
Lebenslauf renderer
|
||||
Params:
|
||||
file=The datafile
|
||||
Creates a lightSlider on your page, call it with: {{/*
|
||||
{{% lightslider name="<your-slider-name>" url="<url_or_path-to-your-slider.json" [includejs="true"] %}}
|
||||
*/}}
|
||||
Example: {{/*
|
||||
{{% lebenslauf %}}
|
||||
*/}}
|
||||
-->
|
||||
{{ $data := .Site.Data.lebenslauf }}
|
||||
<h2>{{ i18n "schule" }}</h2>
|
||||
{{ if $data.schule }}
|
||||
<table>
|
||||
{{ range sort $data.schule "von" "asc" }}
|
||||
<tr>
|
||||
<td>{{ index . "name" }}</td>
|
||||
<td><time datetime="{{ index . "von" }}">{{ index . "von" | time | time.Format "January 2006" }}</time> bis <time datetime="{{ index . "bis" }}">{{ index . "bis" | time | time.Format "January 2006" }}</time></td>
|
||||
{{ if index . "kommentar" }}
|
||||
<td>{{ index . "kommentar" }}</td>
|
||||
{{ end}}
|
||||
</tr>
|
||||
{{ end }}
|
||||
</table>
|
||||
{{ end }}
|
||||
<h2>{{ i18n "arbeit" }}</h2>
|
||||
{{ if $data.arbeit }}
|
||||
<table>
|
||||
{{ range sort $data.arbeit "von" "asc" }}
|
||||
<tr>
|
||||
<td>{{ index . "firma" }}</td>
|
||||
{{ $bis := index . "bis" }}
|
||||
{{ $bisd := now }}
|
||||
{{ if (ne $bis "HEUTE") }}
|
||||
{{ $bisd = $bis | time }}
|
||||
{{ end }}
|
||||
<td>{{ index . "job"}}</td>
|
||||
<td>{{ index . "von" | time | time.Format "January 2006" }} bis {{ $bisd | time.Format "January 2006" }}</td>
|
||||
{{ if index . "kommentar" }}
|
||||
<td>{{ index . "kommentar" }}</td>
|
||||
{{ end}}
|
||||
</tr>
|
||||
{{ end }}
|
||||
</table>
|
||||
{{ end }}
|
|
@ -0,0 +1,47 @@
|
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
|
||||
<xs:element name="lebenslauf">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element ref="schule" />
|
||||
<xs:element ref="arbeit" />
|
||||
<xs:element ref="fähigkeit"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="schule">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="von" type="xs:date" />
|
||||
<xs:element ref="bis" />
|
||||
<xs:element name="name" type="xs:string" />
|
||||
<xs:element name="kommentar" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="arbeit">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="von" type="xs:date" />
|
||||
<xs:element ref="bis" />
|
||||
<xs:element name="firma" type="xs:string" />
|
||||
<xs:element name="job" type="xs:string" />
|
||||
<xs:element name="kommentar" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:simpleType name="datum">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="HEUTE|[0-9]{4}-[0-9]{2}-[0-9]{2}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="bis" type="datum" />
|
||||
<xs:element name="fähigkeit">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="name" type="xs:string" />
|
||||
<xs:element name="framework" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element name="kommentar" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
|
@ -0,0 +1,15 @@
|
|||
# theme.toml template for a Hugo theme
|
||||
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
|
||||
|
||||
name = "Meins"
|
||||
license = "MIT"
|
||||
licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE"
|
||||
description = ""
|
||||
homepage = "http://example.com/"
|
||||
tags = []
|
||||
features = []
|
||||
min_version = "0.41.0"
|
||||
|
||||
[author]
|
||||
name = ""
|
||||
homepage = ""
|
Laden…
In neuem Issue referenzieren