PHD renders <para> as a <p> tag. This is problematic because in HTML
the <p>tag cannot contain all sorts of things that a DocBook
<para> can, most notably lists. The parameters and see also sections of
every page have a <para> wrapped around the list. Since the <p> tag cannot
contain a list, Chrome and others will 'fix' the markup by ending the
<p>tag and starting it up again after the list, like so:

<div class="refsect1 seealso" id="refsect1-function.money-format-seealso">
<h3 class="title">See Also<a class="genanchor"
href="#refsect1-function.money-format-seealso"> ΒΆ</a></h3> <p class="para">
</p>
<ul class="simplelist"> <li class="member"><span
class="function"><b>setlocale()</b></span></li> <li class="member"><span
class="function"><b>sscanf()</b></span></li> <li class="member"><span
class="function"><b>sprintf()</b></span></li> <li class="member"><span
class="function"><b>printf()</b></span></li> <li class="member"><span
class="function"><b>number_format()</b></span></li> </ul> <p></p> </div>

The last <p></p> tag is harmless because it is empty. However, the <p
class="para"> tag is not considered empty. Most of the time this tag is
only whitespace, but not always. Since sometimes there is content we cannot
just cover up the gap caused by the <p> tag. This is what we are currently
doing on beta and has resulted in bug
#65109<https://bugs.php.net/bug.php?id=65109>
.

Originally I was going to remove the <para> tags from the documentation
when they only contain lists, but given how many there this task is nearly
impossible. Even then someone could always add a new one because it is
valid DocBook markup. This method would be difficult to implement and
equally hard to maintain.

We have a few options:

   1. Render <para> and <formalpara> as a <div>. This is probably the
   quickest solution but not very semantic.
   2. When we render a list we determine if we need to close a <p> tag and
   reopen it afterwards. Then, if the resulting <p> tags only contain white
   space we remove them. This is probably the harder solution but keeps HTML
   semantics.

I currently don't know anything about PHD. I'm willing to learn and work on
this, but my understanding is that before I make any changes that I am
supposed to mail this list to get input.

Reply via email to