[PATCH RFC 0/5] docs: Improvements to our HTML output

From: Jonathan Corbet
Date: Tue Oct 04 2022 - 16:12:41 EST


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.

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

--
2.37.2