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 <META NAME="resource-type" CONTENT="document">
6 <LINK REL="stylesheet" HREF="index.css" TYPE="text/css" MEDIA="all">
7 <TITLE>mdocml | mdoc macro compiler</TITLE>
10 <TABLE CLASS="frame" SUMMARY="[frame]">
16 <B>mdocml</B> – mdoc macro compiler
19 <A HREF="#description">Description</A> |
20 <A HREF="#sources">Sources</A> |
21 <A HREF="#documentation">Documentation</A> |
22 <A HREF="#contact">Contact</A> |
23 <A HREF="#news">News</A>
30 <A NAME="description">DESCRIPTION</A>
34 <SPAN CLASS="nm">mdocml</SPAN> is a suite of tools compiling <Q>-mdoc</Q>, the roff macro package
35 of choice for BSD manual pages, and <Q>-man</Q>, the predominant historical package for UNIX
36 manuals. The mission of <SPAN CLASS="nm">mdocml</SPAN> is to deprecate <A
37 HREF="http://www.gnu.org/software/groff/" CLASS="external">groff</A>, the GNU roff implementation, for
38 displaying -mdoc pages whilst providing token support for -man.
42 Why? groff amounts to over 5 MB of source code, most of which is C++ and all of which is GPL. It runs
43 slowly, produces uncertain output, and varies in operation from system to system. mdocml strives to fix
44 this (respectively small, C, ISC-licensed, fast and regular).
48 The core of <SPAN CLASS="nm">mdocml</SPAN> is composed of the <A HREF="mdoc.3.html">libmdoc</A>, <A
49 HREF="man.3.html">libman</A>, and <A HREF="roff.3.html">libroff</A> validating compiler libraries. All
50 are simple, fast libraries operating on memory buffers, so they may be used for a variety of front-ends
51 (terminal-based, CGI and so on). The front-end is <A HREF="mandoc.1.html">mandoc</A>, which formats
56 The <SPAN CLASS="nm">mdocml</SPAN> suite is a <A CLASS="external" HREF="http://bsd.lv/">BSD.lv
64 <A NAME="sources">SOURCES</A>
68 Sources correctly build and install on DragonFly BSD, FreeBSD, OpenBSD, NetBSD, GNU/Linux, and many
69 other operating systems, tested variously on i386, AMD64, alpha, and others. The most current version
70 is <SPAN CLASS="attn">@VERSION@</SPAN>, dated <SPAN class="attn">@VDATE@</SPAN>. A full <A
71 HREF="ChangeLog.html">ChangeLog</A> (<A HREF="ChangeLog.txt">txt</A>) is written with each release.
78 <TABLE WIDTH="100%" SUMMARY="Current Sources">
83 <TD>Source archive</TD>
85 <A HREF="/snapshots/mdocml.tar.gz">/snapshots/mdocml.tar.gz</A>
86 (<A HREF="/snapshots/mdocml.md5">md5</A>)
90 <TD>Online source</TD>
92 <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/?cvsroot=mdocml">cvsweb</A>
102 <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
107 <TD>DragonFly BSD</TD>
109 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.bin/mandoc"
110 CLASS="external">usr.bin/mandoc</A>
116 <A HREF="http://www.freebsd.org/cgi/cvsweb.cgi/ports/textproc/mdocml/"
117 CLASS="external">ports/textproc/mdocml</A>
123 <A HREF="http://cvsweb.netbsd.org/bsdweb.cgi/src/external/bsd/mdocml/"
124 CLASS="external">src/external/bsd/mdocml</A>
130 <A HREF="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mandoc/"
131 CLASS="external">src/usr.bin/mandoc</A>
141 <TABLE WIDTH="100%" SUMMARY="Archived Sources">
146 <TD>Source archive</TD>
148 <A HREF="/snapshots/">/snapshots/</A>
158 <A NAME="documentation">DOCUMENTATION</A>
162 These manuals are generated automatically and refer to the current snapshot.
165 <TABLE WIDTH="100%" SUMMARY="Documentation">
170 <TD VALIGN="top"><A HREF="man.3.html">man(3)</A></TD>
172 man macro compiler library
173 <DIV STYLE="font-size: smaller;">
174 <A HREF="man.3.txt">text</A> | <A HREF="man.3.ps">postscript</A>
179 <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
181 man language reference
182 <DIV STYLE="font-size: smaller;">
183 <A HREF="man.7.txt">text</A> | <A HREF="man.7.ps">postscript</A>
188 <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
190 format and display UNIX manuals
191 <DIV STYLE="font-size: smaller;">
192 <A HREF="mandoc.1.txt">text</A> | <A HREF="mandoc.1.ps">postscript</A>
197 <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
199 mandoc special characters
200 <DIV STYLE="font-size: smaller;">
201 <A HREF="mandoc_char.7.txt">text</A> | <A HREF="mandoc_char.7.ps">postscript</A>
206 <TD VALIGN="top"><A HREF="mdoc.3.html">mdoc(3)</A></TD>
208 mdoc macro compiler library
209 <DIV STYLE="font-size: smaller;">
210 <A HREF="mdoc.3.txt">text</A> | <A HREF="mdoc.3.ps">postscript</A>
215 <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
217 mdoc language reference
218 <DIV STYLE="font-size: smaller;">
219 <A HREF="mdoc.7.txt">text</A> | <A HREF="mdoc.7.ps">postscript</A>
224 <TD VALIGN="top"><A HREF="roff.3.html">roff(3)</A></TD>
226 roff macro compiler library
227 <DIV STYLE="font-size: smaller;">
228 <A HREF="roff.3.txt">text</A> | <A HREF="roff.3.ps">postscript</A>
233 <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
235 roff-mandoc language reference
236 <DIV STYLE="font-size: smaller;">
237 <A HREF="roff.7.txt">text</A> | <A HREF="roff.7.ps">postscript</A>
245 See <Q><A CLASS="external" HREF="http://manpages.bsd.lv">Writing UNIX Manual Pages</A></Q> for a general
246 introduction to manpages and mdoc.
253 <A NAME="contact">CONTACT</A>
257 For all issues related to <SPAN CLASS="nm">mdocml</SPAN>, contact Kristaps Dzonsons, kris<A
259 HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&c=Q2DBUt401ePlSeupJFrq_Q=="
260 TITLE="Reveal this e-mail address">...</A>@bsd.lv.
264 You may also subscribe to several mailing lists (these require subscription, which is moderated). An
265 archive is not yet available on-line, although you may request one once subscribed.
268 <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
274 disc<A CLASS="external" TITLE="Reveal this e-mail address"
275 HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
277 <TD>high-level discussions and version announcements</TD>
281 tec<A CLASS="external" TITLE="Reveal this e-mail address"
282 HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
284 <TD>low-level discussions</TD>
288 sou<A CLASS="external" TITLE="Reveal this e-mail address"
289 HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
291 <TD>source commit messages</TD>
300 <A NAME="news">NEWS</A>
304 <SPAN CLASS="date">19-06-2010</SPAN>:
308 Small release featuring text-decoration in <SPAN CLASS="flag">-Tps</SPAN> output, a few
309 minor relaxations of errors, and some optimisations.
314 <SPAN CLASS="date">07-06-2010</SPAN>:
318 This primarily focusses on the <Q>Bl</Q> and <Q>It</Q> macros described in <A
319 HREF="mdoc.7.html">mdoc</A>. Multi-line column support is now fully compatible with
320 groff, as are implicit list entries for columns. Removed manuals.7 in favour of <A
321 CLASS="external" HREF="http://manpages.bsd.lv">http://manpages.bsd.lv</A>. The way we
322 handle the SYNOPSIS section (see the SYNOPSIS documentation in <A
323 HREF="mdoc.7.html#x4d414e55414cx20x535452554354555245">MANUAL STRUCTURE</A>) has also
324 been considerably simplified compared to groff's method. Furthermore, the <SPAN
325 CLASS="flag">-Owidth=width</SPAN> output option has been added to <SPAN
326 CLASS="flag">-Tascii</SPAN> (see <A HREF="mandoc.1.html">mandoc</A>). Lastly, initial
327 PostScript output has been added with the <SPAN CLASS="flag">-Tps</SPAN> option to <A
328 HREF="mandoc.1.html">mandoc</A>. It's brutally simple at the moment: fixed-font, with
334 <SPAN CLASS="date">29-05-2010</SPAN>:
338 Release consisting of the results from the m2k10 hackathon and up-merge from OpenBSD.
339 This requires a significant note of thanks to Ingo Schwarze (OpenBSD) and Joerg
340 Sonnenberger (NetBSD) for their hard work, and again to Joerg for hosting m2k10.
341 Highlights (mostly cribbed from Ingo's m2k10 report) follow in no particular order:
344 <LI>a <A HREF="roff.3.html">libroff</A> preprocessor in front of <A
345 HREF="mdoc.3.html">libmdoc</A> and <A HREF="man.3.html">libman</A> stripping out
346 <A HREF="roff.7.html">roff</A> instructions;</LI>
347 <LI>end-of-sentence (EOS) detection in free-form and macro lines;</LI>
348 <LI>correct handling of tab-separated columnar lists in <SPAN
349 CLASS="flag">-mdoc</SPAN>;</LI>
350 <LI>improved main calling routines to optionally use mmap() for better
352 <LI>cleaned up exiting when invoked as <SPAN CLASS="flag">-Tlint</SPAN> or over
353 multiple files with <SPAN CLASS="flag">-fign-errors</SPAN>;</LI>
354 <LI>error and warning message handling re-written to be unified for <A
355 HREF="roff.3.html">libroff</A>, <A HREF="mdoc.3.html">libmdoc</A>, and <A
356 HREF="man.3.html">libman</A>;</LI>
357 <LI>handling of badly-nested explicit-scoped macros;</LI>
358 <LI>improved free-form text parsing in <A HREF="man.3.html">libman</A> and <A
359 HREF="mdoc.3.html">libmdoc</A>;</LI>
360 <LI>significant GNU troff compatibility improvements in <SPAN
361 CLASS="flag">-Tascii</SPAN>, largely in terms of spacing;</LI>
362 <LI>a regression framework for making sure the many fragilities of GNU troff
363 aren't trampled in subsequent work;</LI>
364 <LI>support for <SPAN CLASS="flag">-Tascii</SPAN> breaking at hyphens
365 encountered in free-form text;</LI>
366 <LI>and many more minor fixes and improvements (no really, consult <A
367 HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/?cvsroot=mdocml">cvsweb</A> and see
373 <SPAN CLASS="date">13-05-2010</SPAN>:
377 Fixed handling of <Q>\*(Ba</Q> escape. Backed out <SPAN
378 CLASS="flag">-fno-ign-chars</SPAN> (pointless complexity). Fixed erroneous
379 breaking of literal lines. Fixed SYNOPSIS breaking lines before non-initial
380 macros. Changed default section ordering. Most importantly, the framework for
381 end-of-sentence double-spacing is in place, now implemented for the
382 <Q>end-of-sentence, end-of-line</Q> rule. This is a stable roll-back point
383 before the mandoc hackathon in Rostock!
388 <SPAN CLASS="date">09-05-2010</SPAN>:
392 Rolled back break-at-hyphen. <SPAN CLASS="flag">-DUGLY</SPAN> is now the
393 default (no feature splits!). Free-form text is not de-chunked any more: lines
394 are passed whole-sale into the front-end, including whitespace. Added mailing
395 lists. Lastly, <SPAN CLASS="nm">mdocml</SPAN> is the focus of two <A
396 CLASS="external" HREF="http://socghop.appspot.com/">Google Summer of Code</A>
397 projects this year: <Q><A CLASS="external"
398 HREF="http://netbsd-soc.sourceforge.net/projects/mandoc_ps/">mandoc -Tps</A></Q>
399 (NetBSD) and <Q><A CLASS="external"
400 HREF="http://wiki.freebsd.org/SummerOfCode2010Projects">BSD-licensed
401 Text-Processing Tools</A></Q> (FreeBSD).
405 See <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/index.sgml?cvsroot=mdocml">cvsweb</A> for
413 Copyright © 2008–2010 Kristaps Dzonsons, $Date: 2010/06/19 20:43:35 $