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
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
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 media
DIR Referenzbilder
DIR Mitarbeiterfotos
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
FIL home.tmpl
FIL site.tmpl
FIL TOP.tmpl
FIL BOTTOM.tmpl
2019-02-10 13:20:19 +01:00
2019-02-11 15:00:27 +01:00
FIL config.yml
2019-02-10 13:15:13 +01:00
```
### 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
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
### media
- enthält alle Bilder, Videos und andere Medien-Dateien, die via Markdown in die jeweiligen Websites eingebunden werden
2019-02-11 15:00:27 +01:00
- außerdem können die Mediendateien auch neben den Inhalten in `content` liegen und müssen demensprechend relativ verlinkt werden
- Bilder die im Template benötigt werden liegen in `assets`
2019-02-10 13:15:13 +01:00
### templates
- Template-Dateien für die Generierung der Website liegen hier
- assets wie Bilder, JS, CSS sollten ebenfalls hier liegen
## 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
---
# 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
goto: /de/main/service/impressum
navname: Impressum
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-11 15:00:27 +01:00
## Haupt-Konfiguration im Root
2019-02-10 13:20:19 +01:00
2019-02-11 15:00:27 +01:00
```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
2019-02-10 13:20:19 +01:00
```
## Templates
Die Template sind golang `template/html` .