Annotation of mandoc/index.sgml, Revision 1.154.2.4
1.1 kristaps 1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
1.40 kristaps 2: <HTML>
3: <HEAD>
4: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
5: <LINK REL="stylesheet" HREF="index.css" TYPE="text/css" MEDIA="all">
1.149 kristaps 6: <TITLE>mdocml | UNIX manpage compiler</TITLE>
1.40 kristaps 7: </HEAD>
8: <BODY>
1.112 kristaps 9: <P CLASS="head">
1.149 kristaps 10: <B>mdocml</B> – UNIX manpage compiler, current version @VERSION@ (@VDATE@)
1.136 kristaps 11: </P>
12: <P CLASS="subhead">
13: Sources: <A HREF="/snapshots/mdocml.tar.gz">current</A>,
14: <A HREF="/cgi-bin/cvsweb/?cvsroot=mdocml">cvsweb</A>
15: (<A HREF="/snapshots/">archives</A>)
1.112 kristaps 16: </P>
17: <H1>
1.118 kristaps 18: <A NAME="description">Description</A>
1.112 kristaps 19: </H1>
20: <P>
21: <SPAN CLASS="nm">mdocml</SPAN> is a suite of tools compiling <I><A HREF="mdoc.7.html">mdoc</A></I>, the roff macro
22: package of choice for BSD manual pages, and <I><A HREF="man.7.html">man</A></I>, the predominant historical package for
23: UNIX manuals. The mission of <SPAN CLASS="nm">mdocml</SPAN> is to deprecate <A
24: HREF="http://www.gnu.org/software/groff/" CLASS="external">groff</A>, the GNU troff implementation, for displaying <I>mdoc</I>
25: pages whilst providing token support for <I>man</I>.
26: </P>
27: <P>
1.154.2.4! schwarze 28: Why? groff amounts to over 5 MB of source code, most of which is C++ and GPL version 3. It runs slowly, produces
1.112 kristaps 29: uncertain output, and varies in operation from system to system. mdocml strives to fix this (respectively small, C, <A
30: CLASS="external" HREF="http://www.isc.org/software/license">ISC</A>-licensed, fast and regular).
31: </P>
32: <P>
33: <SPAN CLASS="nm">mdocml</SPAN> consists of the <A HREF="mandoc.3.html">libmandoc</A> validating compiler and <A
1.121 kristaps 34: HREF="mandoc.1.html">mandoc</A>, which interfaces with the compiler library to format output for UNIX terminals (with
35: support for wide-character locales), XHTML, HTML, PostScript, and PDF.
1.138 kristaps 36: It also includes <A HREF="preconv.1.html">preconv</A>, for recoding multibyte manuals;
37: <A HREF="demandoc.1.html">demandoc</A>, for emitting only text parts of manuals;
1.144 kristaps 38: <A HREF="mandocdb.8.html">mandocdb</A>, for indexing manuals; and
1.150 kristaps 39: <A HREF="apropos.1.html">apropos</A>, <A HREF="whatis.1.html">whatis</A>, and
40: <A HREF="man.cgi.7.html">man.cgi</A> (via <A HREF="catman.8.html">catman</A>) for semantic search of manual content.
1.121 kristaps 41: It is a <A CLASS="external" HREF="http://bsd.lv/">BSD.lv</A> project.
1.112 kristaps 42: </P>
43: <P>
44: <I>Disambiguation</I>: <SPAN CLASS="nm">mdocml</SPAN> is often referred to by its installed binary, <Q>mandoc</Q>.
45: </P>
1.137 kristaps 46: <H2>
1.118 kristaps 47: <A NAME="sources">Sources</A>
1.137 kristaps 48: </H2>
1.112 kristaps 49: <P>
1.145 kristaps 50: <SPAN CLASS="nm">mdocml</SPAN> is in plain-old ANSI C and should build and run on any modern system; however, you'll
51: need <A HREF="http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html">libdb</A> to build <A
1.150 kristaps 52: HREF="apropos.1.html">apropos</A>, <A HREF="whatis.1.html">whatis</A>, <A HREF="man.cgi.7.html">man.cgi</A>, <A
53: HREF="catman.8.html">catman</A>, and <A HREF="mandocdb.8.html">mandocdb</A> (this is installed by default on BSD UNIX
54: systems — see the <I>Makefile</I> if you're running Linux). To build and install into <I>/usr/local/</I>, just
55: run <CODE>make install</CODE>. Be careful: the <B>preconv</B>, <B>apropos</B>, and <B>whatis</B> binary names are
56: usually taken by existing utilities.
1.132 kristaps 57: </P>
1.137 kristaps 58: <H2>
1.112 kristaps 59: Downstream
1.137 kristaps 60: </H2>
1.135 kristaps 61: <P>
62: Several systems come bundled with <SPAN CLASS="nm">mdocml</SPAN> utilities.
63: If your system does not appear below, the maintainers have not contacted me and it should not be considered
64: <Q>official</Q>.
65: Please <A HREF="#contact">contact us</A> if you plan on maintaining a downstream version!
66: </P>
1.112 kristaps 67: <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
1.136 kristaps 68: <COL WIDTH="175">
1.112 kristaps 69: <COL>
70: <TBODY>
71: <TR>
72: <TD>DragonFly BSD</TD>
73: <TD>
1.154.2.4! schwarze 74: <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/contrib/mdocml" CLASS="external">contrib/mdocml</A> (1.12.1 sources)
! 75: <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/lib/libmandoc" CLASS="external">lib/libmandoc</A>
! 76: <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.bin/mandoc" CLASS="external">usr.bin/mandoc</A> (build system)
1.112 kristaps 77: </TD>
78: </TR>
79: <TR>
80: <TD>FreeBSD</TD>
81: <TD>
1.154.2.4! schwarze 82: <A HREF="http://www.freebsd.org/cgi/cvsweb.cgi/ports/textproc/mdocml/" CLASS="external">ports/textproc/mdocml</A> (1.12.1 port)
1.112 kristaps 83: </TD>
84: </TR>
85: <TR>
86: <TD>NetBSD</TD>
87: <TD>
1.154.2.4! schwarze 88: <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)
1.112 kristaps 89: </TD>
90: </TR>
91: <TR>
92: <TD>OpenBSD</TD>
93: <TD>
1.154.2.4! schwarze 94: <A HREF="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mandoc/" CLASS="external">src/usr.bin/mandoc</A> (1.12.2 sources and build system)
1.112 kristaps 95: </TD>
96: </TR>
1.148 kristaps 97: <TR>
98: <TD>pkgsrc</TD>
99: <TD>
1.154.2.4! schwarze 100: <A HREF="http://pkgsrc.se/textproc/mdocml" CLASS="external">textproc/mdocml</A> (1.12.0 port)
1.148 kristaps 101: </TD>
102: </TR>
1.153 kristaps 103: <TR>
104: <TD>Minix3</TD>
105: <TD>
1.154.2.4! schwarze 106: <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)
1.153 kristaps 107: </TD>
108: </TR>
1.112 kristaps 109: </TBODY>
110: </TABLE>
111: <H1>
1.118 kristaps 112: <A NAME="documentation">Documentation</A>
1.112 kristaps 113: </H1>
114: <P>
1.135 kristaps 115: These manuals are generated automatically and refer to the current release.
116: They are the authoritative documentation for the <SPAN CLASS="nm">mdocml</SPAN> system.
1.112 kristaps 117: </P>
118:
119: <TABLE WIDTH="100%" SUMMARY="Documentation">
1.136 kristaps 120: <COL WIDTH="175">
1.112 kristaps 121: <COL>
122: <TBODY>
123: <TR>
1.144 kristaps 124: <TD VALIGN="top"><A HREF="apropos.1.html">apropos(1)</A></TD>
1.112 kristaps 125: <TD VALIGN="top">
1.144 kristaps 126: search the manual page database
1.112 kristaps 127: </TD>
128: </TR>
129: <TR>
1.138 kristaps 130: <TD VALIGN="top"><A HREF="demandoc.1.html">demandoc(1)</A></TD>
1.114 kristaps 131: <TD VALIGN="top">
1.138 kristaps 132: emit only text of UNIX manuals
1.114 kristaps 133: </TD>
134: </TR>
135: <TR>
1.144 kristaps 136: <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
137: <TD VALIGN="top">
138: format and display UNIX manuals
139: </TD>
140: </TR>
141: <TR>
1.120 kristaps 142: <TD VALIGN="top"><A HREF="preconv.1.html">preconv(1)</A></TD>
143: <TD VALIGN="top">
144: recode multibyte UNIX manuals
145: </TD>
146: </TR>
147: <TR>
1.149 kristaps 148: <TD VALIGN="top"><A HREF="whatis.1.html">whatis(1)</A></TD>
149: <TD VALIGN="top">
150: search the manual page database
151: </TD>
152: </TR>
153: <TR>
1.112 kristaps 154: <TD VALIGN="top"><A HREF="mandoc.3.html">mandoc(3)</A></TD>
155: <TD VALIGN="top">
156: mandoc macro compiler library
157: </TD>
158: </TR>
159: <TR>
1.154.2.2 schwarze 160: <TD VALIGN="top"><A HREF="tbl.3.html">tbl(3)</A></TD>
161: <TD VALIGN="top">
162: roff table parser library for mandoc
163: </TD>
164: </TR>
165: <TR>
1.154.2.4! schwarze 166: <TD VALIGN="top"><A HREF="eqn.7.html">eqn(7)</A></TD>
1.112 kristaps 167: <TD VALIGN="top">
1.154.2.4! schwarze 168: eqn-mandoc language reference
1.112 kristaps 169: </TD>
170: </TR>
171: <TR>
1.154.2.4! schwarze 172: <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
1.150 kristaps 173: <TD VALIGN="top">
1.154.2.4! schwarze 174: man language reference
1.150 kristaps 175: </TD>
176: </TR>
177: <TR>
1.154.2.4! schwarze 178: <TD VALIGN="top"><A HREF="man.cgi.7.html">man.cgi(7)</A></TD>
1.112 kristaps 179: <TD VALIGN="top">
1.154.2.4! schwarze 180: cgi for manpage query and display
1.112 kristaps 181: </TD>
182: </TR>
183: <TR>
184: <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
185: <TD VALIGN="top">
186: mandoc special characters
187: </TD>
188: </TR>
189: <TR>
190: <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
191: <TD VALIGN="top">
192: mdoc language reference
193: </TD>
194: </TR>
195: <TR>
196: <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
197: <TD VALIGN="top">
198: roff-mandoc language reference
199: </TD>
200: </TR>
201: <TR>
202: <TD VALIGN="top"><A HREF="tbl.7.html">tbl(7)</A></TD>
203: <TD VALIGN="top">
204: tbl-mandoc language reference
205: </TD>
206: </TR>
1.138 kristaps 207: <TR>
1.150 kristaps 208: <TD VALIGN="top"><A HREF="catman.8.html">catman(8)</A></TD>
209: <TD VALIGN="top">
210: update a man.cgi manpage cache
211: </TD>
212: </TR>
213: <TR>
1.138 kristaps 214: <TD VALIGN="top"><A HREF="mandocdb.8.html">mandocdb(8)</A></TD>
215: <TD VALIGN="top">
216: index UNIX manuals
217: </TD>
218: </TR>
1.112 kristaps 219: </TBODY>
220: </TABLE>
221: <H1>
1.118 kristaps 222: <A NAME="contact">Contact</A>
1.112 kristaps 223: </H1>
224: <P>
1.139 kristaps 225: Use the mailing lists for bug-reports, patches, questions, etc. Please check the
1.112 kristaps 226: <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/TODO?cvsroot=mdocml">TODO</A> for known issues
1.139 kristaps 227: before posting. All lists are subscription-only: send a blank e-mail to the listed address to subscribe. Beyond that,
228: contact Kristaps at <A HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&c=Q2DBUt401ePlSeupJFrq_Q==" TITLE="Reveal
1.149 kristaps 229: this e-mail address">kris...</A>@bsd.lv. Archives are available at <A HREF="http://gmane.org/" CLASS="external">Gmane</A>.
1.112 kristaps 230: </P>
231: <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
1.136 kristaps 232: <COL WIDTH="175">
1.112 kristaps 233: <COL>
234: <TBODY>
235: <TR>
236: <TD>
237: disc<A CLASS="external" TITLE="Reveal this e-mail address"
238: HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
239: </TD>
240: <TD>
241: bug-reports, general questions, and announcements
242: </TD>
243: </TR>
244: <TR>
245: <TD>
246: tec<A CLASS="external" TITLE="Reveal this e-mail address"
247: HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
248: </TD>
249: <TD>
250: patches and system discussions
251: </TD>
252: </TR>
253: <TR>
254: <TD>
255: sou<A CLASS="external" TITLE="Reveal this e-mail address"
256: HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
257: </TD>
258: <TD>
259: source commit messages
260: </TD>
261: </TR>
262: </TBODY>
263: </TABLE>
264: <H1>
1.118 kristaps 265: <A NAME="news">News</A>
1.112 kristaps 266: </H1>
1.124 kristaps 267: <P CLASS="news">
1.154.2.4! schwarze 268: 23-09-2013: version 1.12.2
1.154.2.3 schwarze 269: </P>
270: <P>
1.154.2.4! schwarze 271: The <A HREF="mdoc.7.html">mdoc(7)</A> to <A HREF="man.7.html">man(7)</A> converter,
! 272: to be called as <CODE>mandoc -Tman</CODE>, is now fully functional.
1.154.2.3 schwarze 273: </P>
274: <P>
275: The <A HREF="mandoc.1.html">mandoc(1)</A> utility now supports the <CODE>-Ios</CODE> (default operating system)
276: input option, and the <CODE>-Tutf8</CODE> output mode now actually works.
277: </P>
278: <P>
1.154.2.4! schwarze 279: The <A HREF="mandocdb.8.html">mandocdb(8)</A> utility no longer truncates existing databases when starting to build new ones,
! 280: but only replaces them when the build actually succeeds.
1.154.2.3 schwarze 281: </P>
282: <P>
283: The <A HREF="man.7.html">man(7)</A> parser now supports the <EM>PD</EM> macro (paragraph distance),
284: and (for GNU man-ext compatibility only) <EM>EX</EM> (example block) and <EM>EE</EM> (example end).
285: Plus several bugfixes regarding indentation, line breaks, and vertical spacing,
286: and regarding <EM>RS</EM> following <EM>TP</EM>.
287: </P>
288: <P>
289: The <A HREF="roff.7.html">roff(7)</A> parser now supports the <EM>\f(BI</EM> (bold+italic) font escape,
290: the <EM>\z</EM> (zero cursor advance) escape and the <EM>cc</EM> (change control character)
291: and <EM>it</EM> (input line trap) requests.
1.154.2.4! schwarze 292: Plus bugfixes regarding the <EM>\t</EM> (tab) escape, nested escape sequences, and conditional requests.
1.154.2.3 schwarze 293: </P>
294: <P>
1.154.2.4! schwarze 295: In <A HREF="mdoc.7.html">mdoc(7)</A>, several bugs were fixed related to UTF-8 output of quoting enclosures,
1.154.2.3 schwarze 296: delimiter handling, list indentation and horizontal and vertical spacing,
1.154.2.4! schwarze 297: formatting of the <EM>Lk</EM>, <EM>%U</EM>, and <EM>%C</EM> macros,
1.154.2.3 schwarze 298: plus some bugfixes related to the handling of syntax errors like badly nested font blocks,
299: stray <EM>Ta</EM> macros outside column lists, unterminated <EM>It Xo</EM> blocks,
300: and non-text children of <EM>Nm</EM> blocks.
301: </P>
302: <P>
1.154.2.4! schwarze 303: In <A HREF="tbl.7.html">tbl(7)</A>, the width of horizontal spans and the vertical spacing around tables was corrected,
! 304: 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.
1.154.2.3 schwarze 305: </P>
306: <P>
307: For mandoc developers, we now provide a <A HREF="tbl.3.html">tbl(3)</A> library manual and <CODE>gmdiff</CODE>,
1.154.2.4! schwarze 308: a very small, very simplistic groff-versus-mandoc output comparison tool.
1.154.2.3 schwarze 309: </P>
310: <P CLASS="news">
1.152 kristaps 311: 23-03-2011: version 1.12.1
1.149 kristaps 312: </P>
313: <P>
314: Significant work on <A HREF="apropos.1.html">apropos</A> and <A HREF="mandocdb.8.html">mandocdb</A>. These tools are
1.152 kristaps 315: now much more robust.
316: A <A HREF="whatis.1.html">whatis</A> implementation is now handled as an <A HREF="apropos.1.html">apropos</A> mode.
317: These tools are also able to minimally handle pre-formatted pages, that is, those already formatted by another utility
318: such as GNU troff.
1.150 kristaps 319: </P>
320: <P>
321: The <A HREF="man.cgi.7.html">man.cgi</A> script is also now available for wider testing. It interfaces with <A
322: HREF="mandocdb.8.html">mandocdb</A> manuals cached by <A HREF="catman.8.html">catman</A>. HTML output is generated
323: on-the-fly by <A HREF="mandoc.3.html">libmandoc</A> or internal methods to convert pre-formatted pages.
1.149 kristaps 324: </P>
1.151 kristaps 325: <P>
1.152 kristaps 326: The mailing list archive for the discuss and tech lists are being hosted by <A CLASS="external"
1.151 kristaps 327: HREF="http://www.gmane.org">Gmane</A> at <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.user"
328: CLASS="external">gmane.comp.tools.mdocml.user</A> and <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.devel"
329: CLASS="external">gmane.comp.tools.mdocml.devel</A>, respectively.
330: </P>
1.142 kristaps 331: <P>
1.152 kristaps 332: Lastly, I'm no longer providing binaries, as nobody has asked for them.
1.141 schwarze 333: </P>
1.112 kristaps 334: <P>
335: See <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/index.sgml?cvsroot=mdocml">cvsweb</A> for
336: historical notes.
337: </P>
338: <P CLASS="foot">
1.118 kristaps 339: <SMALL>
340: Copyright © 2008–2011
341: <A CLASS="external" HREF="http://kristaps.bsd.lv">Kristaps Dzonsons</A>,
1.154.2.4! schwarze 342: © 2013 Ingo Schwarze,
! 343: $Date: 2013/09/18 19:07:37 $
1.118 kristaps 344: </SMALL>
1.112 kristaps 345: </P>
1.40 kristaps 346: </BODY>
347: </HTML>
CVSweb