moved dependencies to and expanded Readme
This commit is contained in:
parent
bea7df02e1
commit
e30bc6cd06
@ -1,66 +0,0 @@
|
|||||||
# t-r.de Dependencies
|
|
||||||
|
|
||||||
## Site generation
|
|
||||||
|
|
||||||
### Static Site Generator
|
|
||||||
|
|
||||||
* pelican with Markdown support (`pip install pelican[markdown]`)
|
|
||||||
* python3
|
|
||||||
|
|
||||||
#### Pelican Plugins
|
|
||||||
|
|
||||||
Pip packages
|
|
||||||
|
|
||||||
* pelican-yaml-metadata
|
|
||||||
* pelican-image-process
|
|
||||||
|
|
||||||
### Site Display
|
|
||||||
|
|
||||||
#### CSS
|
|
||||||
|
|
||||||
* Pico CSS ([fork](https://github.com/Yohn/PicoCSS))
|
|
||||||
|
|
||||||
#### Fonts
|
|
||||||
|
|
||||||
* [Libertinus Sans](https://github.com/alerque/libertinus)
|
|
||||||
* dev: local files
|
|
||||||
* prod: [CDN](https://www.cdnfonts.com/libertinus-sans.font)
|
|
||||||
|
|
||||||
### Content generation
|
|
||||||
|
|
||||||
#### List of books and texts
|
|
||||||
|
|
||||||
* ?
|
|
||||||
|
|
||||||
#### Event list
|
|
||||||
|
|
||||||
* utils/refresh-events.py
|
|
||||||
depends on:
|
|
||||||
* caldav
|
|
||||||
* vobject
|
|
||||||
|
|
||||||
#### image processing
|
|
||||||
|
|
||||||
* utils/crop_image_to_bbox.py
|
|
||||||
depends on:
|
|
||||||
* PIL
|
|
||||||
|
|
||||||
#### Favicon
|
|
||||||
|
|
||||||
* utils/favicon-from-svg.sh
|
|
||||||
depends on:
|
|
||||||
* inkscape
|
|
||||||
* pngquant
|
|
||||||
* image-magick
|
|
||||||
|
|
||||||
## Deployment
|
|
||||||
|
|
||||||
### On production server
|
|
||||||
|
|
||||||
* php (aktuell 8.1)
|
|
||||||
* database driver, e.g. pdo_sqlite
|
|
||||||
* PHPMailer (included in source)
|
|
||||||
|
|
||||||
### FTP tool
|
|
||||||
|
|
||||||
* lftp
|
|
||||||
66
README.md
66
README.md
@ -6,9 +6,9 @@ Eine moderne statische Autorenwebseite mit Werksseiten, Neuigkeiten, Terminkalen
|
|||||||
|
|
||||||
### Pelican
|
### Pelican
|
||||||
|
|
||||||
In einer eigenen `venv`-Umgebung verwende ich Pelican (v4.11.0) mit Markdown-Support, installiert mittels `pip install pelican[markdown]`. Pelican setzt `python3` voraus.
|
Ich verwende Pelican v4.11.0 mit Markdown-Support (`pip install pelican[markdown]`) in einer eigenen `venv`-Umgebung. Pelican setzt `python3` voraus.
|
||||||
|
|
||||||
Plugins für Pelican:
|
Außerdem nutze ich folgende Pelican-Plugins:
|
||||||
|
|
||||||
* `pelican-yaml-metadata` – ermöglicht das Einlesen von Metadaten im YAML-Format
|
* `pelican-yaml-metadata` – ermöglicht das Einlesen von Metadaten im YAML-Format
|
||||||
* `pelican-image-process` – erlaubt das Bearbeiten von Bildern beim Erzeugen der Seite
|
* `pelican-image-process` – erlaubt das Bearbeiten von Bildern beim Erzeugen der Seite
|
||||||
@ -16,11 +16,11 @@ Plugins für Pelican:
|
|||||||
### CSS und Schriften
|
### CSS und Schriften
|
||||||
|
|
||||||
* [Pico CSS](https://picocss.com/) – tatsächlich verwende ich einen [Fork](https://github.com/Yohn/PicoCSS), der zusätzlich Hamburger-Menüs unterstützt
|
* [Pico CSS](https://picocss.com/) – tatsächlich verwende ich einen [Fork](https://github.com/Yohn/PicoCSS), der zusätzlich Hamburger-Menüs unterstützt
|
||||||
* [Libertinus Sans](https://github.com/alerque/libertinus) – im Development Mode greife ich auf lokale Dateien zurück, im Production Mode stammen sie von einem [CDN](https://www.cdnfonts.com/libertinus-sans.font)
|
* [Libertinus Sans](https://github.com/alerque/libertinus) – im Development Mode greife ich auf lokale Dateien zurück, im Production Mode lade ich sie von einem [CDN](https://www.cdnfonts.com/libertinus-sans.font) herunter
|
||||||
|
|
||||||
### Werke und Texte
|
### Werke und Texte
|
||||||
|
|
||||||
* TODO: die Sourcefiles für meine Werke und Texte sollen direkt aus der `the_works`-Datenbank erzeugt werden
|
* TODO: alle Sourcefiles für meine Werke und Texte direkt aus der `the_works`-Datenbank erzeugen
|
||||||
|
|
||||||
### Termine
|
### Termine
|
||||||
|
|
||||||
@ -33,11 +33,13 @@ Das Script `utils/refresh-events.py` benötigt folgende Python-Packages (beide v
|
|||||||
|
|
||||||
@TODO: benutze ich das Script überhaupt noch?
|
@TODO: benutze ich das Script überhaupt noch?
|
||||||
|
|
||||||
Das Script `utils/crop_image_to_bbox.py` setzt die Python-Bibliothek `PIL` voraus.
|
Das Script `utils/crop_image_to_bbox.py` benötigt folgende Python-Packages:
|
||||||
|
|
||||||
|
* `PIL`
|
||||||
|
|
||||||
### Favicon
|
### Favicon
|
||||||
|
|
||||||
Um aus einer einzelnen SVG-Datei Favicons in allen nötigen Größen zu erzeugen, nutze ich das Script `utils/favicon-from-svg.sh`. Es setzt voraus:
|
Um aus einer einzelnen SVG-Datei Favicons in allen nötigen Größen zu erzeugen, nutze ich das Shellscript `utils/favicon-from-svg.sh`. Es benötigt die folgenden Linux-Packages:
|
||||||
|
|
||||||
* `inkscape`
|
* `inkscape`
|
||||||
* `pngquant`
|
* `pngquant`
|
||||||
@ -45,24 +47,21 @@ Um aus einer einzelnen SVG-Datei Favicons in allen nötigen Größen zu erzeugen
|
|||||||
|
|
||||||
### Deployment Tool
|
### Deployment Tool
|
||||||
|
|
||||||
* `lftp`
|
* `lftp` – FTP-Client
|
||||||
|
|
||||||
### Auf dem Produktionsserver
|
### Auf dem Produktionsserver
|
||||||
|
|
||||||
* `php` (aktuell 8.1)
|
* `php` (aktuell v8.1)
|
||||||
* Datenbanktreiber, aktuell `pdo_sqlite`
|
* PHP-Datenbanktreiber (aktuell `pdo_sqlite`)
|
||||||
* `PHPMailer` (im Repository enthalten)
|
* PHP-Package `PHPMailer` (im Repository enthalten)
|
||||||
|
|
||||||
## Konfiguration
|
## Konfiguration
|
||||||
|
|
||||||
Das Projekt wird in diesen Dateien konfiguriert:
|
Das Projekt wird in diesen Dateien konfiguriert:
|
||||||
|
|
||||||
* `pelicanconf.py` und `publishconf.py` – enthalten die Pelican-Konfiguration für Development bzw. Production Mode
|
* `pelicanconf.py` und `publishconf.py` – enthalten die Pelican-Konfiguration für Development bzw. Production Mode
|
||||||
* `config.ini` – enthält die Zugangsdaten für Datenbank und SMTP-Server); üblicherweise ist diese Datei ein Symlink zu einer der folgenden Dateien
|
* `config.ini` – enthält die Zugangsdaten für Datenbank und SMTP-Server sowie einige Einträge für die Newsletteran-/-abmeldung und das Kontaktformular; üblicherweise ist diese Datei ein Symlink zu einer Development- bzw. Production-spezifischen Datei
|
||||||
* `config.dev.ini` – Werte für den Development Mode
|
* `deploy.ini` – Zugangsdaten für den Upload auf den Produktionsserver
|
||||||
* `config.prod.ini` – Werte für den Production Mode
|
|
||||||
* und `config.example.ini` ist ein Beispieldatei mit Dummy-Werten
|
|
||||||
* `deploy.ini` – FTP-Zugangsdaten für den Produktionsserver
|
|
||||||
* `events.ini` – Zugangsdaten für den CalDAV-Server
|
* `events.ini` – Zugangsdaten für den CalDAV-Server
|
||||||
|
|
||||||
## Ausführen
|
## Ausführen
|
||||||
@ -90,13 +89,46 @@ Das Projekt wird in diesen Dateien konfiguriert:
|
|||||||
|
|
||||||
Pelican kennt Artikel und Seiten. Ich verwende diese wie folgt:
|
Pelican kennt Artikel und Seiten. Ich verwende diese wie folgt:
|
||||||
|
|
||||||
* meine einzelnen Werke sowie News-Posts sind Artikel; die Sourcefiles liegen in `content/posts/`
|
* meine einzelnen Werke und News-Posts sind Artikel; alle Sourcefiles liegen in Unterverzeichnissen von `content/posts/`
|
||||||
* die Kategorie entspricht der Werksart (Romane, Kurzprosa, Lyrik, Weitere, News); alle Sourcefiles einer Kategorie liegen im gleichnamigen Unterverzeichnis (zB `content/posts/romane/`)
|
* die Kategorie entspricht der Werksart (Romane, Kurzprosa, Lyrik, Weitere, News); alle Sourcefiles einer Kategorie liegen im gleichnamigen Unterverzeichnis (zB `content/posts/romane/`)
|
||||||
* Schlagworte entsprechen – weitgehend – den Genres, geben aber auch zB englischsprachige Texte an
|
* Schlagworte entsprechen (größtenteils) Genres; ich habe aber zB auch englischsprachige Texte per Schlagwort markiert
|
||||||
* alles andere sind Seiten; die Sourcefiles liegen in `content/pages/`
|
* alles andere sind Seiten; die Sourcefiles liegen in `content/pages/`
|
||||||
|
* Seiten haben keine Schlagworte auf und üblicherweise auch keine Kategorie
|
||||||
|
* nur die Übersichtsseiten der jeweiligen Kategorie gehört ebendieser Kategorie an (so enthält zB `content/pages/romane.md` die Metadatenzeile `category: Romane`)
|
||||||
|
|
||||||
### Templates
|
### Templates
|
||||||
|
|
||||||
|
Alle Templates liegen im Verzeichnis `theme/templates/`.
|
||||||
|
|
||||||
|
#### Basis
|
||||||
|
|
||||||
|
Das Basis-Template ist `base.html`, so wie es für Pelican üblich ist. Darin werden der grundsätzliche Seitenaufbau festgelegt, HTML-Metadaten gesetzt und Teil-Templates aus dem Unterverzeichnis `includes/` eingebunden, in denen wiederkehrenden Seitenelemente definiert sind:
|
||||||
|
|
||||||
|
* `favicon.html` – inklusive HTML-Metadaten
|
||||||
|
* `jumbotron.html` – Seitenheader
|
||||||
|
* `navbar.html` – NavigationsmMenü
|
||||||
|
* `footer.html` – Seitenfooter
|
||||||
|
|
||||||
|
Sämtliche First-Level-Templates binden das Basis-Template ein.
|
||||||
|
|
||||||
|
#### Seiten und Artikel
|
||||||
|
|
||||||
|
Das Template `page.html` definiert den Aufbau einer Einzelseite mit statischem Fließtext und wenigen Bildern. Auf diesem Template beruhen zB die Seiten Impressum, Übermich, Datenschutzerklärung oder die Seiten für die Newsletteran- bzw. -abmeldung.
|
||||||
|
|
||||||
|
Alle Werke und Texte hingegen verwenden das Template `article.html`.
|
||||||
|
|
||||||
|
|
||||||
|
#### Übersichtsseiten
|
||||||
|
|
||||||
|
* `wide-cards.html` – Template der Übersichtsseite über alle Werkskategorien (`werke.md`)
|
||||||
|
* `cards.html` – Template der Übersichtsseiten über alle Werke einer einzelnen Kategorien
|
||||||
|
|
||||||
|
#### Spezielle Seiten
|
||||||
|
|
||||||
|
* `index.html` – Startseitentemplate
|
||||||
|
* `news.html` – Template für den Neuigkeiten-Bereich
|
||||||
|
* `tag.html` – Template für Schlagwortseiten, auf denen alle Werke aufgelistet sind, die mit dem jeweiligen Begriff verschlagwortet sind
|
||||||
|
* `termine.html` – Template für den Terminkalender
|
||||||
|
|
||||||
|
|
||||||
### Termine neu einlesen
|
### Termine neu einlesen
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user