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="http://www.isc.org/software/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> should build and run on any modern system with
60 <A HREF="http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html">libdb</A>
61 (this is installed by default on BSD UNIX systems — see the <I>Makefile</I> if you're running Linux).
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> installed binary names
64 may be taken by existing utilities.
70 Several systems come bundled with <SPAN CLASS="nm">mdocml</SPAN> utilities.
71 If your system does not appear below, the maintainers have not contacted me and it should not be considered
72 <Q>official</Q>, so please <A HREF="#contact">contact us</A> if you plan on maintaining a downstream version!
74 <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
79 <TD>DragonFly BSD</TD>
81 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/contrib/mdocml" CLASS="external">contrib/mdocml</A> (post-1.12.2 sources)
82 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/lib/libmandoc" CLASS="external">lib/libmandoc</A>
83 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.bin/mandoc" CLASS="external">usr.bin/mandoc</A> (build system)
87 <TD>FreeBSD 10.0, -CURRENT</TD>
89 <A HREF="http://svnweb.freebsd.org/base/head/contrib/mdocml/" CLASS="external">contrib/mdocml</A> (1.12.1 sources)
90 <A HREF="http://svnweb.freebsd.org/base/head/usr.bin/mandoc/" CLASS="external">usr.bin/mandoc</A> (build system)
94 <TD>FreeBSD 9.x, 8.x</TD>
96 <A HREF="http://svnweb.freebsd.org/ports/head/textproc/mdocml/" CLASS="external">ports/textproc/mdocml</A> (1.12.2 port)
102 <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)
108 <A HREF="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mandoc/" CLASS="external">src/usr.bin/mandoc</A> (post-1.12.2 sources under active development and build system)
114 <A HREF="http://pkgsrc.se/textproc/mdocml" CLASS="external">textproc/mdocml</A> (1.12.2 port)
120 <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)
124 <TD>Alpine Linux</TD>
126 <A HREF="http://git.alpinelinux.org/cgit/aports/tree/main/mdocml" CLASS="external">aports/main/mdocml</A> (1.12.2 port)
132 <A NAME="documentation">Documentation</A>
135 These manuals are generated automatically and refer to the current release.
136 They are the authoritative documentation for the <SPAN CLASS="nm">mdocml</SPAN> system.
139 <TABLE WIDTH="100%" SUMMARY="Documentation">
144 <TD VALIGN="top"><A HREF="apropos.1.html">apropos(1)</A></TD>
146 search the manual page database
150 <TD VALIGN="top"><A HREF="demandoc.1.html">demandoc(1)</A></TD>
152 emit only text of UNIX manuals
156 <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
158 format and display UNIX manuals
162 <TD VALIGN="top"><A HREF="preconv.1.html">preconv(1)</A></TD>
164 recode multibyte UNIX manuals
168 <TD VALIGN="top"><A HREF="whatis.1.html">whatis(1)</A></TD>
170 search the manual page database
174 <TD VALIGN="top"><A HREF="mandoc.3.html">mandoc(3)</A></TD>
176 mandoc macro compiler library
180 <TD VALIGN="top"><A HREF="tbl.3.html">tbl(3)</A></TD>
182 roff table parser library for mandoc
186 <TD VALIGN="top"><A HREF="eqn.7.html">eqn(7)</A></TD>
188 eqn-mandoc language reference
192 <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
194 man language reference
198 <TD VALIGN="top"><A HREF="man.cgi.7.html">man.cgi(7)</A></TD>
200 cgi for manpage query and display
204 <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
206 mandoc special characters
210 <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
212 mdoc language reference
216 <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
218 roff-mandoc language reference
222 <TD VALIGN="top"><A HREF="tbl.7.html">tbl(7)</A></TD>
224 tbl-mandoc language reference
228 <TD VALIGN="top"><A HREF="catman.8.html">catman(8)</A></TD>
230 update a man.cgi manpage cache
234 <TD VALIGN="top"><A HREF="mandocdb.8.html">mandocdb(8)</A></TD>
242 <A NAME="links">Supplementary Information</A>
246 <A HREF="http://manpages.bsd.lv/">Practical UNIX Manuals</A>: mdoc tutorial by Kristaps Dzonsons
249 <A HREF="http://www.openbsd.org/faq/ports/specialtopics.html#Mandoc" CLASS="external">OpenBSD porting guide</A>
250 chapter regarding manual pages
253 <A HREF="press.html">Publications and media coverage</A>
254 concerning mdocml and mandoc
257 <A HREF="http://manpages.bsd.lv/history.html">History of UNIX Manpages</A>: a comprehensive overview by Kristaps Dzonsons
261 <A NAME="contact">Contact</A>
264 Use the mailing lists for bug-reports, patches, questions, etc. Please check the
265 <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/TODO?cvsroot=mdocml">TODO</A> for known issues
266 before posting. All lists are subscription-only: send a blank e-mail to the listed address to subscribe. Beyond that,
267 contact Kristaps at <A HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&c=Q2DBUt401ePlSeupJFrq_Q==" TITLE="Reveal
268 this e-mail address">kris...</A>@bsd.lv. Archives are available at <A HREF="http://gmane.org/" CLASS="external">Gmane</A>.
270 <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
276 disc<A CLASS="external" TITLE="Reveal this e-mail address"
277 HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
280 bug-reports, general questions, and announcements
285 tec<A CLASS="external" TITLE="Reveal this e-mail address"
286 HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
289 patches and system discussions
294 sou<A CLASS="external" TITLE="Reveal this e-mail address"
295 HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
298 source commit messages
304 <A NAME="news">News</A>
307 05-10-2013: version 1.12.2
310 The <A HREF="mdoc.7.html">mdoc(7)</A> to <A HREF="man.7.html">man(7)</A> converter,
311 to be called as <CODE>mandoc -Tman</CODE>, is now fully functional.
314 The <A HREF="mandoc.1.html">mandoc(1)</A> utility now supports the <CODE>-Ios</CODE> (default operating system)
315 input option, and the <CODE>-Tutf8</CODE> output mode now actually works.
318 The <A HREF="mandocdb.8.html">mandocdb(8)</A> utility no longer truncates existing databases when starting to build new ones,
319 but only replaces them when the build actually succeeds.
322 The <A HREF="man.7.html">man(7)</A> parser now supports the <EM>PD</EM> macro (paragraph distance),
323 and (for GNU man-ext compatibility only) <EM>EX</EM> (example block) and <EM>EE</EM> (example end).
324 Plus several bugfixes regarding indentation, line breaks, and vertical spacing,
325 and regarding <EM>RS</EM> following <EM>TP</EM>.
328 The <A HREF="roff.7.html">roff(7)</A> parser now supports the <EM>\f(BI</EM> (bold+italic) font escape,
329 the <EM>\z</EM> (zero cursor advance) escape and the <EM>cc</EM> (change control character)
330 and <EM>it</EM> (input line trap) requests.
331 Plus bugfixes regarding the <EM>\t</EM> (tab) escape, nested escape sequences, and conditional requests.
334 In <A HREF="mdoc.7.html">mdoc(7)</A>, several bugs were fixed related to UTF-8 output of quoting enclosures,
335 delimiter handling, list indentation and horizontal and vertical spacing,
336 formatting of the <EM>Lk</EM>, <EM>%U</EM>, and <EM>%C</EM> macros,
337 plus some bugfixes related to the handling of syntax errors like badly nested font blocks,
338 stray <EM>Ta</EM> macros outside column lists, unterminated <EM>It Xo</EM> blocks,
339 and non-text children of <EM>Nm</EM> blocks.
342 In <A HREF="tbl.7.html">tbl(7)</A>, the width of horizontal spans and the vertical spacing around tables was corrected,
343 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.
346 For mandoc developers, we now provide a <A HREF="tbl.3.html">tbl(3)</A> library manual and <CODE>gmdiff</CODE>,
347 a very small, very simplistic groff-versus-mandoc output comparison tool.
350 23-03-2012: version 1.12.1
353 Significant work on <A HREF="apropos.1.html">apropos</A> and <A HREF="mandocdb.8.html">mandocdb</A>. These tools are
354 now much more robust.
355 A <A HREF="whatis.1.html">whatis</A> implementation is now handled as an <A HREF="apropos.1.html">apropos</A> mode.
356 These tools are also able to minimally handle pre-formatted pages, that is, those already formatted by another utility
360 The <A HREF="man.cgi.7.html">man.cgi</A> script is also now available for wider testing. It interfaces with <A
361 HREF="mandocdb.8.html">mandocdb</A> manuals cached by <A HREF="catman.8.html">catman</A>. HTML output is generated
362 on-the-fly by <A HREF="mandoc.3.html">libmandoc</A> or internal methods to convert pre-formatted pages.
365 The mailing list archive for the discuss and tech lists are being hosted by <A CLASS="external"
366 HREF="http://www.gmane.org">Gmane</A> at <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.user"
367 CLASS="external">gmane.comp.tools.mdocml.user</A> and <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.devel"
368 CLASS="external">gmane.comp.tools.mdocml.devel</A>, respectively.
371 Lastly, I'm no longer providing binaries, as nobody has asked for them.
378 <A HREF="NEWS">Release notes</A> going back to release 1.9.15, February 18, 2010.
379 Briefly explaining the most important changes in each release in relatively easy terms.
380 Very many changes are not mentioned here.
383 <A HREF="history.html">Development history</A> going back to the beginning of the project, November 22, 2008.
384 One-line entries for important commits, releases, merges, hackathons and talks.
385 Makes it easy to find out who did what, and when, and when it became available where.
386 However, this is still incomplete, mentioning only a small fraction of all commits,
387 and to keep the size down, the individual entries are extremely terse and technical.
388 Feel free to look up more details and longer explanations about individual entries
389 in the ChangeLog or in CVS.
392 <A HREF="ChangeLog">CVS ChangeLog</A> going back to the beginning of the project.
393 Very technical information of varying quality, strictly chronological.
394 All commits are mentioned, but some messages neglect to mention some changes.
395 Partly terse, partly detailed and verbose. In any case, the ChangeLog is very long -
396 more than 25,000 lines, more than 700 kB.
399 <A HREF="/cgi-bin/cvsweb/?cvsroot=mdocml">CVS</A> web interface, going back to the beginning of the project.
400 Source code, diffs and commit messages for each source file. The real thing.
405 Copyright © 2008–2011
406 <A CLASS="external" HREF="http://kristaps.bsd.lv">Kristaps Dzonsons</A>,
407 © 2013 Ingo Schwarze,
408 $Date: 2013/12/26 14:30:10 $