Skip to main content

Sphinx extension for generating RSS feeds

Project description

Build status PyPI - package version PyPI - supported python versions

This Sphinx extension is a fork of Fergus Doyle’s sphinxfeed package which itself is derived from Dan Mackinlay’s sphinxcontrib.feed package. It relies on Lars Kiesow’s python-feedgen package instead of the defunct feedformatter package or of Django utils to generate the feed.

Features added

  • Support Python 3 (by using feedgen instead of feedformatter).

  • Don’t publish items having a publication datetime in the future.

  • Ability to write ATOM instead of RSS.

  • Detect category and tags fields in the page metadata and if either or both is present, call the feedgen.FeedEntry.category() method to add <category> elements to the feed item. The difference between category and tags is that the category of a blog post may contain whitespace while the tags metadata field is a space-separated list of tags, so each tag must be a single word. Both the category and each tag will become a <category> element in the feed item.

  • Additional Sphinx config variables:

    • feed_field_name to change the name of the metadata field to use for specifying the publication date.

    • use_dirhtml to specify whether dirhtml instead of html builder is used when calculating the url

    • feed_entry_permalink to set a permalink GUID for each feed entry

    • feed_use_atom to generate an Atom feed instead of RSS

Installation

You can install it using pip:

pip install sphinxfeed-lsaffre

How to test whether the right version of sphinxfeed is installed:

>>> import sphinxfeed
>>> sphinxfeed.__version__
'0.3.1'

Usage

  1. Add sphinxfeed to the list of extensions in your conf.py:

    extensions = [..., 'sphinxfeed']
  2. Customise the necessary configuration options to correctly generate the feed:

    feed_base_url = 'https://YOUR_HOST_URL'
    feed_author = 'YOUR NAME'
    feed_description = "A longer description"
    
    # optional options
    feed_field_name = 'date'  # default value is "Publish Date"
    feed_use_atom = False
    use_dirhtml = False
  3. Optionally use the following metadata fields:

    • date (or any other name configured using feed_field_name)

    • author

    • tags

    • category

  4. Sphinxfeed will include only .rst files that have a :date: field with a date that does not lie in the future.

Maintenance

See also the files LICENSE and CHANGELOG.rst.

Install a developer version:

git clone https://github.com/lsaffre/sphinxfeed.git
pip install -e ".[dev]"

Run the test suite:

$ pytest

Generate an HTML test coverage report:

$ pytest --cov-report=html
$ python -m webbrowser test-reports/index.html

Release a new version to PyPI:

$ hatch version micro
$ git commit -m "release to pypi"
$ git tag v$(hatch version)
$ git push --tags

See Hatch Versioning. and Publishing to PyPI with a Trusted Publisher.

Manually release to PyPI using your machine and token:

$ hatch build
$ twine check --strict dist/*
$ twine upload dist/*

The twine upload step requires authentication credentials in your ~/.pypirc file.

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

sphinxfeed_lsaffre-0.3.5.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

sphinxfeed_lsaffre-0.3.5-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file sphinxfeed_lsaffre-0.3.5.tar.gz.

File metadata

  • Download URL: sphinxfeed_lsaffre-0.3.5.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for sphinxfeed_lsaffre-0.3.5.tar.gz
Algorithm Hash digest
SHA256 bb0c80ba003824492b85e278d029994e1a9ffc365b4930489991c825e3b748b0
MD5 d718f56133cc3706aeaffdccd1cd487c
BLAKE2b-256 d36f2b6c9b891eb2234d4940b3be9485847d8148c7436d4d37ea8421e9cb6473

See more details on using hashes here.

File details

Details for the file sphinxfeed_lsaffre-0.3.5-py3-none-any.whl.

File metadata

File hashes

Hashes for sphinxfeed_lsaffre-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b525789000b533f9dd51bdec9b7138ee5bc90d44d885fd98014943ac3875f8fd
MD5 802b568780e6f2df410f07e6030cad46
BLAKE2b-256 87059c69bd0029340e53f766a3584754dff46adce2252d3ed7aa0feec20360e7

See more details on using hashes here.

Supported by

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