Get the "last updated" time for each Sphinx page from Git
Project description
This is a little Sphinx extension that does exactly that. It also checks for included files and other dependencies and uses their “last updated” time if it’s more recent. For each file, the “author date” of the Git commit where it was last changed is taken to be its “last updated” time. Uncommitted changes are ignored.
If a page doesn’t have a source file, its last_updated time is set to None.
The default value for html_last_updated_fmt is changed from None to the empty string.
- Usage
Install the Python package sphinx-last-updated-by-git
Add 'sphinx_last_updated_by_git' to extensions in your conf.py
Run Sphinx!
- Options
If a source file is not tracked by Git (e.g. because it has been auto-generated on demand by autosummary_generate) but its dependencies are, the last_updated time is taken from them. If you don’t want this to happen, use git_untracked_check_dependencies = False.
If a source file is not tracked by Git, its HTML page doesn’t get a source link. If you do want those pages to have a sourcelink, set git_untracked_show_sourcelink = True. Of course, in this case html_copy_source and html_show_sourcelink must also be True, and the theme you are using must support source links in the first place.
By default, timestamps are displayed using the local time zone. You can specify a datetime.timezone object (or any tzinfo subclass instance) with the configuration option git_last_updated_timezone. You can also use any string recognized by babel, e.g. git_last_updated_timezone = 'NZ'.
By default, the “last updated” timestamp is added as an HTML <meta> tag. This can be disabled by setting the configuration option git_last_updated_metatags to False.
- Caveats
When using a “Git shallow clone” (with the --depth option), the “last updated” commit for a long-unchanged file might not have been checked out. In this case, the last_updated time is set to None (and a warning is shown during the build).
This might happen on https://readthedocs.org/ because they use shallow clones by default. The DONT_SHALLOW_CLONE feature flag should fix this.
If you want to get rid of the warning, use this in your conf.py:
suppress_warnings = ['git.too_shallow']
When a project on https://readthedocs.org/ using their default theme sphinx_rtd_theme was created before October 20th 2020, the date will not be displayed in the footer.
One work-around is to enable the (undocumented) feature flag USE_SPHINX_LATEST.
Another work-around is to override the defaults by means of a requirements.txt file containing something like this:
sphinx>=2 sphinx_rtd_theme>=0.5
See also issue #1.
- License
BSD-2-Clause (same as Sphinx itself), for more information take a look at the LICENSE file.
- Similar stuff
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
File details
Details for the file sphinx-last-updated-by-git-0.3.2.tar.gz
.
File metadata
- Download URL: sphinx-last-updated-by-git-0.3.2.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71300227d322cab4733fc1da4e34f50d51b244c45e44af5adfc2fe219112c88d |
|
MD5 | 5003b00c17b60b19be7ba770cf9c97fc |
|
BLAKE2b-256 | 0b10254205fc4be9b8bbf960b07a6eaf3f17d601a45d4e71804e67db2c3002d7 |
File details
Details for the file sphinx_last_updated_by_git-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: sphinx_last_updated_by_git-0.3.2-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84f5044c6ae4a00b9594ac6763f2ad7ce4473e9efc34e676a3dde1180243337c |
|
MD5 | d83c075c4e8db90eb346aaece4231ab7 |
|
BLAKE2b-256 | ab461e60a4066244ec51c1df43dc2d3b1664a69ecdad03477ff1af3a5015646f |