Shortcodes

8 Minuten Lesezeit

Liftoff bringt eine kompakte Sammlung von Shortcodes mit, die du frei kombinieren kannst. Jeder Eintrag listet Parameter, ein Code-Beispiel und eine Live-Vorschau.

Zwei Dinge kommen ganz ohne Shortcode aus, weil sie über Markdown-Render-Hooks laufen: Hinweisboxen und Codeblöcke.

Hinweisboxen

Ein Zitat, das mit einer Alert-Markierung beginnt, wird zur Hinweisbox. Die Beschriftung läuft über i18n und richtet sich damit nach der Sprache der Seite.

markdown
> [!NOTE]
> Neutraler Hintergrund.

> [!TIP]
> Eine Abkürzung oder der bessere Weg.

> [!WARNING]
> Etwas, das später Ärger macht.

> [!DANGER]
> Etwas, das den Build sofort zerlegt.

[!CAUTION] gilt als Alias für [!DANGER]. Ein Zitat ohne Markierung bleibt ein normales Zitat.

Codeblöcke

Codeblöcke mit Backticks bekommen automatisch ein Sprachlabel und einen Copy-Button. Dafür braucht es keinen Shortcode.

markdown
```bash
hugo server --source exampleSite --themesDir ../..
```

Ohne Sprachangabe fällt der Block auf text zurück. Für die Varianten wide und featured nimmst du stattdessen den code-Shortcode.

hero

Hero in Sektionsbreite mit optionalem Akzent in der Headline. Beliebige weitere Blöcke (Code, Buttons, Pills) kommen in den Body und landen in der Hero-Spalte.

ParamTypBeschreibung
titlestringHauptüberschrift.
titleAccentstringZweiter Teil der Überschrift im Akzentfarbton.
subtitlestringLead unter der Überschrift. Markdown erlaubt.
bodymarkdownFreier Slot: Code-Blöcke, Buttons, Pills, alles.
markdown
{{< hero title="In fünf Minuten" titleAccent="online." subtitle="Plattform aussuchen, Theme einklinken, Inhalte pflegen." >}}

{{< buttons >}}
  {{< button href="/docs" variant="primary" size="lg" >}}Zur Doku{{< /button >}}
{{< /buttons >}}

{{< /hero >}}

In fünf Minuten online.

Plattform aussuchen, Theme einklinken, Inhalte pflegen.


pills / pill

Kompakte Reihe mit Highlight-Tags für Hero- oder Section-Intros. Jeder pill nimmt optional ein Iconify-Icon.

ParamTypBeschreibung
pill iconstringIconify-Identifier, z. B. mdi:code-tags.
pill bodytextLabel.
markdown
{{< pills >}}
  {{< pill icon="mdi:code-tags" >}}Jede Sprache{{< /pill >}}
  {{< pill icon="mdi:translate" >}}Mehrsprachig{{< /pill >}}
  {{< pill icon="mdi:flash" >}}Static & schnell{{< /pill >}}
{{< /pills >}}
  • Jede Sprache
  • Mehrsprachig
  • Static & schnell

buttons / button

buttons legt eine umbrechende Reihe; button rendert einen einzelnen Link im Button-Stil. Interne hrefs laufen durch relLangURL; URLs mit http(s):// oder mailto: bleiben unverändert.

ParamTypBeschreibung
hrefstringLinkziel.
targetstringHTML-target, z. B. _blank. Setzt rel=noopener noreferrer.
variantenumprimary (default), secondary, ghost.
sizeenumsm, md (default), lg.
iconstringIconify-Identifier.
iconPositionenumleft (default) oder right.
bodytextLabel.
markdown
{{< buttons >}}
  {{< button href="/docs" variant="primary" size="lg" icon="mdi:rocket-launch" >}}Loslegen{{< /button >}}
  {{< button href="/docs" variant="ghost" size="lg" icon="mdi:arrow-right" iconPosition="right" >}}Zur Doku{{< /button >}}
{{< /buttons >}}

code

Eigenständiger Code-Block mit derselben Optik wie der Markdown-Render- Hook: Sprach-Label, Copy-Button und optional ein animierter Verlaufs- Rahmen für die Hero-Platzierung.

ParamTypBeschreibung
languagestringChroma-Sprach-ID. Default text.
widebooltrue hebt die Hero-Breitenbegrenzung auf.
featuredbooltrue zeichnet einen animierten Verlaufs-Rahmen.
bodytextRoher Code. Keine Backticks nötig.
markdown
{{< code language="zsh" featured="true" >}}
hugo new site mysite && cd mysite
hugo mod init example.com/mysite
hugo mod get codeberg.org/head1328/hugo-liftoff
hugo server
{{< /code >}}

tabs / tab

Tab-Panels. tabs umschließt einen oder mehrere tab-Shortcodes. Der erste Tab ist per Default aktiv. Inhalte werden als Markdown gerendert, Code-Fences und verschachtelte Shortcodes funktionieren also.

ParamTypBeschreibung
tabs widebooltrue hebt die Hero-Breitenbegrenzung auf.
tabs featuredbooltrue zeichnet einen animierten Verlaufs-Rahmen.
tab namestringLabel auf dem Tab-Button.
tab iconstringIconify-Identifier links neben dem Label.
tab bodymarkdownPanel-Inhalt. Code-Fences und Shortcodes erlaubt.
markdown
{{< tabs >}}
  {{< tab name="macOS" icon="simple-icons:apple" >}}
  ```zsh
  brew install hugo
  ```
  {{< /tab >}}
  {{< tab name="Linux" icon="simple-icons:linux" >}}
  ```bash
  sudo apt install hugo
  ```
  {{< /tab >}}
  {{< tab name="Windows" icon="mdi:microsoft-windows" >}}
  ```powershell
  winget install Hugo.Hugo.Extended
  ```
  {{< /tab >}}
{{< /tabs >}}
zsh
brew install hugo

steps / step

Vertikaler, nummerierter Onboarding-Flow. steps ist der Container; jeder step ist eine eigenständige Karte mit Step-N-Titel-Header und einem Markdown-Body, der verschachtelte Shortcodes akzeptiert.

ParamTypBeschreibung
step numberstringIm Header angezeigte Nummer.
step titlestringTitel des Schritts.
step bodymarkdownInhalt. Code, Tabs, feature-grid: alles möglich.
markdown
{{< steps >}}

{{< step number="1" title="Hugo installieren" >}}
```zsh
brew install hugo
```
{{< /step >}}

{{< step number="2" title="Theme einklinken" >}}
Den Modul-Import in der `hugo.toml` ergänzen, dann:

```zsh
hugo mod tidy
hugo server
```
{{< /step >}}

{{< /steps >}}
Step 1

Hugo installieren

zsh
brew install hugo
Step 2

Theme einklinken

Den Modul-Import in der hugo.toml ergänzen, dann:

zsh
hugo mod tidy
hugo server

Die Stärke der Steps zeigt sich in Kombination mit anderen Shortcodes. Wickelt man die ganze Sequenz in tabs, bekommt jedes OS seinen eigenen, unabhängigen Step-Flow. Anzahl und Inhalt der Schritte dürfen sich pro Tab unterscheiden.

markdown
{{< tabs >}}
  {{< tab name="macOS" icon="simple-icons:apple" >}}
  {{< steps >}}
  {{< step number="1" title="Hugo installieren" >}}
  ```zsh
  brew install hugo
  ```
  {{< /step >}}
  {{< step number="2" title="Server starten" >}}
  ```zsh
  hugo server
  ```
  {{< /step >}}
  {{< step number="3" title="Startpunkt wählen" >}}
  {{< feature-grid >}}
  {{< feature-card title="Landing" icon="mdi:rocket-launch" >}}
  Hero, OS-Tabs, Code-Demo, Feature-Grid, Pricing, CTA.
  {{< /feature-card >}}
  {{< feature-card title="Doku" icon="mdi:book-open-page-variant" >}}
  Layout ohne Sidebar, On-this-page-TOC, Render-Hooks.
  {{< /feature-card >}}
  {{< /feature-grid >}}
  {{< /step >}}
  {{< /steps >}}
  {{< /tab >}}
  {{< tab name="Linux" icon="simple-icons:linux" >}}
  {{< steps >}}
  {{< step number="1" title="Hugo installieren" >}}
  ```bash
  sudo apt install hugo
  ```
  {{< /step >}}
  {{< /steps >}}
  {{< /tab >}}
{{< /tabs >}}
Step 1

Hugo installieren

zsh
brew install hugo
Step 2

Server starten

zsh
hugo server
Step 3

Startpunkt wählen

Landing

Hero, OS-Tabs, Code-Demo, Feature-Grid, Pricing, CTA.

Doku

Layout ohne Sidebar, On-this-page-TOC, Render-Hooks.

section

Einfacher Container mit Standard-Inhaltsbreite. Praktisch, um auf shortcode-getriebenen Seiten Sektionen zu gruppieren und Prosa zentriert zu halten.

ParamTypBeschreibung
widthenumwide (default) oder narrow.
bodymarkdownInhalt. Überschriften, Prosa, Shortcodes.
markdown
{{< section >}}

## Läuft überall

{{< icon-grid data="integrations" >}}

{{< /section >}}

feature-grid / feature-card

Responsives Grid aus Feature-Cards. feature-grid umschließt beliebig viele verschachtelte feature-card-Shortcodes.

