updated: | 2025 14. January |
published: | 2020 14. December |
Markdown mit gohugo.
Markdown - Text mit einfachen Formatierungselementen gestalten.Was ist Markdown?
Markdown ist eine in Textdateien angewendete Formatierungssprache, mit der durch einfache Formatierungselemente/-befehle ein Text gestaltet werden kann.
Zum Beispiel erzeugt das Formatierungselement ##
eine Überschrift.
## Was ist Markdown?
Gohugo verwendet standardmäßig die Bibliothek Goldmark für das Übersetzten von Markdown in Html. Es ist schnell, flexibel und konform mit CommonMark.
Formatierungselemente in Markdown
Formatierungselemente sind einfache Symbole oder Sonderzeichen im Text die letztendlich mit einer Formatierungsfunktion belegt sind.
Formatierungssymbol | Umsetzung in Html | Output |
---|---|---|
# | <h1>Überschrift 1. Kategorie </h1> |
|
## | <h2>Überschrift 2. Kategorie </h2> |
|
_Text_ | <em>Text kursive </em> |
Text |
*Text* | <em>Text kursive </em> |
Text |
__Text__ | <strong>Text fett </strong> |
Text |
**Text** | <strong>Text fett </strong> |
Text |
Weitere einfache Formatierungselemente sind Listen und Elemente zur Textgestaltung.
URL’s (Links) für https, Bilder, Dateien, etc.
Url’s werden im Text direkt als Link interpretiert. Allgemein können URL’s am Ende der Markdowndatei (*.md
) mit einer Kurzbezeichnung definiert und im Text verwendet werden (↗Gohugo Links and Cross Reference).
- Url-Link direkt innerhalb eines Textes verwenden oder eingeschlossen mit spitzen Klammern
<...>
.
https://www...
<https://www...>
<mail@www...>
- Url-Link direkt innerhalb eines Textes mit anderer Bezeichnung.
[Bezeichnung](http: www...de)
[Bezeichnung](http: www...de "Title")
- Url-Link am Ende der Markdowndatei
Text Text Text Text Text Text
Text Text Text Text Text Text
[LinkName01][]
[anderer Text][LinkName01]
Text Text Text Text Text Text
[LinkName01]: https://de.wikipedia.org
- Url-Link auf eigene Projektseite verlinken
[Bezeichnung]: ({{< relref "/path/path/markdownfile#ueberschrift" >}} "Title")
[code.html]: {{< relref "/dev/gohugo/hilfe/shortcodes#codehtml" >}}
[git add]: {{< relref "git-befehle#33-git-add" >}}
Hinweis: Verwende ein Bindestrich bei Überschriften mit Leerzeichen und Nummerierung für die Leerzeichenüberbrückung.
Bilder verwenden
Erzeuge im Arbeitsverzeichnis das Verzeichnis static/images
und speicher deine Bilder darin. In Markdowndatei (*.md
) kann wie folgt die Bilddatei eingebunden werden.
     
