- <P>
- <SPAN CLASS="nm">mdocml</SPAN> is a suite of tools compiling <Q>-mdoc</Q>, the roff macro package
- of choice for BSD manual pages, and <Q>-man</Q>, the predominant historical package for UNIX
- manuals. The mission of <SPAN CLASS="nm">mdocml</SPAN> is to deprecate <A
- HREF="http://www.gnu.org/software/groff/" CLASS="external">groff</A>, the GNU roff implementation, for
- displaying -mdoc pages whilst providing token support for -man.
- </P>
-
- <P>
- Why? groff amounts to over 5 MB of source code, most of which is C++ and all of which is GPL. It runs
- slowly, produces uncertain output, and varies in operation from system to system. mdocml strives to fix
- this (respectively small, C, ISC-licensed, fast and regular).
- </P>
-
- <P>
- The core of <SPAN CLASS="nm">mdocml</SPAN> is composed of the <i>libmdoc</i> and <i>libman</i>
- validating compiler libraries. Both are simple, fast libraries operating on memory buffers, so they may
- be used for a variety of front-ends (terminal-based, CGI and so on). The primary front-end is <i>
- mandoc</i>, which formats manuals for display on the terminal.
- </P>
-
- <P>
- The <SPAN CLASS="nm">mdocml</SPAN> utility is a <A CLASS="external" HREF="http://bsd.lv/">BSD.lv
- Project</A> member.
- </P>
- </TD>
- </TR>
- <TR>
- <TD>
- <H1>
- SOURCES
- </H1>
-
- <P>
- Sources correctly build and install on DragonFly BSD, FreeBSD, OpenBSD, NetBSD, and GNU/Linux operating
- systems, tested variously on i386, AMD64, alpha, and others. The most current version is <SPAN
- CLASS="attn">@VERSION@</SPAN>, dated <SPAN class="attn">@VDATE@</SPAN>. A full <A
- HREF="ChangeLog.html">ChangeLog</A> (<A HREF="ChangeLog.txt">txt</A>) is written with each release.
- </P>
-
- <H2>
- Current
- </H2>
-
- <TABLE WIDTH="100%" SUMMARY="Current Sources">
- <COL WIDTH="200">
- <COL>
- <TBODY>
- <TR>
- <TD>Source archive</TD>
- <TD>
- <A HREF="/snapshots/mdocml.tar.gz">/snapshots/mdocml.tar.gz</A>
- (<A HREF="/snapshots/mdocml.md5">md5</A>)
- </TD>
- </TR>
- <TR>
- <TD>Online source</TD>
- <TD>
- <A CLASS="external" HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/?cvsroot=mdocml">cvsweb</A>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-
- <H2>
- Downstream
- </H2>
-
- <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
- <COL WIDTH="200">
- <COL>
- <TBODY>
- <TR>
- <TD>DragonFly BSD</TD>
- <TD>
- <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.bin/mandoc"
- CLASS="external">usr.bin/mandoc</A>
- </TD>
- </TR>
- <TR>
- <TD>FreeBSD</TD>
- <TD>
- <A HREF="http://www.freebsd.org/cgi/cvsweb.cgi/ports/textproc/mdocml/"
- CLASS="external">ports/textproc/mdocml</A>
- </TD>
- </TR>
- <TR>
- <TD>NetBSD</TD>
- <TD>
- <A HREF="http://cvsweb.netbsd.org/bsdweb.cgi/src/external/bsd/mdocml/"
- CLASS="external">src/external/bsd/mdocml</A>
- </TD>
- </TR>
- <TR>
- <TD>OpenBSD</TD>
- <TD>
- <A HREF="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mandoc/"
- CLASS="external">src/usr.bin/mandoc</A>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-
- <H2>
- Historical
- </H2>
-
- <TABLE WIDTH="100%" SUMMARY="Archived Sources">
- <COL WIDTH="200">
- <COL>
- <TBODY>
- <TR>
- <TD>Source archive</TD>
- <TD>
- <A HREF="/snapshots/">/snapshots/</A>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD>
- <H1>
- DOCUMENTATION
- </H1>
-
- <P>
- These manuals are generated automatically and refer to the current snapshot.
- </P>
-
- <TABLE WIDTH="100%" SUMMARY="Documentation">
- <COL WIDTH="200">
- <COL>
- <TBODY>
- <TR>
- <TD><A HREF="mandoc.1.html">mandoc(1)</A> (<A HREF="mandoc.1.txt">text</A>)</TD>
- <TD>format and display UNIX manuals</TD>
- </TR>
- <TR>
- <TD><A HREF="mandoc_char.7.html">mandoc_char(7)</A> (<A HREF="mandoc_char.7.txt">text</A>)</TD>
- <TD>mandoc special characters</TD>
- </TR>
- <TR>
- <TD><A HREF="mdoc.7.html">mdoc(7)</A> (<A HREF="mdoc.7.txt">text</A>)</TD>
- <TD>mdoc language reference</TD>
- </TR>
- <TR>
- <TD><A HREF="man.7.html">man(7)</A> (<A HREF="man.7.txt">text</A>)</TD>
- <TD>man language reference</TD>
- </TR>
- <TR>
- <TD><A HREF="manuals.7.html">manuals(7)</A> (<A HREF="manuals.7.txt">text</A>)</TD>
- <TD>a guide to writing UNIX manuals</TD>
- </TR>
- <TR>
- <TD><A HREF="mdoc.3.html">mdoc(3)</A> (<A HREF="mdoc.3.txt">text</A>)</TD>
- <TD>mdoc macro compiler library</TD>
- </TR>
- <TR>
- <TD><A HREF="man.3.html">man(3)</A> (<A HREF="man.3.txt">text</A>)</TD>
- <TD>man macro compiler library</TD>
- </TR>
- <TR>
- <TD><A HREF="roff.7.html">roff(7)</A> (<A HREF="roff.7.txt">text</A>)</TD>
- <TD>roff language reference</TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD>
- <H1>
- CONTACT
- </H1>
-
- <P>
- For all issues related to <SPAN CLASS="nm">mdocml</SPAN>, contact Kristaps Dzonsons, kris<A
- CLASS="external"
- HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&c=Q2DBUt401ePlSeupJFrq_Q=="
- TITLE="Reveal this e-mail address">...</A>@bsd.lv.
- </P>
-
- <P>
- You may also subscribe to several mailing lists (these require subscription, which is moderated). An
- archive is not yet available.
- </P>
-
- <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
- <COL WIDTH="200">
- <COL>
- <TBODY>
- <TR>
- <TD>
- disc<A CLASS="external" TITLE="Reveal this e-mail address"
- HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</a>@mdocml.bsd.lv
- </TD>
- <TD>high-level discussions and version announcements</TD>
- </TR>
- <TR>
- <TD>
- tec<A CLASS="external" TITLE="Reveal this e-mail address"
- HREF="http://www.google.com/recaptcha/mailhide/d?k=014mgcCKFE_qqo9NLETCAiEA==&c=-y6beh3b_SMDe6Iauc3PW-c1wlVbRqYJdj1RETN9WMs=">...</a>@mdocml.bsd.lv
- </TD>
- <TD>low-level discussions</TD>
- </TR>
- <TR>
- <TD>
- sou<A CLASS="external" TITLE="Reveal this e-mail address"
- HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</a>@mdocml.bsd.lv
- </TD>
- <TD>source commit messages</TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD>
- <H1>
- NEWS
- </H1>
-
- <TABLE WIDTH="100%" CELLPADDING="2">
- <COL CLASS="date">
- <TBODY>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">xx-05-2010</SPAN></TD>
- <TD VALIGN="top">
- Day 1 of Rostock hackathon: proper handling of quotations in tab-separated
- column lists, finished patching of SYNOPSIS breaking (1.9.25), fixed pre-comment
- white-space stripping, added end-of-sentence spacing to black partial-implicit
- macros, relaxed column warnings, relaxed acceptence of bad standards arguments,
- significant documentation of lists in <A HREF="mdoc.7.html">mdoc(7)</A>.
- Version: <SPAN CLASS="rev">1.9.26</SPAN>.
- <TD VALIGN="top">
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">13-05-2010</SPAN></TD>
- <TD VALIGN="top">
- Fixed handling of <Q>\*(Ba</Q> escape. Backed out <SPAN
- CLASS="flag">-fno-ign-chars</SPAN> (pointless complexity). Fixed erroneous
- breaking of literal lines. Fixed SYNOPSIS breaking lines before non-initial
- macros. Changed default section ordering. Most importantly, the framework for
- end-of-sentence double-spacing is in place, now implemented for the
- <Q>end-of-sentence, end-of-line</Q> rule. This is a stable roll-back point
- before the mandoc hackathon in Rostock!
- Version: <SPAN CLASS="rev">1.9.25</SPAN>.
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">09-05-2010</SPAN></TD>
- <TD VALIGN="top">
- Rolled back break-at-hyphen. <SPAN CLASS="flag">-DUGLY</SPAN> is now the
- default (no feature splits!). Free-form text is not de-chunked any more: lines
- are passed whole-sale into the front-end, including whitespace. Added mailing
- lists. Lastly, <SPAN CLASS="nm">mdocml</SPAN> is the focus of two <A
- CLASS="external" HREF="http://socghop.appspot.com/">Google Summer of Code</A>
- projects this year: <Q><A CLASS="external"
- HREF="http://netbsd-soc.sourceforge.net/projects/mandoc_ps/">mandoc -Tps</A></Q>
- (NetBSD) and <Q><A CLASS="external"
- HREF="http://wiki.freebsd.org/SummerOfCode2010Projects">BSD-licensed
- Text-Processing Tools</A></Q> (FreeBSD).
- Version: <SPAN CLASS="rev">1.9.24</SPAN>.
- </TD>
- </TR>
-
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">07-04-2010</SPAN></TD>
- <TD VALIGN="top">
- <SPAN CLASS="nm">mdocml</SPAN> has been linked to the <A CLASS="external"
- HREF="http://www.openbsd.org/faq/current.html#20100403">OpenBSD build</a>. This
- version incorporates many small changes, mostly from patches by OpenBSD,
- allowing crufty manuals to slip by with warnings instead of erroring-out. Some
- subtle semantic issues, such as punctuation scope, have also been fixed.
- Lastly, some issues with <SPAN CLASS="flag">-Thtml</SPAN> have been fixed, which
- prompted an update to the <A HREF="mandoc.1.html">online</A> <A
- HREF="mandoc_char.7.html">manual</A> <A HREF="man.7.html">pages</A> style
- layout. Version: <SPAN CLASS="rev">1.9.23</SPAN>.
- </TD>
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">31-03-2010</SPAN></TD>
- <TD VALIGN="top">
- Version <SPAN CLASS="rev">1.9.22</SPAN>: adjusted merge of the significant work
- by Ingo Schwarze in getting <Q>Xo</Q> blocks (block full implicit, e.g.,
- <Q>It</Q> for non-columnar lists) to work properly. This isn't enabled by
- default: you must specify <SPAN CLASS="flag">-DUGLY</SPAN> as a compiler flag
- (see the Makefile for details).
- </TD>
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">30-03-2010</SPAN></TD>
- <TD VALIGN="top">
- Version <SPAN CLASS="rev">1.9.20</SPAN>: more efforts to get roff instructions
- in -man documents under control. Note that roff instructions embedded in
- line-scoped, next-line macros (e.g. <Q>B</Q>) are not supported. Leading
- punctuation for -mdoc macros, such as <Q>Fl ( ( a</Q>, are now correctly
- handled.
- </TD>
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">27-03-2010</SPAN></TD>
- <TD VALIGN="top">
- Version <SPAN CLASS="rev">1.9.18</SPAN>: many fixes (largely pertaining to
- scope) and improvements (e.g., handling of apostrophe-control macros, which
- fixes the strange <Q>BR</Q> seen in some macro output) to handling roff
- instructions in -man documents.
- </TD>
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">25-03-2010</SPAN></TD>
- <TD VALIGN="top">
- Version <SPAN CLASS="rev">1.9.17</SPAN> highlights: accept <A
- HREF="http://perldoc.perl.org/" CLASS="external">perlpod</A> standard preamble.
- Also accept (and discard) <Q>de</Q>, <Q>dei</Q>, <Q>am</Q>, <Q>ami</Q>, and
- <Q>ig</Q> roff macro blocks.
- </TD>
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">22-03-2010</SPAN></TD>
- <TD VALIGN="top">
- Version <SPAN CLASS="rev">1.9.16</SPAN> highlights: inspired by patches and bug
- reports by Ingo Schwarze, allowed <SPAN CLASS="flag">-man</SPAN> to accept
- non-printing elements to be nested within next-line scopes, such as <Q>br</Q>
- within <Q>B</Q> or <Q>TH</Q>, which is valid roff. Longsoon architecture also
- noted and Makefile cleaned up.
- </TD>
- </TR>
- <TR>
- <TD VALIGN="top"><SPAN CLASS="date">18-02-2010</SPAN></TD>
- <TD VALIGN="top">
- Moved to our new <A HREF="http://bsd.lv" CLASS="external">BSD.lv</A> home.
- Version <SPAN CLASS="rev">1.9.15</SPAN> highlights: XHTML is now an acceptable
- output mode for <A HREF="mandoc.1.html">mandoc(1)</A>; <Q>Xr</Q> made more
- compatible with groff; <Q>Vt</Q> fixed when invoked in SYNOPSIS; <Q>\\</Q>
- escape removed; end-of-line white-space detected for all lines; subtle bug
- fixed in list display for some modes; compatibility layer checked in for
- compilation in diverse UNIX systems; and column lengths handled correctly.
- </TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD>
- <DIV CLASS="foot">
- Copyright © 2008–2010 Kristaps Dzonsons, $Date: 2010/05/25 12:44:53 $
- </DIV>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
+ <TABLE WIDTH="100%" SUMMARY="Documentation">
+ <COL WIDTH="175">
+ <COL>
+ <TBODY>
+ <TR>
+ <TD VALIGN="top"><A HREF="apropos.1.html">apropos(1)</A></TD>
+ <TD VALIGN="top">
+ search the manual page database
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="demandoc.1.html">demandoc(1)</A></TD>
+ <TD VALIGN="top">
+ emit only text of UNIX manuals
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
+ <TD VALIGN="top">
+ format and display UNIX manuals
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="preconv.1.html">preconv(1)</A></TD>
+ <TD VALIGN="top">
+ recode multibyte UNIX manuals
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="mandoc.3.html">mandoc(3)</A></TD>
+ <TD VALIGN="top">
+ mandoc macro compiler library
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
+ <TD VALIGN="top">
+ man language reference
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="man.cgi.7.html">man.cgi(7)</A></TD>
+ <TD VALIGN="top">
+ cgi for manpage query and display
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="eqn.7.html">eqn(7)</A></TD>
+ <TD VALIGN="top">
+ eqn-mandoc language reference
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
+ <TD VALIGN="top">
+ mandoc special characters
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
+ <TD VALIGN="top">
+ mdoc language reference
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
+ <TD VALIGN="top">
+ roff-mandoc language reference
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="tbl.7.html">tbl(7)</A></TD>
+ <TD VALIGN="top">
+ tbl-mandoc language reference
+ </TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top"><A HREF="mandocdb.8.html">mandocdb(8)</A></TD>
+ <TD VALIGN="top">
+ index UNIX manuals
+ </TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ <H1>
+ <A NAME="contact">Contact</A>
+ </H1>
+ <P>
+ Use the mailing lists for bug-reports, patches, questions, etc. Please check the
+ <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/TODO?cvsroot=mdocml">TODO</A> for known issues
+ before posting. All lists are subscription-only: send a blank e-mail to the listed address to subscribe. Beyond that,
+ contact Kristaps at <A HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&c=Q2DBUt401ePlSeupJFrq_Q==" TITLE="Reveal
+ this e-mail address">kris...</A>@bsd.lv. Archives are available at <A HREF="http://gmane.org/" CLASS="external">Gmane</A>.
+ </P>
+ <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
+ <COL WIDTH="175">
+ <COL>
+ <TBODY>
+ <TR>
+ <TD>
+ disc<A CLASS="external" TITLE="Reveal this e-mail address"
+ HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
+ </TD>
+ <TD>
+ bug-reports, general questions, and announcements
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ tec<A CLASS="external" TITLE="Reveal this e-mail address"
+ HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
+ </TD>
+ <TD>
+ patches and system discussions
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ sou<A CLASS="external" TITLE="Reveal this e-mail address"
+ HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
+ </TD>
+ <TD>
+ source commit messages
+ </TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ <H1>
+ <A NAME="news">News</A>
+ </H1>
+ <P CLASS="news">
+ xx-xx-2012: version 1.12.4
+ </P>
+ <P>
+ <I>Ingo, can you summarise your changes here?</I>
+ </P>
+ <P>
+ The <A HREF="mandocdb.8.html">mandocdb</A> tools (<A HREF="mandocdb.8.html">mandocdb</A>, <A
+ HREF="apropos.1.html">apropos</A> (absorbing whatis), and <A HREF="man.cgi.7.html">man.cgi</A>) have been re-written to
+ use <A CLASS="external" HREF="http://www.sqlite.org">sqlite3</A> as a database.
+ </P>
+ <P>
+ See <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/index.sgml?cvsroot=mdocml">cvsweb</A> for
+ historical notes.
+ </P>
+ <P CLASS="foot">
+ <SMALL>
+ Copyright © 2008–2011
+ <A CLASS="external" HREF="http://kristaps.bsd.lv">Kristaps Dzonsons</A>,
+ $Date: 2012/06/09 14:19:55 $
+ </SMALL>
+ </P>