Man pages are great, man readers are the problem
164 comments
·April 9, 2025blueflow
rollcat
I don't think Markdown is the right language to solve these problems. As you've noted, it's not standardised at all, and you'd have to pick an interpreter that everyone could agree on (and that means C).
Markdown also doesn't do semantic references. It does do plain links, you can give them a title; or you can use a default title, so perhaps you could infer the semantics from the context, maybe like:
Use the flag [-R][] to recursively apply to all files and subdirectories.
Please refer to [chmod(2)][] for the details.
But that feels like overloading one kind of syntax with so many different meanings. Take HTML as a counterexample, it has <link rel="...">, which fits neatly into the rest of the language.Why do these semantics matter? Well, you can obviously render roff into HTML and browse the man pages online; also, someone ought to write a simple and smart pager that can follow these references (Emacs doesn't count as simple).
Anything that aims to replace roff should preserve its most important features, have a proper formal spec, and be easy to write a parser for - in super plain dumb C/flex/yacc.
tgv
Semantics also matter for the apropos/whatis database. Not sure how many people know about them.
delusional
I only knew `apropros` from gdb. It looks pretty neat as an alternative to googling that function i never remember the name of.
Thanks :)
MyOutfitIsVague
RST/Sphinx solves that problem in that there is a single canonical dialect, and it's already effectively used in many very large projects, including the Linux kernel and (obviously) the Python programming language.
thechao
Yeah. Without even looking at google, I bet there's a "mandown" project that formalizes markdown with man extensions.
The irony of the poor state of affairs of the quality of documentation for mdoc & mandb are not lost on me.
EDIT: couldn't resist. There's at least two mandown projects.
mattkrause
It's such a good name that, once you thought of it, you'd almost be obligated to start writing the code.
jandrese
As noted there are already HTML versions of the manpages that work without apparent issue. It makes me think about having the documentation converted to html and then have a thin script that invokes w3m on the correct file.
Then again GNU tried something similar with the info pages and it never really caught on. I think that was more due to the info program being kinda hard to use and the search facility being awkward.
WhyNotHugo
> It makes me think about having the documentation converted to html and then have a thin script that invokes w3m on the correct file.
`mandoc -T html` will do this for you with functional links between man pages and links to sections inside man pages.
cafard
I didn't think info was at all bad. But the boss who had responded 'uh-hu' to a demo of documentation in Linux, responded 'Wow!' to the same document converted to HTML and displayed in Mosaic. These days, I suppose that I only see info in connection with Emacs.
taeric
GNU trying with info pages was largely hampered by the fragmented UNIX world of the day? I seem to recall various UNIX controllers were far more active in standards and such than they seem to be today. Specifically, I don't think any one company had the dominance that would be needed to drive a large migration.
Not that I'm certain that company exists today. There does seem to have been more consolidation than we had back then.
jandrese
I think it was more hampered by the default viewer program operating like EMACS, which if you're a regular EMACS user is great if you're not it is not terribly ergonomic. What was the command to find the next search item? Ctrl-X N?
PhilipRoman
man -H
WhyNotHugo
Sounds like your major gripe with mdoc(7) is that lack of better documentation for the format and a shortage of tools to generate it. I agree on this second item, most tools don't support adding cross-references / links.
At this point, markdown is 12 different standards, some of which even diverge on the most basic things like their treatment of newlines and how to wrap text. But even so, markdown provides mark-up for styles, with no semantic meaning. mdoc has macros to mark-up flags, optional flags, arguments, environment variables, files, etc. How to format this depends on the reader, and we can have much richer readers than we do right now. Simply converting man to markdown discards most of this information.
A new format isn't going to help solve this; what we want is better guides and tools for produce high quality mdoc pages.
alabastervlog
Even the most vanilla of markdown (the Daring Fireball kind) means committing to a good chunk of a Web rendering stack. You'd need some pared-down version.
tgv
If you want to know more about nroff (which is what man calls when you want text output, I believe), then you could e.g. read https://www.nesssoftware.com/home/mwc/doc/coherent/manual/pd..., or https://www.quut.com/berlin/ms/troff.html. It's terse, like nroff itself.
I think people tried to convert man pages by redefining the macros and then let nroff produce the output.
trod1234
I disagree as well, but on a bit different grounds.
Man pages often lack examples of the syntactical structure, and the syntax is not appropriately documented either.
You can have commands where the flag is followed by an argument, but that flag also is positional, and the position is not documented. You can't just read the man page and get a working command, there's a lot of trial and error which is naturally solved by having a section of commands in an extended form with examples. Powershell does this, and they took it, from somewhere though I'm having trouble recalling the exact name at the moment I know it wasn't an innovation on their part they just glued a bunch of things together that were used in isolation.
taeric
Getting used to browsing info pages in Emacs is something that is rather nice. You can do similar with man pages, there. Often times, it will let you jump directly to the source code of includes and such, if you want to take a peak at the actual code.
To that end, I fully agree with the idea. The richness of existing man pages is far nicer than many people seem to realize.
I do find a bit of dismay at the folks that want to ditch some of that richness and move to markdown or similar. That lets you layout some things fine, I think. I am 100% convinced that as you try to get all of the linking and general semantics of the existing solution done, you will find that you have added a lot of "schema" expectations to markdown that isn't there by default. And then you will start to build "markdown schema" tools to check that what you have fits some standards. And then...
Seriously, just look at a lot of the data that moved to JSON from XML. I saw they are trying to add namespaces to JSON in some projects. Truly terrifying to see people slowly and poorly add the features of the more complicated thing they avoided the first time around.
m463
I think markdown is actually too heavy.
It is really a layer over HTML, which seems to mean you have to have a browser.
taeric
I think the larger problem with markdown is that it is not semantic at all? Yes, the "break glass to drop into html" is a problem. I'm assuming folks would try to disallow inline html, though?
tomxor
Expanding on pjmlp's comment [0] buried in this thread:
export MANPAGER="nvim +Man!"
Using Vim's built in ft-man-plugin [1] as the default man pager seems to go pretty far towards resolving what the author is complaining about.Links work, and it respects the indentation when soft wrapping lines. It isn't doing full reflow or regenerating the page, but it maintains legibility while soft wrapping, and messing up indentation is my main annoyance with less... You can improve less by chopping lines -S by default, but then you have horizontal scrolling so neither is great.
[0] In Vim, you can use K to open a man page for the word under the cursor
dannyfritz07
Thank you for this. This is actually quite marvelous.
Here is what I'm using for fish:
if type -q neovim
set -gx MANPAGER "nvim +Man!"
# abbr --add man --set-cursor "nvim \"+hide Man %\""
end
I can finally retire fisher and decors/fish-colored-man.loodish
The vanilla vim version is
MANPAGER="vim +MANPAGER --not-a-term -"
Documentation can be found via :help manpager.vimimpalallama
the crawlers are working hard today because I got lead here just by searching for a better man page on kagi
I liked the idea of using nvim but i rewrote it with bash function for easier argument handling
nman () {
if [ $# -ne 1 ]; then
echo "Usage: nman <command>"
return 1
fi
command nvim "+hide Man $1"
}
sjmulder
It's a shame so many web versions of man pages are typeset with monospace fonts and barely any formatting. The mandoc-powered OpenBSD online man pages are great though: https://man.openbsd.org/acme-client
Still I also really like being able to read man pages in the terminal. Getting a bit familiar with less helps to make it convenient. I mostly use the search features (/ and ?) and half page scrolling (d an u).
cassepipe
I should add that it supports j/k for scrolling line by line
jordemort
I like pinfo for this (although it is primarily intended for viewing GNU Info pages, it can also display man pages): https://github.com/baszoetekouw/pinfo
Using it feels a lot like lynx. It recognizes cross-references between pages and allows you to navigate through them, as the author of this post requests.
kevin_thibedeau
This is how I get a better man:
alias man='pinfo -m'
77pt77
Has also been around for several decades
kazinator
I have a man page reader which remembers the position you were in the last time you read the same man page. There is nice syntax highlighting.
Also, you can jump to other man pages, because it's just using Vim.
In Vim, you can use K to open a man page for the word under the cursor. You can prefix that command with a section number. Something could be hacked to scrape that from the parentheses after the word.
tomxor
> In Vim, you can use K to open a man page for the word under the cursor
Holy crap! TIL, and I've been using vim for a decade.
kazinator
I remapped K to :grep for the word under the cursor instead. The way I did it, though, is such that if I give it the numeric prefix, it will do the man lookup in that section.
:nmap K "_y:execute count ? ( ":!man " . count . " " . expand("<cword>") ) : ( ":grep \\<" . expand("<cword>") . "\\>")<CR>
I have it mapped to do :grep in visual mode also, without the fallback on man. :vmap K "zy:execute ":grep " . getreg("z")<CR>
Maybe newer Vim has a solution for "grep word under cursor"; it's such an obvious use case. I'm trained on K though.tomxor
> I'm trained on K though
I hear you, have an hard to overcome ctrl-d muscle memory from back in my sublime-text days. Which unfortunately conflicts a little with vim's default ctrl-d in some modes.
But for the most part I was surprised how much muscle memory I could re-wire when I forced myself. I think so long as you pick one at a time, and are using it for a solid chunk of time, i.e while you are working, then it doesn't take long, ~1 week maybe until it's 90% instinct.
I think I probably need to finally shake ctrl-d, maybe today is the day.
Jenk
I page man (and many other things) through bat[0] which improves my experience.
vages
I use batman from bat-extras[0]. It may very well be the best named command line utility I know.
WhyNotHugo
This approach discards all mark-up, which bat tries to re-build with some heuristics. It works for the basic case, but not beyond that.Subsections get mangled (see sway-ipc as an example). Links disappear completely of course, since they don't even reach bat.
kstrauser
What do you prefer about that? I already use bat for syntax highlighting but haven't used it as a pager.
Edit: Oh! That's pretty. Details are at https://github.com/sharkdp/bat?tab=readme-ov-file#man
ksynwa
My dream feature in man page readers is to somehow go to the description of a specific flag. Maybe it already exists and I don't know about it. But as of now I resort to regex hacks like searching for `^\s+-p` or `, -p` to find where the flag is described.
bentley
This feature exists, on systems that use mandoc as the default manpage formatter and viewer (such as OpenBSD).
In HTML output, definitions for flags, environment variables, and other such things are converted to hyperlinks, and hyperlinks can point directly to them. https://man.openbsd.org/ssh#D
In terminal output, this same capability is used to create a ctags file, which is supported by less(1). On OpenBSD, I can type “man ssh”, then :tD to jump to the tag named “D”.
This relies on the mdoc(7) language’s semantics, so unfortunately it won’t work for manpages using the older man(7) macros. But nearly all BSD manpages are written in mdoc(7), and a significant minority of manpages from packages.
SoftTalker
Yes, ctags is not full hyperlinking but is is quite helpful for navigating a single man page in the terminal.
shadowgovt
As far as I can tell, this is the missing feature: flags definitions are extremely semantically meaningful to humans and not even `mdoc` has expliict semantics for them (the closest you can get is that the pattern `.It Fl A` almost always means "the -A flag's definition", especially if it's in the DESCRIPTION section, but that's not a hard-and-fast rule).
And of course, even if your pager isn't `less`, by the time the content has been fed through `man` itself it's been crunched into a terminal representation, not a semantic representation. You'd have to `man -w whatever` to get the raw file and parse it yourself (and handle whether it's mdoc or man format, etc.).
The regex you have keyed that matches to "What these flag definitions usually look like on the terminal" is almost certainly the saddle-point solution between using the tooling as it is and burning it to the ground to build something better.
ryandrake
I'd love to be able to type:
man ffmpeg "-ss"
And have it jump right to the -ss option so I can see the expected format. For me the 99+% use case of man is to look up parameters of a command line or parameters of a programming function call. It's shocking that the UX for what I presume is the single most used use case is so broken.sudahtigabulan
Does searching with /-ss not do this well enough?
For options, the first hit often is the description. When it's not, filtering with & can give you an idea how much further it is, so you can repeat the search with n.
It's not an exact, "semantic" jump, but I find it good enough.
null
AStonesThrow
You know, I cut my teeth on AT&T SVR3. I loved reading up on the basic tools and learning their options and then putting them into everyday practice.
In those systems there were far fewer tools, far fewer options, and much simpler workflows, so honestly I didn’t need to endlessly flip through manpages to sift out hundreds of options with arcane, incompatible, unintuitive syntaxes. The few options we needed to memorize were always paired with consistent syntax and impeccable mnemonics to remember (who can forget ‘ls -l‘ or ‘rm -f‘?)
Ironically, ‘vi‘ was already quite evolved, complex, and arcane by this point, but that was completely different: it was required for us to acquire proficiency in order to code, and it was easy to build skills from basic to expert/power, and all ‘vi‘-editing commands still featured those standardized mnemonics and consistency that can only come from a proprietary single-entity codebase. Plus all possible legacy compat with ‘ed‘ which nobody used directly anymore!
So while we may today consider this a lacuna in the reader tool, it wasn’t by design, and I blame the explosion of “GNU long options” and lack of standardization, more than anything. But also ‘tar‘ and ‘ps‘ and BSD vs. the world. Eff those guys.
bentley
It’s fun to compare BSD alternatives to GNU software and BSD documentation to GNU documentation. For example, OpenBSD refused to integrate GnuPG for package signing due to its complexity, instead developing its own signify(1):
https://man.openbsd.org/signify.1
https://www.gnupg.org/documentation/manuals/gnupg24/gpg.1.ht...
Oops, sorry, this is GNU software, so we need the real documentation from texinfo:
https://www.gnupg.org/documentation/manuals/gnupg/
GnuPG certainly has more features. Does that make it better software? For checking signatures (the only thing I’ve used GnuPG for in 15 years), I find the signify(1) documentation more readable and the signify(1) tool more usable.
Or how about tar(1), everyone’s favorite punching bag due to its weird options?
https://manpages.debian.org/bookworm/tar/tar.1.en.html
https://www.gnu.org/software/tar/manual/tar.html
Yikes!
MrDresden
I would recommend 'manly'[0] for that. It's a super convenient tool for looking up descriptions for specific flags.
No affiliation, just an avid user.
WhyNotHugo
The `.Fl` macro identifies flags in mdoc, so what you're asking for is perfectly doable.
yyyk
If you're thinking of man readers, do consider the mandoc (previously mdocml) project. By treating the page semantically (rather like a macro language), it can achieve better results (pretty HTML output, even markdown output!).
tasn
Hard disagree. Markdown is the way to go.
I've been using Linux for a couple of decades at this point, and I've use man pages quite a bit over the years. Though even though man pages are not foreign to me, I think they are no longer the right solution to the problem.
First of all, we are all used to reading documents on the web (or in a code editor) nowadays, so having a completely different interface is not great. At some point 10 years ago or so I mostly stopped using the `man` command and just googled for man pages so that I can have the interface I'm used to.
Additionally, developers are very much used to markdown, and most other docs are written in markdown (maybe some RST, but probably mostly markdown) so this is not great for the person writing the docs either.
So man pages are inferior for both the producers and the consumers of documentation.
milesrout
You're used to reading documents on the web. I am used to reading them on paper, in the terminal using man (strictly, troff and less), in the web browser and in a split or tab in vim (also using troff). I wish people would stop this "we" business where they purport to speak for everyone.
Man pages are superior because they don't give you the opportunity to add all the other stupid markup, animations, css etc people put in HTML documentation. The key thing is that they're consistent. Always in the same format.
Man pages don't have to be in troff. And as you illustrated, nothing stops you from generating web pages from them.
rglullis
> I wish people would stop this "we" business where they purport to speak for everyone.
That has become a strong signal regarding the (lack of) quality in any argument. Anyone using this cheap rhetoric trick gets an immediate penalty in my "how seriously should I take this person?" book.
tasn
> I wish people would stop this "we" business where they purport to speak for everyone.
Saying that we are all used to consuming content in a web browser is hardly a controversial comment, especially when posting on HN which is accessed using a web browser. You most likely read my comment on a web browser and wrote it on a web browser.
Additionally, you said yourself the sentence before the one I quoted that you are used to reading documents on the web, so it seems like this "we" also applies to you. So I'm just baffled by both this and the sibling comment.
milesrout
In full context, it was implicitly "as opposed to anywhere else".
I look at many documents every day. 90% of them are PDFs and most were Word docs before that. Pages on the web are incredibly unreliable. In the programming world random websites are more commonly used but I don't think they are actually much more reliable. A lot of online resources are just some guy's blog post. Sometimes they're great. Sometimes not.
johnnyjeans
personally i hate when i have to open a web browser to view documentation. it's an absolute waste with how heavy they are and the interface sucks. troff is a nicer markup language than markdown. definitely prefer man pages over anything else.
dijit
There was a time that web-browsers were content viewers, in that time they were more efficient by far than things like PDFs.
Man pages are more efficient but difficult to print, they don't include hyperlinks to more context, or inline images to provide some kind of higher level understanding.
Web browsers became application distribution platforms, and thus; I agree with you- they're really heavy for just document viewing these days.
graemep
Someone needs to devise software and a standard for viewing documents over the internet.
hulitu
> Web browsers became application distribution platforms, and thus; I agree with you- they're really heavy for just document viewing these days.
Too bad they are crap at printing. Apparently rendering on the screen and rendering an image are two completely different things.
lupusreal
What most manuals on the web get wrong is not offering a single-page version, so you're forced to use clumsy search engines (on-site or third party) to search through the document. With manpages, the whole manual is usually in one document. Some big programs split it, usually for the worse.
RunningDroid
> Some big programs split it, usually for the worse.
For some reason ZSH provides split manpages and a concatenated manpage (zshall, iirc.) I personally just use the concatenated manpage
BeetleB
> What most manuals on the web get wrong is not offering a single-page version
Obligatory: https://blog.nawaz.org/posts/2025/Apr/an-appeal-to-documenta...
lupusreal
> Printing out the documentation
Big time. I don't do that very often anymore, but it used to be how I read all documentation. There is a lot to be said for being able to flip through physical pages with a highlighter in hand.
pornel
Markdown is semantically less expressive than man's markup. man goes into details like explicitly marking up command's arguments.
You can convert man to Markdown easily using full capabilities of Markdown, but Markdown lacks semantic information to be converted back to fully-features man document.
If we had good man viewers that have consistent level of support, then man would be a better data source format.
Unfortunately, there's no way to know what features man viewers support, and AFAIK no good ways to provide graceful fallbacks. This is most broken with tables and links that have dedicated markup, but are not rendered in common setups.
thangalin
> Markdown lacks semantic information to be converted back to fully-features man document.
Core Markdown, yes. Pandoc has a fenced div extension that can capture the semantic meaning.
::: Warning :::
This is a warning.
::: Danger
This is a warning within a warning.
:::
:::
Not suggesting that Markdown is the right tool, only that it has extensions to capture semantic meaning. Here are example documents produced using Markdown:* https://impacts.to/downloads/lowres/impacts.pdf
* https://pdfhost.io/v/4FeAGGasj_SepiSolar_Highlevel_Software_...
* https://dave.autonoma.ca/blog/2020/04/28/typesetting-markdow...
* https://gitlab.com/DaveJarvis/keenwrite-themes/-/blob/main/e...
KerrAvon
But the various man source formats aren't semantic markup of any particular use. Yeah, you can ensure that all of your arguments are typeset as italic or something, but it's not consistent because there are different source macro packages and they do different things.
If there was useful semantic markup, it'd be great, because you could imagine, for example, tools allowing you to generate commands on the user's behalf. But the man source formats are mostly, at core, typesetting for 70's typesetting machines, not intended for modern reference documentation.
bentley
mdoc(7), which is the primary macro set used on BSD systems, is a 90s language (as opposed to a 70s language) with useful semantics that support both hyperlinking and featureful search, both on the web and in the terminal.
For example, here’s a search for “C functions beginning with ‘str’ and with return type size_t”: https://man.openbsd.org/?query=Ft%3Dsize_t+-a+Fn~^str&apropo...
On OpenBSD you can do the same from a terminal:
$ apropos -s 3 Ft=size_t -a Nm~^str
But the biggest value of manpages to me is somewhat independent of the underlying format: its quality as documentation. BSD systems have a strong tradition of cohesive usability, including good manpages. A lot of the manpage alternatives I see advertised in Linux circles (such as tldr pages or bro pages) are of little use to me, because OpenBSD manuals are thoughtfully written, clear, concise, complete, and have useful examples. The difference is very noticeable when I try reading manpages for programs I’ve installed from packages, which are often incredibly sparse or incredibly verbose, and lack examples in both cases.
The nifty features that come from the modern language and tooling used by BSD manpages are really just symptomatic of the overall care that BSD communities put into their documentation generally. I wish it were more widespread in the free software world.
znpy
Having been using Linux for a couple of decades as well, i'd never give away manpages in the terminal.
Any time i need a quick refresher ("was it -f or -F?") i can just pause the current editor (ctrl-z) look up the manpage (man <whatever>), exit (q) and then go back (fg) to whatever i was doing.
Having a web browser is just useless annoyance in the workflow.
spudlyo
I find it weird that most of my younger colleagues totally do not understand job control, and generally use just a subset of shell features in their day to day development work. I would wager they also don’t value man pages. I remember the blank stares I was met with when I suggested we create a man page for an extremely complex CLI tool we maintain.
There was already an often out of date wiki page that people hated maintaining, nobody could understand why you wouldn’t just use that.
homebrewer
This is not necessary, man-db can automatically convert your man pages into HTML and show them in your preferred browser:
$ man --html man
jandrese
Basic Ubuntu 24.04 install:
man --html man
man: can't resolve man7/groff_man.7
man: command exited with status 3: (cd /tmp/hman6rTowJ && /usr/libexec/man-db/zsoelim) | (cd /tmp/hman6rTowJ && /usr/libexec/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /tmp/hman6rTowJ && preconv -e UTF-8) | (cd /tmp/hman6rTowJ && tbl) | (cd /tmp/hman6rTowJ && groff -mandoc -Thtml)
The error seems to be about the groff manpage that I didn't even ask for? Very confusing.sgarland
> Hard disagree. Markdown is the way to go.
As other child comments have stated, this is entirely subjective, and many would disagree with you (myself included). I live primarily in the terminal, and the ability to seamlessly look up syntax, flags, features, etc. without ever leaving the keyboard is wonderful. Additionally, I agree with milesrout that I do not want emoji, animations, etc. in my manuals (nor my terminal). I want searchable text. I also agree with lupusreal that having a single large page, at least as an option, is ideal.
A perfect example of the two approaches is HAProxy. Here [0] is their commercial site. It's very flashy, modern web, etc. I don't necessarily hate it, but it's definitely designed to get the attention who may not necessarily know what they want, and can be sold to. In comparison, here [1] is their community site. It is extremely Web 1.0, and I love it. Everything you need, nothing you don't. Similarly, their docs [2] are [3] logically [4] split, and manage to be readable, navigable, yet information-dense. I don't need a tutorial with code snippets every few paragraphs in my docs.
> Additionally, developers are very much used to markdown, and most other docs are written in markdown (maybe some RST, but probably mostly markdown) so this is not great for the person writing the docs either.
Web devs, perhaps, though I imagine there's more variety than you think. Kernel devs likely do not have the same opinion as you (though I do not wish to speak for them, as I am not a kernel dev). I've seen the same argument against the build and packaging process for Linux distros, like Debian. "Why is so much of this in Perl," "why are there so many bash scripts," etc. Because that is what the original developers wrote it in, it works well, and at this point is largely bug-free. Drastically changing something to suit the tastes of some at the risk of introducing errors is not a reasonable strategy.
[2]: https://docs.haproxy.org/3.1/intro.html
0x0203
I am a kernel dev and you've captured my thoughts on the matter quite well. I would very much rather stick with man, even with the deficiencies the article discusses, than use markdown and web.
KerrAvon
It doesn't have to be either/or. You can generate a rich format to mdoc. I'm not completely convinced markdown isn't sufficient, but it doesn't have to be markdown.
BeetleB
Whatever. As long as I can view it easily in Emacs (ideally using their info tool), I'm good. :-)
perlgeek
Easiest solution: convert to HTML, view in browser.
If that's not an option for you: the good old `info` document reader supports links and jumping. Somehow I never quite got the grasp of it though (probably because I didn't spent enough time with it to make it worth finding out how it works).
shadowgovt
Interesting! I never thought about the issue being the reader treating it as just strings and making that an ill-fit for the problem domain.
My bugbear with man is that the only way to find a particular flag is via string search, so if I want to find out what "-c" does I'm going to bounce off of every hyphenated word starting with "c" in the file. Turns out `mdoc` makes it extremely easy to find those flags (they're all `.It Fl <whatever>` macros), but by the time it gets all the way to `less` that detail has been squeezed right out of the file.
Emacs manpage display is like 90% of the way there but lacks a function to "find flag in file;" I should look into how hard that would be to hack in.
bentley
On systems that use the mandoc implementation of the man(1) command, these semantics are preserved and accessible from within less(1). See my other comment: https://news.ycombinator.com/item?id=43634894
I disagree. I have been writing man pages for a while, and mastering the language is hard. The documentation for both mdoc and mandb format is not covering the whole language, and the only remaining reference for roff itself seems to be the book by Brian Kernigham. mdoc and mandb are like a macro set on top of roff.
Just this week i considered proposing to $distro to convert all manpages to markdown as part of the build process, and then use a markdown renderer on the shipped system to display them. This would allow the distro to stop shipping *roff per default.
Markdown profits from the much larger amount of tooling. There are a ton of WYSIWYG editors that would allow non-technical users to write such documentation. I imagine we would all profit if creating manual pages was that easy.
On the other side, Markdown is even less formalized. Its like 15 different dialects from different programs that differ in their feature sets and parsing rules. I do not believe things like "How do i quote an asterisk or underscore so it is rendered verbatim" can be portably achieved in Markdown.