=================================================================== RCS file: /cvs/mandoc/Attic/index.sgml,v retrieving revision 1.85 retrieving revision 1.166 diff -u -p -r1.85 -r1.166 --- mandoc/Attic/index.sgml 2010/07/21 10:10:24 1.85 +++ mandoc/Attic/index.sgml 2013/12/31 17:47:17 1.166 @@ -2,402 +2,432 @@ - - mdocml | mdoc macro compiler + mdocml | UNIX manpage compiler - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- mdocml – mdoc macro compiler -
-
-

- DESCRIPTION -

+

+ Puffy + mdocml – UNIX manpage compiler, current version @VERSION@ (@VDATE@) +

+

+ Sources: current, + cvsweb + (archives) +

+

+ Description +

+

+ mdocml is a suite of tools compiling mdoc, the roff macro + package of choice for BSD manual pages, and man, the predominant historical package for + UNIX manuals. + It is small, ISO C, ISC-licensed, and quite fast. +

+

+ The tool set features mandoc, + based on the libmandoc validating compiler, + to format output for UNIX terminals (with + support for wide-character locales), XHTML, HTML, PostScript, and PDF. + It also includes preconv, for recoding multibyte manuals; + demandoc, for emitting only text parts of manuals; + mandocdb, for indexing manuals; and + apropos, whatis, and + man.cgi (via catman) for semantic search of manual content. +

+

+ mdocml has predominantly been developed on OpenBSD + and is both an OpenBSD + and a BSD.lv project. + We strive to support all interested free operating systems, in particular + DragonFly, + NetBSD, + FreeBSD, + Minix 3, + and GNU/Linux, + as well as all systems running the pkgsrc portable package build system. + All of these projects have helped to make mdocml better, by providing feedback and advice, + bug reports, and patches. +

+

+ Disambiguation: mdocml is often referred to by its installed binary, mandoc. +

+

+ Sources +

+

+ mdocml is in ISO C99 and should build and run on any modern system; however, you'll need sqlite3 to build apropos (links to whatis), + man.cgi, and mandocdb. + To build and install into /usr/local/, just run make install. + Be careful: the preconv, apropos, and whatis binary names are usually taken by existing utilities. +

+

+ Downstream +

+

+ Several systems come bundled with mdocml utilities. + If your system does not appear below, the maintainers have not contacted me and it should not be considered + official, so please contact us if you plan on maintaining a downstream version! +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DragonFly BSD + contrib/mdocml (1.12.3 sources) + lib/libmandoc + usr.bin/mandoc (build system) +
FreeBSD 10.0, -CURRENT + contrib/mdocml (1.12.1 sources) + usr.bin/mandoc (build system) +
FreeBSD 9.x, 8.x + ports/textproc/mdocml (1.12.2 port) +
NetBSD + src/external/bsd/mdocml (1.12.1 sources plus patches and build system) +
OpenBSD + src/usr.bin/mandoc (1.12.3 sources under active development and build system) +
pkgsrc + textproc/mdocml (1.12.3 port) +
Minix3 + external/bsd/mdocml (1.10.9 sources and build system) +
Alpine Linux + aports/main/mdocml (1.12.2 port) +
+

+ Documentation +

+

+ These manuals are generated automatically and refer to the current release. + They are the authoritative documentation for the mdocml system. +

-

- mdocml is a suite of tools compiling -mdoc, the - roff macro package of choice for BSD manual pages, and -man, the - predominant historical package for UNIX manuals. The mission of mdocml is to - deprecate groff, the GNU troff - implementation, for displaying -mdoc pages whilst providing token support for -man. -

- -

- Why? groff amounts to over 5 MB of source code, most of which is C++ and all of which is GPL. It runs - slowly, produces uncertain output, and varies in operation from system to system. mdocml strives to fix - this (respectively small, C, ISC-licensed, fast and regular). -

- -

- mdocml consists of the libmdoc, libman, and libroff validating compilers; and mandoc, which interfaces with the compiler libraries to format output for UNIX - terminals, XHTML, HTML, and PostScript. mdocml is a BSD.lv project. -

- -

- Disambiguation: mdocml is often referred to by its installed binary, - mandoc. -

-
-

- SOURCES -

- -

- mdocml is architecture- and system-neutral, written in plain-old C. The most - current version is @VERSION@, dated @VDATE@. A full - ChangeLog (txt) is written with each release. -

- -

- Current -

- - - - - - - - - - - - - - -
Source archive - /snapshots/mdocml.tar.gz - (md5) -
Online source - cvsweb -
- -

- Downstream -

- - - - - - - - - - - - - - - - - - - - - - -
DragonFly BSD - usr.bin/mandoc -
FreeBSD - ports/textproc/mdocml -
NetBSD - src/external/bsd/mdocml -
OpenBSD - src/usr.bin/mandoc -
- -

