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; } 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 # # Variant of markup_abi_ref() that warns whan a reference is not found -- 2.49.0