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'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.
Pelican Sitemap and Pagination
explains how to generate a sitemap.xml
file for your static site that
includes all pages instead of just auto-included top-level pages.
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.
Fix errors in your Python code before your users see them by monitoring with Rollbar.
Deploy web apps with the Ansible configuration management tool.
Build microservices with Docker, Flask & React in this great course.