1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
5 <LINK REL="stylesheet" HREF="index.css" TYPE="text/css" MEDIA="all">
6 <TITLE>mdocml | UNIX manpage compiler</TITLE>
10 <A HREF="http://www.openbsd.org/"><IMG SRC="puffy.gif" ALT="Puffy" WIDTH="100" HEIGHT="91" STYLE="float: right"></A>
11 <B>mdocml</B> – UNIX manpage compiler, current version @VERSION@ (@VDATE@)
14 Sources: <A HREF="/snapshots/mdocml.tar.gz">current</A>,
15 <A HREF="/cgi-bin/cvsweb/?cvsroot=mdocml">cvsweb</A>
16 (<A HREF="/snapshots/">archives</A>)
19 <A NAME="description">Description</A>
22 <SPAN CLASS="nm">mdocml</SPAN> is a suite of tools compiling <I><A HREF="mdoc.7.html">mdoc</A></I>, the roff macro
23 package of choice for BSD manual pages, and <I><A HREF="man.7.html">man</A></I>, the predominant historical package for
25 It is small, ISO C, <A CLASS="external" HREF="https://www.isc.org/downloads/software-support-policy/isc-license/">ISC</A>-licensed, and quite fast.
28 The tool set features <A HREF="mandoc.1.html">mandoc</A>,
29 based on the <A HREF="mandoc.3.html">libmandoc</A> validating compiler,
30 to format output for UNIX terminals (with
31 support for wide-character locales), XHTML, HTML, PostScript, and PDF.
32 It also includes <A HREF="preconv.1.html">preconv</A>, for recoding multibyte manuals;
33 <A HREF="demandoc.1.html">demandoc</A>, for emitting only text parts of manuals;
34 <A HREF="mandocdb.8.html">mandocdb</A>, for indexing manuals; and
35 <A HREF="apropos.1.html">apropos</A>, <A HREF="whatis.1.html">whatis</A>, and
36 <A HREF="man.cgi.7.html">man.cgi</A> (via <A HREF="catman.8.html">catman</A>) for semantic search of manual content.
39 <SPAN CLASS="nm">mdocml</SPAN> has predominantly been developed on OpenBSD
40 and is both an <A CLASS="external" HREF="http://www.openbsd.org/">OpenBSD</A>
41 and a <A CLASS="external" HREF="http://bsd.lv/">BSD.lv</A> project.
42 We strive to support all interested free operating systems, in particular
43 <A CLASS="external" HREF="http://www.dragonflybsd.org/">DragonFly</A>,
44 <A CLASS="external" HREF="http://www.netbsd.org/">NetBSD</A>,
45 <A CLASS="external" HREF="http://www.freebsd.org/">FreeBSD</A>,
46 <A CLASS="external" HREF="http://www.minix3.org/">Minix 3</A>,
47 and <A CLASS="external" HREF="http://www.gnu.org/">GNU</A>/Linux,
48 as well as all systems running the <A CLASS="external" HREF="http://www.pkgsrc.org/">pkgsrc</A> portable package build system.
49 All of these projects have helped to make <SPAN CLASS="nm">mdocml</SPAN> better, by providing feedback and advice,
50 bug reports, and patches.
53 <I>Disambiguation</I>: <SPAN CLASS="nm">mdocml</SPAN> is often referred to by its installed binary, <Q>mandoc</Q>.
56 <A NAME="sources">Sources</A>
59 <SPAN CLASS="nm">mdocml</SPAN> is in ISO C99 and should build and run on any modern system; however, you'll need <A
60 HREF="http://www.sqlite.org">sqlite3</A> to build <A HREF="apropos.1.html">apropos</A> (links to whatis),
61 <A HREF="man.cgi.7.html">man.cgi</A>, and <A HREF="mandocdb.8.html">mandocdb</A>.
62 To build and install into <I>/usr/local/</I>, just run <CODE>make install</CODE>.
63 Be careful: the <B>preconv</B>, <B>apropos</B>, and <B>whatis</B> binary names are usually taken by existing utilities.
69 Several systems come bundled with <SPAN CLASS="nm">mdocml</SPAN> utilities.
70 If your system does not appear below, the maintainers have not contacted me and it should not be considered
71 <Q>official</Q>, so please <A HREF="#contact">contact us</A> if you plan on maintaining a downstream version!
73 <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
78 <TD>DragonFly BSD</TD>
80 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/contrib/mdocml" CLASS="external">contrib/mdocml</A> (1.12.3 sources)
81 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/lib/libmandoc" CLASS="external">lib/libmandoc</A>
82 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.bin/mandoc" CLASS="external">usr.bin/mandoc</A> (build system)
86 <TD>FreeBSD 10.0, -CURRENT</TD>
88 <A HREF="http://svnweb.freebsd.org/base/head/contrib/mdocml/" CLASS="external">contrib/mdocml</A> (1.12.1 sources)
89 <A HREF="http://svnweb.freebsd.org/base/head/usr.bin/mandoc/" CLASS="external">usr.bin/mandoc</A> (build system)
93 <TD>FreeBSD 9.x, 8.x</TD>
95 <A HREF="http://svnweb.freebsd.org/ports/head/textproc/mdocml/" CLASS="external">ports/textproc/mdocml</A> (1.12.2 port)
101 <A HREF="http://cvsweb.netbsd.org/bsdweb.cgi/src/external/bsd/mdocml/" CLASS="external">src/external/bsd/mdocml</A> (1.12.1 sources plus patches and build system)
107 <A HREF="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mandoc/" CLASS="external">src/usr.bin/mandoc</A> (1.12.3 sources under active development and build system)
113 <A HREF="http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/textproc/mdocml/" CLASS="external">textproc/mdocml</A> (1.12.3 port)
119 <A HREF="http://git.minix3.org/?p=minix.git;a=tree;f=external/bsd/mdocml" CLASS="external">external/bsd/mdocml</A> (1.10.9 sources and build system)
123 <TD>Alpine Linux</TD>
125 <A HREF="http://git.alpinelinux.org/cgit/aports/tree/main/mdocml" CLASS="external">aports/main/mdocml</A> (1.12.2 port)
131 <A NAME="documentation">Documentation</A>
134 These manuals are generated automatically and refer to the current release.
135 They are the authoritative documentation for the <SPAN CLASS="nm">mdocml</SPAN> system.
138 <TABLE WIDTH="100%" SUMMARY="Documentation">
143 <TD VALIGN="top"><A HREF="apropos.1.html">apropos(1)</A></TD>
145 search the manual page database
149 <TD VALIGN="top"><A HREF="demandoc.1.html">demandoc(1)</A></TD>
151 emit only text of UNIX manuals
155 <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
157 format and display UNIX manuals
161 <TD VALIGN="top"><A HREF="preconv.1.html">preconv(1)</A></TD>
163 recode multibyte UNIX manuals
167 <TD VALIGN="top"><A HREF="mandoc.3.html">mandoc(3)</A></TD>
169 mandoc macro compiler library
173 <TD VALIGN="top"><A HREF="tbl.3.html">tbl(3)</A></TD>
175 roff table parser library for mandoc
179 <TD VALIGN="top"><A HREF="eqn.7.html">eqn(7)</A></TD>
181 eqn-mandoc language reference
185 <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
187 man language reference
191 <TD VALIGN="top"><A HREF="man.cgi.7.html">man.cgi(7)</A></TD>
193 cgi for manpage query and display
197 <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
199 mandoc special characters
203 <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
205 mdoc language reference
209 <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
211 roff-mandoc language reference
215 <TD VALIGN="top"><A HREF="tbl.7.html">tbl(7)</A></TD>
217 tbl-mandoc language reference
221 <TD VALIGN="top"><A HREF="mandocdb.8.html">mandocdb(8)</A></TD>
229 <A NAME="links">Supplementary Information</A>
233 <A HREF="http://manpages.bsd.lv/">Practical UNIX Manuals</A>: mdoc tutorial by Kristaps Dzonsons
236 <A HREF="http://www.openbsd.org/faq/ports/specialtopics.html#Mandoc" CLASS="external">OpenBSD porting guide</A>
237 chapter regarding manual pages
240 <A HREF="press.html">Publications and media coverage</A>
241 concerning mdocml and mandoc
244 <A HREF="http://manpages.bsd.lv/history.html">History of UNIX Manpages</A>: a comprehensive overview by Kristaps Dzonsons
248 <A NAME="contact">Contact</A>
251 Use the mailing lists for bug-reports, patches, questions, etc. Please check the
252 <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/TODO?cvsroot=mdocml">TODO</A> for known issues
253 before posting. All lists are subscription-only: send a blank e-mail to the listed address to subscribe. Beyond that,
254 contact Kristaps at <A HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&c=Q2DBUt401ePlSeupJFrq_Q==" TITLE="Reveal
255 this e-mail address">kris...</A>@bsd.lv. Archives are available at <A HREF="http://gmane.org/" CLASS="external">Gmane</A>.
257 <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
263 disc<A CLASS="external" TITLE="Reveal this e-mail address"
264 HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
267 bug-reports, general questions, and announcements
272 tec<A CLASS="external" TITLE="Reveal this e-mail address"
273 HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
276 patches and system discussions
281 sou<A CLASS="external" TITLE="Reveal this e-mail address"
282 HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
285 source commit messages
291 <A NAME="news">News</A>
294 xx-xx-2014: version 1.13.0
297 The <A HREF="mandocdb.8.html">mandocdb</A> tools (<A HREF="mandocdb.8.html">mandocdb</A>, <A
298 HREF="apropos.1.html">apropos</A> (absorbing whatis), and <A HREF="man.cgi.7.html">man.cgi</A>) have been re-written to
299 use <A CLASS="external" HREF="http://www.sqlite.org">sqlite3</A> as a database.
302 31-12-2013: version 1.12.3
305 In the <A HREF="mdoc.7.html">mdoc(7)</A> SYNOPSIS, line breaks and hanging indentation
306 now work correctly for .Fo/.Fa/.Fc and .Fn blocks.
307 Thanks to Franco Fichtner for doing part of the work.
310 The <A HREF="mdoc.7.html">mdoc(7)</A> .Bk macro got some addititonal bugfixes.
313 In <A HREF="mdoc.7.html">mdoc(7)</A> macro arguments, double quotes can now be quoted
314 by doubling them, just like in <A HREF="man.7.html">man(7)</A>.
315 Thanks to Tsugutomo ENAMI for the patch.
318 At the end of <A HREF="man.7.html">man(7)</A> macro lines, end-of-sentence spacing
319 now works. Thanks to Franco Fichtner for the patch.
322 For backward compatibility, the <A HREF="man.7.html">man(7)</A> parser now supports the
323 man-ext .UR/.UE (uniform resource identifier) block macros.
326 The <A HREF="man.7.html">man(7)</A> parser now handles closing blocks that are not open
330 The <A HREF="man.7.html">man(7)</A> parser now ignores blank lines right after .SH and .SS.
333 In the <A HREF="man.7.html">man(7)</A> formatter, reset indentation when leaving a block,
334 not just when entering the next one.
337 The <A HREF="roff.7.html">roff(7)</A> .nr request now supports incrementing and decrementing
338 number registers and stops parsing the number right before the first non-digit character.
341 The <A HREF="roff.7.html">roff(7)</A> parser now supports the alternative escape sequence
342 syntax \C'uXXXX' for Unicode characters.
345 The <A HREF="roff.7.html">roff(7)</A> parser now parses and ignores the .fam (font family)
346 and .hw (hyphenation points) requests and the \d and \u escape sequences.
349 The <A HREF="roff.7.html">roff(7)</A> manual got a new ESCAPE SEQUENCE REFERENCE.
352 05-10-2013: version 1.12.2
355 The <A HREF="mdoc.7.html">mdoc(7)</A> to <A HREF="man.7.html">man(7)</A> converter,
356 to be called as <CODE>mandoc -Tman</CODE>, is now fully functional.
359 The <A HREF="mandoc.1.html">mandoc(1)</A> utility now supports the <CODE>-Ios</CODE> (default operating system)
360 input option, and the <CODE>-Tutf8</CODE> output mode now actually works.
363 The <A HREF="mandocdb.8.html">mandocdb(8)</A> utility no longer truncates existing databases when starting to build new ones,
364 but only replaces them when the build actually succeeds.
367 The <A HREF="man.7.html">man(7)</A> parser now supports the <EM>PD</EM> macro (paragraph distance),
368 and (for GNU man-ext compatibility only) <EM>EX</EM> (example block) and <EM>EE</EM> (example end).
369 Plus several bugfixes regarding indentation, line breaks, and vertical spacing,
370 and regarding <EM>RS</EM> following <EM>TP</EM>.
373 The <A HREF="roff.7.html">roff(7)</A> parser now supports the <EM>\f(BI</EM> (bold+italic) font escape,
374 the <EM>\z</EM> (zero cursor advance) escape and the <EM>cc</EM> (change control character)
375 and <EM>it</EM> (input line trap) requests.
376 Plus bugfixes regarding the <EM>\t</EM> (tab) escape, nested escape sequences, and conditional requests.
379 In <A HREF="mdoc.7.html">mdoc(7)</A>, several bugs were fixed related to UTF-8 output of quoting enclosures,
380 delimiter handling, list indentation and horizontal and vertical spacing,
381 formatting of the <EM>Lk</EM>, <EM>%U</EM>, and <EM>%C</EM> macros,
382 plus some bugfixes related to the handling of syntax errors like badly nested font blocks,
383 stray <EM>Ta</EM> macros outside column lists, unterminated <EM>It Xo</EM> blocks,
384 and non-text children of <EM>Nm</EM> blocks.
387 In <A HREF="tbl.7.html">tbl(7)</A>, the width of horizontal spans and the vertical spacing around tables was corrected,
388 and in <A HREF="man.7.html">man(7)</A> files, a crash was fixed that was triggered by some particular unclosed <EM>T{</EM> macros.
391 For mandoc developers, we now provide a <A HREF="tbl.3.html">tbl(3)</A> library manual and <CODE>gmdiff</CODE>,
392 a very small, very simplistic groff-versus-mandoc output comparison tool.
399 <A HREF="NEWS">Release notes</A> going back to release 1.9.15, February 18, 2010.
400 Briefly explaining the most important changes in each release in relatively easy terms.
401 Very many changes are not mentioned here.
404 <A HREF="history.html">Development history</A> going back to the beginning of the project, November 22, 2008.
405 One-line entries for important commits, releases, merges, hackathons and talks.
406 Makes it easy to find out who did what, and when, and when it became available where.
407 However, this is still incomplete, mentioning only a small fraction of all commits,
408 and to keep the size down, the individual entries are extremely terse and technical.
409 Feel free to look up more details and longer explanations about individual entries
410 in the ChangeLog or in CVS.
413 <A HREF="ChangeLog">CVS ChangeLog</A> going back to the beginning of the project.
414 Very technical information of varying quality, strictly chronological.
415 All commits are mentioned, but some messages neglect to mention some changes.
416 Partly terse, partly detailed and verbose. In any case, the ChangeLog is very long -
417 more than 25,000 lines, more than 700 kB.
420 <A HREF="/cgi-bin/cvsweb/?cvsroot=mdocml">CVS</A> web interface, going back to the beginning of the project.
421 Source code, diffs and commit messages for each source file. The real thing.
426 Copyright © 2008–2011
427 <A CLASS="external" HREF="http://kristaps.bsd.lv">Kristaps Dzonsons</A>,
428 © 2013 Ingo Schwarze,
429 $Date: 2013/12/31 17:47:17 $