With this structure, if I want a new blog site, I can create a new directory in projects and set the new pelican root directory there. In the configuration file, I can then make local calls to the theme and plugins I want.

To add content, I write in MarkDown (*.md) or RestructuredText (*.rst); if the content is a post, it goes in the articles directory. If it is some other type of content, like the about page, it goes in the pages directory.

For images or other special files, I add them to the images or extra directory and they are copied straight through to the static site.

The Configuration File

In the pelicanconf.py file, I first set up the basics. Well I actually used pelican-quickstart to get the initial file, but afterwards I went through it line by line, to make sure it was exactly what I wanted and to make sure I understood what was going on.

Then I made a few changes so I can have the articles in their own subdirectory (ARTICLE_PATHS) and set the static paths (the directories and files that are copied over verbatim). So the images and extra directories are copied over with no other processing. The files listed in EXTRA_PATH_METADATA are copied to the root of the OUTPUT_PATH directory.

I’m setting the output directory to be same name as the website, reachtim; it’s my personal preference and fits my deployment scheme. The default name is output.

I played around with a lot of themes before deciding on the zurb-F5-basic. I like the way it looks and operates. Other than this site, you can see another example here, from the github page: zurb-F5-basic

The plugins:

neighbors adds prev_article and next_article variables to the article context, so you can use them in your template.

pelican_fontawesome enables you to embed FontAwesome icons in your content. This plugin was not in the getpelican plugins project, so I installed it separately from pelican-fontawesome

I also set things up so I have Atom feeds, Disqus commenting capability, and Google Analytics. I manually added the Google Analytics code after I registered the site with Google. Of course you need a Google account for that, and a Disqus account for commenting capability.