Dokumentation

Parameter (Blog)

ParameterTypBeschreibung
titleStringTitel des Blogposts
dateDatetimeVeröffentlichungsdatum im ISO-Format (2024-08-17T00:43:17)
tagsArrayListe von Tags zur Kategorisierung
showTitleBooleanSteuert, ob der Titel in Listenansichten angezeigt wird
linkURLString (URL)Externer Link zum Beitrag (wird mit 🔗 angezeigt)
viaURLString (URL)Quell-URL als Quellenangabe (wird als “via @user” oder Domain angezeigt)
layoutStringTemplate für die Einzelansicht (z.B. post)
listLayoutStringDarstellung in Listenansichten: full (Standard) oder article
postStyleStringZusätzliche Stilvariante für die Post-Darstellung
descriptionStringKurzbeschreibung, wird im article-Layout angezeigt
hiddenBooleanBeitrag wird in der Blogliste ausgeblendet
updatedBooleanZeigt “aktualisiert”-Label an, wenn das Datum abweicht

Parameter (Bento / Index)

ParameterTypBeschreibung
titleStringTitel der Kachel
overlineStringÜberzeile oberhalb des Titels
subtitleStringUntertitel in Akzentfarbe
sizeNumberSpaltenbreite im 12er-Grid (Standard: 12)
weightNumberSortierreihenfolge der Kacheln
bentoLayoutStringPartial-Template für die Kachel (Standard: bento/hidden)
button_linkString (URL)Link für den Button der Kachel
button_labelStringBeschriftung des Buttons
hiddenBooleanKachel wird auf der Startseite ausgeblendet
featured_imageString (URL)Bild für die Kachel (z.B. bei profile, promo/m)
startStringStartdatum (z.B. bei promo/s)
endStringEnddatum (z.B. bei promo/s, promo/m)

Index

Die layouts/index.html zeigt alle Seiten der Sektion “bento” als Kacheln in einem Grid mit 12 Spalten auf der Startseite an. Kacheln mit hidden: true werden ausgeblendet.

{{ define "main" }}
<div class="container">

    <div class="row mt-3 g-4">
        {{ range where (where .Site.Pages "Section" "bento") ".Params.hidden" "ne" true }}
        {{ $layout := .Params.bentoLayout | default "bento/hidden" }}
        <div class="col-lg-{{ .Params.size | default "12" }}">
            {{ partial (print $layout ".html") . }}
        </div>
        {{ end }}
    </div>
</div>
{{ end }}

Bento-Layouts

Jedes Bento-Layout wird über den bentoLayout-Parameter in der Frontmatter gesetzt.

bento/profile

Profilkarte mit Bild, Inhalt und mehreren Buttons.

ParameterTypBeschreibung
featured_imageStringURL zum Profilbild
nameStringName der Person
buttonsArrayListe von Buttons mit button_link und button_label

bento/blog

Widget mit den 10 neuesten Blogposts. Zeigt Titel und Zeitstempel als scrollbare Liste.

ParameterTypBeschreibung
overlineStringÜberschrift (z.B. “What I’m working on”)
button_linkStringLink zum vollständigen Blog
button_labelStringButton-Text

bento/skills

Skill-Balken mit Emoji-Icons und Stufenanzeige (0–100%).

ParameterTypBeschreibung
skillsArrayListe mit name, level (0–100) und icon (Emoji)

bento/social

Social-Media-Links als Icon-Grid mit Bootstrap Icons.

ParameterTypBeschreibung
overlineStringÜberschrift
social_linksArrayListe mit platform, url und icon (Bootstrap-Icon-Name)

bento/clients

Kundenliste mit Punkt-Trennzeichen, alphabetisch sortiert.

ParameterTypBeschreibung
overlineStringÜberschrift
clientsArrayListe mit client (Name als String)

bento/cv

Lebenslauf-Timeline mit Abschlüssen und Institutionen.

ParameterTypBeschreibung
overlineStringÜberschrift (z.B. “Education”)
educationArrayListe mit degree, institution und year

bento/references

Testimonials mit Profilbildern.

ParameterTypBeschreibung
overlineStringÜberschrift
referenceArrayListe mit name, position, content (Zitat) und picture (Bild-URL)

bento/gallery

Horizontale Bildergalerie mit Scroll-Container.

ParameterTypBeschreibung
imagesArrayListe von Bild-URLs
titleStringGalerie-Titel
descriptionStringGalerie-Beschreibung

bento/video

Eingebetteter YouTube-Player mit Thumbnail und Play-Button.

ParameterTypBeschreibung
videoStringYouTube-Video-ID (ohne URL)

bento/spotify

Eingebetteter Spotify-Player.

