2013-07-24 38 views
0

我正在构建一个插件来生成站点范围的菜单;这些菜单的数据来自扫描* .html.md文件的渲染DOM;但我只在一个地方使用菜单(网站的根目录)。docpad:渲染后使用partials?

插件当前在writeBefore中生成此菜单的每个页面的一部分,当我走集合,处理每个文档并将文件写入partials目录时,该工作正常。

但由于该文档已全部已经被那个时候呈现的<% - @partial(“foo.html”)%>在我index.html.eco打电话,除非我运行docpad generate两次不起作用。

我认为如果我设置renderPasses的值> 1,则谐音会得到上拿起> 1个行程,但这并没有发生。

有没有我可以使用初始渲染后的事件(所以有分析一个DOM),但谐音得到呈现前?

谢谢。

回答

0

您可以使用renderDocument事件(针对每个文档触发,加上文档的每个布局)或renderAfter事件。但我认为你可能有同样的问题。

具体来说,让菜单需要其他文件的渲染内容的原因是什么?正如你可以使用text plugin来渲染元数据属性一样,并且在渲染之前可以访问这些元数据属性。例如。

--- 
someMarkdown: "<t render="markdown">*hello*</t>" 
--- 
在你的菜单

然后或任何

<ul><% for page in @getCollection('html').toJSON(): %> 
    <li><%- page.someMarkdown %></li> 
<% end %></ul> 

此外,与元数据属性与由文本插件降价渲染预计将只是工作。

相关问题