From d3714ca3a9a58e74933988bb5638b38fc2fad52d Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Mon, 5 Dec 2022 23:26:28 +0200 Subject: [PATCH] Use sphinxext-opengraph to generate OpenGraph metadata (GH-99931) (cherry picked from commit f49c735e525cf031ddbfc19161aafac4fb18837b) Co-authored-by: Hugo van Kemenade Co-authored-by: C.A.M. Gerlach --- Doc/_static/og-image.png | Bin 0 -> 14572 bytes Doc/conf.py | 34 +++++++++++++++--- Doc/requirements.txt | 1 + ...2-12-02-17-08-08.gh-issue-99931.wC46hE.rst | 2 ++ 4 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 Doc/_static/og-image.png create mode 100644 Misc/NEWS.d/next/Documentation/2022-12-02-17-08-08.gh-issue-99931.wC46hE.rst diff --git a/Doc/_static/og-image.png b/Doc/_static/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..0e80751e740387f9305718537f4b26b32e774088 GIT binary patch literal 14572 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 TMokPm#R!o8EH7Rqsvr12Ay!q# literal 0 HcmV?d00001 diff --git a/Doc/conf.py b/Doc/conf.py index fd4ee2d5eee811..98b076c0ee5728 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -13,9 +13,25 @@ # General configuration # --------------------- -extensions = ['sphinx.ext.coverage', 'sphinx.ext.doctest', - 'pyspecific', 'c_annotations', 'escape4chm', - 'asdl_highlight', 'peg_highlight', 'glossary_search'] +extensions = [ + 'asdl_highlight', + 'c_annotations', + 'escape4chm', + 'glossary_search', + 'peg_highlight', + 'pyspecific', + 'sphinx.ext.coverage', + 'sphinx.ext.doctest', +] + +# Skip if downstream redistributors haven't installed it +try: + import sphinxext.opengraph +except ImportError: + pass +else: + extensions.append('sphinxext.opengraph') + doctest_global_setup = ''' try: @@ -109,7 +125,7 @@ html_use_opensearch = 'https://docs.python.org/' + version # Additional static files. -html_static_path = ['tools/static'] +html_static_path = ['_static', 'tools/static'] # Output file base name for HTML help builder. htmlhelp_basename = 'python' + release.replace('.', '') @@ -234,3 +250,13 @@ # Relative filename of the data files refcount_file = 'data/refcounts.dat' stable_abi_file = 'data/stable_abi.dat' + +# sphinxext-opengraph config +ogp_site_url = 'https://docs.python.org/3/' +ogp_site_name = 'Python documentation' +ogp_image = '_static/og-image.png' +ogp_custom_meta_tags = [ + '', + '', + '', +] diff --git a/Doc/requirements.txt b/Doc/requirements.txt index 958665db69e227..134f39d6d7b3d4 100644 --- a/Doc/requirements.txt +++ b/Doc/requirements.txt @@ -8,6 +8,7 @@ sphinx==4.5.0 blurb sphinx-lint==0.6.7 +sphinxext-opengraph>=0.7.1 # The theme used by the documentation is stored separately, so we need # to install that as well. diff --git a/Misc/NEWS.d/next/Documentation/2022-12-02-17-08-08.gh-issue-99931.wC46hE.rst b/Misc/NEWS.d/next/Documentation/2022-12-02-17-08-08.gh-issue-99931.wC46hE.rst new file mode 100644 index 00000000000000..0c01a2cb2cfa15 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2022-12-02-17-08-08.gh-issue-99931.wC46hE.rst @@ -0,0 +1,2 @@ +Use `sphinxext-opengraph `__ +to generate `OpenGraph metadata `__.