{% content %} 标签将在页面上显示一个 CMS 内容块 。要显示名为 contacts.htm 的内容块,请在 content 标签后以字符串形式传递文件名。
{% content "contacts.htm" %}子目录中的内容块也可以用同样的方式渲染。
{% content "sidebar/content.htm" %}主题文档 提供了关于子目录用法的更多详细信息。
内容块可以渲染为纯文本:
{% content "readme.txt" %}你也可以使用 Markdown 语法:
{% content "changelog.md" %}内容块也可以与 布局占位符 结合使用。
{% put sidebar %}
{% content 'sidebar-content.htm' %}
{% endput %}你可以通过在文件名后指定变量来将它们传递给内容块:
{% content "welcome.htm" name=user.name %}你也可以为内容指定新变量以供使用:
{% content "location.htm" city="Vancouver" country="Canada" %}在内容内部,可以使用一种基本语法,通过单个 花括号 来访问变量:
<p>Country: {country}, city: {city}.</p>
你也可以将变量集合作为简单数组传递:
{% content "welcome.htm" likes=[
{name:'Dogs'},
{name:'Fishing'},
{name:'Golf'}
] %}通过使用一对开闭方括号来访问变量集合:
<ul>
{likes}
<li>{name}</li>
{/likes}
</ul>
注意:内容块不支持 Twig 语法,请考虑改用 CMS partial。
在任何模板中,你都可以使用 content() 函数将内容设置为变量。这允许你在显示之前操纵输出。请记住使用 |raw 过滤器来防止输出转义。
{% set welcomeContent = content('welcome.htm') %}
{{ welcomeContent|raw }}你也可以将变量作为第二个参数传递给内容。
{% set welcomeContent = content('welcome.htm', { foo: 'bar' }) %}hasContent() 函数可用于检查内容是否存在而不渲染其内容。为防止内容被渲染,请将第二个参数设置为 false,如果找到内容文件,它将返回 true 或 false。
{% if hasContent('welcome.htm') %}
{% content 'welcome.htm' %}
{% else %}
<p>Welcome content not found!</p>
{% endif %}当使用 {% content %} 标签时,它会自动解析 CMS 片段 以及由 页面查找器表单小部件 创建的链接。
同样,|content 过滤器可用于解析 HTML 字符串以查找多个内容对象并在输出中解析它们。
{{ post.content|content }}|md 过滤器也可用于解析字符串中的 Markdown 内容。
{{ post.markdown_content|md|content }}