ParamTypBeschreibung
card titlestringKarten-Überschrift.
card iconstringIconify-Identifier.
card urlstringMacht die ganze Karte anklickbar.
card bodymarkdownKarten-Body.
markdown
{{< feature-grid >}}
  {{< feature-card title="Landing" icon="mdi:rocket-launch" url="/get-started" >}}
  Hero, OS-Tabs, Code-Demo, Feature-Grid, Integrationen, Pricing, CTA.
  {{< /feature-card >}}
  {{< feature-card title="Doku" icon="mdi:book-open-page-variant" url="/docs" >}}
  Layout ohne Sidebar, On-this-page-TOC, Render-Hooks, Vor/Zurück.
  {{< /feature-card >}}
  {{< feature-card title="Artikel" icon="mdi:newspaper-variant-outline" url="/articles" >}}
  Listenkarten und Artikelseite mit angenehmer Leseweite.
  {{< /feature-card >}}
{{< /feature-grid >}}

Landing

Hero, OS-Tabs, Code-Demo, Feature-Grid, Integrationen, Pricing, CTA.

Doku

Layout ohne Sidebar, On-this-page-TOC, Render-Hooks, Vor/Zurück.

Artikel

Listenkarten und Artikelseite mit angenehmer Leseweite.

icon-grid

Kachel-Grid aus einer Daten-Datei. Praktisch für Integrations-Logos und Deployment-Ziele. Einträge mit Iconify-icon rendern als Inline-SVG; ohne icon bleibt die Kachel leer.

ParamTypBeschreibung
datastringName einer YAML-/TOML-Datei unter data/.
yaml
# data/integrations.yaml
- name: Docker
  icon: simple-icons:docker
  url: "#"
- name: Kubernetes
  icon: simple-icons:kubernetes
  url: "#"
markdown
{{< icon-grid data="integrations" >}}

pricing

Vergleich gestaffelter Angebote aus einer Daten-Datei. Rendert eine Karte pro Eintrag; der Eintrag mit featured: true bekommt Akzent- Rahmen und Banner.

ParamTypBeschreibung
datastringName einer YAML-/TOML-Datei unter data/.
yaml
# data/consulting.yaml
- name: Entwicklung
  tagline: Das fehlende Stück bauen.
  price: ab 800 EUR/Tag
  features: ["Neue Features", "Migrationen", "Code-Review"]
  cta:
    label: Anfrage stellen
    url: "#"
- name: Beratung
  featured: true
  tag: Häufig gebucht
  price: 150 EUR/h
  features: ["Architektur-Audits", "Workshops"]
  cta: { label: Termin buchen, url: "#", primary: true }
markdown
{{< pricing data="consulting-de" >}}

Entwicklung

ab 800 EUR/Tag

Das fehlende Stück bauen.

  • Neue Features und Integrationen
  • Migrationen und Refactorings
  • Code-Review und Pair-Programming
  • Open-Source-Beiträge

Customizing

Festpreis

Mach es zu deinem.

  • Theme-Anpassung
  • Branding und Optik
  • Layout- und Komponenten-Anpassungen
  • Content-Migration

testimonial

Zitat-Block mit optionalem Autor, Rolle und Metriken. Die Metriken werden aus einer metrics:-Liste am Ende des Bodys geparst.

ParamTypBeschreibung
authorstringAutor:innen-Name.
rolestringRolle.
bodymarkdownZitat, optional gefolgt von metrics:-Liste.
markdown
{{< testimonial author="Jane Doe" role="Platform Lead, Acme" >}}
Doku und Landingpage haben wir an einem Wochenende neu aufgesetzt.
Die Voreinstellungen passen, und wo man Hand anlegen muss, sieht man
sofort.

metrics:
- 80 % Zeit gespart
- 6 Seiten live
{{< /testimonial >}}
Doku und Landingpage haben wir an einem Wochenende neu aufgesetzt. Die Voreinstellungen passen, und wo man Hand anlegen muss, sieht man sofort.

Jane Doe

Platform Lead, Acme

80 % Zeit gespart
6 Seiten live

cta

Auffälliger Call-to-Action-Block mit optionalem Titel, optionalem Untertitel (dem Shortcode-Body) und bis zu zwei Aktions-Buttons.

ParamTypBeschreibung
titlestringÜberschrift als H2.
primarylabel|urlPrimärer Button, pipe-separiert.
secondarylabel|urlSekundärer Button, pipe-separiert.
bodymarkdownUntertitel unter der Überschrift.
markdown
{{< cta title="Bereit, zu skalieren?" primary="Loslegen|/get-started" secondary="Zur Doku|/docs" >}}
Wähle ein Blueprint und passe es an. Fünf Minuten vom Klonen zum Deploy.
{{< /cta >}}

Bereit, zu skalieren?

Wähle ein Blueprint und passe es an. Fünf Minuten vom Klonen zum Deploy.