mark2web Website-Generator
https://www.mark2web.de
.vscode | ||
example | ||
vendor | ||
.gitignore | ||
.gitmodules | ||
main.go | ||
README.md |
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
DIR content
FIL config.yml (Pfad-Konfiguration)
DIR de (Sprache)
DIR main (Navigationsbaum)
DIR 01_Home (1. Ebene)
FIL config.yml
FIL README.md
DIR 02_Download
FIL README.md
FIL bild.jpg
FIL presse.zip
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
DIR assets
DIR js
DIR img
DIR css
DIR templates
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)
content
- 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 - Navigationsnamen können durch die
config.yml
überschrieben werden
Medien und Downloads
- Mediendateien werden neben den Inhalten in
content
abgelegt und müssen dementsprechend relativ verlinkt werden
assets
- Bilder/CSS/JS die im Templates benötigt werden liegen in
assets
templates
- Template-Dateien für die Generierung der Website liegen hier
- Handlebar-Partials liegen in
templates/partials
und werden von mark2web global eingelesen und in Templates unter dem Dateinamen zur Verfügung gestellt
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:
---
Meta:
Title: Seitentitel für die Meta-Angaben
Keywords: Meta-Keywords
Description: Meta-Description
Data: # Vererbung spielt hier keine Rolle, da Markdown-Datei letzte Ebene in der Generierung ist
image: bild.jpg
---
# Seitentitel
Seiteninhalt, lorem ipsum...
## Überschrift 2
Weiterer Absatz, usw...
zusätzliche Konfiguration
In jedem Ordner kann sich eine config.yml
befinden.
- z.B. Verküpfung eines Eintrags eines Navigations-Baums zu einem anderen
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
- 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
Haupt-Konfiguration im content
-Verzeichnis
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
Templates
Die Template-Sprache ist Handlebars.
Helper
Weitere Handlebars-Helper sind: