【问题标题】:Render Velocity inside {{html}} in XWiki to generate page links在 XWiki 中的 {{html}} 内渲染 Velocity 以生成页面链接
【发布时间】:2015-11-27 09:17:26
【问题描述】:

我正在运行 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 标记不会关闭。我可以以某种方式出售变量中的列表并将其显示在面板中吗?

谢谢!

【问题讨论】:

    标签: html velocity xwiki


    【解决方案1】:

    如果您想在 {{html}}-宏中解释 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}}-宏的参考及其参数:http://extensions.xwiki.org/xwiki/bin/view/Extension/HTML+Macro

    【讨论】:

      【解决方案2】:

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

      <a href="$xwiki.getURL($name)">$xwiki.getDocument($name).getPlainTitle()</a><br> 
      

      【讨论】:

        猜你喜欢
        • 2016-04-18
        • 1970-01-01
        • 1970-01-01
        • 2015-01-30
        • 1970-01-01
        • 1970-01-01
        • 2015-05-15
        • 2018-04-05
        • 1970-01-01
        相关资源
        最近更新 更多