Mixin 嵌套在段落中

Mixin nested in paragraph

我目前正在尝试将图形放入一段文本中,但是我 运行 遇到了以下问题:

mixin figure
  figure(style="float:right" width="50%")
    img(src="image.jpeg" alt="Alttext")
    figcaption Caption

block content
  div(class="content-width")
    h1 Heading
    p.
      #[+figure]
      Lorem ipsum dolor sit amet, 

评估为

<div class="content-width">
<h1>Heading</h1>
<p></p>
<figure>[...]</figure>
Lorem ipsum dolor sit amet,

我本希望得到以下结果:

<div class="content-width">
<h1>Heading</h1>
<p>
<figure>[...]</figure>
Lorem ipsum dolor sit amet,
</p>

这种行为是否正确,我对 Pug 的使用有误吗?还是我遇到了错误?

编辑:

图形元素是块级元素,在 HTML 中不允许作为段落元素的子元素。您看到的输出很可能是浏览器试图通过在遇到 figure 元素时立即关闭未闭合的段落标记来更正无效的 HTML。


上一个答案:

#[] 语法严格适用于 tag interpolation,不适用于混入。

相反,在 mixin 之后使用dot block 语法,像这样—

block content
  div(class="content-width")
    h1 Heading
    p
      +figure
      .
        Lorem ipsum dolor sit amet, 

——或者使用 piped text 语法,像这样:

block content
  div(class="content-width")
    h1 Heading
    p
      +figure
      | Lorem ipsum dolor sit amet,