Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Tag Cloud: A Plugin for Pelican

Build Status PyPI Version License

This Pelican plugin generates a tag cloud from post tags.


This plugin can be installed via:

python -m pip install pelican-tag-cloud

For more detailed plugin installation instructions, please refer to the Pelican Plugin Documentation.

In order to use to use this plugin, you must edit your theme’s base template and style-sheet. You should change base.html to apply formats (and sizes) defined in style.css, as specified in Settings below.


Settings and their default values What does it do?
TAG_CLOUD_STEPS = 4 Count of different font sizes in the tag cloud
TAG_CLOUD_MAX_ITEMS = 100 Maximum number of tags in the cloud
TAG_CLOUD_SORTING = "random" Tag cloud ordering scheme. Valid values: random, alphabetically, alphabetically-rev, size, and size-rev
TAG_CLOUD_BADGE = True Optional setting: turn on badges, displaying the number of articles using each tag


The default theme does not include a tag cloud, but it is fairly easy to add one:

<ul class="tagcloud">
    {% for tag in tag_cloud %}
        <li class="tag-{{ tag.1 }}">
            <a href="{{ SITEURL }}/{{ tag.0.url }}">
            {{ tag.0 }}
                {% if TAG_CLOUD_BADGE %}
                    <span class="badge">{{ tag.2 }}</span>
                {% endif %}
    {% endfor %}

You should then also define CSS styles with appropriate classes (tag-1 to tag-N, where N matches TAG_CLOUD_STEPS), tag-1 being the most frequent, and define a ul.tagcloud class with appropriate list-style to create the cloud. You should copy+paste this badge CSS rule ul.tagcloud .list-group-item <span>.badge if you are using the TAG_CLOUD_BADGE setting. (This rule, potentially long, is suggested to avoid conflicts with CSS frameworks such as Twitter Bootstrap.)

For example:

ul.tagcloud {
    list-style: none;
    padding: 0;

ul.tagcloud li {
    display: inline-block;

li.tag-1 {
    font-size: 150%;

li.tag-2 {
    font-size: 120%;

/* ... add li.tag-3 etc, as much as needed */

ul.tagcloud .list-group-item span.badge {
    background-color: grey;
    color: white;

By default, the tags in the cloud are sorted randomly, but if you prefer to have them sorted alphabetically, use alphabetically (ascending) and alphabetically-rev (descending). Also, it is possible to sort the tags by frequency (number of articles with this specific tag) using the values size (ascending) and size-rev (descending).


Contributions are welcome and much appreciated. Every little bit helps. You can contribute by improving the documentation, adding missing features, and fixing bugs. You can also help out by reviewing and commenting on existing issues.

To start contributing to this plugin, review the Contributing to Pelican documentation, beginning with the Contributing Code section.


This project is licensed under the AGPL-3.0 license.