我正在尝试为 epub 创建一个 toc.ncx (只是一个 XML)文件。
在这样的目录中,<navpoint>定义了 s,每个都有一个 id 和一个“播放顺序”。
Go模板有什么方法可以简单地计算导航点吗?
我想过这样的事情(非工作模板代码)
{{$counter := 0}}
{{define "NAVPOINT"}}
{{$counter = $counter + 1}}
<navpoint id="{{.}}" playorder="{{$counter}}">
{{end}}
{{range .TopLevel }}
{{template "NAVPOINT" .Id}}
{{range .SecondLevel }}
{{template "NAVPOINT" .Id}}
</navpoint>
{{end}}
</navpoint>
{{end}}
示例结构
{ TopLevel: [
{
Id: "id-a"
SecondLevel: [
{
Id: "scnd-a"
}
{
Id: "scnd-b"
}
]
}
{
Id: "id-b"
SecondLevel: [
{
Id: "scnd-c"
}
{
Id: "scnd-d"
}
]
}
}
这会给我这样的东西
<navpoint id="id-a" playorder="1">
<navpoint id="scnd-a" playorder="2"></navpoint>
<navpoint id="scnd-b" playorder="3"></navpoint>
</navpoint>
<navpoint id="id-b" playorder="4">
<navpoint id="scnd-c" playorder="5"></navpoint>
<navpoint id="scnd-d" playorder="6"></navpoint>
</navpoint>
我想我可以使用模板功能,而不是模板来实现这一点,但不知道如何实现这一点。模板函数可以有计数器吗?
梵蒂冈之花
相关分类