On Tue, 04 Oct 2022, Jonathan Corbet <corbet@xxxxxxx> wrote: > For a long time we have rejoiced that our HTML output from Sphinx is far > better than what we got from the old DocBook toolchain. But it still > leaves a lot to be desired; the following is an attempt to improve the > situation somewhat. > > Sphinx has a theming mechanism for HTML rendering. Since the kernel's > adoption of Sphinx, we have been using the "Read The Docs" theme — a choice > made in a bit of a hurry to have *something* while figuring out the rest. > RTD is OK, but it is not hugely attractive, requires the installation of an > extra package, and does not observe all of the Sphinx configuration > parameters. Among other things, that makes it hard to put reasonable > contents into the left column in the HTML output. > > The Alabaster theme is the default for Sphinx installations, and is bundled > with Sphinx itself. It has (IMO) nicer output and gives us the control > that we need. > > So: switch to Alabaster. Additional patches adjust the documentation and > remove the RTD references from scripts/sphinx-pre-install. > > The final patch changes the way that kerneldoc declarations are rendered to > (IMO) improve readability. That requires some changes to kernel-doc to > output a new container block and some CSS tweaks to improve things overall. > > It should be noted that I have a long history of inflicting ugly web > designs on the net; this work is a start, but I think we could do far > better yet. It would be great if somebody who actually enjoys working with > CSS and such would help to improve what we have. I admit my wish-list replies to this thread may seem a bit obnoxious, when I'm not prepared to contribute. Sorry about that. My intention was not to block any of this, rather muse about what the future direction might be. Overall I think this is an improvement. There's only two things that I'd like to get addressed, not necessarily now, but eventually: - As mentioned, the main div width as pixels in the alabaster theme. It's really crappy on wide 4K displays. Only a quarter of the full screen width is used. - The function/struct/etc. main descriptions are now displayed in the gray background, along with the "declaration", instead of white background. Is that an intenational alabaster feature, or is it something we do to cause that? Seems like the description gets a bit hidden there. BR, Jani. > > As before, I've put a copy of the rendered docs at: > > https://static.lwn.net/kerneldoc/ > > To compare the kerneldoc changes specifically, pick a page that includes a > lot of definitions; for example: > > https://static.lwn.net/kerneldoc/driver-api/media/drivers/frontends.html > vs. > https://www.kernel.org/doc/html/latest/driver-api/media/drivers/frontends.html > > Jonathan Corbet (5): > docs: Switch the default HTML theme to alabaster > docs: tweak some Alabaster style parameters > docs: update sphinx.rst to reflect the default theme change > docs: sphinx-pre-install: don't require the RTD theme > docs: improve the HTML formatting of kerneldoc comments > > Documentation/conf.py | 27 ++++++++++++- > Documentation/doc-guide/sphinx.rst | 16 +++----- > Documentation/sphinx-static/custom.css | 25 +++++++++++++ > Documentation/sphinx/requirements.txt | 1 - > scripts/kernel-doc | 52 ++++++++++++++++---------- > scripts/sphinx-pre-install | 8 ---- > 6 files changed, 87 insertions(+), 42 deletions(-) > create mode 100644 Documentation/sphinx-static/custom.css -- Jani Nikula, Intel Open Source Graphics Center