]> git.cameronkatri.com Git - mandoc.git/blob - index.sgml
Have horizontal spanner not clobber pre-set width.
[mandoc.git] / index.sgml
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">
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>
8 </HEAD>
9 <BODY>
10 <TABLE CLASS="frame" SUMMARY="[frame]">
11 <COL WIDTH="100%">
12 <TBODY>
13 <TR>
14 <TD>
15 <DIV CLASS="head">
16 <B>mdocml</B> &#8211; mdoc macro compiler
17 </DIV>
18 </TD>
19 </TR>
20 <TR>
21 <TD VALIGN="top">
22 <H1>
23 <A NAME="description">DESCRIPTION</A>
24 </H1>
25
26 <P>
27 <SPAN CLASS="nm">mdocml</SPAN> is a suite of tools compiling <Q>-<A HREF="mdoc.7.html">mdoc</A></Q>, the
28 roff macro package of choice for BSD manual pages, and <Q>-<A HREF="man.7.html">man</A></Q>, the
29 predominant historical package for UNIX manuals. The mission of <SPAN CLASS="nm">mdocml</SPAN> is to
30 deprecate <A HREF="http://www.gnu.org/software/groff/" CLASS="external">groff</A>, the GNU troff
31 implementation, for displaying -mdoc pages whilst providing token support for -man.
32 </P>
33
34 <P>
35 Why? groff amounts to over 5 MB of source code, most of which is C++ and all of which is GPL. It runs
36 slowly, produces uncertain output, and varies in operation from system to system. mdocml strives to fix
37 this (respectively small, C, <A CLASS="external"
38 HREF="http://www.isc.org/software/license">ISC</A>-licensed, fast and regular).
39 </P>
40
41 <P>
42 <SPAN CLASS="nm">mdocml</SPAN> consists of the <A HREF="mdoc.3.html">libmdoc</A>, <A
43 HREF="man.3.html">libman</A>, and <A HREF="roff.3.html">libroff</A> validating compilers; and <A
44 HREF="mandoc.1.html">mandoc</A>, which interfaces with the compiler libraries to format output for UNIX
45 terminals, XHTML, HTML, PostScript, and PDF. <SPAN CLASS="nm">mdocml</SPAN> is a <A CLASS="external"
46 HREF="http://bsd.lv/">BSD.lv</A> project.
47 </P>
48
49 <P>
50 <I>Disambiguation</I>: <SPAN CLASS="nm">mdocml</SPAN> is often referred to by its installed binary,
51 <Q>mandoc</Q>.
52 </P>
53 </TD>
54 </TR>
55 <TR>
56 <TD>
57 <H1>
58 <A NAME="sources">SOURCES</A>
59 </H1>
60
61 <P>
62 <SPAN CLASS="nm">mdocml</SPAN> is architecture- and system-neutral, written in plain-old C. The most
63 current version is <SPAN CLASS="attn">@VERSION@</SPAN>, dated <SPAN class="attn">@VDATE@</SPAN>. A full
64 <A HREF="ChangeLog.html">ChangeLog</A> (<A HREF="ChangeLog.txt">txt</A>) is written with each release.
65 </P>
66
67 <H2>
68 Current
69 </H2>
70
71 <TABLE WIDTH="100%" SUMMARY="Current Sources">
72 <COL WIDTH="175">
73 <COL>
74 <TBODY>
75 <TR>
76 <TD>Source archive</TD>
77 <TD>
78 <A HREF="/snapshots/mdocml.tar.gz">/snapshots/mdocml.tar.gz</A>
79 (<A HREF="/snapshots/mdocml.md5">md5</A>)
80 </TD>
81 </TR>
82 <TR>
83 <TD>Online source</TD>
84 <TD>
85 <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/?cvsroot=mdocml">cvsweb</A>
86 </TD>
87 </TR>
88 </TBODY>
89 </TABLE>
90
91 <H2>
92 Downstream
93 </H2>
94
95 <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
96 <COL WIDTH="175">
97 <COL>
98 <TBODY>
99 <TR>
100 <TD>DragonFly BSD</TD>
101 <TD>
102 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.bin/mandoc"
103 CLASS="external">usr.bin/mandoc</A>
104 </TD>
105 </TR>
106 <TR>
107 <TD>FreeBSD</TD>
108 <TD>
109 <A HREF="http://www.freebsd.org/cgi/cvsweb.cgi/ports/textproc/mdocml/"
110 CLASS="external">ports/textproc/mdocml</A>
111 </TD>
112 </TR>
113 <TR>
114 <TD>NetBSD</TD>
115 <TD>
116 <A HREF="http://cvsweb.netbsd.org/bsdweb.cgi/src/external/bsd/mdocml/"
117 CLASS="external">src/external/bsd/mdocml</A>
118 </TD>
119 </TR>
120 <TR>
121 <TD>OpenBSD</TD>
122 <TD>
123 <A HREF="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mandoc/"
124 CLASS="external">src/usr.bin/mandoc</A>
125 </TD>
126 </TR>
127 </TBODY>
128 </TABLE>
129
130 <H2>
131 Historical
132 </H2>
133
134 <TABLE WIDTH="100%" SUMMARY="Archived Sources">
135 <COL WIDTH="175">
136 <COL>
137 <TBODY>
138 <TR>
139 <TD>Source archive</TD>
140 <TD>
141 <A HREF="/snapshots/">/snapshots/</A>
142 </TD>
143 </TR>
144 </TBODY>
145 </TABLE>
146 </TD>
147 </TR>
148 <TR>
149 <TD>
150 <H1>
151 <A NAME="documentation">DOCUMENTATION</A>
152 </H1>
153
154 <P>
155 These manuals are generated automatically and refer to the current snapshot.
156 </P>
157
158 <TABLE WIDTH="100%" SUMMARY="Documentation">
159 <COL WIDTH="175">
160 <COL>
161 <TBODY>
162 <TR>
163 <TD VALIGN="top"><A HREF="man.3.html">man(3)</A></TD>
164 <TD VALIGN="top">
165 man macro compiler library
166 <SPAN STYLE="font-size: smaller;">
167 (<A HREF="man.3.txt">text</A> |
168 <A HREF="man.3.xhtml">xhtml</A> |
169 <A HREF="man.3.pdf">pdf</A> |
170 <A HREF="man.3.ps">postscript</A>)
171 </SPAN>
172 </TD>
173 </TR>
174 <TR>
175 <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
176 <TD VALIGN="top">
177 man language reference
178 <SPAN STYLE="font-size: smaller;">
179 (<A HREF="man.7.txt">text</A> |
180 <A HREF="man.7.xhtml">xhtml</A> |
181 <A HREF="man.7.pdf">pdf</A> |
182 <A HREF="man.7.ps">postscript</A>)
183 </SPAN>
184 </TD>
185 </TR>
186 <TR>
187 <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
188 <TD VALIGN="top">
189 format and display UNIX manuals
190 <SPAN STYLE="font-size: smaller;">
191 (<A HREF="mandoc.1.txt">text</A> |
192 <A HREF="mandoc.1.xhtml">xhtml</A> |
193 <A HREF="mandoc.1.pdf">pdf</A> |
194 <A HREF="mandoc.1.ps">postscript</A>)
195 </SPAN>
196 </TD>
197 </TR>
198 <TR>
199 <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
200 <TD VALIGN="top">
201 mandoc special characters
202 <SPAN STYLE="font-size: smaller;">
203 (<A HREF="mandoc_char.7.txt">text</A> |
204 <A HREF="mandoc_char.7.xhtml">xhtml</A> |
205 <A HREF="mandoc_char.7.pdf">pdf</A> |
206 <A HREF="mandoc_char.7.ps">postscript</A>)
207 </SPAN>
208 </TD>
209 </TR>
210 <TR>
211 <TD VALIGN="top"><A HREF="mdoc.3.html">mdoc(3)</A></TD>
212 <TD VALIGN="top">
213 mdoc macro compiler library
214 <SPAN STYLE="font-size: smaller;">
215 (<A HREF="mdoc.3.txt">text</A> |
216 <A HREF="mdoc.3.xhtml">xhtml</A> |
217 <A HREF="mdoc.3.pdf">pdf</A> |
218 <A HREF="mdoc.3.ps">postscript</A>)
219 </SPAN>
220 </TD>
221 </TR>
222 <TR>
223 <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
224 <TD VALIGN="top">
225 mdoc language reference
226 <SPAN STYLE="font-size: smaller;">
227 (<A HREF="mdoc.7.txt">text</A> |
228 <A HREF="mdoc.7.xhtml">xhtml</A> |
229 <A HREF="mdoc.7.pdf">pdf</A> |
230 <A HREF="mdoc.7.ps">postscript</A>)
231 </SPAN>
232 </TD>
233 </TR>
234 <TR>
235 <TD VALIGN="top"><A HREF="roff.3.html">roff(3)</A></TD>
236 <TD VALIGN="top">
237 roff macro compiler library
238 <SPAN STYLE="font-size: smaller;">
239 (<A HREF="roff.3.txt">text</A> |
240 <A HREF="roff.3.xhtml">xhtml</A> |
241 <A HREF="roff.3.pdf">pdf</A> |
242 <A HREF="roff.3.ps">postscript</A>)
243 </SPAN>
244 </TD>
245 </TR>
246 <TR>
247 <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
248 <TD VALIGN="top">
249 roff-mandoc language reference
250 <SPAN STYLE="font-size: smaller;">
251 (<A HREF="roff.7.txt">text</A> |
252 <A HREF="roff.7.xhtml">xhtml</A> |
253 <A HREF="roff.7.pdf">pdf</A> |
254 <A HREF="roff.7.ps">postscript</A>)
255 </SPAN>
256 </TD>
257 </TR>
258 </TBODY>
259 </TABLE>
260
261 <P>
262 See <Q><A CLASS="external" HREF="http://manpages.bsd.lv">Writing UNIX Manual Pages</A></Q> for a general
263 introduction to manpages and mdoc.
264 </P>
265 </TD>
266 </TR>
267 <TR>
268 <TD>
269 <H1>
270 <A NAME="contact">CONTACT</A>
271 </H1>
272
273 <P>
274 Please use the mailing lists for bug-reports, patches, questions, etc. Beyond that, contact
275 Kristaps at <A
276 HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&amp;c=Q2DBUt401ePlSeupJFrq_Q=="
277 TITLE="Reveal this e-mail address">kris...</A>@bsd.lv.
278 </P>
279
280 <P>
281 You may also subscribe to several mailing lists (these require subscription, which is
282 moderated).
283 </P>
284
285 <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
286 <COL WIDTH="175">
287 <COL>
288 <TBODY>
289 <TR>
290 <TD>
291 disc<A CLASS="external" TITLE="Reveal this e-mail address"
292 HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&amp;c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
293 </TD>
294 <TD>
295 bug-reports, general questions, and announcements
296 <SPAN STYLE="font-size: smaller;">(<A HREF="/archives/discuss/summary.html">archive</A>)</SPAN>
297 </TD>
298 </TR>
299 <TR>
300 <TD>
301 tec<A CLASS="external" TITLE="Reveal this e-mail address"
302 HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&amp;c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
303 </TD>
304 <TD>
305 patches and system discussions
306 <SPAN STYLE="font-size: smaller;">(<A HREF="/archives/tech/summary.html">archive</A>)</SPAN>
307 </TD>
308 </TR>
309 <TR>
310 <TD>
311 sou<A CLASS="external" TITLE="Reveal this e-mail address"
312 HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&amp;c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
313 </TD>
314 <TD>
315 source commit messages
316 <SPAN STYLE="font-size: smaller;">(<A HREF="/archives/source/summary.html">archive</A>)</SPAN>
317 </TD>
318 </TR>
319 </TBODY>
320 </TABLE>
321 </TD>
322 </TR>
323 <TR>
324 <TD>
325 <H1>
326 <A NAME="news">NEWS</A>
327 </H1>
328 <DIV CLASS="news">
329 <P>
330 <SPAN CLASS="date">03-01-2011</SPAN>:
331 version 1.10.9
332 </P>
333 <P>
334 Table functionality (see the <Q>TS</Q>, <Q>TE</Q>, and <Q>T&amp;</Q> macros in the <A
335 HREF="roff.7.html#x5c265453">roff</A> manual) has been merged from <A CLASS="external"
336 HREF="http://tbl.bsd.lv">tbl.bsd.lv</A>. Many back-end fixes have also been
337 implemented, primarily in argument handling (quoting) and <A HREF="man.7.html">man</A>
338 documents.
339 </P>
340 </DIV>
341 <DIV CLASS="news">
342 <P>
343 <SPAN CLASS="date">24-12-2010</SPAN>:
344 version 1.10.8
345 </P>
346 <P>
347 Significant improvements merged from <A CLASS="external"
348 HREF="http://www.openbsd.org">OpenBSD</A> downstream, including
349 </P>
350 <UL>
351 <LI>many new <A HREF="roff.7.html">roff</A> components,</LI>
352 <LI>in-line implementation of troff's soelim,</LI>
353 <LI>broken-block handling,</LI>
354 <LI>overhauled error classifications, and</LI>
355 <LI>cleaned up handling of error conditions.</LI>
356 </UL>
357 <P>
358 Also overhauled the <SPAN CLASS="flag">-Thtml</SPAN> and <SPAN
359 CLASS="flag">-Txhtml</SPAN> output modes. They now display readable output in arbitrary
360 browsers, including text-based ones like <A CLASS="external"
361 HREF="http://lynx.isc.org">lynx</A>. See HTML and XHTML manuals in the <A
362 HREF="#documentation">DOCUMENTATION</A> section for examples. <SPAN
363 CLASS="attn">Attention: available style-sheet classes have been considerably
364 changed!</SPAN> See the <SPAN CLASS="file">example.style.css</SPAN> file for details.
365 Lastly, <A HREF="mdoc.3.html">libmdoc</A> and <A HREF="man.3.html">libman</A> have been
366 cleaned up and reduced in size and complexity.
367 </P>
368 </DIV>
369 <DIV CLASS="news">
370 <P>
371 <SPAN CLASS="date">27-09-2010</SPAN>:
372 version 1.10.6
373 </P>
374 <P>
375 Calling conventions for <A HREF="mandoc.1.html">mandoc</A> have changed: <SPAN
376 CLASS="flag">-W</SPAN> improved and <SPAN CLASS="flag">-f</SPAN> deprecated. Non-ASCII
377 characters are also now uniformly discarded. Lots of documentation improvements. Many
378 incremental fixes accomodating for groff's more interesting productions. Lastly, <A
379 HREF="http://perldoc.perl.org/pod2man.html" CLASS="external">pod2man</A> preambles are
380 now fully accepted after some considerable <A HREF="roff.7.html">roff</A> and special
381 character support.
382 </P>
383 </DIV>
384 <DIV CLASS="news">
385 <P>
386 <SPAN CLASS="date">27-07-2010</SPAN>:
387 version 1.10.5
388 </P>
389 <P>
390 Primarily a bug-fix and polish release, but including <SPAN CLASS="flag">-Tpdf</SPAN>
391 support in <A HREF="mandoc.1.html">mandoc</A> by way of <A CLASS="external"
392 HREF="http://netbsd-soc.sourceforge.net/projects/mandoc_ps/">Summer of Code</A>.
393 Highlights:
394 </P>
395 <UL>
396 <LI>fix <Q>Sm</Q> and <Q>Bd</Q> handling</LI>
397 <LI>fix end-of-sentence handling for embedded sentences</LI>
398 <LI>polish <A HREF="man.7.html">man</A> documentation</LI>
399 <LI>document all <A HREF="mdoc.7.html">mdoc</A> macros</LI>
400 <LI>polish <A HREF="mandoc.1.html">mandoc</A> <SPAN CLASS="flag">-Tps</SPAN> output</LI>
401 <LI>lots of internal clean-ups in character escapes</LI>
402 <LI>un-break literal contexts in <A HREF="man.7.html">man</A> documents</LI>
403 <LI>improve <SPAN CLASS="flag">-Thtml</SPAN> output for <SPAN CLASS="flag">-man</SPAN></LI>
404 <LI>add <A HREF="mandoc.1.html">mandoc</A> <SPAN CLASS="flag">-Tpdf</SPAN> support</LI>
405 </UL>
406 </DIV>
407 <DIV CLASS="news">
408 <P>
409 <SPAN CLASS="date">12-07-2010</SPAN>:
410 version 1.10.4
411 </P>
412 <P>
413 Lots of features developed during both <A CLASS="external"
414 HREF="http://netbsd-soc.sourceforge.net/projects/mandoc_ps/">Summer of Code</A> and the
415 <A CLASS="external" HREF="http://www.openbsd.org">OpenBSD</A> c2k10 hackathon:
416 </P>
417 <UL>
418 <LI>minimal <Q>ds</Q> <A HREF="roff.7.html">roff</A> symbols are supported</LI>
419 <LI><Q>Bk</Q> <A HREF="mdoc.7.html">mdoc</A> support</LI>
420 <LI>beautified SYNOPSIS section output</LI>
421 <LI>variable font-width and paper-size support in <A HREF="mandoc.1.html">mandoc</A>
422 <SPAN CLASS="flag">-Tps</SPAN> output</LI>
423 <LI>acceptance of scope-block breakage in <A HREF="mdoc.7.html">mdoc</A></LI>
424 <LI>clarify error message status</LI>
425 <LI>many minor bug-fixes and formatting issues resolved</LI>
426 </UL>
427 </DIV>
428 <DIV CLASS="news">
429 <P>
430 <SPAN CLASS="date">19-06-2010</SPAN>:
431 version 1.10.2
432 </P>
433 <P>
434 Small release featuring text-decoration in <SPAN CLASS="flag">-Tps</SPAN> output, a few
435 minor relaxations of errors, and some optimisations.
436 </P>
437 </DIV>
438 <DIV CLASS="news">
439 <P>
440 <SPAN CLASS="date">07-06-2010</SPAN>:
441 version 1.10.1
442 </P>
443 <P>
444 This primarily focusses on the <Q>Bl</Q> and <Q>It</Q> macros described in <A
445 HREF="mdoc.7.html">mdoc</A>. Multi-line column support is now fully compatible with
446 groff, as are implicit list entries for columns. Removed manuals.7 in favour of <A
447 CLASS="external" HREF="http://manpages.bsd.lv">http://manpages.bsd.lv</A>. The way we
448 handle the SYNOPSIS section (see the SYNOPSIS documentation in <A
449 HREF="mdoc.7.html#x4d414e55414cx20x535452554354555245">MANUAL STRUCTURE</A>) has also
450 been considerably simplified compared to groff's method. Furthermore, the <SPAN
451 CLASS="flag">-Owidth=width</SPAN> output option has been added to <SPAN
452 CLASS="flag">-Tascii</SPAN> (see <A HREF="mandoc.1.html">mandoc</A>). Lastly, initial
453 PostScript output has been added with the <SPAN CLASS="flag">-Tps</SPAN> option to <A
454 HREF="mandoc.1.html">mandoc</A>. It's brutally simple at the moment: fixed-font, with
455 no font decorations.
456 </P>
457 </DIV>
458 <DIV CLASS="news">
459 <P>
460 <SPAN CLASS="date">29-05-2010</SPAN>:
461 version 1.10.0
462 </P>
463 <P>
464 Release consisting of the results from the m2k10 hackathon and up-merge from OpenBSD.
465 This requires a significant note of thanks to Ingo Schwarze (OpenBSD) and Joerg
466 Sonnenberger (NetBSD) for their hard work, and again to Joerg for hosting m2k10.
467 Highlights (mostly cribbed from Ingo's m2k10 report) follow in no particular order:
468 </P>
469 <UL>
470 <LI>a <A HREF="roff.3.html">libroff</A> preprocessor in front of <A
471 HREF="mdoc.3.html">libmdoc</A> and <A HREF="man.3.html">libman</A> stripping out
472 <A HREF="roff.7.html">roff</A> instructions;</LI>
473 <LI>end-of-sentence (EOS) detection in free-form and macro lines;</LI>
474 <LI>correct handling of tab-separated columnar lists in <SPAN
475 CLASS="flag">-mdoc</SPAN>;</LI>
476 <LI>improved main calling routines to optionally use mmap() for better
477 performance;</LI>
478 <LI>cleaned up exiting when invoked as <SPAN CLASS="flag">-Tlint</SPAN> or over
479 multiple files with <SPAN CLASS="flag">-fign-errors</SPAN>;</LI>
480 <LI>error and warning message handling re-written to be unified for <A
481 HREF="roff.3.html">libroff</A>, <A HREF="mdoc.3.html">libmdoc</A>, and <A
482 HREF="man.3.html">libman</A>;</LI>
483 <LI>handling of badly-nested explicit-scoped macros;</LI>
484 <LI>improved free-form text parsing in <A HREF="man.3.html">libman</A> and <A
485 HREF="mdoc.3.html">libmdoc</A>;</LI>
486 <LI>significant GNU troff compatibility improvements in <SPAN
487 CLASS="flag">-Tascii</SPAN>, largely in terms of spacing;</LI>
488 <LI>a regression framework for making sure the many fragilities of GNU troff
489 aren't trampled in subsequent work;</LI>
490 <LI>support for <SPAN CLASS="flag">-Tascii</SPAN> breaking at hyphens
491 encountered in free-form text;</LI>
492 <LI>and many more minor fixes and improvements (no really, consult <A
493 HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/?cvsroot=mdocml">cvsweb</A> and see
494 for yourself!).</LI>
495 </UL>
496 </DIV>
497 <P>
498 See <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/index.sgml?cvsroot=mdocml">cvsweb</A> for
499 historical notes.
500 </P>
501 </TD>
502 </TR>
503 <TR>
504 <TD>
505 <DIV CLASS="foot">
506 Copyright &#169; 2008&#8211;2010 Kristaps Dzonsons, $Date: 2011/01/04 13:14:26 $
507 </DIV>
508 </TD>
509 </TR>
510 </TBODY>
511 </TABLE>
512 </BODY>
513 </HTML>