Für mehr Details siehe Artikel: Bilder, Fotos, Grafiken.
Dateien als Download anbieten, bzw. statisch verlinken
Im Verzeichnis static/pdf
kann eine Datei (*.pdf, *.txt, etc
) abgelegt und wie folgt verwendet werden.
[Download file](/pdf/sample.pdf)
Ergebnis: Download file
Aufzählungslisten
Das Html-Element <li>
erzeugt geordnete oder ungeordnete Listen.
Unordered Lists
Listen können mit folgenden Aufzählungszeichen markiert werden:
* Unordered list item 1.
+ Unordered list item 2.
- Unordered list item 3.
Ergebnis:
- Unordered list item 1.
- Unordered list item 2.
- Unordered list item 3.
Ordered Lists
1. ordered list item 1.
2. ordered list item 2.
+ sub-unordered Liste beginnen mit 3 Leerzeichen gefolgt von einem + Zeichen.
+ sub-unordered list item 2.
+ [x] something is DONE.
+ [ ] something is NOT DONE.
+ sub-sub liste mit 6 Leerzeichen gefolgt von einem + Zeichen
Ergebnis:
- ordered list item 1.
- ordered list item 2.
- sub-unordered Liste beginnen mit 3 Leerzeichen gefolgt von einem + Zeichen.
- sub-unordered list item 2.
[x] something is DONE.
[ ] something is NOT DONE.- sub-sub liste mit 6 Leerzeichen gefolgt von einem + Zeichen
Definition Lists
Zur besseren Differenzierung zwischen Text und Definitionsliste sollte eine Leerzeile (drei Leerzeichen in Markdown) vor der Definitionsliste eingefügt werden.
First Term
: This is the definition of the first term.
Second Term
: This is one definition of the second term.
: This is another definition of the second term.
: This is another definition of the second term.
Ergebnis:
Zur besseren Differenzierung zwischen Text und Definitionsliste sollte eine Leerzeile (drei Leerzeichen in Markdown) vor der Definitionsliste eingefügt werden.
- First Term
- This is the definition of the first term.
- Second Term
- This is one definition of the second term.
- This is another definition of the second term.
- This is another definition of the second term.
Textgestaltung mit Markdown
Textbetonung (Emphasis), Schriftstil in Markdown
_kursiv 1_ *kursiv 2*
__bold 1__ **bold 2**
___fett und kusiv 1___ ***fett und kursiv 2***
~~durchgestrichen~~
Hinweis: Verwende vorrangig Unterstriche (_) statt Asteriskszeichen (*).
Ergebnis:
kursiv 1 kursiv 2
bold 1 bold 2
fett und kusiv 1 fett und kursiv 2
durchgestrichen
Einfaches Texteinrücken mit Blockquotes
> Einfaches ...
>> und doppeltes Einruecken ...
>>> und dreifaches Einruecken ...
> > > oder mit Raum zwischen den Pfeilen (Arrows) ...
Ergebnis:
Einfaches …
und doppeltes Einruecken …
und dreifaches Einruecken … oder mit Raum zwischen den Pfeilen (Arrows) …
Zeilenumbruch
Ein einfacher Zeilenumbruch <br>
wird in Markdown mit drei Leerzeichen in Html gerendert. Das Gleiche passiert auch wenn ein Text mit zwei Leerzeichen beginnt und endet.
Zum Beispiel:
Das ist die 1. Zeile mit zwei Leerzeichen am Beginn und am Ende
Das ist die 2. Zeile mit zwei Leerzeichen am Beginn und am Ende
Das ist die 3. Zeile mit zwei Leerzeichen am Beginn und am Ende
Textgestaltung mit HTML-Elementen
Für die Textgestaltung mit HTML-Elementen muss in der Konfigurationsdatei config.toml
der Schalter unsafe
gesetzt werden.
[markup]
defaultMarkdownHandler = "goldmark"
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true
Text hoch-, tiefgestellt
Mit dem Html-Element <sup> ... </sup>
kann Text hochgestellt werden.
Mit dem Html-Element <sub> ... </sub>
kann Text tiefgestellt werden.
Texthilfe verwenden
Mit dem Html-Element <abbr title="Hilfetext"> ... </abbr>
(abbreviation = Abkürzung) wird ein Schriftzug mit einem kleinen Hilfetext versehen wenn der Mauszeiger über den Text fährt.
Zum Beispiel:
Html Seiten werden mit CSS gestaltet.
Schrift verkleinern mit <small>
Mit Hilfe des Html-Elements <small> ... </small>
kann der Text in Markdown verkleinert werden.
Text für Keybord mit <kbd>
Press Enter to continue
Textumbruch
Mit der CSS-Eigenschaft hyphens
wird das Verhalten für die automatische Silbentrennung festgelegt. Als Defaultwert hat die Eigenschaft hyphens: manual;
.
Damit kann jedes Wort, welches zu lang ist, mit dem Sonderzeichen ­
an der Stelle markiert werden, an dem eine Worttrennung erfolgen soll.
Spalte 1 | Spalte 2 |
---|---|
Kreisgartenfachberaterbevollmächtigenzulassungsverordnung | Kreisgarten­fachberaterbevollmächtigen­zulassungsverordnung |
Textgestaltung mit eigenem Shortcode
Menus im Text dargestellen
Siehe dazu im Artikel Shortcodes.
Überschriften
Überschriften werden in Markdown mit dem Formatierungselement #
erzeugt.
Markdown | Umsetzung in Html |
---|---|
# | <h1>Überschrift 1. Kategorie </h1> |
## | <h2>Überschrift 2. Kategorie </h2> |
### | <h3>Überschrift 3. Kategorie </h3> |
Syntax Highlights
Gohugo bietet vorbereitete Syntaxhighlights und verwendet Chroma als Code-Textmarker. Es ist in Go gebaut und sehr, sehr schnell. Für eine Demo schau mal hier und da.
Chroma Styles
In der Konfigurationsdatei (config.toml) kann ein Chroma Style zur Darstellung der Syntaxhightlight hinterlegt werden.
pygmentsCodefences = true
pygmentsStyle = "emacs"
# Weitere Styles sind
# pygmentsStyle = "pygments"
# pygmentsStyle = "perldoc"
# pygmentsStyle = "dracule"
Global kann folgende Option mitgeben werden:
pygmentsOptions = "linenos=table,linenostart=10"
Das ist jedoch nicht ratsam außer man verwendet eigene geänderte Styles (siehe unten). Besser ist es aber diese Option direkt vor der entsprechenden Syntax in der Markdowndatei zu setzen (siehe Beispiele Backtick’s).
Chrome Styles verändern
Auslesen eines entsprechenden Styles.
hugo gen chromastyles --style=emacs > ./static/emacs.css
Ergänzen der Datei: ./layouts/partials/header.html
<link href="/emacs.css" type="text/css" rel="stylesheet" />
In der Konfigurationsdatei (config.toml) sind nun folgende Einstellungen notwendig:
pygmentsCodefences = true
# pygmentsStyle = "emacs" # Abschalten
pygmentsUseClasses = true
pygmentsOptions = "linenos=true"
Backtick
Chroma Syntaxhighlight’s werden mit Backtick’s eingeleitet oder als Shortcode {{<highlight>}}
. Es kann auch das Interpunktionszeichen (Tilde
‘~
’) verwendet werden.
In der Sprache wird ein Backtick als Akzent (Gravis
) zur Kennzeichnung einer besonderen Aussprache, Betonnung oder Bedeutung eines Buchstaben verwendet. Ein Backtick wird in der Informatik als alleinstehendes Zeichen bezeichnet. Syntaxhighlights mit Backticks beginnen mit drei aufeinanderfolgenden Backticks und enden mit drei aufeinanderfolgenden Backticks.
Alle Codezäune können in einem eigenen Shortcode code.html
ergänzt werden.
```highlight
[content]
```
Highlight | Anwendungsbeispiel |
---|---|
```c++ | |
```c++ {linenos=false} | |
```c# | |
```tpl | |
```r | |
```r {hl_lines=[1,“4-5”],linenos=table,linenostart=3} | |
```go-html-template | |
```javascript | |
```go {linenos=table,hl_lines=[8,“15-17”],linenostart=199} | |
```yaml | |
```bash | |
```batchfile | |
```powershell | |
```coffeescript | |
```csharp | |
```java | |
```scss | Stylesheets |
Beispiele für Markdown (*.md)
Andere Backticksbeispiele
Beispiel mit Shortcode {{<highlight>}}
{{<highlight go-html-template "linenos=table,hl_lines=1 3-6 8,linenostart=199">}}
[content]
{{</highlight>}}
Ergebnis:
Der Parameter hl_lines=1 3-6 8
belegt die Zeilen 1, 3 bis 6 und 8 mit einer anderen Hintergrundfarbe.
|
|
Beispiel zum anzeigen einer Verzeichnisstruktur
Ergebnis:
includes/
├── include-page.md
│ └── wx
│ └── setup.h
└── index.md
Weiter Beispiele zum anzeigen von Verzeichnisstrukturen.
Beispiel Verknüpfungen
Funktionszeichen deaktivieren (maskieren)
In Markdown (*.md
)
Die in Markdowndateien für eine besonderen Formatierung belegten Funktionszeichen (z.B. ##
für Überschriften, oder >
für Blockquotes) können mit einem Backslash (\) maskiert
und somit deaktiviert werden um so das entsprechende Literalzeichen zu generieren.
Funktionszeichen | deaktiviert mit | Beschreibung |
---|---|---|
# | \# | hash mark |
> | \> | arrow, Vergleichszeichen |
< | \< | arrow, Vergleichszeichen |
\ | \\ | backslash |
` | \` | backtick |
* | \* | asterisk |
_ | \_ | underscore |
{ } | \{ \} | curly braces |
[ ] | \[ \] | square brackets |
( ) | \( \) | parentheses |
+ | \+ | plus sign |
- | \- | minus sign (hyphen) |
& | \& | and sign |
- Um in Markdowndateien Shortcode-Anweisung zu deaktivieren und stattdessen anzuzeigen oder zu kommentieren, verwende die Zeichen:
- /* … */
- oder setze die geschweifte Klammer in Hochkommas
- “{{" … ”}}"
Shortcode | deaktiviert |
---|---|
{{<param date>}} | {{</*param date*/>}} |
{{<code lang=…>}} | {{</*code lang=…*/>}} |
{{<mytable>}} | {{</*mytable*/>}} |
{{</mytable>}} | {{</*/mytable*/>}} |
{{<form>}} | "{{"<form>"}}" |
In Shortcode oder Templates (*.html
)
Gohugo verwendet die geschweifte Klammer in Shortcodes oder in Html-Dateien für Funktionsaufrufe und Variablen. Um die geschweifte Klammer selbst zu maskieren und anzuzeigen nimm folgende Syntax:
{{"{{"}} .Page.Date {{"}}"}}
Adressen mit hexadezimale Entitätscodierung verstecken
Um dieses Future zu verwenden muss in der Datei config.toml
der Schalter unsafe
auf true
gesetzt werden.
[markup]
sefaultMarkdownHandler = "goldmark"
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true
Zum Beispiel das Verstecken eines Link’s mit hexadezimaler Entitätscodierung.
<a href="mailto:address@example.com">address@example.com</a>
Ergebnis:
Emojies verwenden
Emojies sind standardisierte Symbole zur Darstellung von Emotionen (bzw. Gefühlen), Objekte, Aktivitäten, Tieren und Natur usw. In Markdown werden Emojies durch Wörter symbolisiert, die mit einem Doppelpunkt am Wortanfang und am Wortende eingegrenzt sind.
Eine umfangreiche Seite bietet Emoji cheat sheet .
enableEmoji = true
Emojie | Emojie | Code |
---|---|---|
😉 :wink: | 😢 :cry: | 😡 :rage: |
💤 :zzz: | 1️⃣ :one: | 2️⃣ :two: |
🆑 :cl: | 🔝 :top: | 😋 :yum: |
🐸 :frog: | 🐱 :cat: | 🐶 :dog: |
🅰️ :a: | ☎️ :phone: | 📱 :iphone: |
Ⓜ️ :m: | ❌ :x: | ⭕ :o: |
👍 :+1: | 👎 :-1: | 🔍 :mag: |
🆔 :id: | 🇩🇪 :de: | 🇷🇺 :ru: |
🕥 :clock1030: |
▶️ :arrow_forward: |
✅ :white_check_mark: |
©️ :copyright: |
®️ :registered: |
🔢 :1234: |
ℹ️ :information_source: |
:information: :information: |
✨ :sparkles: |