# Pelican — Python-Powered Static Site Generator > Pelican is a static site generator written in Python that converts Markdown and reStructuredText content into a fully themed HTML site, with built-in support for Atom and RSS feeds. ## Install Save as a script file and run: # Pelican — Python-Powered Static Site Generator ## Quick Use ```bash pip install pelican[markdown] pelican-quickstart # Answer prompts to scaffold the project pelican content && pelican --listen # Open http://localhost:8000 ``` ## Introduction Pelican is a static site generator written in Python that reads content files in Markdown or reStructuredText, applies Jinja2 templates, and produces a complete static website ready for deployment. It was created as a Python-native alternative to Ruby-based generators like Jekyll, and is well suited for blogs, personal sites, and technical documentation. ## What Pelican Does - Converts Markdown and reStructuredText files into themed HTML pages - Generates Atom and RSS feeds automatically for blog content - Supports articles (date-ordered posts) and pages (static content) as distinct content types - Applies Jinja2 templates for full layout and theme customization - Provides a plugin system for extending build behavior (sitemap, SEO, image processing) ## Architecture Overview Pelican reads content files from a source directory, parses metadata from file headers, and passes the content through a reader (Markdown or reStructuredText). The parsed content is handed to Jinja2 templates defined by the active theme. Generators produce the output files: articles, pages, category and tag index pages, author pages, and feeds. Signals allow plugins to hook into specific points in the generation pipeline. ## Self-Hosting & Configuration - Install with `pip install pelican[markdown]` in a virtual environment - Run `pelican-quickstart` to generate project scaffold with configuration files - Place content in the `content/` directory with metadata headers (Title, Date, Category) - Customize site settings in `pelicanconf.py` and production overrides in `publishconf.py` - Build with `pelican content` and deploy the `output/` directory to any static host ## Key Features - Native Python ecosystem with pip install and Jinja2 templating - Dual markup support for Markdown and reStructuredText in the same project - Automatic feed generation for Atom and RSS without plugins - Import tools for migrating content from WordPress, Tumblr, and other platforms - Theme system with dozens of community themes available on pelicanthemes.com ## Comparison with Similar Tools - **Jekyll** — Ruby-based with Liquid templates, native GitHub Pages support, larger community - **Hugo** — Go-based with sub-second builds, significantly faster for large sites - **MkDocs** — Python-based but focused specifically on project documentation, not general blogging - **Sphinx** — Python documentation generator aimed at API docs and technical references, not blogs - **Nikola** — Python static generator with Jupyter Notebook support, smaller community than Pelican ## FAQ **Q: Can Pelican handle large sites?** A: Pelican handles hundreds of articles without issues. Very large sites (thousands of pages) may see slower build times compared to Hugo, but caching and incremental builds help. **Q: Does Pelican support i18n?** A: Yes. The i18n_subsites plugin allows generating translated versions of the site with per-language content directories. **Q: How do I create a custom Pelican theme?** A: Create a directory with `templates/` and `static/` subdirectories containing Jinja2 templates and CSS/JS assets. Point the `THEME` setting to your theme directory. **Q: Can I use Pelican for documentation sites?** A: Pelican can generate documentation pages, but MkDocs or Sphinx offer better navigation and search features specifically designed for technical documentation. ## Sources - https://github.com/getpelican/pelican - https://docs.getpelican.com/ --- Source: https://tokrepo.com/en/workflows/1aeb989a-42ff-11f1-9bc6-00163e2b0d79 Author: Script Depot