groff
[Top][All Lists]
Advanced

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

Re: [Groff] Nesting font macros in man pages


From: Steffen Nurpmeso
Subject: Re: [Groff] Nesting font macros in man pages
Date: Tue, 25 Apr 2017 20:19:21 +0200
User-agent: s-nail v14.9.0-pre4-20-g5500e891

Ingo Schwarze <address@hidden> wrote:
 |G. Branden Robinson wrote on Tue, Apr 25, 2017 at 07:14:58AM -0400:
 ...
 |> If that means a new macro, I'm fine with that.
 ...
 |For man(7), introducing new macros would be worse.  There, it would
 |utterly break portability because other implementations do exist,

Now i really oppose that.  That is utterly shit, Ingo.  You can do
whatever you want, except for "security sandbox" restrictions
(iirc some commands don't work).  You could use the painting
commands if the output works fine on the tty even.  You could
dynamically generate parts of the manual page.  Most people don't,
but they could be almost completely free if they want to, and
i for one consider this as something important.

Of course such things won't work in mandoc then, but 99.9 percent
of all manuals will do just fine, and much, much faster than roff
will ever be able to serve.  While you complain about the somewhat
broken grohtml, the HTML output of mandoc used repeated
per-paragraph style directives and a CSS file, which caused
enormous bloat, last time i tried.

  ...
 |I'm a strong believer in incremental software development.  But
 |there are exceptional cases where incremental improvements are not
 |viable, in particular when the basic paradigm employed is busted
 |and the language is a dense tangle of historically cemented layering
 |violations.  The man(7) language is one of these cases.  Fortunately,
 |it has been obsolete for 25 years now, and mdoc(7) is mature and

Oh, come on Ingo.  man is obsolete for 25 years?  In the BSD
world, of which i feel part of for almost fifteen years myself,
but that is not the motor of the software world, by far.  Of
course you can build a car with only stolen parts.  Still, those
have to come from somewhere.

Btw., if you want really clean man(7) you should point people to
the really good guys, e.g., the plan9port manuals are a phantastic
example of minimalistic and pure pages.

 |> My recommendation is to take the momentum an-ext has, however small, and
 |> press it:
 |> 
 |> a.  Add more macros to fit semantic needs and the hiding of lower-level
 |>     requests and escapes.
 |> b.  Hand-hold users to the nth degree with examples and recommended best
 |>     practices.
 |> c.  Show people a mapping from groff's "extended" man macro package to
 |>     mdoc, so that the route for switching over is clearly signposted.
 |
 |It seems to me that b) is fine, a) is very problematic because it
 |severely harms portability, and c) may or may not help to convince
 |people.  I'm not sure the intermediate step of reinventing man(7)
 |as a semantic language will make the transition easier.  Why should
 |people have to learn a new man(7) language in between, in addition
 |to the old man(7) and in addition to mdoc(7)?

Even though still without voice, a) is in no way problematic if
the original roff command set is used and no wild and funny
programming sessions lead to mandoc incompatibilities.  b) is
fantastic, c) i don't really believe in, mdoc has quite some
similarities to brainfuck, things like

  .Op : Ns Fl c Ar cc-addr Ns \&:
or
  .Fl S Ar var Ns Op Ns = Ns Ar value Ns

are nice for teaching, but no one can really promote something
like this, can he.

And sometimes things have to be adjusted a bit so that things can
overall stay the same.  The roff system is a fantastic
achievement, and if at all possible i will use it until the day
i die.  I am looking forward for my thing.

--steffen



reply via email to

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