diff --git a/docs/source/conf.py b/docs/source/conf.py
index 81c93caa0ab070..207ca9e8a57653 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -14,23 +14,24 @@
#
import os
import sys
-sys.path.insert(0, os.path.abspath('../../src'))
+
+sys.path.insert(0, os.path.abspath("../../src"))
# -- Project information -----------------------------------------------------
-project = u'transformers'
-copyright = u'2020, The Hugging Face Team, Licenced under the Apache License, Version 2.0'
-author = u'huggingface'
+project = "transformers"
+copyright = "2020, The Hugging Face Team, Licenced under the Apache License, Version 2.0"
+author = "huggingface"
# The short X.Y version
-version = u''
+version = ""
# The full version, including alpha/beta/rc tags
-release = u'4.5.0.dev0'
+release = "4.5.0.dev0"
# Prefix link to point to master, comment this during version release and uncomment below line
-extlinks = {'prefix_link': ('https://github.com/huggingface/transformers/blob/master/%s', '')}
+extlinks = {"prefix_link": ("https://github.com/huggingface/transformers/blob/master/%s", "")}
# Prefix link to always point to corresponding version, uncomment this during version release
# extlinks = {'prefix_link': ('https://github.com/huggingface/transformers/blob/v'+ release + '/%s', '')}
@@ -44,27 +45,28 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
- 'sphinx.ext.autodoc',
- 'sphinx.ext.extlinks',
- 'sphinx.ext.coverage',
- 'sphinx.ext.napoleon',
- 'recommonmark',
- 'sphinx.ext.viewcode',
- 'sphinx_markdown_tables',
- 'sphinx_copybutton'
+ "sphinx.ext.autodoc",
+ "sphinx.ext.extlinks",
+ "sphinx.ext.coverage",
+ "sphinx.ext.napoleon",
+ "recommonmark",
+ "sphinx.ext.viewcode",
+ "sphinx_markdown_tables",
+ "sphinxext.opengraph",
+ "sphinx_copybutton",
]
# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
+templates_path = ["_templates"]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
-source_suffix = ['.rst', '.md']
+source_suffix = [".rst", ".md"]
# source_suffix = '.rst'
# The master toctree document.
-master_doc = 'index'
+master_doc = "index"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -76,7 +78,7 @@
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
-exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store']
+exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = None
@@ -90,21 +92,30 @@
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
-html_theme = 'sphinx_rtd_theme'
+html_theme = "sphinx_rtd_theme"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
-html_theme_options = {
- 'analytics_id': 'UA-83738774-2',
- 'navigation_with_keys': True
-}
+html_theme_options = {"analytics_id": "UA-83738774-2", "navigation_with_keys": True}
+
+# Configuration for OpenGraph and Twitter Card Tags.
+# These are responsible for creating nice shareable social images https://ahrefs.com/blog/open-graph-meta-tags/
+# https://ogp.me/#type_website
+ogp_image = "https://huggingface.co/front/thumbnails/transformers.png"
+ogp_description = "State-of-the-art Natural Language Processing for PyTorch and TensorFlow 2.0. Transformers provides thousands of pretrained models to perform tasks on texts such as classification, information extraction, question answering, summarization, translation, text generation, etc in 100+ languages. Its aim is to make cutting-edge NLP easier to use for everyone"
+ogp_description_length = 160
+
+ogp_custom_meta_tags = [
+ f'',
+ f'',
+]
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+html_static_path = ["_static"]
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
@@ -116,17 +127,17 @@
#
# html_sidebars = {}
-# This must be the name of an image file (path relative to the configuration
-# directory) that is the favicon of the docs. Modern browsers use this as
-# the icon for tabs, windows and bookmarks. It should be a Windows-style
+# This must be the name of an image file (path relative to the configuration
+# directory) that is the favicon of the docs. Modern browsers use this as
+# the icon for tabs, windows and bookmarks. It should be a Windows-style
# icon file (.ico).
-html_favicon = 'favicon.ico'
+html_favicon = "favicon.ico"
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
-htmlhelp_basename = 'transformersdoc'
+htmlhelp_basename = "transformersdoc"
# -- Options for LaTeX output ------------------------------------------------
@@ -135,15 +146,12 @@
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
-
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
-
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
-
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
@@ -153,8 +161,7 @@
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- (master_doc, 'transformers.tex', u'transformers Documentation',
- u'huggingface', 'manual'),
+ (master_doc, "transformers.tex", "transformers Documentation", "huggingface", "manual"),
]
@@ -162,10 +169,7 @@
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'transformers', u'transformers Documentation',
- [author], 1)
-]
+man_pages = [(master_doc, "transformers", "transformers Documentation", [author], 1)]
# -- Options for Texinfo output ----------------------------------------------
@@ -174,9 +178,15 @@
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- (master_doc, 'transformers', u'transformers Documentation',
- author, 'transformers', 'One line description of project.',
- 'Miscellaneous'),
+ (
+ master_doc,
+ "transformers",
+ "transformers Documentation",
+ author,
+ "transformers",
+ "One line description of project.",
+ "Miscellaneous",
+ ),
]
@@ -195,11 +205,13 @@
# epub_uid = ''
# A list of files that should not be packed into the epub file.
-epub_exclude_files = ['search.html']
+epub_exclude_files = ["search.html"]
+
def setup(app):
- app.add_css_file('css/huggingface.css')
- app.add_css_file('css/code-snippets.css')
- app.add_js_file('js/custom.js')
+ app.add_css_file("css/huggingface.css")
+ app.add_css_file("css/code-snippets.css")
+ app.add_js_file("js/custom.js")
+
# -- Extension configuration -------------------------------------------------
diff --git a/setup.py b/setup.py
index 60c69ffa062f3b..8dc097c2e42bd7 100644
--- a/setup.py
+++ b/setup.py
@@ -126,6 +126,7 @@
"sphinx-copybutton",
"sphinx-markdown-tables",
"sphinx-rtd-theme==0.4.3", # sphinx-rtd-theme==0.5.0 introduced big changes in the style.
+ "sphinxext-opengraph==0.4.1",
"sphinx==3.2.1",
"starlette",
"tensorflow-cpu>=2.3",
@@ -243,11 +244,25 @@ def run(self):
+ extras["modelcreation"]
)
extras["docs"] = deps_list(
- "docutils", "recommonmark", "sphinx", "sphinx-markdown-tables", "sphinx-rtd-theme", "sphinx-copybutton"
+ "docutils",
+ "recommonmark",
+ "sphinx",
+ "sphinx-markdown-tables",
+ "sphinx-rtd-theme",
+ "sphinx-copybutton",
+ "sphinxext-opengraph",
)
extras["quality"] = deps_list("black", "isort", "flake8")
-extras["all"] = extras["tf"] + extras["torch"] + extras["flax"] + extras["sentencepiece"] + extras["tokenizers"] + extras["speech"] + extras["vision"]
+extras["all"] = (
+ extras["tf"]
+ + extras["torch"]
+ + extras["flax"]
+ + extras["sentencepiece"]
+ + extras["tokenizers"]
+ + extras["speech"]
+ + extras["vision"]
+)
extras["dev"] = (
extras["all"]