Movable Type: 转换为 json 文件

Movable Type: Converting to json file

我正在尝试使用 Movable Types 模板标签将一些数据转换为 json 格式,到目前为止我有以下代码。此代码出现空白结果。我对这个模板代码不是很了解,所以任何帮助将不胜感激。

<mt:SetVar name="entries" function="undef">
<mt:Tags>
    <$mt:TagName trim_to="1" upper_case="1" setvar="current_index"$>

    <mt:SetVar name="e" function="undef">
    <mt:SetHashVar name="e">
        <mt:if name="current_index" ne="$last_index"><mt:getvar name="current_index"></mt:if>
        <mt:TagName setvar="name">
        <mt:setvarblock name="url">https://www.foo.com/tags/<$mt:TagName encode_url="1"$></mt:setvarblock>
    </mt:SetHashVar>
    <$mt:var name="current_index" setvar="last_index"$>
    <mt:SetVar name="entries" key="$last_index" value="$e">
</mt:Tags>
<mt:Var name="entries" to_json="1">

这就是我所期待的

{
  "A": [
    {
      "name": "Abrand",
      "url": "#"
    },
    {
      "name": "Abrand",
      "url": "#"
    },
    {
      "name": "Abrand",
      "url": "#"
    }
  ],
  "B": [
    {
      "name": "Bbrand",
      "url": "#"
    },
    {
      "name": "Bbrand",
      "url": "#"
    }
  ],
  "C": [
    {
      "name": "Cbrand",
      "url": "#"
    {
      "name": "Cbrand",
      "url": "#"
    },
    {
      "name": "Cbrand",
      "url": "#"
    }
  ]
}

试试这个:

<mt:Tags sort_by="name" sort_order="ascend" limit="1">
    <$mt:TagName trim_to="1" upper_case="1" setvar="current_index"$>
    <$mt:SetVar name="last_index" value="$current_index"$>
</mt:Tags>

<mt:Tags sort_by="name" sort_order="ascend">
    <$mt:TagName trim_to="1" upper_case="1" setvar="current_index"$>
    <mt:SetHashVar name="e">
        <mt:TagName setvar="name">
        <mt:SetVarBlock name="url">https://www.foo.com/tags/<$mt:TagName encode_url="1"$></mt:SetVarBlock>
    </mt:SetHashVar>

    <mt:if name="current_index" eq="$last_index">
        <$mt:SetVar name="hold" function="push" value="$e"$>
    <mt:else>
        <$mt:Var name="entries{$last_index}" value="$hold"$>
        <$mt:SetVar name="last_index" value="$current_index"$>
        <$mt:SetVar name="hold" value=""$>
        <$mt:SetVar name="hold" function="push" value="$e"$>
    </mt:if>
</mt:Tags>

<mt:Var name="entries" to_json="1">

(我在 MT 6.2.2 上测试过,但应该可以在 5.x 上工作)