Import mdocml-1.12.3
[dragonfly.git] / contrib / mdocml / index.sgml
CommitLineData
80387638
SW
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<HTML>
3 <HEAD>
4 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
80387638 5 <LINK REL="stylesheet" HREF="index.css" TYPE="text/css" MEDIA="all">
36342e81 6 <TITLE>mdocml | UNIX manpage compiler</TITLE>
80387638
SW
7 </HEAD>
8 <BODY>
a4c7eb57 9 <P CLASS="head">
7888c61d 10 <A HREF="http://www.openbsd.org/"><IMG SRC="puffy.gif" ALT="Puffy" WIDTH="100" HEIGHT="91" STYLE="float: right"></A>
36342e81
SW
11 <B>mdocml</B> &#8211; UNIX manpage compiler, current version @VERSION@ (@VDATE@)
12 </P>
13 <P CLASS="subhead">
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>)
a4c7eb57
SW
17 </P>
18 <H1>
19 <A NAME="description">Description</A>
20 </H1>
21 <P>
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
7888c61d
FF
24 UNIX manuals.
25 It is small, ISO C, <A CLASS="external" HREF="http://www.isc.org/software/license">ISC</A>-licensed, and quite fast.
a4c7eb57
SW
26 </P>
27 <P>
7888c61d
FF
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
a4c7eb57 31 support for wide-character locales), XHTML, HTML, PostScript, and PDF.
36342e81
SW
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.
7888c61d
FF
37 </P>
38 <P>
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.
a4c7eb57
SW
51 </P>
52 <P>
53 <I>Disambiguation</I>: <SPAN CLASS="nm">mdocml</SPAN> is often referred to by its installed binary, <Q>mandoc</Q>.
54 </P>
36342e81 55 <H2>
a4c7eb57 56 <A NAME="sources">Sources</A>
36342e81 57 </H2>
a4c7eb57 58 <P>
7888c61d
FF
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 &mdash; 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.
a4c7eb57 65 </P>
a4c7eb57 66 <H2>
a4c7eb57
SW
67 Downstream
68 </H2>
36342e81
SW
69 <P>
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
7888c61d 72 <Q>official</Q>, so please <A HREF="#contact">contact us</A> if you plan on maintaining a downstream version!
36342e81 73 </P>
a4c7eb57
SW
74 <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
75 <COL WIDTH="175">
76 <COL>
77 <TBODY>
78 <TR>
79 <TD>DragonFly BSD</TD>
80 <TD>
7888c61d 81 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/contrib/mdocml" CLASS="external">contrib/mdocml</A> (1.12.3 sources)
f88b6c16
FF
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)
84 </TD>
85 </TR>
86 <TR>
87 <TD>FreeBSD 10.0, -CURRENT</TD>
88 <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)
a4c7eb57
SW
91 </TD>
92 </TR>
93 <TR>
f88b6c16 94 <TD>FreeBSD 9.x, 8.x</TD>
a4c7eb57 95 <TD>
7888c61d 96 <A HREF="http://svnweb.freebsd.org/ports/head/textproc/mdocml/" CLASS="external">ports/textproc/mdocml</A> (1.12.2 port)
a4c7eb57
SW
97 </TD>
98 </TR>
99 <TR>
100 <TD>NetBSD</TD>
101 <TD>
f88b6c16 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)
a4c7eb57
SW
103 </TD>
104 </TR>
105 <TR>
106 <TD>OpenBSD</TD>
107 <TD>
7888c61d 108 <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)
a4c7eb57
SW
109 </TD>
110 </TR>
a4c7eb57 111 <TR>
36342e81 112 <TD>pkgsrc</TD>
a4c7eb57 113 <TD>
7888c61d 114 <A HREF="http://pkgsrc.se/textproc/mdocml" CLASS="external">textproc/mdocml</A> (1.12.2 port)
36342e81
SW
115 </TD>
116 </TR>
117 <TR>
118 <TD>Minix3</TD>
119 <TD>
f88b6c16
FF
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)
121 </TD>
122 </TR>
123 <TR>
124 <TD>Alpine Linux</TD>
125 <TD>
7888c61d 126 <A HREF="http://git.alpinelinux.org/cgit/aports/tree/main/mdocml" CLASS="external">aports/main/mdocml</A> (1.12.2 port)
a4c7eb57
SW
127 </TD>
128 </TR>
129 </TBODY>
130 </TABLE>
a4c7eb57
SW
131 <H1>
132 <A NAME="documentation">Documentation</A>
133 </H1>
a4c7eb57 134 <P>
36342e81
SW
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.
a4c7eb57 137 </P>
80387638 138
a4c7eb57
SW
139 <TABLE WIDTH="100%" SUMMARY="Documentation">
140 <COL WIDTH="175">
141 <COL>
142 <TBODY>
143 <TR>
36342e81
SW
144 <TD VALIGN="top"><A HREF="apropos.1.html">apropos(1)</A></TD>
145 <TD VALIGN="top">
146 search the manual page database
36342e81
SW
147 </TD>
148 </TR>
149 <TR>
150 <TD VALIGN="top"><A HREF="demandoc.1.html">demandoc(1)</A></TD>
151 <TD VALIGN="top">
152 emit only text of UNIX manuals
36342e81
SW
153 </TD>
154 </TR>
155 <TR>
a4c7eb57
SW
156 <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
157 <TD VALIGN="top">
158 format and display UNIX manuals
a4c7eb57
SW
159 </TD>
160 </TR>
161 <TR>
162 <TD VALIGN="top"><A HREF="preconv.1.html">preconv(1)</A></TD>
163 <TD VALIGN="top">
164 recode multibyte UNIX manuals
36342e81
SW
165 </TD>
166 </TR>
167 <TR>
168 <TD VALIGN="top"><A HREF="whatis.1.html">whatis(1)</A></TD>
169 <TD VALIGN="top">
170 search the manual page database
a4c7eb57
SW
171 </TD>
172 </TR>
173 <TR>
174 <TD VALIGN="top"><A HREF="mandoc.3.html">mandoc(3)</A></TD>
175 <TD VALIGN="top">
176 mandoc macro compiler library
a4c7eb57
SW
177 </TD>
178 </TR>
179 <TR>
f88b6c16 180 <TD VALIGN="top"><A HREF="tbl.3.html">tbl(3)</A></TD>
a4c7eb57 181 <TD VALIGN="top">
f88b6c16 182 roff table parser library for mandoc
36342e81
SW
183 </TD>
184 </TR>
185 <TR>
f88b6c16 186 <TD VALIGN="top"><A HREF="eqn.7.html">eqn(7)</A></TD>
36342e81 187 <TD VALIGN="top">
f88b6c16 188 eqn-mandoc language reference
a4c7eb57
SW
189 </TD>
190 </TR>
191 <TR>
f88b6c16 192 <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
a4c7eb57 193 <TD VALIGN="top">
f88b6c16
FF
194 man language reference
195 </TD>
196 </TR>
197 <TR>
198 <TD VALIGN="top"><A HREF="man.cgi.7.html">man.cgi(7)</A></TD>
199 <TD VALIGN="top">
200 cgi for manpage query and display
a4c7eb57
SW
201 </TD>
202 </TR>
203 <TR>
204 <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
205 <TD VALIGN="top">
206 mandoc special characters
a4c7eb57
SW
207 </TD>
208 </TR>
209 <TR>
210 <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
211 <TD VALIGN="top">
212 mdoc language reference
a4c7eb57
SW
213 </TD>
214 </TR>
215 <TR>
216 <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
217 <TD VALIGN="top">
218 roff-mandoc language reference
a4c7eb57
SW
219 </TD>
220 </TR>
221 <TR>
222 <TD VALIGN="top"><A HREF="tbl.7.html">tbl(7)</A></TD>
223 <TD VALIGN="top">
224 tbl-mandoc language reference
36342e81
SW
225 </TD>
226 </TR>
227 <TR>
228 <TD VALIGN="top"><A HREF="catman.8.html">catman(8)</A></TD>
229 <TD VALIGN="top">
230 update a man.cgi manpage cache
36342e81
SW
231 </TD>
232 </TR>
233 <TR>
234 <TD VALIGN="top"><A HREF="mandocdb.8.html">mandocdb(8)</A></TD>
235 <TD VALIGN="top">
236 index UNIX manuals
a4c7eb57
SW
237 </TD>
238 </TR>
239 </TBODY>
240 </TABLE>
7888c61d
FF
241 <H2>
242 <A NAME="links">Supplementary Information</A>
243 </H2>
244 <UL>
245 <LI>
246 <A HREF="http://manpages.bsd.lv/">Practical UNIX Manuals</A>: mdoc tutorial by Kristaps Dzonsons
247 </LI>
248 <LI>
249 <A HREF="http://www.openbsd.org/faq/ports/specialtopics.html#Mandoc" CLASS="external">OpenBSD porting guide</A>
250 chapter regarding manual pages
251 </LI>
252 <LI>
253 <A HREF="press.html">Publications and media coverage</A>
254 concerning mdocml and mandoc
255 </LI>
256 <LI>
257 <A HREF="http://manpages.bsd.lv/history.html">History of UNIX Manpages</A>: a comprehensive overview by Kristaps Dzonsons
258 </LI>
259 </UL>
a4c7eb57
SW
260 <H1>
261 <A NAME="contact">Contact</A>
262 </H1>
a4c7eb57 263 <P>
36342e81 264 Use the mailing lists for bug-reports, patches, questions, etc. Please check the
a4c7eb57 265 <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/TODO?cvsroot=mdocml">TODO</A> for known issues
36342e81
SW
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==&amp;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>.
a4c7eb57 269 </P>
a4c7eb57
SW
270 <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
271 <COL WIDTH="175">
272 <COL>
273 <TBODY>
274 <TR>
275 <TD>
276 disc<A CLASS="external" TITLE="Reveal this e-mail address"
277 HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&amp;c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
278 </TD>
279 <TD>
280 bug-reports, general questions, and announcements
a4c7eb57
SW
281 </TD>
282 </TR>
283 <TR>
284 <TD>
285 tec<A CLASS="external" TITLE="Reveal this e-mail address"
286 HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&amp;c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
287 </TD>
288 <TD>
289 patches and system discussions
a4c7eb57
SW
290 </TD>
291 </TR>
292 <TR>
293 <TD>
294 sou<A CLASS="external" TITLE="Reveal this e-mail address"
295 HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&amp;c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
296 </TD>
297 <TD>
298 source commit messages
a4c7eb57
SW
299 </TD>
300 </TR>
301 </TBODY>
302 </TABLE>
a4c7eb57
SW
303 <H1>
304 <A NAME="news">News</A>
305 </H1>
a4c7eb57 306 <P CLASS="news">
7888c61d
FF
307 31-12-2013: version 1.12.3
308 </P>
309 <P>
310 In the <A HREF="mdoc.7.html">mdoc(7)</A> SYNOPSIS, line breaks and hanging indentation
311 now work correctly for .Fo/.Fa/.Fc and .Fn blocks.
312 Thanks to Franco Fichtner for doing part of the work.
313 </P>
314 <P>
315 The <A HREF="mdoc.7.html">mdoc(7)</A> .Bk macro got some addititonal bugfixes.
316 </P>
317 <P>
318 In <A HREF="mdoc.7.html">mdoc(7)</A> macro arguments, double quotes can now be quoted
319 by doubling them, just like in <A HREF="man.7.html">man(7)</A>.
320 Thanks to Tsugutomo ENAMI for the patch.
321 </P>
322 <P>
323 At the end of <A HREF="man.7.html">man(7)</A> macro lines, end-of-sentence spacing
324 now works. Thanks to Franco Fichtner for the patch.
325 </P>
326 <P>
327 For backward compatibility, the <A HREF="man.7.html">man(7)</A> parser now supports the
328 man-ext .UR/.UE (uniform resource identifier) block macros.
329 </P>
330 <P>
331 The <A HREF="man.7.html">man(7)</A> parser now handles closing blocks that are not open
332 more gracefully.
333 </P>
334 <P>
335 The <A HREF="man.7.html">man(7)</A> parser now ignores blank lines right after .SH and .SS.
336 </P>
337 <P>
338 In the <A HREF="man.7.html">man(7)</A> formatter, reset indentation when leaving a block,
339 not just when entering the next one.
340 </P>
341 <P>
342 The <A HREF="roff.7.html">roff(7)</A> .nr request now supports incrementing and decrementing
343 number registers and stops parsing the number right before the first non-digit character.
344 </P>
345 <P>
346 The <A HREF="roff.7.html">roff(7)</A> parser now supports the alternative escape sequence
347 syntax \C'uXXXX' for Unicode characters.
348 </P>
349 <P>
350 The <A HREF="roff.7.html">roff(7)</A> parser now parses and ignores the .fam (font family)
351 and .hw (hyphenation points) requests and the \d and \u escape sequences.
352 </P>
353 <P>
354 The <A HREF="roff.7.html">roff(7)</A> manual got a new ESCAPE SEQUENCE REFERENCE.
355 </P>
356 <P CLASS="news">
357 05-10-2013: version 1.12.2
f88b6c16
FF
358 </P>
359 <P>
360 The <A HREF="mdoc.7.html">mdoc(7)</A> to <A HREF="man.7.html">man(7)</A> converter,
361 to be called as <CODE>mandoc -Tman</CODE>, is now fully functional.
362 </P>
363 <P>
364 The <A HREF="mandoc.1.html">mandoc(1)</A> utility now supports the <CODE>-Ios</CODE> (default operating system)
365 input option, and the <CODE>-Tutf8</CODE> output mode now actually works.
366 </P>
367 <P>
368 The <A HREF="mandocdb.8.html">mandocdb(8)</A> utility no longer truncates existing databases when starting to build new ones,
369 but only replaces them when the build actually succeeds.
370 </P>
371 <P>
372 The <A HREF="man.7.html">man(7)</A> parser now supports the <EM>PD</EM> macro (paragraph distance),
373 and (for GNU man-ext compatibility only) <EM>EX</EM> (example block) and <EM>EE</EM> (example end).
374 Plus several bugfixes regarding indentation, line breaks, and vertical spacing,
375 and regarding <EM>RS</EM> following <EM>TP</EM>.
376 </P>
377 <P>
378 The <A HREF="roff.7.html">roff(7)</A> parser now supports the <EM>\f(BI</EM> (bold+italic) font escape,
379 the <EM>\z</EM> (zero cursor advance) escape and the <EM>cc</EM> (change control character)
380 and <EM>it</EM> (input line trap) requests.
381 Plus bugfixes regarding the <EM>\t</EM> (tab) escape, nested escape sequences, and conditional requests.
382 </P>
383 <P>
384 In <A HREF="mdoc.7.html">mdoc(7)</A>, several bugs were fixed related to UTF-8 output of quoting enclosures,
385 delimiter handling, list indentation and horizontal and vertical spacing,
386 formatting of the <EM>Lk</EM>, <EM>%U</EM>, and <EM>%C</EM> macros,
387 plus some bugfixes related to the handling of syntax errors like badly nested font blocks,
388 stray <EM>Ta</EM> macros outside column lists, unterminated <EM>It Xo</EM> blocks,
389 and non-text children of <EM>Nm</EM> blocks.
390 </P>
391 <P>
392 In <A HREF="tbl.7.html">tbl(7)</A>, the width of horizontal spans and the vertical spacing around tables was corrected,
393 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.
394 </P>
395 <P>
396 For mandoc developers, we now provide a <A HREF="tbl.3.html">tbl(3)</A> library manual and <CODE>gmdiff</CODE>,
397 a very small, very simplistic groff-versus-mandoc output comparison tool.
398 </P>
7888c61d
FF
399 <H2>
400 <A>History</A>
401 </H2>
402 <UL>
403 <LI>
404 <A HREF="NEWS">Release notes</A> going back to release 1.9.15, February 18, 2010.
405 Briefly explaining the most important changes in each release in relatively easy terms.
406 Very many changes are not mentioned here.
407 </LI>
408 <LI>
409 <A HREF="history.html">Development history</A> going back to the beginning of the project, November 22, 2008.
410 One-line entries for important commits, releases, merges, hackathons and talks.
411 Makes it easy to find out who did what, and when, and when it became available where.
412 However, this is still incomplete, mentioning only a small fraction of all commits,
413 and to keep the size down, the individual entries are extremely terse and technical.
414 Feel free to look up more details and longer explanations about individual entries
415 in the ChangeLog or in CVS.
416 </LI>
417 <LI>
418 <A HREF="ChangeLog">CVS ChangeLog</A> going back to the beginning of the project.
419 Very technical information of varying quality, strictly chronological.
420 All commits are mentioned, but some messages neglect to mention some changes.
421 Partly terse, partly detailed and verbose. In any case, the ChangeLog is very long -
422 more than 25,000 lines, more than 700 kB.
423 </LI>
424 <LI>
425 <A HREF="/cgi-bin/cvsweb/?cvsroot=mdocml">CVS</A> web interface, going back to the beginning of the project.
426 Source code, diffs and commit messages for each source file. The real thing.
427 </LI>
428 </UL>
a4c7eb57
SW
429 <P CLASS="foot">
430 <SMALL>
431 Copyright &#169; 2008&#8211;2011
432 <A CLASS="external" HREF="http://kristaps.bsd.lv">Kristaps Dzonsons</A>,
f88b6c16 433 &#169; 2013 Ingo Schwarze,
7888c61d 434 $Date: 2013/12/31 $
a4c7eb57
SW
435 </SMALL>
436 </P>
80387638
SW
437 </BODY>
438</HTML>