e7166357026c03a3bfbdc1595970354ad910afbc
[dragonfly.git] / contrib / mdocml / 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                 <LINK REL="stylesheet" HREF="index.css" TYPE="text/css" MEDIA="all">
6                 <TITLE>mdocml | UNIX manpage compiler</TITLE>
7         </HEAD>
8         <BODY>
9                 <P CLASS="head">
10                         <B>mdocml</B> &#8211; UNIX manpage compiler, current version @VERSION@ (@VDATE@)
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>)
16                 </P>
17                 <H1>
18                         <A NAME="description">Description</A>
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>
28                         Why?  groff amounts to over 5 MB of source code, most of which is C++ and GPL version 3.  It runs slowly, produces
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
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.  
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;
38                         <A HREF="mandocdb.8.html">mandocdb</A>, for indexing manuals; and
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.
41                         It is a <A CLASS="external" HREF="http://bsd.lv/">BSD.lv</A> project.  
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>
46                 <H2>
47                         <A NAME="sources">Sources</A>
48                 </H2>
49                 <P>
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
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 &mdash; 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.
57                 </P>
58                 <H2>
59                         Downstream
60                 </H2>
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>
67                 <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
68                         <COL WIDTH="175">
69                         <COL>
70                         <TBODY>
71                                 <TR>
72                                         <TD>DragonFly BSD</TD>
73                                         <TD>
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)
77                                         </TD>
78                                 </TR>
79                                 <TR>
80                                         <TD>FreeBSD 10.0, -CURRENT</TD>
81                                         <TD>
82                                         <A HREF="http://svnweb.freebsd.org/base/head/contrib/mdocml/" CLASS="external">contrib/mdocml</A> (1.12.1 sources)
83                                         <A HREF="http://svnweb.freebsd.org/base/head/usr.bin/mandoc/" CLASS="external">usr.bin/mandoc</A> (build system)
84                                         </TD>
85                                 </TR>
86                                 <TR>
87                                         <TD>FreeBSD 9.x, 8.x</TD>
88                                         <TD>
89                                         <A HREF="http://svnweb.freebsd.org/ports/textproc/mdocml/" CLASS="external">ports/textproc/mdocml</A> (1.12.1 port)
90                                         </TD>
91                                 </TR>
92                                 <TR>
93                                         <TD>NetBSD</TD>
94                                         <TD>
95                                         <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)
96                                         </TD>
97                                 </TR>
98                                 <TR>
99                                         <TD>OpenBSD</TD>
100                                         <TD>
101                                         <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)
102                                         </TD>
103                                 </TR>
104                                 <TR>
105                                         <TD>pkgsrc</TD>
106                                         <TD>
107                                         <A HREF="http://pkgsrc.se/textproc/mdocml" CLASS="external">textproc/mdocml</A> (1.12.0 port)
108                                         </TD>
109                                 </TR>
110                                 <TR>
111                                         <TD>Minix3</TD>
112                                         <TD>
113                                         <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)
114                                         </TD>
115                                 </TR>
116                                 <TR>
117                                         <TD>Alpine Linux</TD>
118                                         <TD>
119                                         <A HREF="http://git.alpinelinux.org/cgit/aports/tree/main/mdocml" CLASS="external">aports/main/mdocml</A> (1.12.1 port)
120                                         </TD>
121                                 </TR>
122                         </TBODY>
123                 </TABLE>
124                 <H1>
125                         <A NAME="documentation">Documentation</A>
126                 </H1>
127                 <P>
128                         These manuals are generated automatically and refer to the current release.
129                         They are the authoritative documentation for the <SPAN CLASS="nm">mdocml</SPAN> system.
130                 </P>
131
132                 <TABLE WIDTH="100%" SUMMARY="Documentation">
133                         <COL WIDTH="175">
134                         <COL>
135                         <TBODY>
136                                 <TR>
137                                         <TD VALIGN="top"><A HREF="apropos.1.html">apropos(1)</A></TD>
138                                         <TD VALIGN="top">
139                                                 search the manual page database
140                                         </TD>
141                                 </TR>
142                                 <TR>
143                                         <TD VALIGN="top"><A HREF="demandoc.1.html">demandoc(1)</A></TD>
144                                         <TD VALIGN="top">
145                                                 emit only text of UNIX manuals
146                                         </TD>
147                                 </TR>
148                                 <TR>
149                                         <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
150                                         <TD VALIGN="top">
151                                                 format and display UNIX manuals
152                                         </TD>
153                                 </TR>
154                                 <TR>
155                                         <TD VALIGN="top"><A HREF="preconv.1.html">preconv(1)</A></TD>
156                                         <TD VALIGN="top">
157                                                 recode multibyte UNIX manuals
158                                         </TD>
159                                 </TR>
160                                 <TR>
161                                         <TD VALIGN="top"><A HREF="whatis.1.html">whatis(1)</A></TD>
162                                         <TD VALIGN="top">
163                                                 search the manual page database
164                                         </TD>
165                                 </TR>
166                                 <TR>
167                                         <TD VALIGN="top"><A HREF="mandoc.3.html">mandoc(3)</A></TD>
168                                         <TD VALIGN="top">
169                                                 mandoc macro compiler library
170                                         </TD>
171                                 </TR>
172                                 <TR>
173                                         <TD VALIGN="top"><A HREF="tbl.3.html">tbl(3)</A></TD>
174                                         <TD VALIGN="top">
175                                                 roff table parser library for mandoc
176                                         </TD>
177                                 </TR>
178                                 <TR>
179                                         <TD VALIGN="top"><A HREF="eqn.7.html">eqn(7)</A></TD>
180                                         <TD VALIGN="top">
181                                                 eqn-mandoc language reference
182                                         </TD>
183                                 </TR>
184                                 <TR>
185                                         <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
186                                         <TD VALIGN="top">
187                                                 man language reference
188                                         </TD>
189                                 </TR>
190                                 <TR>
191                                         <TD VALIGN="top"><A HREF="man.cgi.7.html">man.cgi(7)</A></TD>
192                                         <TD VALIGN="top">
193                                                 cgi for manpage query and display
194                                         </TD>
195                                 </TR>
196                                 <TR>
197                                         <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
198                                         <TD VALIGN="top">
199                                                 mandoc special characters
200                                         </TD>
201                                 </TR>
202                                 <TR>
203                                         <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
204                                         <TD VALIGN="top">
205                                                 mdoc language reference
206                                         </TD>
207                                 </TR>
208                                 <TR>
209                                         <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
210                                         <TD VALIGN="top">
211                                                 roff-mandoc language reference
212                                         </TD>
213                                 </TR>
214                                 <TR>
215                                         <TD VALIGN="top"><A HREF="tbl.7.html">tbl(7)</A></TD>
216                                         <TD VALIGN="top">
217                                                 tbl-mandoc language reference
218                                         </TD>
219                                 </TR>
220                                 <TR>
221                                         <TD VALIGN="top"><A HREF="catman.8.html">catman(8)</A></TD>
222                                         <TD VALIGN="top">
223                                                 update a man.cgi manpage cache
224                                         </TD>
225                                 </TR>
226                                 <TR>
227                                         <TD VALIGN="top"><A HREF="mandocdb.8.html">mandocdb(8)</A></TD>
228                                         <TD VALIGN="top">
229                                                 index UNIX manuals
230                                         </TD>
231                                 </TR>
232                         </TBODY>
233                 </TABLE>
234                 <H1>
235                         <A NAME="contact">Contact</A>
236                 </H1>
237                 <P>
238                         Use the mailing lists for bug-reports, patches, questions, etc.  Please check the
239                         <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/TODO?cvsroot=mdocml">TODO</A> for known issues
240                         before posting.  All lists are subscription-only: send a blank e-mail to the listed address to subscribe.  Beyond that,
241                         contact Kristaps at <A HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&amp;c=Q2DBUt401ePlSeupJFrq_Q==" TITLE="Reveal
242                         this e-mail address">kris...</A>@bsd.lv.  Archives are available at <A HREF="http://gmane.org/" CLASS="external">Gmane</A>.
243                 </P>
244                 <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
245                         <COL WIDTH="175">
246                         <COL>
247                         <TBODY>
248                                 <TR>
249                                         <TD>
250                                                 disc<A CLASS="external" TITLE="Reveal this e-mail address"
251                                                 HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&amp;c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
252                                         </TD>
253                                         <TD>
254                                                 bug-reports, general questions, and announcements 
255                                         </TD>
256                                 </TR>
257                                 <TR>
258                                         <TD>
259                                                 tec<A CLASS="external" TITLE="Reveal this e-mail address"
260                                                 HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&amp;c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
261                                         </TD>
262                                         <TD>
263                                                 patches and system discussions 
264                                         </TD>
265                                 </TR>
266                                 <TR>
267                                         <TD>
268                                                 sou<A CLASS="external" TITLE="Reveal this e-mail address"
269                                                 HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&amp;c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
270                                         </TD>
271                                         <TD>
272                                                 source commit messages 
273                                         </TD>
274                                 </TR>
275                         </TBODY>
276                 </TABLE>
277                 <H1>
278                         <A NAME="news">News</A>
279                 </H1>
280                 <P CLASS="news">
281                         02-10-2013: version 1.12.2
282                 </P>
283                 <P>
284                         The <A HREF="mdoc.7.html">mdoc(7)</A> to <A HREF="man.7.html">man(7)</A> converter,
285                         to be called as <CODE>mandoc -Tman</CODE>, is now fully functional.
286                 </P>
287                 <P>
288                         The <A HREF="mandoc.1.html">mandoc(1)</A> utility now supports the <CODE>-Ios</CODE> (default operating system)
289                         input option, and the <CODE>-Tutf8</CODE> output mode now actually works.
290                 </P>
291                 <P>
292                         The <A HREF="mandocdb.8.html">mandocdb(8)</A> utility no longer truncates existing databases when starting to build new ones,
293                         but only replaces them when the build actually succeeds.
294                 </P>
295                 <P>
296                         The <A HREF="man.7.html">man(7)</A> parser now supports the <EM>PD</EM> macro (paragraph distance),
297                         and (for GNU man-ext compatibility only) <EM>EX</EM> (example block) and <EM>EE</EM> (example end).
298                         Plus several bugfixes regarding indentation, line breaks, and vertical spacing,
299                         and regarding <EM>RS</EM> following <EM>TP</EM>.
300                 </P>
301                 <P>
302                         The <A HREF="roff.7.html">roff(7)</A> parser now supports the <EM>\f(BI</EM> (bold+italic) font escape,
303                         the <EM>\z</EM> (zero cursor advance) escape and the <EM>cc</EM> (change control character)
304                         and <EM>it</EM> (input line trap) requests.
305                         Plus bugfixes regarding the <EM>\t</EM> (tab) escape, nested escape sequences, and conditional requests.
306                 </P>
307                 <P>
308                         In <A HREF="mdoc.7.html">mdoc(7)</A>, several bugs were fixed related to UTF-8 output of quoting enclosures,
309                         delimiter handling, list indentation and horizontal and vertical spacing,
310                         formatting of the <EM>Lk</EM>, <EM>%U</EM>, and <EM>%C</EM> macros,
311                         plus some bugfixes related to the handling of syntax errors like badly nested font blocks,
312                         stray <EM>Ta</EM> macros outside column lists, unterminated <EM>It Xo</EM> blocks,
313                         and non-text children of <EM>Nm</EM> blocks.
314                 </P>
315                 <P>
316                         In <A HREF="tbl.7.html">tbl(7)</A>, the width of horizontal spans and the vertical spacing around tables was corrected,
317                         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.
318                 </P>
319                 <P>
320                         For mandoc developers, we now provide a <A HREF="tbl.3.html">tbl(3)</A> library manual and <CODE>gmdiff</CODE>,
321                         a very small, very simplistic groff-versus-mandoc output comparison tool.
322                 </P>
323                 <P>
324                         See <A HREF="NEWS">NEWS</A> for historical notes.
325                 </P>
326                 <P CLASS="news">
327                         23-03-2011: version 1.12.1
328                 </P>
329                 <P>
330                         Significant work on <A HREF="apropos.1.html">apropos</A> and <A HREF="mandocdb.8.html">mandocdb</A>.  These tools are
331                         now much more robust.  
332                         A <A HREF="whatis.1.html">whatis</A> implementation is now handled as an <A HREF="apropos.1.html">apropos</A> mode.
333                         These tools are also able to minimally handle pre-formatted pages, that is, those already formatted by another utility
334                         such as GNU troff.
335                 </P>
336                 <P>
337                         The <A HREF="man.cgi.7.html">man.cgi</A> script is also now available for wider testing.  It interfaces with <A
338                         HREF="mandocdb.8.html">mandocdb</A> manuals cached by <A HREF="catman.8.html">catman</A>.  HTML output is generated
339                         on-the-fly by <A HREF="mandoc.3.html">libmandoc</A> or internal methods to convert pre-formatted pages.
340                 </P>
341                 <P>
342                         The mailing list archive for the discuss and tech lists are being hosted by <A CLASS="external"
343                         HREF="http://www.gmane.org">Gmane</A> at <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.user"
344                         CLASS="external">gmane.comp.tools.mdocml.user</A> and <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.devel"
345                         CLASS="external">gmane.comp.tools.mdocml.devel</A>, respectively.
346                 </P>
347                 <P>
348                         Lastly, I'm no longer providing binaries, as nobody has asked for them.
349                 </P>
350                 <P>
351                         See <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/index.sgml?cvsroot=mdocml">cvsweb</A> for
352                         historical notes.
353                 </P>
354                 <P CLASS="foot">
355                         <SMALL>
356                                 Copyright &#169; 2008&#8211;2011 
357                                 <A CLASS="external" HREF="http://kristaps.bsd.lv">Kristaps Dzonsons</A>, 
358                                 &#169; 2013 Ingo Schwarze,
359                                 $Date: 2013/10/05 14:05:09 $
360                         </SMALL>
361                 </P>
362         </BODY>
363 </HTML>