pretext
pretext copied to clipboard
Add .logical to an auto-inserted div.para if it contains a block element
Currently when
<ul>
<li>
<p><ul><li>foo</li></ul></p>
</li>
</ul>
is processed, the resulting p turns into a div.para.logical. However,
<ul>
<li>
<ul><li>foo</li></ul>
</li>
</ul>
gets an auto-inserted p which turns to a div.para even though it contains a block element. This PR makes the behavior of the auto-inserted p consistent.
Thanks @siefkenj. Good catch. It'll be a few days before I can merge.
@davidfarmer: do you expect CSS ramifications? Would a beta be useful or necessary?
OK, put this through testing on the sample article.
- Only changes seem to be when the
licontent is acd. Which may illustrate a shortage of examples. - Nothing harmful for CSS to fix, it appears.
- I believe an
ol,ul,dlcannot appear as a child if anliwithout an interveningp. Or said differently, the list structure must be a child of ap. So could be removed from the@test?
Shouldn't these "unstructured" li be exploded into several HTML p? I wonder if the pre-processor should just wrap the content of an "unstrcuctured" li into a p and then it will be handled appropriately in all conversions (especially HTML)?
I am not sure what @test refers to. And since we do not use any <p> tags anywhere in HTML, I don't think exploding is necessary.
Yes, moving this step to the preprocessor would be an option (that's what I do in the JS version. I first add a <p> around anything that is not allowed as a direct child via the schema; of course you'll want to take special care for the <md>/<m> tags, as you pointed out to me)
I am not sure what @test refers to
<xsl:if test="ol|ul|dl|me|men|md|mdn|cd">
I don't think ol|ul|dl are necessary as it never happens this way.
Are you saying that the case
<ul>
<li>
<ul><li>foo</li></ul>
</li>
</ul>
is handled elsewhere in the code?
Your interior ul has to live in a p, according to the schema. Who knows how permissive the conversions are.
Some exceptions, such as GOAL-LIKE, presumes an interior list not in a p.
The ul is current auto-wrapped in a p as per line 5919.