tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
* Implicit Pp in HTML mode
@ 2019-06-13  7:26 Anthony J. Bentley
  2019-09-05 14:59 ` Ingo Schwarze
  0 siblings, 1 reply; 2+ messages in thread
From: Anthony J. Bentley @ 2019-06-13  7:26 UTC (permalink / raw)
  To: tech

Hi,

It's common in mdoc(7) to leave out a Pp immediately after Sh:

.Sh DESCRIPTION
For each operand that names a

When mandoc(1) converts this to HTML, it doesn't add a <p> tag in front.
Although this is not a validation error, it does mean the resulting DOM
is not what's expected.

If you add "p { color: red; }" to the stylesheet, it's immediately clear
that the first paragraph of a section is not and cannot be styled like
the rest, because there's nothing telling the browser that it's a
paragraph in the first place. Because it is semantically a paragraph,
it should be wrapped in <p> in HTML output.

-- 
Anthony J. Bentley
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Implicit Pp in HTML mode
  2019-06-13  7:26 Implicit Pp in HTML mode Anthony J. Bentley
@ 2019-09-05 14:59 ` Ingo Schwarze
  0 siblings, 0 replies; 2+ messages in thread
From: Ingo Schwarze @ 2019-09-05 14:59 UTC (permalink / raw)
  To: Anthony J. Bentley; +Cc: tech

Hi Anthony,

Anthony J. Bentley wrote on Thu, Jun 13, 2019 at 01:26:07AM -0600:

> It's common in mdoc(7) to leave out a Pp immediately after Sh:
> 
> .Sh DESCRIPTION
> For each operand that names a
> 
> When mandoc(1) converts this to HTML, it doesn't add a <p> tag in front.
> Although this is not a validation error, it does mean the resulting DOM
> is not what's expected.
> 
> If you add "p { color: red; }" to the stylesheet, it's immediately clear
> that the first paragraph of a section is not and cannot be styled like
> the rest, because there's nothing telling the browser that it's a
> paragraph in the first place. Because it is semantically a paragraph,
> it should be wrapped in <p> in HTML output.

I believe this issue is now fixed in CVS HEAD.
The CVS HEAD version is also running on man.openbsd.org.
So testing is now welcome.

Getting it done took a bit longer because even though the crucial
commit touched only a few lines in in html.c, it required several
preparations in various places and figuring out how to put all the
pieces together was rather tricky, as it usually is when translating
between languages using significantly different paradigms - and yes,
how mdoc(7), man(7), and HTML think about paragraphs is very different.

Note that the current solution goes a bit further than Anthony
suggested.  It doesn't merely add <p> before text at the beginning
of sections, but also before phrasing elements at this point, and
also before text and phrasing elements after top-level flow content -
for example, after top-level .El.

All the same, it may still not be perfect.  For example, if there
is multi-paragraph text in the body of a list item, the first
paragraph still won't get a <p>.  Clearly, putting <p> inside every
<li> and <dd> would be excessive because many list item bodies only
contain single words, not whole paragraphs.  Maybe a <p> should be
inserted at the beginning of non-compact list item bodies that
contain at least one explicit .Pp, or something similar.  But i
didn't do that yet such that we can first watch the dust settle,
then maybe advance another step.

There may be more cases where additional automatic <p> elements
might make sense inside specific flow containers.

Please tell me if you encounter such cases that matter in practice.

Yours,
  Ingo
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-09-05 14:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-13  7:26 Implicit Pp in HTML mode Anthony J. Bentley
2019-09-05 14:59 ` Ingo Schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).