Skip to content

man: emit .TP for each flag entry to generate linkable anchors - #3521

Open
ShivangiRay wants to merge 1 commit into
BurntSushi:masterfrom
ShivangiRay:man-linkable-headings
Open

man: emit .TP for each flag entry to generate linkable anchors#3521
ShivangiRay wants to merge 1 commit into
BurntSushi:masterfrom
ShivangiRay:man-linkable-headings

Conversation

@ShivangiRay

Copy link
Copy Markdown

mandoc(1) (and by extension HTML renderers built on it, e.g. man.archlinux.org) generates per-entry anchor IDs from .TP/.IP tagged paragraphs, but not from plain bold text. ripgrep's man page currently documents each flag as bold text wrapped in .RS/.RE, so individual options can't be linked to directly.

Emitting .TP before each flag's tag line gives every option a stable, linkable anchor (e.g. rg.1.html#context), matching the convention already used by fd's man page, which is what this issue's reporter pointed to as a working example.

Verified against the real generated rg.1 (15.2.0 release) by applying this transformation and rendering with mandoc: per-option anchors go from 0 to 104, all pre-existing rendered text is byte-for-byte unchanged (including the --color flag's nested bullet list, the one case that needed the original .RS 4/.RE body wrapper preserved), and no new mandoc lint warnings are introduced.

Fixes #3243

mandoc(1) (and by extension HTML renderers built on it, e.g.
man.archlinux.org) generates per-entry anchor IDs from .TP/.IP tagged
paragraphs, but not from plain bold text. ripgrep's man page currently
documents each flag as bold text wrapped in .RS/.RE, so individual
options can't be linked to directly.

Emitting .TP before each flag's tag line gives every option a stable,
linkable anchor (e.g. rg.1.html#context), matching the convention
already used by fd's man page, which is what this issue's reporter
pointed to as a working example.

Verified against the real generated rg.1 (15.2.0 release) by applying
this transformation and rendering with mandoc: per-option anchors go
from 0 to 104, all pre-existing rendered text is byte-for-byte
unchanged (including the --color flag's nested bullet list, the one
case that needed the original .RS 4/.RE body wrapper preserved), and
no new mandoc lint warnings are introduced.

Fixes BurntSushi#3243
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add linkable headings to options in man pages

1 participant