Re: [PATCH] docs: automarkup: Mark up undocumented entities too

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 03, 2025 at 11:20:16AM -0600, Jonathan Corbet wrote:
> The automarkup code generates markup and a cross-reference links for
> functions, structs, etc. for which it finds kerneldoc documentation.
> Undocumented entities are left untouched; that creates an inconsistent
> reading experience and has caused some writers to go to extra measures to
> cause the markup to happen.
> 
> Mark up detected C entities regardless of whether they are documented.
> Change the CSS, though, to underline the entities that actually link to
> documentation, making our docs a bit more consistent with longstanding WWW
> practice and allowing readers to tell the difference.
> 
> Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
> ---
>  Documentation/sphinx-static/custom.css | 5 +++++
>  Documentation/sphinx/automarkup.py     | 9 +++++++--
>  2 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/sphinx-static/custom.css b/Documentation/sphinx-static/custom.css
> index f4285417c71a..771984f77307 100644
> --- a/Documentation/sphinx-static/custom.css
> +++ b/Documentation/sphinx-static/custom.css
> @@ -136,3 +136,8 @@ div.language-selection:hover ul {
>  div.language-selection ul li:hover {
>      background: #dddddd;
>  }
> +
> +/* Mark xrefs with an underline, but elide it for those that
> +   don't lead anywhere */
> +.xref { text-decoration: underline; }
> +.broken_xref { text-decoration: none !important; }

To me the results look much better without these CSS rules, as they cause a
double underline.

The current CSS already adds a dotted underline to reference links through the
following rule:

	a.reference {
	  border-bottom: 1px dotted #004B6B;
	}

So when you add this underline text-decoration to the .xref tags, the ones
inside <a> tags (valid xrefs) end up with two underlines.

I've checked the result for both struct and functions and they work the same.

So I suggest just dropping these CSS rules.

> diff --git a/Documentation/sphinx/automarkup.py b/Documentation/sphinx/automarkup.py
> index 347de81c1ab7..cede07e758a7 100644
> --- a/Documentation/sphinx/automarkup.py
> +++ b/Documentation/sphinx/automarkup.py
> @@ -241,8 +241,13 @@ def add_and_resolve_xref(app, docname, domain, reftype, target, contnode=None):
>  
>      if xref:
>          return xref
> -
> -    return None
> +    #
> +    # We didn't find the xref; if a container node was supplied,
> +    # mark it as a broken xref
> +    #
> +    if contnode:
> +        contnode.set_class("broken_xref")
> +    return contnode

And accordingly changing this to just:

+    #
+    # We didn't find the xref; return contnode so that if one was supplied the
+    # resulting node can have the same styling (eg literal formatting for
+    # struct/functions)
+    #
+    return contnode

With that,

Reviewed-by: Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxx>

Thanks,
Nícolas




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux