OpenGraph and Twitter meta-tag emission for Sphinx — matplotlib-free
Project description
sphinx-gp-opengraph
OpenGraph meta-tag emission for Sphinx — a drop-in replacement for
sphinxext-opengraph
that ships every ogp_* config key the upstream supports, minus the
matplotlib-based social-card generator. No image-rendering dependencies,
no system-fontconfig surprises.
Part of the gp-sphinx documentation platform.
Install
$ pip install sphinx-gp-opengraph
When you depend on gp-sphinx, this extension is already loaded — see
Auto-derived values
below. The full config-key reference is auto-generated on the
package docs page
from the live app.add_config_value() registrations.
Minimum viable conf.py
extensions = [
"sphinx_gp_opengraph",
]
ogp_site_url = "https://example.com/"
ogp_image = "_static/og-default.png"
A 1200×630 PNG works on Slack, Facebook, LinkedIn, and X/Twitter
unfurlers. With these three values set, every page rendered by an
HTML-family builder gains og:title, og:type, og:url,
og:site_name, og:description, og:image, and og:image:alt. A
matching <meta name="description"> is emitted when the page does not
already define one.
Auto-derived values when used with gp-sphinx
Projects that build through {py:func}gp_sphinx.config.merge_sphinx_config
do not need to set ogp_site_url, ogp_site_name, or ogp_image
manually. Pass docs_url= to merge_sphinx_config() and gp-sphinx
fills all three from that one value. See the sphinx-gp-opengraph package
page for the integration story
and configuration.md
for the canonical mapping table.
Per-page overrides
Set front-matter fields to override the site-wide defaults on a single page. MyST syntax shown; reST field-list syntax behaves the same way.
---
ogp_description_length: 160
og:image: _static/og/this-page.png
og:image:alt: A tailored hero for this page
---
# Page title
Body paragraph that becomes og:description.
| Field | Effect |
|---|---|
og:image |
Replace the site-default image for this page |
og:image:alt |
Replace the alt text for this page |
ogp_description_length |
Override the description-length cap for this page |
ogp_disable: true |
Skip OpenGraph emission entirely on this page |
Any other og:* field-list entry is forwarded to the page head verbatim,
so og:type, og:audio, etc. work without code changes.
Twitter cards
sphinx-gp-opengraph does not register a separate twitter_* namespace;
crawlers fall back to og:* for most fields. Append explicit Twitter
markup through ogp_custom_meta_tags when you need it:
ogp_custom_meta_tags = [
'<meta name="twitter:card" content="summary_large_image" />',
'<meta property="og:image:width" content="1200" />',
'<meta property="og:image:height" content="630" />',
]
Migration from sphinxext-opengraph
Configuration is drop-in compatible — every ogp_* key is registered
with the same name, type, and default — with one behavioural change:
-
ogp_social_cardsis accepted but ignored. sphinx-gp-opengraph does not bundle the matplotlib-based card generator the upstream ships. Setting the value emits oneWARNINGatconfig-inited:sphinx-gp-opengraph: ogp_social_cards ignored — sphinx-gp-opengraph ships no card generator
Grep your build log for
ogp_social_cards ignoredto find this warning. The replacement workflow lives in the next section.
The recommended replacement is one static PNG per page. Drop them under
_static/og/ and point the per-page og:image field-list entry at
each one. The downstream UX is the same as upstream's auto-generated
cards — just explicit, and with no build-time dependency on matplotlib
or PIL.
docs/
├── _static/
│ └── og/
│ ├── default.png
│ ├── quickstart.png
│ └── reference.png
├── quickstart.md
└── reference.md
---
og:image: _static/og/quickstart.png
---
# Quickstart
See also
- sphinx-gp-sitemap
— companion package for
sitemap.xmlemission - gp-sphinx — the umbrella
docs platform; auto-derives
ogp_site_url,ogp_site_name, andogp_imagefrom a singledocs_urlargument - sphinx-gp-opengraph package page — integration story, event hooks, and how-it-works
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sphinx_gp_opengraph-0.0.1a12.tar.gz.
File metadata
- Download URL: sphinx_gp_opengraph-0.0.1a12.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
193b637ad7695a449fd998078288cef50bbcaeb53fa98bc3f756337f38fad3c9
|
|
| MD5 |
8fcab3e28278db0d38dbefcf087bc5cf
|
|
| BLAKE2b-256 |
c6f1fa3ab9307c261ad31b303b97f0545fb525824db14cb81a7dddc5ce154b99
|
Provenance
The following attestation bundles were made for sphinx_gp_opengraph-0.0.1a12.tar.gz:
Publisher:
release.yml on git-pull/gp-sphinx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sphinx_gp_opengraph-0.0.1a12.tar.gz -
Subject digest:
193b637ad7695a449fd998078288cef50bbcaeb53fa98bc3f756337f38fad3c9 - Sigstore transparency entry: 1395867521
- Sigstore integration time:
-
Permalink:
git-pull/gp-sphinx@ebe75cb47c99004604a4e1e482f92f80d99ef3fd -
Branch / Tag:
refs/tags/v0.0.1a12 - Owner: https://github.com/git-pull
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ebe75cb47c99004604a4e1e482f92f80d99ef3fd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sphinx_gp_opengraph-0.0.1a12-py3-none-any.whl.
File metadata
- Download URL: sphinx_gp_opengraph-0.0.1a12-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a0b9b3cde70370a0f74132b1a0e09a7784a02d50f01916034502cb4f0c13ed4
|
|
| MD5 |
656729202ac9e1dbe7807920df4a4f3b
|
|
| BLAKE2b-256 |
dfe133aa6c889b1ef04d9251765ea3255657ccf3bc7893751c3166be8a874612
|
Provenance
The following attestation bundles were made for sphinx_gp_opengraph-0.0.1a12-py3-none-any.whl:
Publisher:
release.yml on git-pull/gp-sphinx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sphinx_gp_opengraph-0.0.1a12-py3-none-any.whl -
Subject digest:
7a0b9b3cde70370a0f74132b1a0e09a7784a02d50f01916034502cb4f0c13ed4 - Sigstore transparency entry: 1395867638
- Sigstore integration time:
-
Permalink:
git-pull/gp-sphinx@ebe75cb47c99004604a4e1e482f92f80d99ef3fd -
Branch / Tag:
refs/tags/v0.0.1a12 - Owner: https://github.com/git-pull
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ebe75cb47c99004604a4e1e482f92f80d99ef3fd -
Trigger Event:
push
-
Statement type: