Remarkup: Correctly render inline embed layout
Summary:
The generated HTML is like `<p>some text <div …>…</div> more text</p>`, and HTML `<p/>` tags may not contain block content like `<div/>` tags. Browsers actually parse this as if it was `<p>some text </p><div …>…</div> more text<p></p>` (sic).
The layout CSS class already has `display: inline` set, but this is not sufficient. Browser's HTML parser doesn't care what CSS rules will be applied, it only deals with the meanings of tags.
Fixes T7201.
Test Plan:
Verify that the following displays the image inline:
`some text {Fnnn,layout=inline} more text`
Reviewers: chad, epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Projects: #remarkup
Maniphest Tasks: T7201
Differential Revision: https://secure.phabricator.com/D11706
This commit is contained in:
@@ -160,7 +160,7 @@ final class PhabricatorEmbedFileRemarkupRule
|
||||
}
|
||||
|
||||
return phutil_tag(
|
||||
'div',
|
||||
($options['layout'] == 'inline' ? 'span' : 'div'),
|
||||
array(
|
||||
'class' => $layout_class,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user