]> git.cameronkatri.com Git - mandoc.git/blob - index.sgml
The "value" argument to the roff(7) .nr requests ends right before
[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 <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,
39 <A HREF="apropos.1.html">apropos</A> (includes whatis mode) for indexed manual search, and
40 <A HREF="man.cgi.7.html">man.cgi</A> for indexed manual search online.
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 ISO C99 and should build and run on any modern system; however, you'll need <A
51 HREF="http://www.sqlite.org">sqlite3</A> to build <A HREF="apropos.1.html">apropos</A> (links to whatis),
52 <A HREF="man.cgi.7.html">man.cgi</A>, and <A HREF="mandocdb.8.html">mandocdb</A>.
53 To build and install into <I>/usr/local/</I>, just run <CODE>make install</CODE>.
54 Be careful: the <B>preconv</B>, <B>apropos</B>, and <B>whatis</B> binary names are usually taken by existing utilities.
55 </P>
56 <H2>
57 Downstream
58 </H2>
59 <P>
60 Several systems come bundled with <SPAN CLASS="nm">mdocml</SPAN> utilities.
61 If your system does not appear below, the maintainers have not contacted me and it should not be considered
62 <Q>official</Q>.
63 Please <A HREF="#contact">contact us</A> if you plan on maintaining a downstream version!
64 </P>
65 <TABLE WIDTH="100%" SUMMARY="Downstream Sources">
66 <COL WIDTH="175">
67 <COL>
68 <TBODY>
69 <TR>
70 <TD>DragonFly BSD</TD>
71 <TD>
72 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/contrib/mdocml" CLASS="external">contrib/mdocml</A> (1.12.2 sources)
73 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/lib/libmandoc" CLASS="external">lib/libmandoc</A>
74 <A HREF="http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/usr.bin/mandoc" CLASS="external">usr.bin/mandoc</A> (build system)
75 </TD>
76 </TR>
77 <TR>
78 <TD>FreeBSD 10.0, -CURRENT</TD>
79 <TD>
80 <A HREF="http://svnweb.freebsd.org/base/head/contrib/mdocml/" CLASS="external">contrib/mdocml</A> (1.12.1 sources)
81 <A HREF="http://svnweb.freebsd.org/base/head/usr.bin/mandoc/" CLASS="external">usr.bin/mandoc</A> (build system)
82 </TD>
83 </TR>
84 <TR>
85 <TD>FreeBSD 9.x, 8.x</TD>
86 <TD>
87 <A HREF="http://svnweb.freebsd.org/ports/head/textproc/mdocml/" CLASS="external">ports/textproc/mdocml</A> (1.12.1 port)
88 </TD>
89 </TR>
90 <TR>
91 <TD>NetBSD</TD>
92 <TD>
93 <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)
94 </TD>
95 </TR>
96 <TR>
97 <TD>OpenBSD</TD>
98 <TD>
99 <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)
100 </TD>
101 </TR>
102 <TR>
103 <TD>pkgsrc</TD>
104 <TD>
105 <A HREF="http://pkgsrc.se/textproc/mdocml" CLASS="external">textproc/mdocml</A> (1.12.2 port)
106 </TD>
107 </TR>
108 <TR>
109 <TD>Minix3</TD>
110 <TD>
111 <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)
112 </TD>
113 </TR>
114 <TR>
115 <TD>Alpine Linux</TD>
116 <TD>
117 <A HREF="http://git.alpinelinux.org/cgit/aports/tree/main/mdocml" CLASS="external">aports/main/mdocml</A> (1.12.2 port)
118 </TD>
119 </TR>
120 </TBODY>
121 </TABLE>
122 <H1>
123 <A NAME="documentation">Documentation</A>
124 </H1>
125 <P>
126 These manuals are generated automatically and refer to the current release.
127 They are the authoritative documentation for the <SPAN CLASS="nm">mdocml</SPAN> system.
128 </P>
129
130 <TABLE WIDTH="100%" SUMMARY="Documentation">
131 <COL WIDTH="175">
132 <COL>
133 <TBODY>
134 <TR>
135 <TD VALIGN="top"><A HREF="apropos.1.html">apropos(1)</A></TD>
136 <TD VALIGN="top">
137 search the manual page database
138 </TD>
139 </TR>
140 <TR>
141 <TD VALIGN="top"><A HREF="demandoc.1.html">demandoc(1)</A></TD>
142 <TD VALIGN="top">
143 emit only text of UNIX manuals
144 </TD>
145 </TR>
146 <TR>
147 <TD VALIGN="top"><A HREF="mandoc.1.html">mandoc(1)</A></TD>
148 <TD VALIGN="top">
149 format and display UNIX manuals
150 </TD>
151 </TR>
152 <TR>
153 <TD VALIGN="top"><A HREF="preconv.1.html">preconv(1)</A></TD>
154 <TD VALIGN="top">
155 recode multibyte UNIX manuals
156 </TD>
157 </TR>
158 <TR>
159 <TD VALIGN="top"><A HREF="mandoc.3.html">mandoc(3)</A></TD>
160 <TD VALIGN="top">
161 mandoc macro compiler library
162 </TD>
163 </TR>
164 <TR>
165 <TD VALIGN="top"><A HREF="tbl.3.html">tbl(3)</A></TD>
166 <TD VALIGN="top">
167 roff table parser library for mandoc
168 </TD>
169 </TR>
170 <TR>
171 <TD VALIGN="top"><A HREF="eqn.7.html">eqn(7)</A></TD>
172 <TD VALIGN="top">
173 eqn-mandoc language reference
174 </TD>
175 </TR>
176 <TR>
177 <TD VALIGN="top"><A HREF="man.7.html">man(7)</A></TD>
178 <TD VALIGN="top">
179 man language reference
180 </TD>
181 </TR>
182 <TR>
183 <TD VALIGN="top"><A HREF="man.cgi.7.html">man.cgi(7)</A></TD>
184 <TD VALIGN="top">
185 cgi for manpage query and display
186 </TD>
187 </TR>
188 <TR>
189 <TD VALIGN="top"><A HREF="mandoc_char.7.html">mandoc_char(7)</A></TD>
190 <TD VALIGN="top">
191 mandoc special characters
192 </TD>
193 </TR>
194 <TR>
195 <TD VALIGN="top"><A HREF="mdoc.7.html">mdoc(7)</A></TD>
196 <TD VALIGN="top">
197 mdoc language reference
198 </TD>
199 </TR>
200 <TR>
201 <TD VALIGN="top"><A HREF="roff.7.html">roff(7)</A></TD>
202 <TD VALIGN="top">
203 roff-mandoc language reference
204 </TD>
205 </TR>
206 <TR>
207 <TD VALIGN="top"><A HREF="tbl.7.html">tbl(7)</A></TD>
208 <TD VALIGN="top">
209 tbl-mandoc language reference
210 </TD>
211 </TR>
212 <TR>
213 <TD VALIGN="top"><A HREF="mandocdb.8.html">mandocdb(8)</A></TD>
214 <TD VALIGN="top">
215 index UNIX manuals
216 </TD>
217 </TR>
218 </TBODY>
219 </TABLE>
220 <H2>
221 <A NAME="links">Supplementary Information</A>
222 </H2>
223 <UL>
224 <LI>
225 <A HREF="http://manpages.bsd.lv/">Practical UNIX Manuals</A>: mdoc tutorial by Kristaps Dzonsons
226 </LI>
227 <LI>
228 <A HREF="http://www.openbsd.org/faq/ports/specialtopics.html#Mandoc" CLASS="external">OpenBSD porting guide</A>
229 chapter regarding manual pages
230 </LI>
231 <LI>
232 <A HREF="press.html">Publications and media coverage</A>
233 concerning mdocml and mandoc
234 </LI>
235 <LI>
236 <A HREF="http://manpages.bsd.lv/history.html">History of UNIX Manpages</A>: a comprehensive overview by Kristaps Dzonsons
237 </LI>
238 </UL>
239 <H1>
240 <A NAME="contact">Contact</A>
241 </H1>
242 <P>
243 Use the mailing lists for bug-reports, patches, questions, etc. Please check the
244 <A HREF="http://mdocml.bsd.lv/cgi-bin/cvsweb/TODO?cvsroot=mdocml">TODO</A> for known issues
245 before posting. All lists are subscription-only: send a blank e-mail to the listed address to subscribe. Beyond that,
246 contact Kristaps at <A HREF="http://mailhide.recaptcha.net/d?k=01M6h_w7twDp58ZgH57eWC_w==&amp;c=Q2DBUt401ePlSeupJFrq_Q==" TITLE="Reveal
247 this e-mail address">kris...</A>@bsd.lv. Archives are available at <A HREF="http://gmane.org/" CLASS="external">Gmane</A>.
248 </P>
249 <TABLE WIDTH="100%" SUMMARY="Mailing Lists">
250 <COL WIDTH="175">
251 <COL>
252 <TBODY>
253 <TR>
254 <TD>
255 disc<A CLASS="external" TITLE="Reveal this e-mail address"
256 HREF="http://www.google.com/recaptcha/mailhide/d?k=01KQ80PFH5n3BBNpF5Gs4sRg==&amp;c=EV1QytpQqTHSItc2IXvZyocgYLPnG5K0JKw_gwMC9yc=">...</A>@mdocml.bsd.lv
257 </TD>
258 <TD>
259 bug-reports, general questions, and announcements
260 </TD>
261 </TR>
262 <TR>
263 <TD>
264 tec<A CLASS="external" TITLE="Reveal this e-mail address"
265 HREF="http://www.google.com/recaptcha/mailhide/d?k=01qDX_iV0RlUOarEvb6mR28g==&amp;c=gRXsTjza0NNCFPaYu-Taj2tF0pmYZSc90EZkFkhkxgo=">...</A>@mdocml.bsd.lv
266 </TD>
267 <TD>
268 patches and system discussions
269 </TD>
270 </TR>
271 <TR>
272 <TD>
273 sou<A CLASS="external" TITLE="Reveal this e-mail address"
274 HREF="http://www.google.com/recaptcha/mailhide/d?k=01prQrAZhhl2EbIwVcRfABsQ==&amp;c=KtTW4Yic9xk-8g40KzJoca4fR3MYXv28g8NC6OQV-T8=">...</A>@mdocml.bsd.lv
275 </TD>
276 <TD>
277 source commit messages
278 </TD>
279 </TR>
280 </TBODY>
281 </TABLE>
282 <H1>
283 <A NAME="news">News</A>
284 </H1>
285 <P CLASS="news">
286 xx-xx-2013: version 1.13.0
287 </P>
288 <P>
289 The <A HREF="mandocdb.8.html">mandocdb</A> tools (<A HREF="mandocdb.8.html">mandocdb</A>, <A
290 HREF="apropos.1.html">apropos</A> (absorbing whatis), and <A HREF="man.cgi.7.html">man.cgi</A>) have been re-written to
291 use <A CLASS="external" HREF="http://www.sqlite.org">sqlite3</A> as a database.
292 </P>
293 <P CLASS="news">
294 05-10-2013: version 1.12.2
295 </P>
296 <P>
297 The <A HREF="mdoc.7.html">mdoc(7)</A> to <A HREF="man.7.html">man(7)</A> converter,
298 to be called as <CODE>mandoc -Tman</CODE>, is now fully functional.
299 </P>
300 <P>
301 The <A HREF="mandoc.1.html">mandoc(1)</A> utility now supports the <CODE>-Ios</CODE> (default operating system)
302 input option, and the <CODE>-Tutf8</CODE> output mode now actually works.
303 </P>
304 <P>
305 The <A HREF="mandocdb.8.html">mandocdb(8)</A> utility no longer truncates existing databases when starting to build new ones,
306 but only replaces them when the build actually succeeds.
307 </P>
308 <P>
309 The <A HREF="man.7.html">man(7)</A> parser now supports the <EM>PD</EM> macro (paragraph distance),
310 and (for GNU man-ext compatibility only) <EM>EX</EM> (example block) and <EM>EE</EM> (example end).
311 Plus several bugfixes regarding indentation, line breaks, and vertical spacing,
312 and regarding <EM>RS</EM> following <EM>TP</EM>.
313 </P>
314 <P>
315 The <A HREF="roff.7.html">roff(7)</A> parser now supports the <EM>\f(BI</EM> (bold+italic) font escape,
316 the <EM>\z</EM> (zero cursor advance) escape and the <EM>cc</EM> (change control character)
317 and <EM>it</EM> (input line trap) requests.
318 Plus bugfixes regarding the <EM>\t</EM> (tab) escape, nested escape sequences, and conditional requests.
319 </P>
320 <P>
321 In <A HREF="mdoc.7.html">mdoc(7)</A>, several bugs were fixed related to UTF-8 output of quoting enclosures,
322 delimiter handling, list indentation and horizontal and vertical spacing,
323 formatting of the <EM>Lk</EM>, <EM>%U</EM>, and <EM>%C</EM> macros,
324 plus some bugfixes related to the handling of syntax errors like badly nested font blocks,
325 stray <EM>Ta</EM> macros outside column lists, unterminated <EM>It Xo</EM> blocks,
326 and non-text children of <EM>Nm</EM> blocks.
327 </P>
328 <P>
329 In <A HREF="tbl.7.html">tbl(7)</A>, the width of horizontal spans and the vertical spacing around tables was corrected,
330 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.
331 </P>
332 <P>
333 For mandoc developers, we now provide a <A HREF="tbl.3.html">tbl(3)</A> library manual and <CODE>gmdiff</CODE>,
334 a very small, very simplistic groff-versus-mandoc output comparison tool.
335 </P>
336 <P CLASS="news">
337 23-03-2012: version 1.12.1
338 </P>
339 <P>
340 Significant work on <A HREF="apropos.1.html">apropos</A> and <A HREF="mandocdb.8.html">mandocdb</A>. These tools are
341 now much more robust.
342 A <A HREF="whatis.1.html">whatis</A> implementation is now handled as an <A HREF="apropos.1.html">apropos</A> mode.
343 These tools are also able to minimally handle pre-formatted pages, that is, those already formatted by another utility
344 such as GNU troff.
345 </P>
346 <P>
347 The <A HREF="man.cgi.7.html">man.cgi</A> script is also now available for wider testing. It interfaces with <A
348 HREF="mandocdb.8.html">mandocdb</A> manuals cached by <A HREF="catman.8.html">catman</A>. HTML output is generated
349 on-the-fly by <A HREF="mandoc.3.html">libmandoc</A> or internal methods to convert pre-formatted pages.
350 </P>
351 <P>
352 The mailing list archive for the discuss and tech lists are being hosted by <A CLASS="external"
353 HREF="http://www.gmane.org">Gmane</A> at <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.user"
354 CLASS="external">gmane.comp.tools.mdocml.user</A> and <A HREF="http://dir.gmane.org/gmane.comp.tools.mdocml.devel"
355 CLASS="external">gmane.comp.tools.mdocml.devel</A>, respectively.
356 </P>
357 <P>
358 Lastly, I'm no longer providing binaries, as nobody has asked for them.
359 </P>
360 <H2>
361 <A>History</A>
362 </H2>
363 <UL>
364 <LI>
365 <A HREF="NEWS">Release notes</A> going back to release 1.9.15, February 18, 2010.
366 Briefly explaining the most important changes in each release in relatively easy terms.
367 Very many changes are not mentioned here.
368 </LI>
369 <LI>
370 <A HREF="history.html">Development history</A> going back to the beginning of the project, November 22, 2008.
371 One-line entries for important commits, releases, merges, hackathons and talks.
372 Makes it easy to find out who did what, and when, and when it became available where.
373 However, this is still incomplete, mentioning only a small fraction of all commits,
374 and to keep the size down, the individual entries are extremely terse and technical.
375 Feel free to look up more details and longer explanations about individual entries
376 in the ChangeLog or in CVS.
377 </LI>
378 <LI>
379 <A HREF="ChangeLog">CVS ChangeLog</A> going back to the beginning of the project.
380 Very technical information of varying quality, strictly chronological.
381 All commits are mentioned, but some messages neglect to mention some changes.
382 Partly terse, partly detailed and verbose. In any case, the ChangeLog is very long -
383 more than 25,000 lines, more than 700 kB.
384 </LI>
385 <LI>
386 <A HREF="/cgi-bin/cvsweb/?cvsroot=mdocml">CVS</A> web interface, going back to the beginning of the project.
387 Source code, diffs and commit messages for each source file. The real thing.
388 </LI>
389 </UL>
390 <P CLASS="foot">
391 <SMALL>
392 Copyright &#169; 2008&#8211;2011
393 <A CLASS="external" HREF="http://kristaps.bsd.lv">Kristaps Dzonsons</A>,
394 &#169; 2013 Ingo Schwarze,
395 $Date: 2013/10/13 18:34:51 $
396 </SMALL>
397 </P>
398 </BODY>
399 </HTML>