0

我正在运行 XWiki 并开发一个页面。我有一个 Velocity 脚本,在其中 {{html}} 并且在 html 中我使用的是引导面板。我想要一个链接列表出现在面板中。简化后,它看起来像这样:

{{velocity}}
{{html}}
    <div class="panel panel-primary">
         <div class="panel-body">
             <p> ... Display links from macro... </p>
         </div>
    </div>
{{/html}}
{{/velocity}}

宏给了我想要的链接:

#getChildrenOf("Classes.WebHome")

#macro(getChildrenOf, $docName)
    #foreach($name in $xwiki.searchDocuments('where doc.parent = ? or doc.parent = ? order by doc.name', [$docName, "xwiki:$docName"]))
         #if($xwiki.hasAccessLevel('view', "xwiki:$name"))
             [[$xwiki.getDocument($name).getPlainTitle()>>$name]]
         #else
             $xwiki.getDocument($name).getPlainTitle()
         #end
         #getChildrenOf($name)
    #end
#end

输出是:

[[COMPLETE>>Classes.COMPLETE]] [[DOMAIN>>Classes.DOMAIN]] [[LEVEL>>Classes.LEVEL]]

呈现为 HTML 文本。如何在 HTML 中将其呈现为速度?如果我以速度关闭 HTML,它会破坏 HTML 面板,因为 HTML 标记不会关闭。我可以以某种方式出售变量中的列表并将其显示在面板中吗?

谢谢!

4

2 回答 2

2

如果您想在{{html}}-macro 中解释 Wiki 语法,则需要使用wiki="true"参数,例如:

{{velocity}}
{{html wiki="true"}}
    <div class="panel panel-primary">
         <div class="panel-body">
             <p> Link to home page: [[WebHome]] </p>
         </div>
    </div>
{{/html}}
{{/velocity}}

如果您省略此参数,则默认为wiki="false"- 即 Wiki-Syntax 不会在宏内部解释。

有关{{html}}-macro 的参考及其参数:http ://extensions.xwiki.org/xwiki/bin/view/Extension/HTML+Macro

于 2015-11-27T12:07:49.673 回答
0

只需用标签替换 [[s 并调用速度函数即可解决问题。

<a href="$xwiki.getURL($name)">$xwiki.getDocument($name).getPlainTitle()</a><br> 
于 2015-11-27T09:43:16.953 回答