Diff for /wikisrc/projects/project/troff.mdwn between versions 1.3 and 1.4

version 1.3, 2014/02/27 08:41:03 version 1.4, 2014/02/27 09:04:43
Line 10  category="userland" Line 10  category="userland"
 difficulty="hard"  difficulty="hard"
   
 description="""  description="""
 Write a replacement for groff that is BSD licensed.  Earlier versions of BSD  
 UNIX had one, so maybe it could be revived from an earlier version of BSD UNIX,  While we now have mandoc for handling man pages, we currently still
 and updated to support newer groff-like features, at least enough to support our  need groff in the tree to handle miscellaneous docs that are not man
 current mandoc macros.  pages.
   
 Note: In March, 2009, there was some discussion regarding a  This is itself an inadequate solution as the groff we have does not
 [groff/-mandoc replacement](http://mdocml.bsd.lv/) on the  support PDF output (which in this day and age is highly desirable)
 [tech-userlevel](http://mail-index.NetBSD.org/tech-userlevel/2009/03/01/msg001766.html)  ... and while newer groff does support PDF output it does so via a
 mailing list.  Perl script. Also, importing a newer groff is problematic for assorted
   other reasons.
   
   We need a way to typeset miscellaneous articles that we can import
   into base and that ideally is BSD licensed. (And that can produce
   PDFs.) Currently it looks like there are three decent ways forward:
   
   * Design a new roff macro package that's comparable to mdoc (e.g.
   supports semantic markup) but is for miscellaneous articles rather
   than man pages, then teach mandoc to handle it.
   
   * Design a new set of markup tags comparable to mdoc (e.g. supports
   semantic markup) but for miscellaneous articles, and a different less
   ratty syntax for it, then teach mandoc to handle this.
   
   * Design a new set of markup tags comparable to mdoc (e.g. supports
   semantic markup) but for miscellaneous articles, and a different less
   ratty syntax for it, and write a new program akin to mandoc to handle
   it.
   
   These are all difficult and a lot of work, and in the case of new
   syntax are bound to cause a lot of shouting and stamping. Also, many
   of the miscellaneous documents use various roff preprocessors and it
   isn't clear how much of this mandoc can handle.
   
   None of these options is particularly appealing.
   
   There are also some less decent ways forward:
   
   * Pick one of the existing roff macro packages for miscellaneous
   articles (ms, me, ...) and teach mandoc to handle it. Unfortunately
   all of these macro packages are pretty ratty, they're underpowered
   compared to mdoc, and none of them support semantic markup.
   
   * Track down one of the other older roff implementations, that are now
   probably more or less free (e.g. ditroff), then stick to the existing
   roff macro packages as above. In addition to the drawbacks cited
   above, any of these programs are likely to be old nasty code that
   needs a lot of work.
   
   * Teach the groff we have how to emit PDFs, then stick to the existing
   roff macro packages as above. In addition to the drawbacks cited
   above, this will likely be pretty nasty work and it's still got the
   wrong license.
   
   * Rewrite groff as BSD-licensed code and provide support for
   generating PDFs, then stick to the existing roff macro packages as
   above. In addition to the drawbacks cited above, this is a horrific
   amount of work.
   
   * Try to make something else do what we want. Unfortunately, TeX is a
   nonstarter and the only other halfway realistic candidate is lout...
   which is GPLv3 and at least at casual inspection looks like a horrible
   mess of its own.
   
   These options are even less appealing.
   
   Maybe someone can think of a better idea. There are lots of choices if
   we give up on typeset output, but that doesn't seem like a good plan
   either.
   
 """  """
 ]]  ]]

Removed from v.1.3  
changed lines
  Added in v.1.4


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb