Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Append a hash ?digest to CSS files for cache-busting#108

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
hugovk merged 1 commit intopython:mainfromhugovk:add-hash-digest-to-css
Feb 25, 2023

Conversation

hugovk
Copy link
Member

@hugovkhugovk commentedFeb 16, 2023
edited
Loading

Fix#78.

Append a?digest=hash to the end of thepydoctheme.css, computed from the file contents, so when a new CSS file is deployed, the old one is no longer used from the browser cache.

For example:

<link rel="stylesheet" type="text/css" href="_static/pydoctheme.css?digest=afc8307635b40ad4bb21df93e5fc348bcdad7f27" />

This is based on how@pradyunsg's Furo theme does it:

https://github.com/pradyunsg/furo/blob/193643fdb6787501195555244f4a9e953ef544bb/src/furo/__init__.py#L149-L161

Demo

View the source of pages athttps://python-docs-theme-previews--108.org.readthedocs.build/en/108/

m-aciek reacted with rocket emoji
@hugovkhugovk merged commit6bb2816 intopython:mainFeb 25, 2023
@hugovkhugovk deleted the add-hash-digest-to-css branchFebruary 25, 2023 09:03
@hugovkhugovk mentioned this pull requestMar 6, 2023
@m-aciek
Copy link
Contributor

m-aciek commentedMar 11, 2023
edited by hugovk
Loading

This changes break backwards compatibility with Sphinx 3.4.3 which is pinned for Python 3.10 documentation.
Following is seen in the stdout when trying to build (example):

%make htmlExtension error:Handler <function _html_page_context at 0x110466020> for event 'html-page-context' threw an exception (exception: This documentation is not using `pydoctheme.css` as the stylesheet. If you have set `html_style` in your conf.py file, remove it.)

Does the same for compatibility with Sphinx 2.4.4 pinned for Python 3.9 and Python 3.8 docs:

%make htmlException occurred:  File "/Users/maciej.olko/projects/cpython/Doc/venv/lib/python3.12/site-packages/python_docs_theme/__init__.py", line 42, in _html_page_context    raise ValueError(    ^^^^^^^^^^^^^^^^^ValueError: This documentation is not using `pydoctheme.css` as the stylesheet. If you have set `html_style` in your conf.py file, remove it.The full traceback has been saved in /var/folders/c0/vxg8dn6n28105qpdxmg3kblc0000gq/T/sphinx-err-psaoa2co.log, if you want to report the issue to the developers.Please also report this if it was a user error, so that a better error message can be provided next time.A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!

(Theme seems compatible with Sphinx 2.3.1 which is used for Python 3.7.)

Would it be possible to tweak the theme to support Sphinx 3.4.3 and 2.4.4 for older Python docs?

@hugovk
Copy link
MemberAuthor

Thanks for reporting.

Sphinx 3.4.3:context["css_files"]=[]

Sphinx 6.1.3:context["css_files"]=['_static/pygments.css', '_static/pydoctheme.css']


Options include pinningpython-docs-theme, or ideally upgrading Sphinx for the other version branches.

But from a practical maintenance point of view, shall we just skip this for older Sphinx versions?

commit 8b88430553fdaa1d7a85296a106158b5faf99a4bAuthor: Hugo van Kemenade <hugovk@users.noreply.github.com>Date:   Sat Mar 11 13:32:42 2023 +0200    Skip cache-busting for old Sphinxdiff --git a/python_docs_theme/__init__.py b/python_docs_theme/__init__.pyindex 62b16f0..bbe1352 100644--- a/python_docs_theme/__init__.py+++ b/python_docs_theme/__init__.py@@ -37,7 +37,7 @@ def _html_page_context(      assert isinstance(app.builder, StandaloneHTMLBuilder)-    if "css_files" in context:+    if sphinx.version_info >= (4,) and "css_files" in context:         if "_static/pydoctheme.css" not in context["css_files"]:             raise ValueError(                 "This documentation is not using `pydoctheme.css` as the stylesheet. "

@hugovkhugovk mentioned this pull requestMar 11, 2023
10 tasks
@m-aciek
Copy link
Contributor

I think skipping is most pragmatic solution. 👍 I was also thinking about pinning, but the downside is it would prevent users from having another fixes from this release. When having similar conversation earlier, upgrading Sphinx wasn't told to be good option for already published stable releases, because of Linux distributions that provide Sphinx as a system package, if I recall correctly.

@hugovk
Copy link
MemberAuthor

Please see PR#113.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@pradyunsgpradyunsgpradyunsg approved these changes

Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Theme issue (or Firefox cache issue?)
3 participants
@hugovk@m-aciek@pradyunsg

[8]ページ先頭

©2009-2025 Movatter.jp