18
website/content/de/01_Navigation/01_mark2web/README.md
Normal file
18
website/content/de/01_Navigation/01_mark2web/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# mark2web
|
||||
|
||||
mark2web ist ein Generator, der aus Markdown- und Konfig-Dateien in einer Ordnerstruktur eine statische Website unter Zuhilfenahme von Templates generiert.
|
||||
|
||||
---
|
||||
|
||||
Der Generator selbst wurde in [Go](https://golang.org/) geschrieben. Es wurden dabei eine Vielzahl existierender Packages verwendet. Unter Anderem:
|
||||
|
||||
- der Markdown-Parser [blackfriday](https://github.com/russross/blackfriday)
|
||||
- die Template-Sprache "Django Template Language" über das Paket [pongo2](github.com/flosch/pongo2)
|
||||
- das Logging-Paket [go-logging](github.com/op/go-logging)
|
||||
- der YAML-Parser [go-yaml](https://github.com/go-yaml/yaml)
|
||||
|
||||
Weitere Pakete, die verwendet wurden finden Sie in den Quellen.
|
||||
|
||||
Diese Website wurde selbst mit mark2web generiert. Der entsprechende Quellcode, sowie die Quellen zu mark2web finden Sie unter:
|
||||
|
||||
**https://gitbase.de/apairon/mark2web**
|
||||
20
website/content/de/01_Navigation/02_Installation/README.md
Normal file
20
website/content/de/01_Navigation/02_Installation/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Installation
|
||||
|
||||
Damit die korrekten Versionsinformationen dynamisch in das finale mark2web-Binary eingefügt wurde, ist eine manuelle Installation aus dem Git-Repository sinnvoll.
|
||||
Da die benötigten Pakete über die Go "vendor"-Funktionalität eingebunden sind ist ein `git submodule --init --recursive` nötig, wie im folgenden Abschnitt zu sehen ist:
|
||||
|
||||
```sh
|
||||
mkdir -p $GOPATH/src/gitbase.de/apairon
|
||||
git clone https://gitbase.de/apairon/mark2web.git $GOPATH/src/gitbase.de/apairon/mark2web
|
||||
|
||||
cd $GOPATH/src/gitbase.de/apairon/mark2web
|
||||
git submodule update --init --recursive
|
||||
|
||||
./build.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Eine Installation über `go install gitbase.de/apairon/mark2web` wird derzeit noch nicht unterstützt, da dabei die Informationen für `mark2web -version` nicht generiert werden.
|
||||
|
||||
Später folgen vorkomplierte Releases über die Repository-Website.
|
||||
@@ -0,0 +1,69 @@
|
||||
# Benutzung
|
||||
|
||||
## Ordnerstruktur
|
||||
|
||||
Das Ausgangsmaterial für die zu generierende Website wird in folgender Ordnerstruktur organisiert:
|
||||
|
||||
```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 (kann auch abweichend benannt werden)
|
||||
DIR js
|
||||
DIR img
|
||||
DIR css
|
||||
|
||||
DIR templates
|
||||
FIL base.html
|
||||
FIL base_sub.html
|
||||
|
||||
FIL config.yml (globale Konfiguration, enthält andere Anweisungen als individuelle Pfad-Konfig, siehe Beispiel)
|
||||
```
|
||||
|
||||
In der Minimal-Variante sind nur die Ordner `content` und `templates` nötig.
|
||||
|
||||
---
|
||||
|
||||
### `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 in Templates oder mehrfach in den Content-Seiten benötigt werden liegen in `assets`
|
||||
|
||||
### `templates`
|
||||
|
||||
- Template-Dateien für die Generierung der Website liegen hier
|
||||
@@ -0,0 +1,3 @@
|
||||
This:
|
||||
Data:
|
||||
teaser: Wie werden die Inhalte und Templates organisiert?
|
||||
@@ -0,0 +1,139 @@
|
||||
# Konfiguration
|
||||
|
||||
Die Konfigurationsdatein sind im YAML-Format gehalten (siehe: [Wikipedia](https://de.wikipedia.org/wiki/YAML)).
|
||||
|
||||
## globale Einstellungen
|
||||
|
||||
Die obersten Verzeichnis sich befindende Datei `config.yml` kann z.B. folgenden Inhalt haben:
|
||||
|
||||
```yaml
|
||||
Webserver:
|
||||
Type: "apache"
|
||||
|
||||
Assets:
|
||||
FromPath: "assets"
|
||||
ToPath: "assets"
|
||||
Action: "copy"
|
||||
FixTemplate:
|
||||
Find: "\\.\\./assets/"
|
||||
Replace: ""
|
||||
|
||||
OtherFiles:
|
||||
Action: "copy"
|
||||
```
|
||||
|
||||
### Sektion `Webserver:`
|
||||
|
||||
#### `Type:`
|
||||
|
||||
Derzeit wird hier nur der Wert `apache` unterstützt. Ist dieser Wert gesetzt werden automatische .htaccess-Dateien mit mod_rewrite-Anweisungen generiert, die eine saubere Weiterleitung bei entsprechenden Konfig-Anweisungen im `content`-Verzeichnis ermöglichen.
|
||||
|
||||
### Sektion `Assets:`
|
||||
|
||||
`Assets:` steuert, wie mit Bild/JS/CSS Dateien umgegangen werden soll.
|
||||
|
||||
#### `FromPath:`
|
||||
|
||||
Lage des Asset-Verzeichnis unterhalb des `content`-Verzeichnis
|
||||
|
||||
#### `ToPath:`
|
||||
|
||||
Zielverzeichnis im Ausgabe-Verzeichnis der fertig generierten Website
|
||||
|
||||
#### `Action:`
|
||||
|
||||
Derzeit nur `copy`, also das Kopieren der Dateien und Unterordner ins Zielverzeichnis
|
||||
|
||||
#### `FixTemplate:`
|
||||
|
||||
Wenn hier `Find:` (regulärer Ausdruck) und `Replace:` (Ersetzung) angeben sind, werden die gefundenden Pfadangaben in der generierten HTML-Dateien durch den korrekten relativen Pfad zum Asset-Verzeichnis ersetzt.
|
||||
|
||||
### Sektion `OtherFiles:`
|
||||
|
||||
`OtherFiles:` definiert, wie mit anderen Dateien innerhalb des `content`-Verzeichnis umgegangen werden soll.
|
||||
|
||||
#### `Action:`
|
||||
|
||||
Derzeit nur `copy`, also das Kopieren der Dateien in das entsprechende Unterverzeichnis im Ausgabe-Verzeichnis
|
||||
|
||||
---
|
||||
|
||||
## Konfiguration im `content`-Verzeichnis
|
||||
|
||||
Im `content`-Verzeichnis, sowie in jedem Unterverzeichnis unterhalb von `content` kann sich eine `config.yml`-Datei befinden, wie aus folgendem Beispiel:
|
||||
|
||||
```yaml
|
||||
This:
|
||||
GoTo: "/de/service/impressum/"
|
||||
Navname: "Impressumsverweis"
|
||||
|
||||
```
|
||||
|
||||
oder
|
||||
|
||||
```yaml
|
||||
This:
|
||||
Navname: "FAQ's"
|
||||
Data:
|
||||
slogan: "Wer nicht fragt, bekommt keine Antwort."
|
||||
|
||||
Template: "base.html"
|
||||
|
||||
Index:
|
||||
InputFile: "README.md"
|
||||
OutputFile: "index.html"
|
||||
|
||||
Meta:
|
||||
Title: "Fragen und Antworten"
|
||||
Description: "Dies ist die Fragen und Antworten Unterseite."
|
||||
Keywords: "FAQ, Fragen, Antworten"
|
||||
|
||||
Data:
|
||||
background: "bg.jpg"
|
||||
slider:
|
||||
- img: "assets/img/slider1.jpg"
|
||||
alt: "Alternativtext 1"
|
||||
- img: "assets/img/slider2.jpg"
|
||||
alt: "Alternativtext 2"
|
||||
- img: "assets/img/slider3.jpg"
|
||||
alt: "Alternativtext 3"
|
||||
|
||||
```
|
||||
|
||||
### `This:` Sektion
|
||||
|
||||
Sämtlich Werte unterhalb dieser Sektion gelten nur für den Inhalt, bzw. Navigationspunkt in dessen Ordner sich die `config.yml` befindet. Die Werte werden nicht an Unterordner wertervererbt.
|
||||
|
||||
#### `GoTo:`
|
||||
|
||||
Falls der Navigationspunkt selbst keinen Inhalt darstellen soll, sondern nur weiterleiten soll, so wird hier das Weiterleitungsziel eingegeben.
|
||||
Das Ziel ist der absolute (startend mit `/`) oder relative Pfad zum Zielnavigationspunkt.
|
||||
Die Schreibweise des Pfades ist so zu verwenden, wie der Pfad nach Umschreibung und Säuberung des Pfades im Zielverzeichnis dargestellt wird.
|
||||
Aus `de/mainnav/03_Fragen und Antworten` wird also z.B. `de/mainnav/fragen-und-antworten`.
|
||||
|
||||
#### `Navname:`
|
||||
|
||||
Dieser Wert überschreibt den aus dem Ordnernamen automatisch abgeleiteten Navigationspunkt-Namen. Dies ist zum Beispiel dann nützlich, wenn Sonderzeichen im Verzeichnisnamen nicht vorkommen sollen, aber im Namen des Navigationspunkts gebraucht werden.
|
||||
|
||||
#### `Data:`
|
||||
|
||||
Unterhalb von `Data:` können beliebige Datenstrukturen erfasst werden. Da diese Struktur unterhalb von `This:` angeordnet ist, werden auch die Daten nicht weiter an Unterordner vererbt.
|
||||
Hier können z.B. Informationen zum Navigationspunkt abgelegt werden, die im Template Zusatzinformationen darstellen (z.B. ein Slogan zu einem Navigationspunkt).
|
||||
|
||||
### `Meta:` Sektion
|
||||
|
||||
Unter `Title:`, `Description:` und `Keywords:` werden die typischen Metaangaben abgelegt, die im
|
||||
|
||||
```html
|
||||
<head>
|
||||
...
|
||||
</head>
|
||||
```
|
||||
|
||||
übllicherweise Verwendung finden. Die entsprechenden Platzhalter stehen im Template zur Verfügung.
|
||||
|
||||
`Meta:` vererbt seine individuellen Informationen an die Unterordner weiter, sofern diese dort nicht selbst in einer `config.yml` oder im Kopf der Markdown-Datei definiert sind.
|
||||
|
||||
### `Data:` Sektion
|
||||
|
||||
`Data:` an dieser Stelle kann, wie auch `Data:` unterhalb von `This:`, beliebige Daten aufnehmen. Die Daten hier allerdings werden an Unterordner weitervererbt, sofern diese nicht dort oder in der Markdown-Datei selbst festegelegt überschrieben wurden.
|
||||
@@ -0,0 +1,3 @@
|
||||
This:
|
||||
Data:
|
||||
teaser: Globale Konfiguration und individuelle Content-Einstellungen
|
||||
@@ -0,0 +1,38 @@
|
||||
# Inhalte
|
||||
|
||||
Die Inhalte der Website werden im Ordner `content` und dessen Unterordnern gespeichert.
|
||||
Texte werden dazu im Format **markdown** (siehe: [markdown.de](http://markdown.de/)) eingepflegt.
|
||||
Bilddateien und anderen Medieninhalte werden einfach direkt neben den Markdown-Dateien im Verzeichnis des jeweiligen Navigationspunktes abgelegt.
|
||||
|
||||
---
|
||||
|
||||
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
|
||||
|
||||
Wie bereits unter [Konfiguration](../konfiguration) beschrieben, kann sich in jedem Ordner unterhalb von `content` eine `config.yml`-Datei befinden.
|
||||
Deren vererbaren Einstellungen können auch im Kopf der Markdown-Datei überschrieben werden.
|
||||
`This: -> Navname:` im Kopf zu setzen ist allerdings nicht möglich, da die Navigation bereits vor dem Verarbeiten der Markdown-Datei generiert wird.
|
||||
|
||||
Die Kopfdaten müssen mit `---` in der ersten Zeile eingeleitet werden und mit `---` auf einer einzelnen Zeile abgeschlossen werden.
|
||||
@@ -0,0 +1,3 @@
|
||||
This:
|
||||
Data:
|
||||
teaser: Website-Texte und Medien
|
||||
2
website/content/de/01_Navigation/03_Benutzung/config.yml
Normal file
2
website/content/de/01_Navigation/03_Benutzung/config.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
This:
|
||||
GoTo: ordnerstruktur
|
||||
Reference in New Issue
Block a user