Skip to main content

Add fediverse comments to your Sphinx page

Project description

For more of my work, please see my home page. For a detailed description of how this works, see this blog post

PyPI License PyPI Status PyPI Version PyPI Total Downloads
GitHub Actions Workflow Status (Python) GitHub Actions Workflow Status (JavaScript) GitHub Actions Workflow Status (Python Lint) GitHub Actions Workflow Status (JavaScript Lint)
Code Coverage (Overall) Code Coverage (Python) Code Coverage (JavaScript)
Open GitHub Issues Open GitHub Pull Requests GitHub Sponsors

Quick Start Guide

Installation

pip install sphinx-fediverse

Configuration

There are a several values that you may provide:

Option

Description

Example

html_baseurl

The host your documentation will be on

https://www.sphinx-doc.org/

fedi_flavor

The API your server implements

'mastodon' or 'misskey'

fedi_username

The username of the account to make posts on

xkcd

fedi_instance

The host you’re making comments on

botsin.space

comments_mapping_file

The name of the comments map file

comments_mapping.json (default)

replace_index_with_slash

True to replace /index.html with /

True (default)

enable_post_creation

True to automatically post, False for manual

True (default)

raise_error_if_no_post

True to raise an error if not post is made

True (default)

comment_fetch_depth

The number of recursive fetches to make

5 (default)

comment_section_level

The header level of the comments section

2 (default)

comment_section_title

The title of the comments section

Comments (default)

We also rely on environment variables for authentication.

For Mastodon instances we require: MASTODON_CLIENT_ID, MASTODON_CLIENT_SECRET, MASTODON_ACCESS_TOKEN.

For Misskey instances we require: MISSKEY_ACCESS_TOKEN.

Each of these must be set if you want to have automatic post creation. They are intentionally not included in the config file so you are incentivized to not store them publicly.

Usage

To use this extension, simply add it to your conf.py’s extension list:

extensions = [
   # ...
   'sphinx_fediverse',
]

And add the following to each page you want a comments section to appear in:

.. fedi-comments::

This will enable a comments section for each post. Upon build, a Mastodon post will be generated for each new page. This will be stored in the same directory as your config file. The ID of each page’s post will be embedded into the output documents, and used to retrieve comments.

Directive Options

In addition to the above configuration values, you can modify most of them on a per-directive basis!

Option

Description

Example(s)

fedi_flavor

(See Above)

(See Above)

fedi_username

(See Above)

(See Above)

fedi_instance

(See Above)

(See Above)

comments_mapping_file

(See Above)

(See Above)

replace_index_with_slash

(See Above)

(See Above)

enable_post_creation

(See Above)

(See Above)

raise_error_if_no_post

(See Above)

(See Above)

fetch_depth

(See comment_fetch_depth Above)

(See Above)

section_level

(See comment_section_level Above)

(See Above)

section_title

(See comment_section_title Above)

(See Above)

post_id

A hardcoded post ID to use for comments

None (default), 114032235423688612

Supported Themes

Because this project includes styling, we need to ensure compatibility with each theme individually. To view it in any officially supported theme, click one of the links below:

Dependencies

JavaScript

Note that by using this plugin, you will be including the following in your page:

  • Marked for rendering Markdown (Misskey only)

  • DOMPurify for HTML sanitization

We also use Babel to ensure compatibility with most browsers. This is not included directly, but is used to pre-process the included javascript before release.

Python

In the Python stack, you will be utilizing the following:

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

sphinx_fediverse-0.9.1.tar.gz (78.6 kB view details)

Uploaded Source

Built Distribution

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

sphinx_fediverse-0.9.1-py3-none-any.whl (65.4 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_fediverse-0.9.1.tar.gz.

File metadata

  • Download URL: sphinx_fediverse-0.9.1.tar.gz
  • Upload date:
  • Size: 78.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for sphinx_fediverse-0.9.1.tar.gz
Algorithm Hash digest
SHA256 26536f2a1c4b9815b4d885bd3100dc3bc3011a64ea1b829c6868b195f29be384
MD5 1bec45ab04877b8800e5e55ac9158f27
BLAKE2b-256 a4ca5042fd1dde6f7431fd13e84fe4ecc30e6d65fc5150ddfdc328f1f8e95eb3

See more details on using hashes here.

File details

Details for the file sphinx_fediverse-0.9.1-py3-none-any.whl.

File metadata

File hashes

Hashes for sphinx_fediverse-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 29c47e1133a7147f4db6afe169d7a6ced6b39a44d5e30d55a6aea12c4025d9d9
MD5 7278ce5dfae76e455dcf1cd2066b6725
BLAKE2b-256 7506661ae9976fd99e12f7f1119bd7270f7dd928c6cdbbfe0810c7a800b947a0

See more details on using hashes here.

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