2019-02-10 13:15:13 +01:00
# mark2web
mark2web ist ein Website-Generator, der als Eingabe Markdown-Dateien, Templates und Konfigurations-Dateien nutzt.
Die vorgesehene Arbeitsweise ist die Pflege der Inhalte über eine Versionsverwaltung (z.B. git) und anschließende CI/CD-Pipeline, welche den Generator aufruft und die fertige Website publiziert.
## Verzeichnisstruktur der Quellen
```plain
DIR content
2019-02-12 20:32:40 +01:00
FIL config.yml (Pfad-Konfiguration)
2019-02-10 13:15:13 +01:00
DIR de (Sprache)
DIR main (Navigationsbaum)
DIR 01_Home (1. Ebene)
2019-02-11 15:00:27 +01:00
FIL config.yml
2019-02-10 13:15:13 +01:00
FIL README.md
DIR 02_Download
FIL README.md
2019-02-12 20:32:40 +01:00
FIL bild.jpg
FIL presse.zip
2019-02-10 13:15:13 +01:00
DIR 03_Kontakt
FIL README.md
DIR 01_Adresse
FIL README.md
DIR 02_Anfahrt
FIL README.md
DIR 04_Impressum
FIL README.md
service
DIR 01_Datenschutz
FIL README.md
DIR 02_AGB
FIL README.md
DIR 03_Impressum
FIL README.md
2019-02-11 15:00:27 +01:00
DIR assets
DIR js
DIR img
DIR css
2019-02-10 13:15:13 +01:00
DIR templates
2019-02-12 20:32:40 +01:00
FIL home.html
FIL site.html
DIR partials
FIL meta.html
FIL header.html
FIL footer.html
FIL config.yml (globale Konfiguration, enthält andere Anweisungen als individuelle Pfad-Konfig, siehe Beispiel)
2019-02-10 13:15:13 +01:00
```
2019-02-13 21:16:35 +01:00
### `content`
2019-02-10 13:15:13 +01:00
- enthält die Markdown-Dateien und Konfigurationen für die Navigationsstruktur und Einzelseiten
- voranestellte Nummer mit Unterstrich wie z.B. `01_` dienen nur der Sortierung und gehen nicht in den eigentlichen Navigationspfad mit ein
- zur Bildung des Navigationspfades werden die Verzeichnisnamen in Kleinschreibung konvertiert
- Navigationsnamen für die Website werden aus dem Pfad gebildet, wobei `_` (Unterstriche) in Leerzeichen umgewandelt werden
2019-02-11 15:00:27 +01:00
- Navigationsnamen können durch die `config.yml` überschrieben werden
2019-02-10 13:15:13 +01:00
2019-02-12 20:32:40 +01:00
### Medien und Downloads
- Mediendateien werden neben den Inhalten in `content` abgelegt und müssen dementsprechend relativ verlinkt werden
2019-02-10 13:15:13 +01:00
2019-02-13 21:16:35 +01:00
### `assets`
2019-02-12 20:32:40 +01:00
- Bilder/CSS/JS die im Templates benötigt werden liegen in `assets`
2019-02-10 13:15:13 +01:00
2019-02-13 21:16:35 +01:00
### `templates`
2019-02-10 13:15:13 +01:00
- Template-Dateien für die Generierung der Website liegen hier
2019-02-12 20:32:40 +01:00
- Handlebar-Partials liegen in `templates/partials` und werden von mark2web global eingelesen und in Templates unter dem Dateinamen zur Verfügung gestellt
2019-02-10 13:15:13 +01:00
## Einzelseiten
Jede Seite ist innerhalb der Ordnerstruktur (Navigation) standardmäßig als `README.md` gespeichert. Die Datei ist eine normale Markdown-Datei mit einem optionalen Header:
```markdown
---
2019-02-12 20:32:40 +01:00
Meta:
Title: Seitentitel für die Meta-Angaben
Keywords: Meta-Keywords
Description: Meta-Description
2019-02-13 21:16:35 +01:00
Data: # Vererbung spielt hier keine Rolle, da Markdown-Datei letzte Ebene in der Generierung ist
2019-02-12 20:32:40 +01:00
image: bild.jpg
2019-02-10 13:15:13 +01:00
---
# Seitentitel
Seiteninhalt, lorem ipsum...
## Überschrift 2
Weiterer Absatz, usw...
```
## zusätzliche Konfiguration
2019-02-11 15:00:27 +01:00
In jedem Ordner kann sich eine `config.yml` befinden.
2019-02-10 13:15:13 +01:00
- z.B. Verküpfung eines Eintrags eines Navigations-Baums zu einem anderen
2019-02-11 15:00:27 +01:00
```yml
2019-02-13 21:16:35 +01:00
This:
GoTo: /de/main/service/impressum
Navname: Impressum
Data: # wird nicht vererbt: {{ NavSlice.[0].This.Data.slogan }}
slogan: Rechtliches und mehr
Data: # wird an alle Unterpunkte vererbt: {{ NavSlice.[0].Data.slogan }}
image: imprint.png
2019-02-10 13:15:13 +01:00
```
2019-02-10 13:20:19 +01:00
2019-02-11 15:00:27 +01:00
- außerdem kann sich im Header der Markdown-Datei die Konfig im YAML-Format befinden
- die Konfig in der Markdown-Datei überschreibt die Konfig aus der config.yml
2019-02-10 13:20:19 +01:00
2019-02-13 21:16:35 +01:00
## Haupt-Konfiguration im `content`-Verzeichnis
2019-02-10 13:20:19 +01:00
2019-02-11 15:00:27 +01:00
```yml
2019-02-12 20:32:40 +01:00
Meta:
Title: meine Website
Description: Standard-Meta-Beschreibung, die verwendet wird, wenn keine pro Seite definiert ist
Keywords: Standard-Keywords, welche in den einzelnen Seiten überschrieben werden kann
2019-02-10 13:20:19 +01:00
```
## Templates
2019-02-13 21:16:35 +01:00
Die Template-Sprache ist Handlebars.
### Helper
Weitere Handlebars-Helper sind: