Bloggen mit Pelican Teil 4 - Verzeichnisse und Dateien, einen Beitrag scheiben, Seite erstellen und veröffentlichen
Die Verzeichnisstruktur
pelican-quickstart
hat uns ja folgende Struktur und Dateien angelegt:
blog_ilike/
├── content
├── develop_server.sh
├── Makefile
├── output
├── pelicanconf.py
└── publishconf.py
Aber was ist das alles? Also mal der Reihe nach
content
: Hier legen wir die Dateien ab, aus denen pelican die Artikel und Seiten unseres Bloges erstellt. Auch Bilder etc. gehören dann hier hinein.
develop_server.sh
: Der lokales Webserver, um das Blog vor der Veröffentlichung zu testen.
Makefile
: Dient zum erstellen und publizieren der Webseite
output
: In dieses Verzeichnis schreibt Pelican die generierten HTML-Dateien und alles was zur Webseite gehört hinein. Der Inhalt dieses Ordners wird dann veröffentlicht.
pelicanconf.py
: Die allgmeine Konfigurationsdatei des Bloges
publishconf.py
: Hier sind Einstellungen drin, die beim Publizieren verwendet werden sollen.
In den Dateien pelicanconf.py
und publishconf.py
kann die mit pelican-quickstart
gemachte Konfiguration noch angepasst und erweitert werden.
Die Webseite erstellen
Bevor wir unseren ersten Blogbeitrag erstellen, erstellen wir die Seite einfach einmal. Dazu geben wir im Verzeichnis des Blogs, dort wo die Makefile
-Datei den Befehl make html
ein.
tekcins@Tekcins-THINK ~/tutorial_ilike $ make html
[ ! -d /home/tekcins/tutorial_ilike/output ] || find /home/tekcins/tutorial_ilike/output -mindepth 1 -delete
pelican /home/tekcins/tutorial_ilike/content -o /home/tekcins/tutorial_ilike/output -s /home/tekcins/tutorial_ilike/pelicanconf.py
WARNING: No valid files found in content.
Done: Processed 0 articles and 0 pages in 0.08 seconds.
Pelican warnt uns hier, dass keine gültigen Dateien (WARNING: No valid files found in content.
) gefunden hat und 0 Artikel und 0 Seiten (Done: Processed 0 articles and 0 pages in 0.08 seconds.
) zum erstellen gefunden hat.
Das hat so seine richtigkeit, trotzdem erstellt und Pelican eine leere Webseite im Outputverzeichnis.
output/ ├── archives.html ├── categories.html ├── index.html ├── tags.html └── theme ├── css │ ├── main.css │ ├── pygment.css │ ├── reset.css │ ├── typogrify.css │ └── wide.css └── images └── icons ├── aboutme.png ├── bitbucket.png ├── delicious.png ├── facebook.png ├── github.png ├── gitorious.png ├── gittip.png ├── google-groups.png ├── google-plus.png ├── hackernews.png ├── lastfm.png ├── linkedin.png ├── reddit.png ├── rss.png ├── slideshare.png ├── speakerdeck.png ├── twitter.png ├── vimeo.png └── youtube.png
Wenn wir jetzt mit make serve
den mitgelieferten Webserver starten und im Browser die Adresse localhost:8000
eingeben, sollten wir die leere Webseite sehen.
Das ist das Standard-Theme von Pelican. Wie man ein anderes Theme einrichtet und anpasst, schauen wir uns später an.
Einen Beitrag schreiben
Beiträge oder Blog-Posts werden bei Pelican in einzelenen Textdateien geschrieben und gespeichert, dabei gilt, pro Beitrag eine Datei, pro Datei ein Beitrag.
Da Textdateien von sich aus keinen Formatierungsangaben wie sie z.B. Textverarbeitungen oder HTML-Editoren verwenden kennen, unterstützt Pelican 4 Auszeichnungssprachen für den Input.
Nämlich reStructuredText, Markdown, HTML und AsciiDoc. HTML und reStructuredText werden Out-of-the-box unterstützt, Markdown und AsciiDoc müssen zusätzlich installiert werden.
Wir schauen uns im Rahmen dieses Tutorials reStructuredText, Markdown und HTML an.
Einen einfachen Beitrag in reStructuredText verfassen
Wir öffnen in einem Texteditor eine Datei und speichern diese im content
-Verzeichnis unseres Blogs mit der Dateiendung .rst
ab, z.B. Hello-World.rst
.
Am Anfang jedes Blogbeitrags folgen ein paar Zeilen mit Metadaten zu diesem Eintrag:
Hallo reStructuredText ###################### :date: 2013-07-18 08:00 :tags: pelican, tutorial, beispiel :category: tutorial :slug: Hallo-reStructuredText :author: tekcins :summary: Ein einfacher reStructuredText-Blog-Eintrag
Der Text über den # ("Hallo reStructuredText") ist der Titel des Blog-Posts.
:date:
Das Datum und die Uhrzeit des Beitrag. Wird für die Sortierung und die Einordnung im Archiv verwendet.
:tags:
Die Tags (Schlagwörter) für diesen Beitrag
:category:
Die Kategorie in die dieser Beitrag gehört
:slug:
Der Dateinamen ohne Endung für die HTML-Datei dieses Beitrags. Umlaute/Sonder- und Leerzeichen vermeiden.
:author:
Der Name des Autors der Angezeigt werden soll. Pelican generiert auch automatisch Übersichtsseiten mit den Artikeln eines Autors.
:summary:
Zusammenfassung des Blogposts.
Danach folgt eine Leerzeile und der Beitrag.
Hallo Welt ========== Das ist *mein* **erster** Blogpost der in reStructuredText geschrieben wurde. Hier schreiben wir noch ein wenig mehr Text. Und wo gibt's mehr Infos? ------------------------- Auf der Webseite von docutils_ .. _docutils: http://docutils.sourceforge.net/rst.html#user-documentationrg/
Wenn wir die Datei speichern, im Blog-Verzeichnis make html
ausführen und dann mit make serve
den lokalen Server starten und auf die Adresse localhost:8000
gehen sehen wir das Ergebniss.
Und schon erraten was was macht? Zum Vertiefen und weiteren Ausbau einfach auf der docutils und der Pelican Webseite nachschauen.
Einen einfachen Beitrag in Markdown verfassen
Bevor wir mit Markdown Seiten auszeichnen können, müssen wir zuerst die Markdown-Erweiterung installieren.
Markdown installieren wir wieder über pip oder easy_install, also mit dem Befehl pip install markdown
oder easy_install markdown
.
Danach erstellen wir wieder mit einem Texteditor eine Textdatei und speichern diese diesmal als Hello-World.md
im content
-Verzeichnis ab.
Auch bei Markdown-Dateien kommen zuerst die Metadaten in der Form rein:.
Title: Hallo Markdown Date: 2013-07-18 08:10 Category: tutorial Tags: pelican, tutorial, beispiel Slug: Hallo-Markdown Author: tekcins Summary: Ein einfacher Markdown-blog-Eintrag
Die Metatags sind bis auf Title von der Funktion her dieselben, lediglich die Syntaxt ist etwas anders (kein Doppelpunkt am Zeilenanfang und Grossgeschrieben).
Danach folgt ebenfalls eine Leerzeile und dann der eingentliche Blogbeitrag.
# Hallo Welt Das ist *mein* **erster** Blogpost der in Markdown geschrieben wurde. Hier schreiben wir noch ein wenig mehr Text. ## Und wo gibt's mehr Infos? Auf der Webseite von [Markdown](http://daringfireball.net/projects/markdown/)
Wenn die Datei gespeichert ist und wir mit make html
die Webseite neu erstellen, den lokalen Server neu starten und die Seite aufrufen begrüsst uns dieses Bild:
Einen einfachen Beitrag in HTML verfassen
Wir Blog-Beiträge auch in HTML-Verfassen. Dazu erstellen wir wieder eine Textdatei und speichern sie diesmal als Hello-World.html
ab.
Zuerst kümmern wir uns auch hier um die Metadaten des Beitrags:
<html> <head> <title>Hallo HTML</title> <meta name="tags" contents="pelican, tutorial, beispiel" /> <meta name="date" contents="2013-07-18 08:20" /> <meta name="category" contents="tutorial" /> <meta name="author" contents="tekcins" /> <meta name="summary" contents="Ein einfacher HTML-Beitrag" /> </head> <body> </body> </html>
Für den Titel des Blogbeitrags wird das HTML-Title-Tag verwendet, für die anderen Metadaten entsprechende meta-Tags.
Der eigentliche Blogbeitrag wird dann ganz normal mit HTML ausgezeichnet zwischen die body-Tags geschrieben:
<h1>Hallo Welt</h1> <p>Das ist <i>mein</i> <b>erster</b> Blogpost der in HTML geschrieben wurde.</p> <p> Hier schreiben wir noch ein wenig mehr<br /> Text.</p> <h2>Und wo gibt's mehr Infos?</h2> <p>Zum Beispiel auf der Webseite von <a href='http://www.w3schools.com/html/'>W3Schools</a></p>
Wenn wir jetzt die Datei speichern, die Webseite erstellen und anschauen, ist aber nichts passiert. Aber wieso?
Pelican verarbeitet in der Standardkonfiguration nur Markdown- und reStructuredText-Dateien; um HTML-Dateien als Eingabe verwenden zu können müssen wir die Konfigurationsdatei
pelicanconf.py
im Blogverzeichnis anpassen. Wir öffnen diese dafür mit einem Texteditor und fügen die Zeile MARKUP = ('rst', 'md', 'html')
ein und speicher sie wieder. Wenn
wir jetzt den die Webseite erstellen und sie uns anschauen erscheint auch der HTML-Beitrag.
Die Seite veröffentlichen
Die Seite veröffentlichen wir, in dem wir sie per make publish
erstellen. Dabei liest Pelican zuerst die pelicanconf.py
ein und führt sie mit der publishconf.py
zusammen,
wobei Konfigurationseinstellungen die sowohl in der pelicanconf.py
als auch der publishconf.py
vorkommen aus der publishconf.py
übernommen werden.
Jetzt können wir die Dateien aus dem output
-Verzeichnis entweder manuell auf einen Webserver kopieren oder wir benutzen dazu den make
-Befehl. make ftp_upload
lädt die Datei z.B. per
FTP auf den Server, wenn wir dies bei Konfiguration per pelican-quickstart
konfiguriert haben.