For years I considered HTML an output format, something to be generated by pandoc(1) or Sphinx. Recently I had to study deeper, and I realized that there are many good intentions in HTML. There are tags for citations ("cite"), timestamps ("time"), navigation bars ("nav"), folds ("details") and more. More than enough to express the structure of most things you find on the web.
And that could have been the happy end. Servers provide documents, documents define structure, web-browsers render the structure. And everything looks mostly the same. Sure, over the time the HTML would have acquired more tags and more attributes, just like programming languages develop new syntax and new words appear in natural languages, but the concept could have stayed.
What happened instead is CSS and "div" tag. The CSS (cascading style sheets) allow document author to control styling (fonts, colors, sizes), enabling crimes against aesthetics like acid-yellow background color. On its own, it is not that bad, since the user can have personal overriding stylesheet.
What is bad is the "div" HTML tag. This tag expresses no structure, has no semantics and no default styling. Its only purpose to be styled with CSS. And with the "position" CSS attribute, any fevered dream of any designer is possible. What is not possible anymore is uniform styling. It may look like a button, it may behaves like a button, but is actually¹ a "div" tag with "prc-Label-Label-qG-Zu" class.
Most modern websites share some structure anyway: navigation bar on the top, logo in the top-left corner, login form in top-right corner, main content in the middle, side-bar, table of content and collection of "see also" links. So many things would have been possible if all that was expressed using HTML tags alone, without CSS and "div" soup.
There are also different approaches among tools designed to generate HTML, Texinfo and Sphinx. The idea² of both systems is the same: write documentation in some relatively easy-to-write format and have the tool to generate output in easy-to-read formats, most notably HTML.
The Texinfo has list of supported commands and if what you want is not there, then "sorry, not supported". No extensibility, no escape hatches. In return, the generated documentation always looks the same: a single HTML file. User can style all Texinfo documentation, from whatever sources, using a single universal stylesheet.
In addition to long list of supported directives, Sphinx also has thousands of themes and directive extensions. By picking and choosing extensions, it is possible to customize generated HTML³ to extend that it is no longer obvious that documentation was built with Sphinx.
Despite the name, themes can't be switched easily - documentation that looks good with one theme looks weird with other. There is no way to build Sphinx documentation of all python packages, and have it look the same.
The best thing possible is to build documentation of each package individually, package including vast tree of dependency tree, and user is stuck with artistic choices of document author. This is what I do. But honestly, does technical documentation really need emojis?
"build offline documentation" Nixpkgs pull requests
https://github.com/sphinx-contrib/emojicodes
The sentiment above is even more subjective than stuff I usually write about. A reasonable user/reader might appreciate uniqueness of websites more than benefits of uniformity. It is the usual trade-off - how much flexibility you want, and how much are you willing to give up for it. Regular expressions and Turing's machine. Applicative and Monad.
Yet I do believe that limitations of the format, be it HTML or ReST is a good thing. I ask people to focus on what they have to say instead of complicating the system over minor presentation details. As for documentation, the out-of-box Sphinx⁴ is good enough, really.