tech@mandoc.bsd.lv
 help / color / Atom feed
From: Ingo Schwarze <schwarze@usta.de>
To: "Anthony J. Bentley" <anthony@anjbe.name>
Cc: tech@mandoc.bsd.lv
Subject: Re: Implicit Pp in HTML mode
Date: Thu, 5 Sep 2019 16:59:26 +0200
Message-ID: <20190905145926.GB69022@athene.usta.de> (raw)
In-Reply-To: <52570.1560410767@desktop.ajb.soy>

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

      reply index

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-13  7:26 Anthony J. Bentley
2019-09-05 14:59 ` Ingo Schwarze [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190905145926.GB69022@athene.usta.de \
    --to=schwarze@usta.de \
    --cc=anthony@anjbe.name \
    --cc=tech@mandoc.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

tech@mandoc.bsd.lv

Archives are clonable: git clone --mirror http://inbox.vuxu.org/mandoc-tech

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.mandoc.tech


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git