# 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 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: ```markdown --- 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 ```yml 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 ```yml 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: