Homepage with hyde

A new year and new ideas started. I searched a lot to find a tool to generate websites easily. I had a lot of requirements and I found a pretty cool solution. [TOC]

Requirements

My Requirements for the tool:

  • markdown language can be used
  • static Homepage
  • no php required
  • no mysql-database
  • easy usage of git
  • offline editable entries

why markdown language?

I use gitit - a wiki containing a git backend. This wiki uses markdown language too. Therefore I am very comfortable with markdown language.

It is easy to read in my favourit text-editor (vi) and all other plain text editors.

why a static Homepage and not a dynamic?

The main reason for this to use a static Website is less memory usage.

My site will not have a lot of visitors, so, it does not get enormous amount of traffic. In this case, all other Website-boxes and softwares like django will be bored.

no php

I am not a great fan of php. More precisely, I HATE IT.

no mysql-database

The last years, I got a lots of trouble with mysql-backends. So I prefere sqlite databases.

A sqlite database is quite easy to handle. You don’t need a backend-server, you can just use a simple database file. It is easier to backup and if you get attacked, the stupid guy just see the database file.

To find a blogger software without a mysql backend is not quite easy. There are some alternatives like habari but they were not really usefull to me.

Why git?

I like git as a source code management tool. Therefore it would be nice if it is possible to use git for the new website files.

The easiest way to see what changed is to use plain text files (see markdown language).

offline usable

Most of the time I have a internet-connection, but I travel a lot and there it is not safe to have a network connection. At this time, I want to write new articles offline and publish them later.

What is Hyde?

Hyde is a static website generator powered by Python & Django. Hyde supports all the Django template tags & filters and even has a few of its own. The built-in web server + auto-generator provide instant refresh and unlimited flexibility.

Getting started

To lay out a skeleton in the new folder, use hyde --init.Then I stripped out some of the default items that get added with --init and created my favourit directory structure to use.

Finally, I filled some basic values in the settings.py file.

To generate the static homepage data, just call hyde -g -s . in your source directory. This will generate a new folder called deploy containing all html and css data.

Hyde supports an own webserver to test things. Call hyde -w -s . in your source directory and you can reach your website at http://localhost:8080.

Layout and CSS

Cleanup

The templates created by hyde --init are just functional. I wanted a special one. I found the website of Steve Losh which is really beautiful. He is like me a OpenSource Software developer. I use his CSS Layout available on GitHub.

CSS Framework

I use Aardvark Legs like Steve Losh. It is a much simpler framework. I’ve lost the link to this framework and I haven’t found it again on google.

Update: Found a Download-Link on Softpedia

All the blog entries are listed on a single page, because I don’t like too many pages. Now you can use Cmd+F to find an article.

Fabric to Type Less

I am a lazy person at typing. I want to type as less as possible with as much effort as possible. Therefore I found Fabric.

Fabric is a tool written in Python where you can define tasks and execute them by running fab taskname. I know that I can reach the same with bash-aliases, a Makefile or a short bashscript, but I like to test new OpenSource-Tools to know alternatives.

Fabfiles are pure Python, so you can build lager tasks out of smaller ones very easily and do just about anything you want.

RSS-Feed

I want to create an RSS feed for my site. Hyde provides a very simple sample template to make an ATOM feed.

I cleaned up the template a bit, adjusted a few variables I need ,put it on FeedBurner and everything was ready.

comments powered by Disqus