Skip to main content

Pelican plugin to generate sitemap in plain-text or XML format

Project description

Sitemap

Build Status PyPI Version Downloads License

This Pelican plugin generates a site map in plain-text or XML format. You can use the SITEMAP variable in your settings file to configure the behavior of the plugin.

Installation

This plugin can be installed via:

python -m pip install pelican-sitemap

As long as you have not explicitly added a PLUGINS setting to your Pelican settings file, then the newly-installed plugin should be automatically detected and enabled. Otherwise, you must add sitemap to your existing PLUGINS list. For more information, please see the How to Use Plugins documentation.

Usage

The SITEMAP setting must be a Python dictionary and can contain these keys:

  • format, which sets the output format of the plugin (xml or txt)

  • priorities, which is a dictionary with three keys:

    • articles, the priority for the URLs of the articles and their translations

    • pages, the priority for the URLs of the static pages

    • indexes, the priority for the URLs of the index pages, such as tags, author pages, categories indexes, archives, etc.

    All the values of this dictionary must be decimal floating-point numbers between 0 and 1, such as 0.3 or 0.7.

  • changefreqs, which is a dictionary with three items:

    • articles, the update frequency of the articles

    • pages, the update frequency of the pages

    • indexes, the update frequency of the index pages

    Valid frequency values are always, hourly, daily, weekly, monthly, yearly and never.

  • exclude, which is a list of regular expressions that will be used to exclude matched URLs from the sitemap if any of them match. For example:

SITEMAP = {
    "exclude": [
        "^/noindex/",  # starts with "/noindex/"
        "/tag/",       # contains "/tag/"
        "\.json$",     # ends with ".json"
    ]
}

If a key is missing or a value is incorrect, it will be replaced with the default value.

You can also exclude an individual URL by adding metadata to it, setting private to True.

The sitemap is saved in: <output_path>/sitemap.<format>

Note: priorities and changefreqs are information for search engines and are only used in the XML site maps. For more information, see: https://www.sitemaps.org/protocol.html#xmlTagDefinitions

Example

Here is an example configuration (it is also the default settings):

SITEMAP = {
    "format": "xml",
    "priorities": {
        "articles": 0.5,
        "indexes": 0.5,
        "pages": 0.5
    },
    "changefreqs": {
        "articles": "monthly",
        "indexes": "daily",
        "pages": "monthly"
    }
}

Using Metadata

In addition to applying a configuration to all articles/pages using the SITEMAP setting, ChangeFreq and Priority can also be specified as metadata for individual articles/pages. The same restrictions on the values apply:

  • Valid options for ChangeFreq are always, hourly, daily, weekly, monthly, yearly and never.
  • Valid options for Priority must be a decimal number between 0 and 1.

Example

Following is an example of using sitemap-related metadata in a Markdown file:

Title: Frequently Changed Article
ChangeFreq: daily
Priority: 0.3

This is the article content.

Contributing

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.

License

This project is licensed under the AGPL-3.0 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pelican_sitemap-1.2.2.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pelican_sitemap-1.2.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file pelican_sitemap-1.2.2.tar.gz.

File metadata

  • Download URL: pelican_sitemap-1.2.2.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pelican_sitemap-1.2.2.tar.gz
Algorithm Hash digest
SHA256 93f72d035dd0ec2f5cee38b2766bbd7f6a54bf186635ae1261a6deac422dcfb7
MD5 4a96e834de40d70df8dc6782c48b935f
BLAKE2b-256 5cc1d9e1d539decfba947d711bcb37427ad15914557a728418bd928d56e58a32

See more details on using hashes here.

Provenance

The following attestation bundles were made for pelican_sitemap-1.2.2.tar.gz:

Publisher: main.yml on pelican-plugins/sitemap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pelican_sitemap-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pelican_sitemap-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 09ba150dd1b54ef855f18e7ec920160d7118e932e0dac1c6e8bf3a41e938e682
MD5 b80164f77e7cc8bd6819dc16446876f8
BLAKE2b-256 68c2d2f98364b49a40bac9f315f29d8c22322b47bc4ebdec6a8e3a4f657ebc24

See more details on using hashes here.

Provenance

The following attestation bundles were made for pelican_sitemap-1.2.2-py3-none-any.whl:

Publisher: main.yml on pelican-plugins/sitemap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page