updated: | 2024 22. August |
published: | 2021 16. March |
Shortcodes
Vorlagen mit Shortcodes erstellen.Shortcodes sind benutzerdefinierte Vorlagen die im Verzeichnis: <themename>/layout/shortcodes
hinterlegt werden.
Die dazu benötigten Compact Style Sheets können als Sass-Dateien abgespeichert werden in: <themename/assets/sass/shortcodes/
.
Einige der folgenden Shortcodes stammen aus dem Thema docport
.
Vorabinfo zum Trennzeichen %
Shortcodes werden aufgerufen in der Form mit {{< shortcodename >}}
oder mit {{% shortcodename %}}
.
Das Trennzeichen %
teilt Gohugo mit, dass der gerenderte Shortcode weiter verarbeitet wird. Sie können dann Teil des generierten Inhaltsverzeichnisses, der Fussnoten usw. sein. Das Trennzeichen < >
teilt Gohugo mit, dass der gerenderte Shortcode keiner weiteren Verarbeitung bedarf.
Am Beispiel des Shortcodes dummy.html
wird die Funktionsweise der Trennzeichen demonstriert.
{{- .Inner -}}
Beispiel mit Trennzeichen %
{{%dummy%}}
Der __Inhalt__ mit dem `Trennzeichen %` wird ___nochmal___ `gerendet`.
{{%/dummy%}}
Der Inhalt mit dem Trennzeichen %
wird nochmal gerendet
.
Beispiel mit Trennzeichen <
{{<dummy>}}
Der __Inhalt__ mit dem `Trennzeichen >` wird nicht ___nochmal___ `gerendet`.
{{</dummy>}}
Die Funktion markdownify
Mit der Funktion markdownify
wird der Inhalt mit Trennzeichen <
doch gerendert.
{{- .Inner | markdownify -}}
Der Inhalt mit dem Trennzeichen <
und der Funktion markdonify
wird doch gerendet
.
Verhalten vor Version 0.55
In einigen Shortcodes wie z.B. Notice und Tabs findet man folgende Codezeile:
{{ $_hugo_config := `{ "version": 1 }` }}
Die Funktionsweise des Trennzeichen %
beim Aufruf von Shortcodes der Form {{% shortcodename %}}
wurde ab der Gohugo Version 0.55
geändert.
Mit der o.g. Codezeile wird das alte Verhalten vor Version 0.55 generiert. Mittlerweile hat dieser Eintrag keine Auswirkung mehr und kann deshalb entfallen.
Menu.html
Das Shortcode menu.html
verdeutlicht Menus im Textfluss, indem es in einer anderen Farbe und in einem anderen Stil dargestellt wird.
Als Trennzeichen zwischen den einzelnen Menupunkten wird ein Schrägstrich (Slash) /
verwendet. Standardmäßig wird der Prefix Menu:
verwendet. Optional kann ein anderer Prefix vorangestellt werden.
{{<menu "Datei/Einstellungen/...">}} -> im Text erscheint: «Menu: Datei → Einstellungen»
{{<menu "Datei/Einstellungen/..." "prefix:">}} -> im Text erscheint: «prefix: Datei → Einstellungen»
Code.html
Die in Gohugo vorbereiteten Chroma-Syntaxhighlights
können in einer eigenen Shortcodedatei ./layouts/shortcodes/code.html
ergänzt und das
weitere Aussehen definiert werden.
{{<code lang="required" file="optional" title="optional" options="optional" >}}
[content]
{{</code>}}
Optionen
Folgende Optionen stehen für Code.html zur Verfügung:
Option | Usage |
---|---|
lang | Language for syntax highlighting |
title | Shows Title as Banner. Is title="filename" shows filename as banner. |
file | Path to the included file relative to the Hugo root. |
options | Highlighting options |
Beispielanwendung insbesondere mit options
für das Hervorheben von Zeilen.
# Standardanwendung
{{<code lang="c++">}}
{{<code lang="c++" title="Text im Banner">}}
# Options
{{<code lang="c++" options="linenos=table,linenostart=12,hl_lines=3 6 9-15">}}
{{<code lang="c++" options="linenos=false,linenostart=12,hl_lines=1 5 8 12-15">}}
# Beispiel mit Integration einer Datei
{{<code lang="c++" file="./path/to/file.cpp" title="filename">}}
{{<code lang="c++" file="./path/to/file.cpp" title="Irgendein Titel">}}
{{<code lang="c++" file="./path/to/file.cpp" options="linenos=table,linenostart=12,hl_lines=3 6 9-15">}}
{{<code lang="c++" file="./path/to/file.cpp" options="hl_lines=1 5 6 7,linenostart=1,linenos=table" >}}
{{<code lang="cpp" file="/static/include_files/main.cpp" options="linenos=true" >}}
Weitere Hinweise
Um Shortcode-Anweisung in Syntaxhighlight’s zu deaktivieren und stattdessen anzuzeigen, verwende die Zeichen: /* … */
Shortcode | deaktiviert |
---|---|
{{<param date>}} | {{</*param date*/>}} |
{{<code lang=…>}} | {{</*code lang=…*/>}} |
{{<mytable>}} | {{</*mytable*/>}} |
{{</mytable>}} | {{</*/mytable*/>}} |
Mit dem verbesserten Shortcode {{<code>}}
können nunmehr ganze Dateien eingelesen und mit einem entsprechenden Syntaxhighlight
gerendert werden.
Im Weiteren ist es kein Problem Backticks
als Syntaxhighlight anzuzeigen.
```bash
[content]
```
Anwendungsbeispiele
Beispiel C++ File included
{{<code lang="cpp" file="/static/include_files/main.cpp" options="linenos=true" title="Beispiel C++ File included">}}
{{</code>}}
Ergebnis:
|
|
Beispiel Sass File included
{{<code lang="sass" file="/themes/mab-3.0/assets/sass/main.sass" options="linenos=true" title="Beispiel Sass">}}
{{</code>}}
Ergebnis:
|
|
Beispiel Shortcode Html File included
{{<code lang="go-html-template" file="/themes/mab-3.0/layouts/_default/baseof.html" options="linenos=true" title="Beispiel _default/baseof.html">}}
{{</code>}}
Ergebnis:
|
|
CSV-Datei mit viewcsv.html anzeigen
Eine CSV-Datei kann mittels Shortcodes in einer Tabelle dargestellt werden.
{{< viewcsv url="required" sep="optional" caption="optional" class="optional" >}}
Folgende Optionen stehen für viewcsv.html zur Verfügung:
Option | Usage |
---|---|
url | Path zur CSV-Datei |
sep | Spaltentrennzeichen (Seperator, Delimiter) Standard ist Komma |
caption | Tabellentitel |
class | Eigenschaften zur Darstellung der Tabelle (Tabellen-Styles ) |
Anwendungsbeispiel
{{< viewcsv url="csv/SalesJan2009.csv" caption="SalesJan2009.csv" >}}
{{< viewcsv url="csv/Baupreisindex.csv" sep=";" >}}
Ergebnis:
Transaction_date | Price | Payment_Type | Name | City | State | Country | Account_Created | Last_Login |
---|---|---|---|---|---|---|---|---|
1/2/09 6:17 | 1200 | Mastercard | carolina | Basildon | England | United Kingdom | 1/2/09 6:00 | 1/2/09 6:08 |
1/2/09 4:53 | 1100 | Visa | Betina | Parkville | MO | United States | 1/2/09 4:42 | 1/2/09 7:49 |
1/2/09 13:08 | 1230 | Mastercard | Federica e Andrea | Astoria | OR | United States | 1/1/09 16:21 | 1/3/09 12:32 |
1/3/09 14:44 | 1200 | Visa | Gouya | Echuca | Victoria | Australia | 9/25/05 21:13 | 1/3/09 14:22 |
1/4/09 12:56 | 3600 | Visa | Gerd W | Cahaba Heights | AL | United States | 11/15/08 15:47 | 1/4/09 12:45 |
1/4/09 13:19 | 1200 | Visa | LAURENCE | Mickleton | NJ | United States | 9/24/08 15:19 | 1/4/09 13:04 |
1/4/09 20:11 | 1200 | Mastercard | Fleur | Peoria | IL | United States | 1/3/09 9:38 | 1/4/09 19:45 |
1/5/09 20:09 | 1200 | Mastercard | adam | Martin | TN | United States | 1/2/09 17:43 | 1/4/09 20:01 |
Weitere Beispiele für Tabellen in gohugo bei zwbetz.com .
Expand Text
Zusammenklappbare Abschnitte mit {{<expand>}}
erstellen (engl. collapsible).
|
|
{{<expand title="Expand Shortcode Sample">}}
In einer Expansionsvorlage können insoweit alle markdowntypischen Elemente verwendet werden.
...
...
...
{{</expand>}}
Hinweis: Die Höhe der Expansionsvorlage ist begrenzt auf: max-height: 1000em;
Siehe in der entsprechenden Stylesheetsdatei.
Columns
Die Vorlage {{<columns>}}
zeigt Inhalte spaltenweise nebeneinander an. Die Spaltenüberschriften werden mit einem Doppelkreuz #
eingeleitet.
|
|
{{<columns class="Option1 Option2">}}
## Title Left
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua.
<---> <!-- magic separator, between columns -->
### Title Mid
Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
<---> <!-- magic separator, between columns -->
#### Title Right
Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
{{</columns>}}
Ergebnis:
Styles Option
Folgende Optionen für {{<columns>}}
stehen zur Verfügung:
class Option | Effekt |
---|---|
center | Textausrichtung zentriert |
left | Textausrichtung links (standard) |
right | Textausrichtung rechts |
color | Einfärben des Frames für Testzwecke. |
growlast | Vergrößert das letzte Frame um den Faktor 2. Ist nur für zwei Spalten geeignet. |
growfirst | Vergrößert das erste Frame um den Faktor 2. Ist nur für zwei Spalten geeignet. |
Eine symetrische Darstellung ergibt sich mit der Option class="center"
wenn nur zwei Spalten benötigt werden und eine Spalte eine Tabelle enthält und die andere Spalte ein Bild.
Panel
Ein Panel ist eine Tafel (oder Board) mit dem Informationen besonders hervorgehoben werden (Farbe, Überschrift, Fußraum).
<div class="card ">
{{- with .Get "header" -}}
<div class="card-header {{with $.Get "theme" }}{{.}}{{else}}primary{{end}}">
{{- htmlUnescape . | markdownify -}}
</div>
{{- end -}}
<div class="card-body">
<p class="card-text">{{- .Inner -}}</p>
</div>
{{- with .Get "footer" -}}
<div class="card-footer text-muted">
{{- htmlUnescape . | markdownify -}}
</div>
{{- end -}}
</div>
{{<panel theme="success" header="Überschrift" footer="Fußraum">}}
Text Text Text text.
{{</panel>}}
{{<panel>}}this is a simple panel{{</panel>}}
Ergebnis:
Text Text Text text.
this is a simple panel
Hinweis BlockquotesEin Panel kann mit Blockquotes eingerückt werden.
Panel-Themes
this is a panel text
this is a panel text
this is a panel text
this is a panel text
this is a panel text
this is a panel text
Tabs - Registrierkarten
Mithilfe von Registrierkarten {{<tabs>}}
können Inhalte organisiert werden. Z.B. HelloWorld-Anweisung für verschiedene Sprachen.
{{<tabs>}}
{{<tab "PHP">}}
Text Text Text Text
Codeblock 1 mit Backticks einschließen
{{</tab>}}
{{<tab "Golang">}}
Text Text Text Text
Codeblock 2 mit Backticks einschließen
{{</tab>}}
{{</tabs>}}
Ergebnis:
Beschreibung Text Text Text Text
|
|
Beschreibung Text Text Text Text
|
|
Hinweis: Die Schrift der Beschreibung wird kleiner wenn vier Leerzeichen vorangestellt werden.
Alert - Warnung
Die benutzerdefinierte Vorlage {{% alert %}}
wird verwendet, um kurze Informationen hervorzuheben. Der Text kann auch mit dem Schriftstil **FETT**
besonders betont werden.
<div class="alert{{- " " -}}
{{- if .IsNamedParams -}}{{- with .Get "theme" -}}{{.}}{{- else -}}info{{- end -}}
{{- else -}}
{{- with .Get 0 -}}{{.}}{{- else -}}info{{- end -}}
{{- end -}} " role="alert">
{{- .Inner | safeHTML | markdownify -}}
</div>
{{% alert %}}**this** is a simple alert{{% /alert %}}
{{% alert primary %}}**this** is a primary{{% /alert %}}
{{% alert theme="info" %}}**this** is a text with theme "info"{{% /alert %}}
{{% alert theme="success" %}}**Yeahhh !** is a text with theme "success"{{% /alert %}}
{{% alert theme="warning" %}}**Be carefull** is a text{{% /alert %}}
{{% alert danger %}}**Beware !** is a text{{% /alert %}}
{{% alert dark %}}**Dark !** is a dark{{% /alert %}}
{{% alert light %}}**oooh !** is a light{{% /alert %}}
{{% alert secondary %}} **Wait** is a secondary{{% /alert %}}
Ergebnis:
Hinweis: Mit Blockquotes kann einalert
eingerückt werden.
Notice
Notizen sind ähnlich wie Alert-Vorlagen eine Möglichkeit Informationen, in diesem Fall umfangreicher, darzustellen.
{{% notice $color $label %}}
Text Text Text
\ <-- neuer Absatz -->
Text Text Text
{{% /notice %}}
Example
Beispiele für Notice-Vorlagen.
Im Shortcode notice können auch Textbetonungen mit führenden und nachfolgenden Unterstrich verwendet werden.
_Kursive_ = Kursive
__Fett__ = Fett
___Fett und Kursive___ = Fett und Kursive
~~Durchgestrichen~~ = Durchgestrichen
Absätze werden mit einem Backslash \ eingeleitet.
Die letzte Zeile einer innerhalb eines notice-Bereiches muss ein Text beinhalten.
Lorem ipsum dolor sit amet, consectetur.
Lorem ipsum dolor sit amet, consectetur.
Lorem ipsum dolor sit amet, consectetur
Lorem ipsum dolor sit amet, consectetur
Colors
Farbgestaltung in Notice-Vorlagen.
Type | Code |
---|---|
This is the default notice. |
{{< notice >}} … {{< /notice >}} |
This is a primary notice. |
{{< notice primary >}} … {{< /notice >}} |
This is a secondary notice. |
{{< notice secondary >}} … {{< /notice >}} |
This is a success notice. |
{{< notice success >}} … {{< /notice >}} |
This is a danger notice. |
{{< notice danger >}} … {{< /notice >}} |
This is a warning notice. |
{{< notice warning >}} … {{< /notice >}} |
This is a info notice. |
{{< notice info >}} … {{< /notice >}} |
This is a light notice. |
{{< notice light >}} … {{< /notice >}} |
This is a dark notice. |
{{< notice dark >}} … {{< /notice >}} |
Labels (Etiketten)
Notizen mit einem Etikett (Label) versehen.
Type | code |
---|---|
This is a notice without label. |
{{< notice primary >}} … {{< /notice >}} |
This is a notice with “toto” label. |
{{< notice primary toto >}} … {{< /notice >}} |
This is a with “my label”. |
{{< notice primary “my label” >}} … {{< /notice >}} |