mark2web Website-Generator https://www.mark2web.de
Go to file
2019-02-14 13:49:19 +01:00
.vscode pongo2 as template engine 2019-02-14 13:46:33 +01:00
example fixed linter messages 2019-02-14 13:49:19 +01:00
vendor pongo2 as template engine 2019-02-14 13:46:33 +01:00
.gitignore added binary to gitignore 2019-02-12 20:46:14 +01:00
.gitmodules pongo2 as template engine 2019-02-14 13:46:33 +01:00
main.go fixed linter messages 2019-02-14 13:49:19 +01:00
README.md fixed README 2019-02-13 21:16:35 +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

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: