You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Generated HTML elements of the manpage's content can have id attributes. This is useful, for example to be able to link to specific options, inside a manpage.
Debian theme's CSS mainly use id to target elements to style, for example #footer { ... }.
If a generated HTML element has an id used by Debian theme's CSS, it inherits its style.
Use a prefix for the id of layout elements to prevent them conflicting with the manpage's content's HTML elements.
Use a prefix for the id of the generated HTML elements to prevent them conflicting with the layout elements.
Specify the css rules more precisely to avoid targeting the manpage's content HTML elements. For example using body > div#footer { ... }
I think (2) is not ideal, as it would add a processing step in the manpage rendering code, and it would also break existing links to anchors. So this leaves (1) and (3). I would say I prefer option (3) as it only involves modifying the CSS, which keeps it more similar to the rest of the Debian sites.
If you agree with my proposition, I can make a pull request that make the Debian theme's CSS selector stricter to avoid this problem in the future.
P.S. One last issue that option (3) leaves unresolved, is that multiple elements with the same id is forbidden by the HTML standard, but I think this is not a major issue as it is gracefully handled by Web browsers.
The text was updated successfully, but these errors were encountered:
After thinking a little more, I think solution (1) is the best. Because for occurrences of this bug where the id is the same as a previous element, in addition to inheriting the styles, it is also impossible to link to the correct element. See for example: https://manpages.debian.org/unstable/coreutils/numfmt.1.en.html#header
Seeing the kind of id than mandoc generates, I think prefixing the template ids with _ should probably be enough.
Ideally we’d prefix the ids (option 1), but given that this would break all links to manpages.d.o that specify a section, I don’t think we can do that.
Following option 3 sounds best, resorting to option 2 where absolutely needed.
Description of the problem
id
attributes. This is useful, for example to be able to link to specific options, inside a manpage.id
to target elements to style, for example#footer { ... }
.id
used by Debian theme's CSS, it inherits its style.See https://manpages.debian.org/unstable/lintian-ssg/lintian-ssg.1.en.html#footer for an example of this problem:
Solutions imagined
id
of layout elements to prevent them conflicting with the manpage's content's HTML elements.id
of the generated HTML elements to prevent them conflicting with the layout elements.body > div#footer { ... }
I think (2) is not ideal, as it would add a processing step in the manpage rendering code, and it would also break existing links to anchors. So this leaves (1) and (3). I would say I prefer option (3) as it only involves modifying the CSS, which keeps it more similar to the rest of the Debian sites.
If you agree with my proposition, I can make a pull request that make the Debian theme's CSS selector stricter to avoid this problem in the future.
P.S. One last issue that option (3) leaves unresolved, is that multiple elements with the same
id
is forbidden by the HTML standard, but I think this is not a major issue as it is gracefully handled by Web browsers.The text was updated successfully, but these errors were encountered: