Skip to main content

Sphinx Extension to enable OGP support

Project description

sphinxext-opengraph

Build Code style: Black

Sphinx extension to generate Open Graph metadata for each page of your documentation.

Installation

python -m pip install sphinxext-opengraph

Usage

Just add sphinxext.opengraph to your extensions list in your conf.py

extensions = [
   "sphinxext.opengraph",
]

Options

These values are placed in the conf.py of your Sphinx project.

Users hosting documentation on Read The Docs do not need to set any of the following unless custom configuration is wanted. The extension will automatically retrieve your site URL.

  • ogp_site_url
    • This config option is very important, set it to the URL the site is being hosted on.
  • ogp_description_length
    • Configure the amount of characters taken from a page. The default of 200 is probably good for most people. If something other than a number is used, it defaults back to 200.
  • ogp_site_name
    • This is not required. Name of the site. This is displayed above the title. Defaults to the Sphinx project config value. Set to False to unset and use no default.
  • ogp_social_cards
    • Configuration for automatically creating social media card PNGs for each page. For more information, see the social media cards docs.
  • ogp_image
    • This is not required. Link to image to show. Note that all relative paths are converted to be relative to the root of the html output as defined by ogp_site_url.
  • ogp_image_alt
    • This is not required. Alt text for image. Defaults to using ogp_site_name or the document's title as alt text, if available. Set to False if you want to turn off alt text completely.
  • ogp_use_first_image
    • This is not required. Set to True to use each page's first image, if available. If set to True but no image is found, Sphinx will use ogp_image instead.
  • ogp_type
    • This sets the ogp type attribute, for more information on the types available please take a look at https://ogp.me/#types. By default it is set to website, which should be fine for most use cases.
  • ogp_custom_meta_tags
    • This is not required. List of custom html snippets to insert.
  • ogp_enable_meta_description
    • This is not required. When True, generates <meta name="description" content="..."> from the page.

Example Config

Simple Config

ogp_site_url = "http://example.org/"
ogp_image = "http://example.org/image.png"

Advanced Config

ogp_site_url = "http://example.org/"
ogp_image = "http://example.org/image.png"
ogp_description_length = 300
ogp_type = "article"

ogp_custom_meta_tags = [
    '<meta property="og:ignore_canonical" content="true" />',
]

ogp_enable_meta_description = True

Per Page Overrides

Field lists are used to allow you to override certain settings on each page and set unsupported arbitrary Open Graph tags.

Make sure you place the fields at the very start of the document such that Sphinx will pick them up and also won't build them into the html.

Overrides

These are some overrides that can be used on individual pages, you can actually override any tag and field lists will always take priority.

  • :ogp_description_length:
    • Configure the amount of characters to grab for the description of the page. If the value isn't a number it will fall back to ogp_description_length.[^1]
  • :ogp_disable:
    • Disables generation of Open Graph tags on the page.[^1]
  • :og:description:
    • Lets you override the description of the page.
  • :description: or .. meta::\n :description:
    • Sets the <meta name="description" content="..."> description.
  • :og:title:
    • Lets you override the title of the page.
  • :og:type:
  • :og:image:
    • Set the image for the page.[^2]
  • :og:image:alt:
    • Sets the alt text. Will be ignored if there is no image set.

Example

Remember that the fields must be placed at the very start of the file. You can verify Sphinx has picked up the fields if they aren't shown in the final html file.

:og:description: New description
:og:image: http://example.org/image.png
:og:image:alt: Example Image

Page contents
=============

Arbitrary Tags[^2]

Additionally, you can use field lists to add any arbitrary Open Graph tag not supported by the extension. The syntax for arbitrary tags is the same with :og:tag: content. For example:

:og:video: http://example.org/video.mp4

Page contents
=============

[^1]: Note the slightly different syntax because this isn't directly an Open Graph tag. [^2]: Note: Relative file paths for images, videos and audio are currently not supported when using field lists. Please use an absolute path instead.

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

sphinxext-opengraph-0.9.1.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

sphinxext_opengraph-0.9.1-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file sphinxext-opengraph-0.9.1.tar.gz.

File metadata

  • Download URL: sphinxext-opengraph-0.9.1.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for sphinxext-opengraph-0.9.1.tar.gz
Algorithm Hash digest
SHA256 dd2868a1e7c9497977fbbf44cc0844a42af39ca65fe1bb0272518af225d06fc5
MD5 c67696654492bdca614f151b77c224d3
BLAKE2b-256 1c5b4302fe33c88dbfb572e2c1cad26735164c23f16fb8dba94ddb1867d0ef06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sphinxext_opengraph-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b3b230cc6a5b5189139df937f0d9c7b23c7c204493b22646273687969dcb760e
MD5 81b8ef2dab1e89702495b997901d0f0d
BLAKE2b-256 920a970b80b4fa1feeb6deb6f2e22d4cb14e388b27b315a1afdb9db930ff91a4

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page