groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] Mission statement, second draft


From: Ingo Schwarze
Subject: Re: [Groff] Mission statement, second draft
Date: Tue, 18 Mar 2014 23:04:26 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Hi Peter,

Peter Schaffter wrote on Mon, Mar 17, 2014 at 05:44:21PM -0400:

> Here's the second draft of the mission statement,

It is clearly maturing.

[...]
> The section dealing with manpages had me hemming and hawing for
> days.  The original wording wasn't vague; it stated the matter
> clearly--the intention to improve the semantic usefulness of
> manpage markup.  Details of strategy/implementation were omitted
> because the issue is a minefield, and part of our mission will be
> to navigate through it gracefully.  Whether, as Eric proposes, we
> tinker with man(7) so it plays nice with DocLifter, or, as Ingo
> proposes, we advocate a migration to mdoc, the goal remains the
> same: semantically clearer manpage markup for easier conversion to
> xml.

Thanks for providing this summary; it helped me see more clearly.

Actually, there are four questions that are somewhat separate
but also influence each other a bit:

 (1) What are we to do with man(7)?
     Eric proposes to carefully evolve it to introduce a small amount
     of semantic markup.
     I propose to provide continuing support for backward compatibility
     and refrain from adding new features.

 (2) What are we to do with mdoc(7)?
     I propose to carefully maintain and polish it, of course without
     any substantial upheaval.
     If i understand Eric correctly, he is largely indifferent
     regarding mdoc(7).

 (3) What is our recommendation for manual writers, right now?
     I propose to tell them:  If they want semantic markup right
     now, they can switch to mdoc(7), lightweight tools are ready
     for use.
     If i understand Eric correctly, he is telling them to
     continue writing their manuals with purely presentational
     man(7) markup for now and just rely on doclifter.

 (4) What is our vision for manual markup in, say, five years?
     Eric says, tell people to use new man-ext(7) features to be
     developed in the meantime.
     I say, just the same as today.  If people don't care that much
     about semantic markup or don't mind heavy toolchains, they can
     leave their existing stuff in man(7) and use doclifter.  If
     they do care, they can switch to mdoc(7) and use much simpler
     tools, just as today.

Now, items (3) and (4) really need no decision in a groff mission
statement.  In item (2), i sense little potential for conflict.
The fix is with item (1), really.

What are the consequences of implementing Eric's plan regarding (1)?

 (1a) Whatever we do in groff_man(7), i have to re-implement it
      in mandoc(1).  That will burn some of my time, and i don't
      relish the idea, but it's not a huge problem for me, either.
      mandoc(1) already supports a couple of man-ext(7) macros,
      .EX .EE .OP .UR .UE.  Only .MT .ME .SY .YS .TQ are missing,
      simply because i never encountered them in any real-world
      manual so far.  Usually, macros of Eric's design have been
      very easy to implement; well, .SY may be slightly tricky,
      but not that much worse than .TP, i guess.

 (1b) Whether or not we advertise new man(7) features, some authors
      will inevitably start using them, part of them *NOT* being
      aware that these are not portable.  As long as the end-users
      run the software on platforms having groff(1) or mandoc(1),
      that's not a problem.  However, users running on platforms
      having neither groff nor mandoc will suffer because these
      documents will misformat.

That said, i'm not happy with a mission statement promoting man(7)
feature additions, and i don't see the point, but i can grudgingly
live with it.

[...]
> GROFF MISSION STATEMENT, 2014, 2nd draft
> 
> As the most widely-deployed implementation of troff in use today,
> GNU troff (groff) holds an important place in the Unix universe.
> Along with TeX, it plays a leading role in the development of free
> typesetting software for Unix systems.  While maintaining backward
> compatibility, it continues to evolve as a sophisticated typesetting
> system with the advantages of small size, portability, and speed.
> 
> Future groff development will focus on these areas:
> 
> - improvements to the backend
> - active development of general-purpose frontends
> - the man(7) macros

By your own argument (4) above, "I favour active development of
both, letting evolutionary principles determine which is the more
fit for an xml-based ecosystem", you might wish to say here:

 - the man(7) and mdoc(7) macros

Or, if you prefer less technical wording:

 - ongoing development of manual page frontends

or something similar.

[...]
> The man(7) macros

Following your argument (4) above, you might wish to say something like

  Manual page macros

instead, which would also make the subtitles more uniform.

> The need for Unix manuals to render cleanly to multiple output media
> favours the use of structural rather than presentational markup, but
> the classical, widely-used man(7) macros are largely presentational.

That is a very good paragraph.

> Considerable work has already gone into man(7) => xml conversion
> (DocLifter); there remains enhancing man(7) itself to assist with
> the process.  The goal is to decouple the macros as much as possible
> from low-level troff requests and semantically enrich the markup
> *while preserving backward compatibility.*

Here, you might wish to add something like:

  The mdoc(7) macro language already provides mostly semantical
  markup, and mature tools for direct conversion to CSS-enabled
  HTML and XHTML are available (mandoc); the language will need
  ongoing maintenance and sparingly applied, careful improvements
  to simplify some unnecessary complications and fill a small number
  of functional gaps.  Development should ideally proceed in lock-step
  with mandoc(1).

Yours,
  Ingo

> In all areas of future development, backward compatibility will
> remain a top priority, as will avoiding feature-bloat and increased
> overheads.  Groff's viability and vitality rest as much on these as
> on forward-looking development.
> 
> Finally, it is hoped that users of and contributors to groff will
> promote its use, providing unobtrusive advocacy to encourage more
> widespread adoption of the program, thereby increasing the pool of
> potential contributors and developers.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]