可以在Docpad的查询工具上调用哪些方法?

时间:2014-09-17 16:22:32

标签: javascript docpad query-engine

在Docpad的文档中,它列出了一系列查询帮助程序。这是link。以下列表显示在底部。在这些帮助程序中有@getCollection,@ getFiles,@ getFilesAtPath等。但是没有任何迹象表明我能够找到这些帮助程序返回的对象类型,以及可以在它们上调用哪种方法,如何检索数据等? Docpad文档中有一些示例,例如beginner's guide显示了如何在“为我们的页面添加菜单列表”部分中循环访问html页面的集合。从这一点可以看出,这里返回的对象有一个方法toJSON(),可以调用它们。但还有什么?文档还解释了这些辅助函数是某种类型的Query-Engine对象,但在(查询引擎文档)[http://learn.bevry.me/queryengine/guide]中,我无法找到有关如何操作这些对象的任何描述。所以我的问题是:有没有人知道这些对象的结构是什么以及它们如何被操纵?是否有我遗失的文件?

1 个答案:

答案 0 :(得分:1)

我如何使用简单的单词来理解它:

因此,在docpad文档中默认将其解释为yaml文件(内容+元数据)。所以你的查询返回的对象是你解析为json的这个yaml文件。

重要的是要知道这个yaml文件不仅仅是"你的"已定义的元数据+内容以及此处定义的一些其他元数据http://docpad.org/docs/meta-data。因此,您可以访问许多其他数据。

我假设你使用ECO模板,你可能知道它是关于CoffeeScript的。因此toJSON()方法只是您可以使用的javascript方法之一。我没有尝试检查它,但我只是注意到我想用coffeescript解决的任何东西都可以在ECO中使用。因此,一旦将查询返回的对象解析为json,就可以执行任何操作并在JSON对象上调用所需的任何方法。

每当我查询文件的文档时,我都会添加:<%console.log @document%>到我的"为"环。它在控制台中返回整个json对象。因此,您可以轻松查看查询返回的对象以及可以从中获取的数据。

希望有所帮助。干杯