Sphinx GitHub Style: GitHub Integration and Pygments Style for Sphinx Documentation

Sphinx Github Style

GitHub source code links and syntax highlighting for Sphinx docs

PyPI Version GitHub Repository https://static.pepy.tech/personalized-badge/sphinx-github-style?period=total&units=none&left_color=grey&right_color=blue&left_text=Downloads Documentation Status


About

sphinx-github-style is a Sphinx extension that makes your docs look like and link to GitHub

Syntax Highlighting

sphinx-github-style also contains a Pygments style to highlight code in your documentation similar to GitHub:

https://user-images.githubusercontent.com/96394652/220946796-bf7aa236-964d-48e7-83e2-142aac00b0dd.png

Installation

To install using pip:

pip install sphinx-github-style

Configuration

Add the extension to your conf.py

extensions = [
    "sphinx_github_style",
]

Optional Configuration Variables

Add any (or none) of the following configuration variables to your conf.py

top_level

top_level

The name of the package’s top-level module. For this repo, it would be sphinx_github_style

Type

str

Default

Return value from get_top_level()

linkcode_blob

linkcode_blob

The blob to link to on GitHub - any of "head", "last_tag", or "{blob}"

  • head (default): links to the most recent commit hash; if this commit is tagged, uses the tag instead

  • last_tag: links to the most recent commit tag on the currently checked out branch

  • blob: links to any blob you want, for example "master" or "v2.0.1"

Type

str

Default

"head"

linkcode_url

linkcode_url

The link to your GitHub repository formatted as https://github.com/user/repo

  • If not provided, will attempt to create the link from the html_context dict

Type

str

Default

f"https://github.com/{html_context['github_user']}/{html_context['github_repo']}/{html_context['github_version']}"

linkcode_resolve

linkcode_resolve

A linkcode_resolve() function to use when resolving the link target with sphinx.ext.linkcode

Type

Callable

Default

Return value from get_linkcode_resolve()


Noteworthy Components

  • TDKStyle - Pygments Style for syntax highlighting similar to Github Pretty Lights Dark Theme

  • TDKMethLexer - Pygments Lexer to add syntax highlighting to methods

  • get_linkcode_resolve() - to link to GitHub source code using sphinx.ext.linkcode

  • add_linkcode_node_class() - adds a new linkcode-link class, allowing for CSS styling separately from viewcode links

  • github_style.css - CSS styling for linkcode links (icon + text)