HOME

TheInfoList



OR:

mandoc (historically called mdocml) is a utility used for formatting man pages in BSD Operating Systems (e.g.
NetBSD NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
), specifically those written in the ''mdoc'' and ''man'' macro languages. Unlike the groff and older troff and nroff tools that are predominantly used for this purpose by tools such as , mandoc focuses specifically on manuals and is not suitable for general-purpose
type-setting Typesetting is the composition of text by means of arranging physical ''type'' (or ''sort'') in mechanical systems or ''glyphs'' in digital systems representing ''characters'' (letters and other symbols).Dictionary.com Unabridged. Random Ho ...
. is mainly used to format the ''mdoc'' manuals used in the BSD Operating Systems, but it also implements most of the ''man'' macros used in Linux distributions, as well as a subset of roff commands occasionally intermixed with the ''man'' macros. It does not support other macro sets such as ''mm'' and ''ms'', or any typesetting features like hyphenation, fonts and alignment. Simple styling such as bold and italics are supported, but italicized text is replaced by underlined text on the terminal. mandoc has built-in support for the troff soelim (inclusion) preprocessor and partial built-in support for tbl and eqn. It has strong support for UTF-8 output. It can also use the semantic information in mdoc manuals to implement semantic search, which before version 1.4.1, relied on sqlite.


History

Development began in November 2008 specifically to produce
CSS Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
-enabled HTML forms of manuals in response to the limitations of groff. mandoc gained initial text-mode output in February 2009. It was then showcased at AsiaBSDCon-2009. In summer of 2010, mandoc was the subject of a
NetBSD NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
-mentored Google Summer of Code project for producing
PostScript PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
and
PDF Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
output alongside the existing text, HTML, and XHTML outputs. This work was completed in August 2010. mandoc became the default formatter of manuals for
OpenBSD OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
4.8, released in November 2010. It later became the default formatter in
NetBSD NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
,
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, illumos, Void Linux, Alpine Linux and macOS, and is also included in DragonFlyBSD, MINIX 3,
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
, Ubuntu, Gentoo, and
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
. Its advantages were stated as high speed, license, and clean reimplementation.


Sample usage

The following demonstrates running mandoc on its own. Usually, it would be called via the man utility. In this example, foo.1 is the name of an ''mdoc'' UNIX manual. # Page manual to the terminal. $ mandoc -l foo.1 # HTML output with a style-sheet. $ mandoc -Thtml -Ostyle=style.css >foo.1.html Multibyte (localised) manuals may also be rendered without preprocessing. In this example, foo.jp.1 is a Japanese manual encoded in UTF-8. mandoc will automatically detect the encoding. # Page wide-character manual to the terminal. $ mandoc -l foo.jp.1 The included apropos implementation can use semantic information in search: # Search for all functions starting with 'str' having return type size_t: $ apropos -s 3 Ft=size_t -a Nm~^str


Other features

* mandoc supports HTML 5, PostScript, and PDF output via the parameter. * man.cgi is a CGI program designed to display manual pages on the web.
OpenBSD OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
uses it to format all its manual pages.


References


External links


The mandoc UNIX manpage compiler toolset

OpenBSD online manpages
generated by mandoc's man.cgi program
Undeadly article on mandoc

Google Summer of Code mandoc_ps project site
- work on PostScript support
Freecode page for mandoc
- used until 1.12.2 {{OpenBSD BSD software OpenBSD software using the ISC license