Skip to content

yaml_property

序列化完整的 YAML 属性。

语法

knap
{{ value | yaml_property:"name" }}

用法

  • 必须有且仅有一个非空的属性名。含空格或标点的名称请加引号。
  • 标量紧跟在键后。非空数组与对象在键下方使用两空格缩进的块样式;空集合保持行内形式 []{}
  • 使用与 yaml 相同的取值序列化方式,并在需要时为键加引号。支持有类型的和已序列化的 JSON 集合。
  • 请在该过滤器之前应用 wikilink 等转换。无需再单独使用 yamlindent 过滤器。
  • 输出不带结尾换行,也不含 frontmatter 定界符。

示例

标量

Data
json
{
  "year": 1999
}
Template
knap
{{ year | yaml_property:"year" }}
Output
md
year: 1999
Data
json
{
  "directors": [
    "Lana Wachowski",
    "Lilly Wachowski"
  ]
}
Template
knap
{{ directors | wikilink | yaml_property:"director" }}
Output
md
director:
  - "[[Lana Wachowski]]"
  - "[[Lilly Wachowski]]"

嵌套对象

Data
json
{
  "details": {
    "year": 1999,
    "genre": [
      "Action",
      "Sci-fi"
    ]
  }
}
Template
knap
{{ details | yaml_property:"movie" }}
Output
md
movie:
  year: 1999
  genre:
    - "Action"
    - "Sci-fi"

空列表

Data
json
{
  "tags": []
}
Template
knap
{{ tags | yaml_property:"tags" }}
Output
md
tags: []