如何列出 post / 页面中的所有标签
How to list all tags from post / pages
我想用 Jbake 打印与 post/ 页面相关的标签。但是,在阅读了 JBake 文档之后,特别是到目前为止的 Data Model 文档,我知道:
- 所有标签
- 标签
- tagged_posts
- tagged_documents
但是,在这些列表中,没有特定于 post / 页面的标签的数据模型。可以打印特定于 post / 页的标签吗?
我正在使用:
- JBake 版本 2.7.0-rc.4
- Apache Freemarker 作为模板引擎
经过反复试验,我终于可以列出 post / 页中的所有标签。
数据模型的 JBake 文档只记录了全局数据模型,所以下面列出的模型是供全局使用的,不是我想要的。
- 所有标签
- 标签
- tagged_posts
- tagged_documents
post / 页面的标签实际上存在于 content
数据模型中。您可以使用 ${content.tags}
访问它,这将列出与您想要的 post / 页面相关的所有标签。
现在,打印它是棘手的部分。因为 content
模型中的 tags
键仅存在于 post
/ page
模板中。
在 post
/ page
模板上打印标签。
在 post
/ page
模板下工作时,列出所有 post / 页面标签会更容易。您需要做的是迭代 content.tags
.
<#list content.tags as tag>
${tag}
</#list>
在 post
/ page
模板外打印标签。
这种情况是我需要在html头段生成<meta name="keywords" content="" />
的时候。当元关键字在 post
/ page
模板之外呈现时,我需要特殊处理,例如 index.html
.
因为当不在 post
/ page
模板中时,content
数据模型仅包含两个键:rootpath
和 type
。所以,需要像下面这样的特殊处理:
<#if (content.tags)?? >
<#-- Make sure we have tags model inside content -->
<#list content.tags as tag>
${tag}<#sep>, </#sep>
<#else>
<#-- in case that your page don't have any tags define, print default value if possible -->
</#list>
<#else>
<#-- There is no tags model inside content, print default value if possible -->
</#if>
我想用 Jbake 打印与 post/ 页面相关的标签。但是,在阅读了 JBake 文档之后,特别是到目前为止的 Data Model 文档,我知道:
- 所有标签
- 标签
- tagged_posts
- tagged_documents
但是,在这些列表中,没有特定于 post / 页面的标签的数据模型。可以打印特定于 post / 页的标签吗?
我正在使用:
- JBake 版本 2.7.0-rc.4
- Apache Freemarker 作为模板引擎
经过反复试验,我终于可以列出 post / 页中的所有标签。
数据模型的 JBake 文档只记录了全局数据模型,所以下面列出的模型是供全局使用的,不是我想要的。
- 所有标签
- 标签
- tagged_posts
- tagged_documents
post / 页面的标签实际上存在于 content
数据模型中。您可以使用 ${content.tags}
访问它,这将列出与您想要的 post / 页面相关的所有标签。
现在,打印它是棘手的部分。因为 content
模型中的 tags
键仅存在于 post
/ page
模板中。
在 post
/ page
模板上打印标签。
在 post
/ page
模板下工作时,列出所有 post / 页面标签会更容易。您需要做的是迭代 content.tags
.
<#list content.tags as tag>
${tag}
</#list>
在 post
/ page
模板外打印标签。
这种情况是我需要在html头段生成<meta name="keywords" content="" />
的时候。当元关键字在 post
/ page
模板之外呈现时,我需要特殊处理,例如 index.html
.
因为当不在 post
/ page
模板中时,content
数据模型仅包含两个键:rootpath
和 type
。所以,需要像下面这样的特殊处理:
<#if (content.tags)?? >
<#-- Make sure we have tags model inside content -->
<#list content.tags as tag>
${tag}<#sep>, </#sep>
<#else>
<#-- in case that your page don't have any tags define, print default value if possible -->
</#list>
<#else>
<#-- There is no tags model inside content, print default value if possible -->
</#if>