Pelican: convenient generation of static webpages and blogs

Pelican: convenient generation of static webpages and blogs

Today, the CDT students in year 1 learned about webpage and blog generation using the Pelican tool in a session delivered by the centre’s director.

Static webpages, as are often used for webpages containing teaching material, documentation and blogs, can be created in many ways. Over the recent years, many software tools have become available that take a set of (nearly plain) text files and convert them into interlinked html pages. Creating and modifying html files directly is not an effective method these days, and the concept of compiling (html) webpages from source can (and should) be integrated with use of software versioning and collaborative tools; thus providing the features of a modern (web) content management system. The same model allows to change the style of the webpages easily, as it is separated from the content.

In today’s training activity we took the Pelican static site generator as an example of many available static site generators, and looked at the setup for the NGCM’s old website, which was based on Pelican.

The basic idea is that the plain text files provide the content of the webpages, and Pelican converts them into interlinked html files, enriched with suitable style files and navigation options. Pelican supports restructuredtext and markdown as input files, which are enriched with metadata such as the date and time of publication of entries, desired slug, authors, tags, etc.

Restructuredtext is a mark up language with the aim to be readable as plain text, but also to be parsable and translatable into html, or latex (and thus pdf if required). Restructuredtext is used extensively in Python documentation, but also in blogging, minute taking and creation of (electronic) logbooks to document studies and research.

NGCM CDT students are invited and encouraged to contribute to the NGCM blog and news pages to practice outreach and communication skills.

Figure 1: The pelican project home page on GitHub.

Posted by Hans Fangohr