Pelican¶
Pelican is a static site generator implemented in Python that combines Jinja templates with content written in Markdown or reStructuredText to produce websites. The most prominent example is probably kernel.org It is possible to import an existing sites from Wordpress, Tumblr, Blogger and RSS/Atom feeds. Pelican’s source code is available on GitHub and it is an implementation of the static site generators concept.
Pelican was released for the first time in 2010 by Alexis Métaireau.
License¶
Pelican is free and open source software licensed under AGPL 3.
Prerequisites¶
Pelican currently runs best on Python 3.6+; earlier versions are not supported. This version comes preinstalled on your uberspace.
Note
If you want to use your own website domain, refer to the uberspace manual for domains
Installation¶
Pelican is installed simply by using pip3
[isabell@stardust isabell]$ pip3 install --upgrade --user "pelican[markdown]"
Note
If you prefer to install the latest bleeding-edge version of Pelican rather than a stable release, use the following command:
pip3 install --upgrade --user -e "git+https://github.com/getpelican/pelican.git#egg=pelican"
Generate your website¶
Initialize¶
Pelican comes with a handy quickstart wizard that creates the basic structure for you.
Run it inside a subfolder. In this guide, we’ll use ~/pelican
[isabell@stardust isabell]$ mkdir ~/pelican && cd ~/pelican
[isabell@stardust pelican]$ pelican-quickstart
Welcome to pelican-quickstart v4.6.0.
This script will help you create a new Pelican-based website.
Please answer the following questions so this script can generate the files
needed by Pelican.
> Where do you want to create your new web site? [.] <enter>
> What will be the title of this web site? my-shiny-blogtitle
> Who will be the author of this web site? isabell
> What will be the default language of this web site? [de] <enter>
> Do you want to specify a URL prefix? e.g., https://example.com (Y/n) <enter>
> What is your URL prefix? (see above example; no trailing slash) https://isabell.uber.space
> Do you want to enable article pagination? (Y/n) <enter>
> How many articles per page do you want? [10] <enter>
> What is your time zone? [Europe/Paris] Europe/Berlin
> Do you want to generate a tasks.py/Makefile to automate generation and publishing? (Y/n) <enter>
> Do you want to upload your website using FTP? (y/N) <enter>
> Do you want to upload your website using SSH? (y/N) <enter>
> Do you want to upload your website using Dropbox? (y/N) <enter>
> Do you want to upload your website using S3? (y/N) <enter>
> Do you want to upload your website using Rackspace Cloud Files? (y/N) <enter>
> Do you want to upload your website using GitHub Pages? (y/N) <enter>
Done. Your new project is available at /home/isabell/pelican
[isabell@stardust pelican]$
Note
In case you want to use a custom domain other than isabell.uber.space, you can enter it here or easily change it later in ~/pelican/pelicanconf.py
Prepare Publish¶
You need to modify ~/pelican/Makefile
to make sure the publish process is working correctly on your uberspace.
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=/var/www/virtual/$(USER)/html
Create Content¶
Now create your first blogpost by placing a markdown file in ~/pelican/content/my-super-post.md
Title: My super title
Date: 2010-12-03 10:20
Modified: 2010-12-05 19:30
Category: Python
Tags: pelican, publishing
Slug: my-super-post
Authors: Alexis Metaireau, Conan Doyle
Summary: Short version for index and feeds
This is the content of my 1st super blog post.
Note
More details how to write articles and pages can be found in the official page
Publish Content¶
To generate to final html files and publish them to your uberspace webserver, simply run
[isabell@stardust isabell]$ cd ~/pelican
[isabell@stardust pelican]$ make publish
Warning
This step will delete all content in ~/html
, if any.
Then you can simply open https://isabell.uber.space/
Configuration¶
All configuration is done in two files. Please refer to the official docs on how to customize them.
~/pelican/pelicanconf.py
~/pelican/publishconf.py
Themes¶
To install a theme other than the default, please check the official guide.
You can simply choose one from http://www.pelicanthemes.com/ and run git clone
In this example I am using the theme maned Flex
[isabell@stardust isabell]$ cd ~/pelican
[isabell@stardust pelican]$ git clone git@github.com:alexandrevicenzi/Flex.git theme
Then add following line to you ~/pelican/pelicanconf.py
THEME = "theme"
Tested with Pelican 4.6.0 and Uberspace 7.3.6
Written by: Karsten Brusch <https://k11h.de>