URL:
  <https://savannah.gnu.org/bugs/?66837>

                 Summary: hyphen inhibitor nodes should suppress hyphenation
in HTML output
                   Group: GNU roff
               Submitter: gbranden
               Submitted: Mon 24 Feb 2025 04:28:52 AM UTC
                Category: General
                Severity: 3 - Normal
              Item Group: Rendering/Cosmetics
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Mon 24 Feb 2025 04:28:52 AM UTC By: G. Branden Robinson <gbranden>
Resolving this issue may involve _troff_, _post-grohtml_, or both.

Benno Schulenberg pointed out that use of a hyphenation control escape
sequence isn't completely effective when producing HTML.

https://lists.gnu.org/archive/html/groff/2025-02/msg00074.html

I [mused https://lists.gnu.org/archive/html/groff/2025-02/msg00116.html]:


With other output formats we have control
over breaking decisions.  With (X)HTML specifically, we don't.  Not
without taking steps to seize it, which as I understand it can't happen
without throwing CSS at the problem.  Which we probably should do, to
avoid setting 200 letters per line and similar.

In the shorter run, wiring up an HTML "<nobr>" element may be the thing
to do.  I'll have to check my copy of HTML 5 to see if that's not
deprecated or if I need to use a span and CSS as you suggest.

But wiring up to what?  Well, let's give the new `pline` request some
exercise.

$ printf '\\%%\\-\\-restricted\n.pline\n' | groff -a
<beginning of page>
{type: line_start_node, diversion level: 0},
{type: hyphen_inhibitor_node, diversion level: 0},
{type: glyph_node, character: "\-", diversion level: 0},
{type: glyph_node, character: "\-", diversion level: 0},
{type: glyph_node, character: "r", diversion level: 0},
{type: glyph_node, character: "e", diversion level: 0},
{type: glyph_node, character: "s", diversion level: 0},
{type: glyph_node, character: "t", diversion level: 0},
{type: glyph_node, character: "r", diversion level: 0},
{type: glyph_node, character: "i", diversion level: 0},
{type: glyph_node, character: "c", diversion level: 0},
{type: glyph_node, character: "t", diversion level: 0},
{type: glyph_node, character: "e", diversion level: 0},
{type: glyph_node, character: "d", diversion level: 0}
<-><->restricted

The hyphen inhibitor node, of course!  I think I know where to poke my
fingers to attack this problem, but we'll _also_ need to inject a
closing element at the point hyphenation becomes uninhibited again, and
I'm much less certain where in grohtml that can be done.









    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?66837>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to