Annotation of wikisrc/projects/project/troff.mdwn, revision 1.4

1.1       jmmv        1: [[!template id=project
                      2: 
                      3: title="BSD licensed troff/nroff replacement"
                      4: 
                      5: contact="""
                      6: [tech-userlevel](mailto:tech-userlevel@NetBSD.org)
                      7: """
                      8: 
                      9: category="userland"
1.3       dholland   10: difficulty="hard"
1.1       jmmv       11: 
                     12: description="""
1.4     ! dholland   13: 
        !            14: While we now have mandoc for handling man pages, we currently still
        !            15: need groff in the tree to handle miscellaneous docs that are not man
        !            16: pages.
        !            17: 
        !            18: This is itself an inadequate solution as the groff we have does not
        !            19: support PDF output (which in this day and age is highly desirable)
        !            20: ... and while newer groff does support PDF output it does so via a
        !            21: Perl script. Also, importing a newer groff is problematic for assorted
        !            22: other reasons.
        !            23: 
        !            24: We need a way to typeset miscellaneous articles that we can import
        !            25: into base and that ideally is BSD licensed. (And that can produce
        !            26: PDFs.) Currently it looks like there are three decent ways forward:
        !            27: 
        !            28: * Design a new roff macro package that's comparable to mdoc (e.g.
        !            29: supports semantic markup) but is for miscellaneous articles rather
        !            30: than man pages, then teach mandoc to handle it.
        !            31: 
        !            32: * Design a new set of markup tags comparable to mdoc (e.g. supports
        !            33: semantic markup) but for miscellaneous articles, and a different less
        !            34: ratty syntax for it, then teach mandoc to handle this.
        !            35: 
        !            36: * Design a new set of markup tags comparable to mdoc (e.g. supports
        !            37: semantic markup) but for miscellaneous articles, and a different less
        !            38: ratty syntax for it, and write a new program akin to mandoc to handle
        !            39: it.
        !            40: 
        !            41: These are all difficult and a lot of work, and in the case of new
        !            42: syntax are bound to cause a lot of shouting and stamping. Also, many
        !            43: of the miscellaneous documents use various roff preprocessors and it
        !            44: isn't clear how much of this mandoc can handle.
        !            45: 
        !            46: None of these options is particularly appealing.
        !            47: 
        !            48: There are also some less decent ways forward:
        !            49: 
        !            50: * Pick one of the existing roff macro packages for miscellaneous
        !            51: articles (ms, me, ...) and teach mandoc to handle it. Unfortunately
        !            52: all of these macro packages are pretty ratty, they're underpowered
        !            53: compared to mdoc, and none of them support semantic markup.
        !            54: 
        !            55: * Track down one of the other older roff implementations, that are now
        !            56: probably more or less free (e.g. ditroff), then stick to the existing
        !            57: roff macro packages as above. In addition to the drawbacks cited
        !            58: above, any of these programs are likely to be old nasty code that
        !            59: needs a lot of work.
        !            60: 
        !            61: * Teach the groff we have how to emit PDFs, then stick to the existing
        !            62: roff macro packages as above. In addition to the drawbacks cited
        !            63: above, this will likely be pretty nasty work and it's still got the
        !            64: wrong license.
        !            65: 
        !            66: * Rewrite groff as BSD-licensed code and provide support for
        !            67: generating PDFs, then stick to the existing roff macro packages as
        !            68: above. In addition to the drawbacks cited above, this is a horrific
        !            69: amount of work.
        !            70: 
        !            71: * Try to make something else do what we want. Unfortunately, TeX is a
        !            72: nonstarter and the only other halfway realistic candidate is lout...
        !            73: which is GPLv3 and at least at casual inspection looks like a horrible
        !            74: mess of its own.
        !            75: 
        !            76: These options are even less appealing.
        !            77: 
        !            78: Maybe someone can think of a better idea. There are lots of choices if
        !            79: we give up on typeset output, but that doesn't seem like a good plan
        !            80: either.
        !            81: 
1.1       jmmv       82: """
                     83: ]]

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