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 上工作)
我正在尝试使用 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 上工作)