-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix AttributeError when one of css_files
is a string
#1537
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bah, I thought we were about ready for a 2.0
release too. Thanks for the heads up and the keen eye on this @mitya57
The changes here look good to me. I don't have any strong input on the most correct logic to use here either though. But we are back to close to what we had originally, so I would assume we are in a safer place.
I was going to put out 2.0 tomorrow, but I'll aim for a 2.0rc4 today instead.
2.0.0rc4 is now out! |
* 2.0 milestone: drop supported versions The new policy is: - Python >=3.6 - Sphinx >= 5 - HTML4 and HTML5 writer - docutils >= 0.14, < 0.19 * Update roadmap after discussion By the beginning of 2024 we should support newer Sphinx versions and HTML5 only. * Remove Python 2.7 from CircleCI * Run only supported versions on Python 3.11 * Update with feedback from review * Update documentation to match our support * Add Sphinx 6.2 that was missing * Update tox/circleci to work * Revert tox command * Drop support for HTML4 and keep `-qa` testing - drop support for HTML4 on 2.0 - keep `-qa` TOX environment to be able to compare feature branches - emit `logger.errors` on Python 2 and html_writer4=True - require Sphinx >= 5.0 - remove logic for old Sphinx versions * Update Tox and CircleCI * Update contributing page to match our plans --------- Co-authored-by: Anthony Johnson <aj@ohess.org> Release 2.0.0rc1 (readthedocs#1510) * Release 2.0.0rc1 * Update npm lock file Bump to next release 2.0.0rc2 (readthedocs#1511) Docs: Remove "git install" method from instructions (readthedocs#1375) * Remove instructions "encouraging" to install directly from git * Update changelog: Add reminder that people should not install directly from git * Update docs/changelog.rst --------- Co-authored-by: Manuel Kaufmann <humitos@gmail.com> Visual test with Firefox and tox (readthedocs#1513) * Visual test with Firefox and tox Allows developer to run ``` tox -e py310-sphinx72-firefox ``` This will run the tests and open a Firefox after building the demo site showing the `demo/demo.html` page on it. Then, you can also run: ``` tox -e py310-sphinx61-firefox ``` and compare the visual differences. Idea copied from readthedocs#1388 Closes readthedocs#1388 * Default value for `DISPLAY` and `--new-tab` * Simplify the idea :) Remove Python2 leftovers (readthedocs#1514) Docs: update Read the Docs config (readthedocs#1518) Use the latest config file style. Set data-content_root for Sphinx ≥ 7.2 (readthedocs#1507) This attribute is now required by searchtools.js: https://github.com/sphinx-doc/sphinx/blob/v7.2.2/sphinx/themes/basic/static/searchtools.js#L65 When it's not set, loading search results via AJAX will be broken because the JS code will attempt to load paths like /undefinedfoo.html. Co-authored-by: Manuel Kaufmann <humitos@gmail.com> Use `css_tag` helper to inject CSS files (readthedocs#1519) * Use `css_tag` helper to inject CSS files * Typo Add support for `docutils==0.20.x` (readthedocs#1517) Closes readthedocs#1516 Release 2.0rc2 (readthedocs#1520) Version bump for 2.0rc3 development (readthedocs#1521) Next development version is 2.0rc3 for now, but more likely 2.1rc1 Fix readthedocs#1522: fix `'str' object has no attribute 'attributes'` (readthedocs#1528) * Fix readthedocs#1522: fix attribute error if css is str * Revert "Fix readthedocs#1522: fix attribute error if css is str" This reverts commit b22a77f. * Use `css_tag` only for standard CSS files from Sphinx ... and keep using the custom `link` HTML tag for CSS files included via the HTML theme option `extra_css_files`. * Normalize template variables --------- Co-authored-by: Manuel Kaufmann <humitos@gmail.com> Co-authored-by: Anthony Johnson <aj@ohess.org> Release 2.0.0rc3 (readthedocs#1535) Increment for next potential release (readthedocs#1536) Fix AttributeError when one of `css_files` is a string (readthedocs#1537) Fix AttributeError when one of css_files is a string Release 2.0.0rc4 (readthedocs#1538) Bump for next potential release, 2.0.0rc5 (readthedocs#1539) Release 2.0 final (readthedocs#1544)
* 2.0 milestone: drop supported versions The new policy is: - Python >=3.6 - Sphinx >= 5 - HTML4 and HTML5 writer - docutils >= 0.14, < 0.19 * Update roadmap after discussion By the beginning of 2024 we should support newer Sphinx versions and HTML5 only. * Remove Python 2.7 from CircleCI * Run only supported versions on Python 3.11 * Update with feedback from review * Update documentation to match our support * Add Sphinx 6.2 that was missing * Update tox/circleci to work * Revert tox command * Drop support for HTML4 and keep `-qa` testing - drop support for HTML4 on 2.0 - keep `-qa` TOX environment to be able to compare feature branches - emit `logger.errors` on Python 2 and html_writer4=True - require Sphinx >= 5.0 - remove logic for old Sphinx versions * Update Tox and CircleCI * Update contributing page to match our plans --------- Co-authored-by: Anthony Johnson <aj@ohess.org> Release 2.0.0rc1 (readthedocs#1510) * Release 2.0.0rc1 * Update npm lock file Bump to next release 2.0.0rc2 (readthedocs#1511) Docs: Remove "git install" method from instructions (readthedocs#1375) * Remove instructions "encouraging" to install directly from git * Update changelog: Add reminder that people should not install directly from git * Update docs/changelog.rst --------- Co-authored-by: Manuel Kaufmann <humitos@gmail.com> Visual test with Firefox and tox (readthedocs#1513) * Visual test with Firefox and tox Allows developer to run ``` tox -e py310-sphinx72-firefox ``` This will run the tests and open a Firefox after building the demo site showing the `demo/demo.html` page on it. Then, you can also run: ``` tox -e py310-sphinx61-firefox ``` and compare the visual differences. Idea copied from readthedocs#1388 Closes readthedocs#1388 * Default value for `DISPLAY` and `--new-tab` * Simplify the idea :) Remove Python2 leftovers (readthedocs#1514) Docs: update Read the Docs config (readthedocs#1518) Use the latest config file style. Set data-content_root for Sphinx ≥ 7.2 (readthedocs#1507) This attribute is now required by searchtools.js: https://github.com/sphinx-doc/sphinx/blob/v7.2.2/sphinx/themes/basic/static/searchtools.js#L65 When it's not set, loading search results via AJAX will be broken because the JS code will attempt to load paths like /undefinedfoo.html. Co-authored-by: Manuel Kaufmann <humitos@gmail.com> Use `css_tag` helper to inject CSS files (readthedocs#1519) * Use `css_tag` helper to inject CSS files * Typo Add support for `docutils==0.20.x` (readthedocs#1517) Closes readthedocs#1516 Release 2.0rc2 (readthedocs#1520) Version bump for 2.0rc3 development (readthedocs#1521) Next development version is 2.0rc3 for now, but more likely 2.1rc1 Fix readthedocs#1522: fix `'str' object has no attribute 'attributes'` (readthedocs#1528) * Fix readthedocs#1522: fix attribute error if css is str * Revert "Fix readthedocs#1522: fix attribute error if css is str" This reverts commit b22a77f. * Use `css_tag` only for standard CSS files from Sphinx ... and keep using the custom `link` HTML tag for CSS files included via the HTML theme option `extra_css_files`. * Normalize template variables --------- Co-authored-by: Manuel Kaufmann <humitos@gmail.com> Co-authored-by: Anthony Johnson <aj@ohess.org> Release 2.0.0rc3 (readthedocs#1535) Increment for next potential release (readthedocs#1536) Fix AttributeError when one of `css_files` is a string (readthedocs#1537) Fix AttributeError when one of css_files is a string Release 2.0.0rc4 (readthedocs#1538) Bump for next potential release, 2.0.0rc5 (readthedocs#1539) Release 2.0 final (readthedocs#1544)
Unfortunately, the last version of #1528 still did not work properly in some cases.
When
css_files
comes from Sphinx, every item of this list is an instance of_CascadingStyleSheet
class, andcss_tag
works with it.However, some projects override
css_files
in their templates:or pass
css_files
to HTML context explicitly fromconf.py
:To make build of these projects succeed, we need to support
css_file
being a string.Here I copied the logic from Sphinx itself.
See this Debian bug for the logs of the failed builds.