Pelican is a static site generator implemented in Python that combines Jinja templates with content written in Markdown or reStructuredText to produce websites.
Pelican's source code is available on GitHub under the AGPL 3 license.
Static websites are easier to deploy than full web applications built with a web framework that rely on a persistent database backend. In addition, static sites are typically much faster to load because there are no database queries or middleware code to execute during the HTTP request-response cycle.
A web server that hosts a static website simply responds to inbound HTTP requests with the file being requests - no dynamic data is populated on the server during the response.
Static site generators like Pelican are a simple compared to web frameworks so most tutorials focus on creating simple sites that you can style yourself, as well as deploying to hosting services such as Amazon S3 and GitHub Pages.
How to Create Your First Static Site with Pelican and Jinja2 walks through installing, generating the boilerplate and customizing your first static site using Pelican.
How I built this website, using Pelican walks through getting your first Pelican site generated and running.
A Pelican Tutorial to Build A Static, Python-Powered Blog with Search & Comments provides a walkthrough for how to build a great combination of useful features into your static site such as search and comments with the Staticman library. Bonus points at the end for showing how to deploy to Netlify as an alternative to GitHub Pages or S3.
Creating your own blog with Pelican covers the decision-making process with building a static versus dynamic website. The post then dives into using Pelican as a static site generator with a blog structure and basic theme.
Using Pelican to generate and manage static websites
explains how to use the pelican-quickstart
command to generate
an initial site then adds the Tipue Search plugin to provide content
search despite the static site limitations.
Pelican Folder Structure
explains how the pages
and posts
structure under content
works when using Pelican.
Pelican's official Plugin creation documentation gives a great starting point for building your own plugins that can take in new input markup formats, modify the generator process and add handy features such as a custom table of contents.
Getting started with Pelican and GitHub pages is a tutorial I wrote to use the Full Stack Python source code to create and deploy your first static site.
Moving blogs to Pelican talks about one developer's transition from Jekyll to Pelican for his own sites.
Using Travis & GitHub to deploy static sites shows how to automate deployments of a Pelican-based static site using Travis CI.