我可以使用列表作为自定义模板 属性 的值吗?
Can I use a list as the value of a custom template property?
我在我的页面模板定义中使用自定义模板 属性 来在我的模板脚本中的正文标记上呈现 CSS 类。例如:
parameters:
body:
classes: example-body-class1
<body class="${def.parameters.body.classes!}"></body>
渲染输出:
<body class="example-body-class1"></body>
但是,当我添加多个 类 时,我必须在它们之间添加 space。例如:
parameters:
body:
classes: example-body-class1 example-body-class2
渲染输出:
<body class="example-body-class1 example-body-class2"></body>
我想通过使用列表来改进这个设计。例如:
parameters:
body:
classes:
- example-body-class1
- example-body-class2
但是,当我转储 def.parameters.body.classes
的值时,它 returns 为空。
${cmsfn.dump(def.parameters.body.classes)}
[#-- Returns --]
null (Null)
Magnolia custom template properties 文档示例引用了一个字符串值。
我可以使用列表作为自定义模板的值吗属性?如果是这样,我将如何将上面的列表呈现为字符串,每个项目由 space?
分隔
实际上它们可以是列表,但你需要用值来定义它们(参数通常是 key:value
对。
定义:
title: "test"
renderType: freemarker
templateScript: /test.ftl
parameters:
list:
a: a
b: b
模板:
${cmsfn.dump(def.parameters,3,true)}
[#list def.parameters.list as param, k]
${param!"nope"}
[/#list]
输出:
Hash (1)
list = Hash (2)
a = "a" (String)
b = "b" (String)
a b
我在我的页面模板定义中使用自定义模板 属性 来在我的模板脚本中的正文标记上呈现 CSS 类。例如:
parameters:
body:
classes: example-body-class1
<body class="${def.parameters.body.classes!}"></body>
渲染输出:
<body class="example-body-class1"></body>
但是,当我添加多个 类 时,我必须在它们之间添加 space。例如:
parameters:
body:
classes: example-body-class1 example-body-class2
渲染输出:
<body class="example-body-class1 example-body-class2"></body>
我想通过使用列表来改进这个设计。例如:
parameters:
body:
classes:
- example-body-class1
- example-body-class2
但是,当我转储 def.parameters.body.classes
的值时,它 returns 为空。
${cmsfn.dump(def.parameters.body.classes)}
[#-- Returns --]
null (Null)
Magnolia custom template properties 文档示例引用了一个字符串值。
我可以使用列表作为自定义模板的值吗属性?如果是这样,我将如何将上面的列表呈现为字符串,每个项目由 space?
分隔实际上它们可以是列表,但你需要用值来定义它们(参数通常是 key:value
对。
定义:
title: "test"
renderType: freemarker
templateScript: /test.ftl
parameters:
list:
a: a
b: b
模板:
${cmsfn.dump(def.parameters,3,true)}
[#list def.parameters.list as param, k]
${param!"nope"}
[/#list]
输出:
Hash (1)
list = Hash (2)
a = "a" (String)
b = "b" (String)
a b