Why? And, what is Pelican

I'd like to create Blog posts a little more readily, and I prefer working in plain text. The old Blog (which is available here: http://www.davekuhlman.org/blog) uses WordPress, which is great for those who like it and want a WYSIWYG Web interface. I prefer plain text and in particular I use Docutils/reStructuredText (http://docutils.sourceforge.net), Asciidoc (http://www.asciidoc.org), or Markdown (http://daringfireball.net/projects/markdown/). There are a number of advantages to using a light-weight markup language like one of the above:

Pelican is a static Web site generator written in Python, which if you poke around in this site, you will begin to suspect is my favorite programming language, although I'm also impressed by Ruby, Node.js, and Erlang. Pelican has nice support for themes through the use of CSS and the Jinja2 template language. I'm currently using an exiting theme, since it required no additional work from me. But, if you want to see some of the more powerful uses of Pelican themes, then take a look at Full Stack Python: http://www.fullstackpython.com/.

The advantage of using a static site generator is that I do not have to run a separate Web server and Web application as I would if I were to use Django (https://www.djangoproject.com/) or Pyramid https://trypyramid.com/() or Tornado (http://www.tornadoweb.org/en/stable/), for example. My Internet host charges more for that.


My old site was merely a number of HTML files that I generated from Docutils/reStructuredText and made available across the Web by placing them under my public_html directory. These pages contained links to other documents and links to downloads. I wanted to preserve most of that so as to do as little conversion work as possible.

So, I created a Pelican site inside that public_html directory. And, into that new directory I copied my old index.txt (renamed to index.rst), and did a minimal amount of editing in order to turn in into a Pelican page. That work mostly involved adding some meta-data to the top of the file and fixing up a few links.

Adding Blog posts

Now, adding a new blog entry is just a matter of creating a new text file with extension ".rst" (so that I can write content in reStructureText), copying and pasting and editing a few lines of meta-data at that top of the new file, and typing in the content.