Articles in the Blogging category

  1. I Switched My Blog From Blogofile to Pelican

    August 06, 2013

    This blog is a static website, which makes it fast, simple and secure. It was generated by Blogofile but I switched to Pelican.

    Blogofile has seen almost no updates over the years and I consider the project dead. Realising that blogofile is dead, I decided to look around for different open source static blog generators.

    There are many other static blog generators than pelican. But Pelican is well-documented, is based on Python, is very actively maintained (good track record) and supports all features that I wanted. Some of those features are Atom/RSS, Disqus and Google analytics support.

    My blog posts are written using Markdown. This makes it very easy to migrate away from Blogofile to Pelican, as Pelican also supports Markdown. Blogofile uses a different header format not recognised by Pelican, so you have to search and replace some key words in all your files before Pelican can actually generate your new website.

    I wrote this horrible bash shell for-loop to process all my blog posts:

        :::bash
        for x in *.md
        do
            TITLE=`grep -i "title:" "$x"`
            TITLEFIXED=`echo $TITLE | sed s/\"//g`
            DATE=`grep -i "date:" "$x"`
            DATEFIXED=`echo $DATE | sed "s/\//-/g" | cut -d ":" -f 1,2,3`
            CATEGORY=`grep -i "categories:" "$x"`
            CATEGORYFIXED=`echo $CATEGORY | sed s/\"//g | sed s/categories/category/g | cut -d "," -f 1 | /usr/local/bin/sed -e "s/\b\(.\)/\u\1/g"`
            echo "$TITLEFIXED" > tmp.txt
            echo "$CATEGORYFIXED" >> tmp.txt
            echo "$DATEFIXED" >> tmp.txt
            grep -v "title:" "$x" | grep -v -e '---' | grep -v -i "date:" | grep -v -i "categories:" >> tmp.txt
            mv tmp.txt "$x"
        done
    

    Notice how Build-in syntax highlighting of Pelican applies nice colors to this horrible code. Regarding this horrible code: I had to use GNU sed as the Mac OS X sed did not support the regular expression I used.

    To enable comments for my blog posts I always used Disqus with Blogofile. Pelican generates web pages in a different way compared to blogofile, so all old pages need to be redirected to the new location. I used the redirect functionality of Lighttpd to redirect all existing pages to the new location.

    The cool thing is that Disqus has a tool called "Redirect Crawler". If you have configured 301 "permanent redirects" for all pages and run this tool, Disqus will automatically update all existing links to the new locations, so your comments are migrated to the new web pages.

    Furthermore, I've implemented a Pelican plugin called titlecase which capitalizes the first letter of words in the title of your article. It's just that I think it looks better.

    I think I'm really happy with Pelican.

  2. 'Improved' Image Gallery for Blogofile

    January 21, 2011

    This blog is just static HTML pages that are generated using Blogofile. The Blogofile website sports a small image gallery that has been written to illustrate how to create your own 'controllers' or Blogofile plugins.

    My Python skills are horrible buy I managed to improve a bit on this example photo gallery. If you click on the 'Photos' menu at the top of this blog, you can see an example of the result.

    What is the improvement?

    • Basically one thing: it create a gallery by traversing recursively over a directory structure containing pictures.

    How to install?

    1. Just create a folder where you will store pictures.

    2. Add this to your _config.py

    photo_gallery = controllers.photo_gallery

    photo_gallery.enabled = True

    photo_gallery.path = "pictures"

    1. put this file into _controllers/photo_gallery
    2. enter into this gallery and create a symlink like:

    ln -s photo_gallery.py __init__.py

    1. download the example templates here.

    Additional info

    This photo gallery generator ignores symlinks. However, it looks for a special file name in every directory:

    showcase.jpg
    

    This file can be a symnlink to one of the photo's. It is used as the identifying picture for a folder with pictures. Every directory should contain at least a single showcase.jpg.

    If you have a folder called Europe containing two sub folders England and France, you can create a showcase.jpg symlink to one of the underlying showcase files of one of the folders. This picture will then be used to 'identify' the "Europe" folder.

    Example directory tree:

    ./Europe
    ./Europe/England
    ./Europe/England/London
    ./Europe/England/London/showcase.jpg
    ./Europe/England/showcase.jpg
    ./Europe/France
    ./Europe/France/Nice
    ./Europe/France/Nice/showcase.jpg
    ./Europe/France/showcase.jpg
    ./Europe/Netherlands
    ./Europe/Netherlands/Enkhuizen
    ./Europe/Netherlands/Enkhuizen/showcase.jpg
    ./Europe/Netherlands/showcase.jpg
    ./Europe/showcase.jpg
    ./USA
    ./USA/New York
    ./USA/New York/showcase.jpg
    ./USA/showcase.jpg
    
  3. Migration From Blogger to Blogofile and Disqus Is Complete

    January 04, 2011

    As stated in my previous post, I migrated all posts from blogger.com to my own host running blogofile. At the time of my previous post, I was not able to restore all comments made on my old blog. Thanks to some help from disqcus I fixed an error on my behalf and all old comments from my older blog appeared on the appropriate pages.

    This completes the transition from blogger to blogofile and discus (for comments).

    I'm now working on a controller for blogofile that recursively generates a static HTML photo blog. Relearning Python along the way. When working properly, the code will be made available so other people can at least have a good laugh.

    This blog is now running on an old Intel based Mac Mini, also acting as a firewall.

    mini

Page 1 / 2