ParameterTypBeschreibung
overlineStringÜberschrift
spotifyStringSpotify-Track-ID

bento/map

Interaktive Entfernungsanzeige von Düsseldorf. Nutzt Browser-Geolocation, keine Parameter nötig.

bento/timezone

Live-Zeitvergleich zwischen Berlin und dem Standort des Besuchers. Keine Parameter nötig.

bento/talks

Zeigt die 4 neuesten Einträge aus bento/talks/.

ParameterTypBeschreibung
overlineStringÜberschrift

Talks-Einträge benötigen: date, title, client, event, location, optional linkURL und button_label.

bento/promo/s

Kleine Promo-Karte mit Bild und Datumsbereich.

ParameterTypBeschreibung
featured_imgStringBild-URL
overlineStringÜberschrift
subtitleStringUntertitel
startStringStartdatum
endStringEnddatum

bento/promo/m

Mittlere Promo-Karte mit optionalem Seitenbild und Links.

ParameterTypBeschreibung
overlineStringÜberschrift
subtitleStringUntertitel
featured_imageStringOptionales Cover-Bild
linksArrayOptionale Links mit link_url und link_label
button_linkStringCall-to-Action-Link
button_labelStringButton-Text
endStringWenn gesetzt, wird der Hintergrund weiß

bento/hidden

Unsichtbarer Container. Wird verwendet, wenn kein bentoLayout gesetzt ist.

Blog-Ansichten

Der Blog bietet verschiedene Ansichtsmodi, erreichbar über /blog, /blog/grid, /blog/titles, /blog/new.

AnsichtURLBeschreibung
List/blogStandard-Listenansicht, nach Datum gruppiert, mit Sidebar und Tag-Filter
Grid/blog/grid4-Spalten-Raster mit Tag-Filter-Badges
Titles/blog/titlesNur Titel mit Metadaten (minimale Ansicht)
New/blog/newTagesgruppen mit aufklappbaren Sektionen
Old/blog/oldEingeklappte Posts, nur Titel sichtbar, ausklappbar pro Tag

Custom Pages

Standardmäßig werden .md-Dateien im Ordner content mit layouts/_default/single.html gerendert. Spezielle Seitentypen nutzen eigene Layouts:

SeitentypLayoutBeschreibung
Nowbento/now.html“/now”-Seite mit Timeline, zeigt Einträge aus bento/now/ sortiert nach start
Kontaktbento/kontakt.htmlKontaktseite mit E-Mail/LinkedIn-Buttons und Profilbild
Servicesbento/services.htmlDienstleistungen als 3-Spalten-Karten mit services-Array (je title, description, details)
Rolodexbento/rolodex.htmlAlphabetisches Link-Verzeichnis mit A–Z-Navigation und Tag-Filter
Talksbento/talks.htmlVortragsarchiv, nach Monat gruppiert, mit Datums-Badges

Shortcodes

circle

Farbiger Punkt als Trennzeichen.

{{< circle >}}
{{< circle size="0.85em" >}}

dotted-separator

Horizontale Trennlinie.

{{< dotted-separator >}}

palette

Farbpalette mit Swatches und Labels.

{{< palette colors="#0f0,#00f,#f00" labels="Lime,Blue,Red" >}}
ParameterStandardBeschreibung
colorsKommagetrennte Farbwerte (Pflicht)
labelsKommagetrennte Farbnamen
size44pxSwatch-Größe
gap8pxAbstand zwischen Swatches
directionrowrow oder column
radius8pxEckenradius
bordertrueRand anzeigen
showLabelstrueLabels anzeigen
circletrueRunde Swatches (50% Radius)

quote

Zitat mit Quellenangabe.

{{< quote >}}Quellentext{{< /quote >}}

Suche

Client-seitige Volltextsuche mit Lunr.js. Der Suchindex wird aus allen Blog-Posts generiert und enthält Titel, Tags und Inhalt. Erreichbar über /search.

Tags

Tags werden als Taxonomie verwaltet. Jeder Tag hat eine eigene Seite unter /tags/{tag} mit allen zugehörigen Posts, gruppiert nach Datum.

CSS-Themes

Verfügbare Theme-Varianten in themes/brutal/static/css/:

DateiBeschreibung
style.cssHaupt-Stylesheet
barcelona.cssBarcelona-Theme
corp.cssCorporate-Theme
dieter.cssDieter-Theme
elegant.cssElegant-Theme
flair.cssFlair-Theme
telegraf.cssTelegraf-Theme
terminal.cssTerminal/Monospace-Theme

Alle Themes nutzen CSS-Variablen: --primary, --secondary, --promo, --light, --dark, --text, --card-bg, --border-radius, --font-mono, --font-bold.