URL: <https://savannah.gnu.org/bugs/?68651>
Summary: [UPGRADE] redesign HTML production
Group: GNU roff
Submitter: gbranden
Submitted: Thu 27 Aug 2026 06:07:52 AM UTC
Category: General
Severity: 1 - Wish
Item Group: Feature change
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Unlocked
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Thu 27 Aug 2026 06:07:52 AM UTC By: G. Branden Robinson <gbranden>
Big, big project here.
I've managed to analyze it into 6 stages.
1. Enhance GNU _tbl_ to support direct production of HTML tables. This would
supplant a feature of the defunct project _troffcvt_. Because man pages are
the tail that wags _groff_'s typesetting dog, and because so many man pages
use _tbl_, I expect this task to deliver the biggest bang for the buck. While
important, the subsequent tasks pale in comparative impact.
2. Improve GNU _eqn_'s MathML output. This is the least of the tasks, in a
sense, because I perceive no major architectural changes being necessary here
at this time. But we need to add automated tests to validate output quality.
3. Enhance GNU _pic_ to be able to produce SVG directly, with an option, just
as it can already select groff or TeX output. GNU _plotutils_ can, reputedly,
already do this and I'm sure it's worth looking at as a reference
implementation, but I suspect at this time that it's worth "duplicating" that
effort inside GNU pic because we'll know things about the input stream that
_plotutils_ might not. For example, the values of _pic_'s global predefined
variables get no exposure in its output--by the time any output is produced,
such values are pure numbers that do not betray their parameterized origins.
4. With that done, there is no longer a reason to pre-render a
_grohtml_-destined document as PostScript and snip rectangles out of it for
conversion to raster images. Therefore, _pre-grohtml_ can be deleted. This
should be the "easiest" of the tasks, and yet a major milestone.
5. Revise all full-service macro packages as necessary to supply "hints"
reflecting HTML block structure via device extension commands.
6. Remove the MTSM machine from GNU _troff_. This is the most disruptive and
potentially uncomfortable change. I am personally convinced that the problem
of inferring, or constructing, sufficient context to create the block
structure that HTML requires from "raw" *roff's stream orientation is a
fundamentally insuperable problem. By doing step 5 first, we provide a means
to pivot away from the MTSM experiment, which has unfortunately mired
_grohtml_ in self-described "beta status" for 25 years.
[https://lists.gnu.org/archive/html/groff/2026-08/msg00041.html I vaguely
suggested to Ingo on the _groff_ list that this work would take 2½ years.]
Let's see how it goes.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?68651>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
