Pelikan Howto

Dieser Blogeintrag beschreibt meine ersten Gehversuche mit Pelikan. Mit folgenden Links kann man mit Pelikan starten:

Man installiert es am besten mit pip:

sudo pip install pelican Markdown

Content

Mit pelican-quickstart kann man ganz ein neues Projekt erstellen. Danach kann man im content Ordner neue Eintraege erstellen. Mit einem Header vor dem Text kann man Titel, Autor usw uebergeben. Hier ist ein Beispiel:

Title: Pelikan Howto
Date: 2017-04-14 18:00
Category: Software
Modified: 2017-04-14 19:30
Tags: pelican, blog, howto
Slug: my-super-post
Authors: Frederic
Summary: Ein Blogpost ueber das Erstellen von statischen Seiten mit pelican

Die restliche Seite kann man mit Markdown schreiben.

Beim Quickstart wurde ein Makefile erstellt, damit kann man ein paar Kommandos automatisieren.

make devserver

Jetzt ist der blog unter http://localhost:8000 erreichbar.

Pages

Es ist auch moeglich ganz normale Seiten anzulegen. Dazu muss man den Ordner ./content/pages erstellen.

Interne Links

Um andere dateien zu verlinken sollte man immer den aktuellen Pfad mit verlinken.

Zum Beispiel About

Favicon und Bilder

Themes

Pelican kann auch Themen verwenden. Themes auflisten kann man mit:

pelican-themes -l

Konfigurieren tut man es in der Datei pelicanconf.py:

THEMES = 'simple'

Der einfachste Weg um ein eigenes Theme zu erstellen ist das simple Theme zu kopieren.

cp /usr/local/lib/python2.7/dist-packages/pelican/themes/simple/ ../ -R

Dann kann man es in pelicanconf.py auswaehlen:

THEMES = '../simple'

Dann aendert man ein bisschen CSS. Dazu kann man zuerst zum Header style tags hinzufuegen. Oeffne die Datei simple/templates/base.html:

<head>
[...]
<style>
#index {
    width: 600px;
    margin: 0 auto;
}

footer {
  bottom: 0;
  left: 0;
  height: 50px;
  background-color: rgb(200,200,200);
  width: 100%;
}
</style>
</head>

Um den Blog automatisch zu laden muss man den Blogpost aktualisieren.

Stylesheet einbinden

Doch es ist viel besser wenn man CSS als Datei einbindet. Das benutzt das noch nicht, der einfachste Weg ist sich das bei einem anderem Theme abzuschauen wie das geht.

Die offizielle Dokumentation hat einen Ueberblick vom Aufbau eines Themes:

├── static
│   ├── css
│   └── images
└── templates
    ├── archives.html         // to display archives
    ├── period_archives.html  // to display time-period archives
    ├── article.html          // processed for each article
    ├── author.html           // processed for each author
    ├── authors.html          // must list all the authors
    ├── categories.html       // must list all the categories
    ├── category.html         // processed for each category
    ├── index.html            // the index (list all the articles)
    ├── page.html             // processed for each page
    ├── tag.html              // processed for each tag
    └── tags.html             // must list all the tags. Can be a tag cloud.

Mit Pelican wird auch ein etwas komplexeres Template mitgeliefert, man kann es auch hier finden: https://github.com/getpelican/pelican/tree/master/pelican/themes/notmyidea. In base.html wird das CSS eingebunden:

 <link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/{{ CSS_FILE }}" />

Es zeigt auf die Datei ../simple/static/css/main.css. Wenn man diese Datei jetzt anlegt wird sie von der Seite benutzt.

Jetzt kann man das CSS aus base.html entfernen und in die CSS Datei speichern.