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:
- The standard diff and grep tools work.
- Plain text is suitable for management by a DRCS (distributed revision control system), for example git (https://git-scm.com/), Mercurial (https://www.mercurial-scm.org/), and Bazaar (http://doc.bazaar.canonical.com/en/).
- Because plain text suits a DRCS, I can archive the contents of this Web site at one of the code hosting repositories, for example: Github (https://github.com/), Bitbucket (https://bitbucket.org/dkuhlman/), or Launchpad (https://code.launchpad.net/), and there are a number of others (see: https://en.wikipedia.org/wiki/Comparison_of_source_code_hosting_facilities).
- Because I have access to the account and service that hosts my Web site through Secure Shell (https://en.wikipedia.org/wiki/Secure_Shell), I can edit and update my site with my favorite text editor and I can do that editing in place at my Web site. I do not need to keep a separate copy on my local machine. Although, I do need to do something in the way of backup, but that's what a code hosting site is good at.
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.