Twig 只是一个常规的块与细枝重用-如何?

Twig 只是一个常规的块与细枝重用-如何?,twig,Twig,假设我们有一个块模板,我们想在一个页面上多次使用它。每次我们需要做三件事: 在顶层设置一个类 定名 添加一些内容 如何在细枝上实现这一点 我知道宏,但它不接受内容。 我知道block,但它不接受参数 所以。。。如何以正常的方式做到这一点 因为我不知道怎么做,所以稍后我将使用一个虚构的结构“blockdef”和“blockuse”来演示这个任务(这是非常普通的) 假设我们有一个可爱的小树枝块模板: 块。细枝: {%blockdef myblock(类,标题)%} {{title}} {{con

假设我们有一个块模板,我们想在一个页面上多次使用它。每次我们需要做三件事:

  • 在顶层设置一个类
  • 定名
  • 添加一些内容
如何在细枝上实现这一点

我知道宏,但它不接受内容。 我知道block,但它不接受参数

所以。。。如何以正常的方式做到这一点

因为我不知道怎么做,所以稍后我将使用一个虚构的结构“blockdef”和“blockuse”来演示这个任务(这是非常普通的)

假设我们有一个可爱的小树枝块模板:

块。细枝:

{%blockdef myblock(类,标题)%}
{{title}}
{{content}}
{%endgoodblock%}
想这样使用它:

main.twig:

{%blockuse myblock('c1','Title1'}
第1区内容

{%endblockuse%} {%blockuse myblock('c2','Title2'%} 第2区内容

{%endblockuse%} {%blockuse myblock('c3','Title3'%} 第3区内容

{%endblockuse%}
有这样的吗

更新。例如,这是如何在Jade上解决的:

mixin myblock(cls, title)
  .block(class=cls)
    .inner
      .title= title
      .content
        block

+myblock('c1', 'Title1')
  p Block 1 content

+myblock('c2', 'Title2')
  p Block 2 content

+myblock('c3', 'Title3')
  p Block 3 content


您可以将
包含在
中:

{% include 'template.html' with {'class': 'class', 'title': 'title', 'content: 'content'} %}

内容不是字符串,它是模板的另一部分。请详细说明完整的解决方案是什么样子的?然后您可以从template.html中包含它,或者将其设置为变量,并将该变量作为
'content':variable
.Marc传递。这里的内容问题是它不是字符串,而是模板。因此,您需要首先渲染它,声明一个新的捕获变量,然后将其传递给宏(比
包含在
中更合适)。老实说,它看起来不合理或不理想。您可以创建自己的
节点
扩展它并添加参数