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

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

 



Em Tue, 3 Jun 2025 15:44:42 -0400
Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxx> escreveu:

> 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;
> 	}

I like the idea of having different CSS classes for xref and broken_xref,
as it allows better formatting. I didn't test, but IMO we can either
change a.reference to use text-decoration: underline or to override
border-bottom for .xref (does it need also for .broken_xref?), e.g.:

	.xref {
		text-decoration: underline; 
		border-bottom: none;
	}

By placing both text-decoration and border-bottom, we can ensure that
whatever default on whatever CSS used, this will display just one
underline(*).

(*) such default can still be overridden with:

	make DOCS_CSS=custom.css

> 
> 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.

I suggest keep them ;-)

> 
> > 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:

Better to keep it. Having a different class here helps if someone wants to
have a custom CSS that, for instance, would bold the undocumented functions
(for instance using a red background).

> 
> +    #
> +    # 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



Thanks,
Mauro





[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