- Historical -

- - - - - - - - - - -
Source archive - /snapshots/ -
-
-

- DOCUMENTATION -

- -

- These manuals are generated automatically and refer to the current snapshot. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
man(3) - man macro compiler library - - (text | postscript) - -
man(7) - man language reference - - (text | postscript) - -
mandoc(1) - format and display UNIX manuals - - (text | postscript) - -
mandoc_char(7) - mandoc special characters - - (text | postscript) - -
mdoc(3) - mdoc macro compiler library - - (text | postscript) - -
mdoc(7) - mdoc language reference - - (text | postscript) - -
roff(3) - roff macro compiler library - - (text | postscript) - -
roff(7) - roff-mandoc language reference - - (text | postscript) - -
- -

- See Writing UNIX Manual Pages for a general - introduction to manpages and mdoc. -

-
-

- CONTACT -

- -

- Please use the mailing lists for bug-reports, patches, questions, etc. Beyond that, contact - Kristaps at kris...@bsd.lv. -

- -

- You may also subscribe to several mailing lists (these require subscription, which is - moderated). An archive is not yet available on-line, although you may request one once - subscribed. -

- - - - - - - - - - - - - - - - - - -
- disc...@mdocml.bsd.lv - bug-reports, general questions, and announcements
- tec...@mdocml.bsd.lv - patches and system discussions
- sou...@mdocml.bsd.lv - source commit messages
-
-

- NEWS -

-
-

- 12-07-2010: - version 1.10.4 -

-

- Lots of features developed during both Summer of Code and the - OpenBSD c2k10 hackathon: -

-
    -
  • minimal ds roff symbols are supported
  • -
  • Bk mdoc support
  • -
  • beautified SYNOPSIS section output
  • -
  • variable font-width and paper-size support in mandoc - -Tps output
  • -
  • acceptance of scope-block breakage in mdoc
  • -
  • clarify error message status
  • -
  • many minor bug-fixes and formatting issues resolved
  • -
-
-
-

- 19-06-2010: - version 1.10.2 -

-

- Small release featuring text-decoration in -Tps output, a few - minor relaxations of errors, and some optimisations. -

-
-
-

- 07-06-2010: - version 1.10.1 -

-

- This primarily focusses on the Bl and It macros described in mdoc. Multi-line column support is now fully compatible with - groff, as are implicit list entries for columns. Removed manuals.7 in favour of http://manpages.bsd.lv. The way we - handle the SYNOPSIS section (see the SYNOPSIS documentation in MANUAL STRUCTURE) has also - been considerably simplified compared to groff's method. Furthermore, the -Owidth=width output option has been added to -Tascii (see mandoc). Lastly, initial - PostScript output has been added with the -Tps option to mandoc. It's brutally simple at the moment: fixed-font, with - no font decorations. -

-
-
-

- 29-05-2010: - version 1.10.0 -

-

- Release consisting of the results from the m2k10 hackathon and up-merge from OpenBSD. - This requires a significant note of thanks to Ingo Schwarze (OpenBSD) and Joerg - Sonnenberger (NetBSD) for their hard work, and again to Joerg for hosting m2k10. - Highlights (mostly cribbed from Ingo's m2k10 report) follow in no particular order: -

-
    -
  • a libroff preprocessor in front of libmdoc and libman stripping out - roff instructions;
  • -
  • end-of-sentence (EOS) detection in free-form and macro lines;
  • -
  • correct handling of tab-separated columnar lists in -mdoc;
  • -
  • improved main calling routines to optionally use mmap() for better - performance;
  • -
  • cleaned up exiting when invoked as -Tlint or over - multiple files with -fign-errors;
  • -
  • error and warning message handling re-written to be unified for libroff, libmdoc, and libman;
  • -
  • handling of badly-nested explicit-scoped macros;
  • -
  • improved free-form text parsing in libman and libmdoc;
  • -
  • significant GNU troff compatibility improvements in -Tascii, largely in terms of spacing;
  • -
  • a regression framework for making sure the many fragilities of GNU troff - aren't trampled in subsequent work;
  • -
  • support for -Tascii breaking at hyphens - encountered in free-form text;
  • -
  • and many more minor fixes and improvements (no really, consult cvsweb and see - for yourself!).
  • -
-
-

- See cvsweb for - historical notes. -

-
-
- Copyright © 2008–2010 Kristaps Dzonsons, $Date: 2010/07/21 10:10:24 $ -
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
apropos(1) + search the manual page database +
demandoc(1) + emit only text of UNIX manuals +
mandoc(1) + format and display UNIX manuals +
preconv(1) + recode multibyte UNIX manuals +
mandoc(3) + mandoc macro compiler library +
tbl(3) + roff table parser library for mandoc +
eqn(7) + eqn-mandoc language reference +
man(7) + man language reference +
man.cgi(7) + cgi for manpage query and display +
mandoc_char(7) + mandoc special characters +
mdoc(7) + mdoc language reference +
roff(7) + roff-mandoc language reference +
tbl(7) + tbl-mandoc language reference +
mandocdb(8) + index UNIX manuals +
+

+ Supplementary Information +

+ +

+ Contact +

+

+ Use the mailing lists for bug-reports, patches, questions, etc. Please check the + TODO for known issues + before posting. All lists are subscription-only: send a blank e-mail to the listed address to subscribe. Beyond that, + contact Kristaps at kris...@bsd.lv. Archives are available at Gmane. +

+ + + + + + + + + + + + + + + + + +
+ disc...@mdocml.bsd.lv + + bug-reports, general questions, and announcements +
+ tec...@mdocml.bsd.lv + + patches and system discussions +
+ sou...@mdocml.bsd.lv + + source commit messages +
+

+ News +

+

+ xx-xx-2014: version 1.13.0 +

+

+ The mandocdb tools (mandocdb, apropos (absorbing whatis), and man.cgi) have been re-written to + use sqlite3 as a database. +

+

+ 31-12-2013: version 1.12.3 +

+

+ In the mdoc(7) SYNOPSIS, line breaks and hanging indentation + now work correctly for .Fo/.Fa/.Fc and .Fn blocks. + Thanks to Franco Fichtner for doing part of the work. +

+

+ The mdoc(7) .Bk macro got some addititonal bugfixes. +

+

+ In mdoc(7) macro arguments, double quotes can now be quoted + by doubling them, just like in man(7). + Thanks to Tsugutomo ENAMI for the patch. +

+

+ At the end of man(7) macro lines, end-of-sentence spacing + now works. Thanks to Franco Fichtner for the patch. +

+

+ For backward compatibility, the man(7) parser now supports the + man-ext .UR/.UE (uniform resource identifier) block macros. +

+

+ The man(7) parser now handles closing blocks that are not open + more gracefully. +

+

+ The man(7) parser now ignores blank lines right after .SH and .SS. +

+

+ In the man(7) formatter, reset indentation when leaving a block, + not just when entering the next one. +

+

+ The roff(7) .nr request now supports incrementing and decrementing + number registers and stops parsing the number right before the first non-digit character. +

+

+ The roff(7) parser now supports the alternative escape sequence + syntax \C'uXXXX' for Unicode characters. +

+

+ The roff(7) parser now parses and ignores the .fam (font family) + and .hw (hyphenation points) requests and the \d and \u escape sequences. +

+

+ The roff(7) manual got a new ESCAPE SEQUENCE REFERENCE. +

+

+ 05-10-2013: version 1.12.2 +

+

+ The mdoc(7) to man(7) converter, + to be called as mandoc -Tman, is now fully functional. +

+

+ The mandoc(1) utility now supports the -Ios (default operating system) + input option, and the -Tutf8 output mode now actually works. +

+

+ The mandocdb(8) utility no longer truncates existing databases when starting to build new ones, + but only replaces them when the build actually succeeds. +

+

+ The man(7) parser now supports the PD macro (paragraph distance), + and (for GNU man-ext compatibility only) EX (example block) and EE (example end). + Plus several bugfixes regarding indentation, line breaks, and vertical spacing, + and regarding RS following TP. +

+

+ The roff(7) parser now supports the \f(BI (bold+italic) font escape, + the \z (zero cursor advance) escape and the cc (change control character) + and it (input line trap) requests. + Plus bugfixes regarding the \t (tab) escape, nested escape sequences, and conditional requests. +

+

+ In mdoc(7), several bugs were fixed related to UTF-8 output of quoting enclosures, + delimiter handling, list indentation and horizontal and vertical spacing, + formatting of the Lk, %U, and %C macros, + plus some bugfixes related to the handling of syntax errors like badly nested font blocks, + stray Ta macros outside column lists, unterminated It Xo blocks, + and non-text children of Nm blocks. +

+

+ In tbl(7), the width of horizontal spans and the vertical spacing around tables was corrected, + and in man(7) files, a crash was fixed that was triggered by some particular unclosed T{ macros. +

+

+ For mandoc developers, we now provide a tbl(3) library manual and gmdiff, + a very small, very simplistic groff-versus-mandoc output comparison tool. +

+

+ History +

+ +

+ + Copyright © 2008–2011 + Kristaps Dzonsons, + © 2013 Ingo Schwarze, + $Date: 2013/12/31 17:47:17 $ + +