有没有办法要求DocPad中的元数据与eco?

时间:2014-10-21 15:13:56

标签: docpad eco

目前,我正在设置一个新的DocPad项目,我明确要求设置某些元数据。如果没有设置,我希望DocPad给我一些警告,唉,我无法在网上找到任何关于如何设置它的提示。

我的文件default.html.eco通过从文档中访问它来打印标题,如下所示:

<%= @document.title %>

但是,如果未设置,则输出为空。

我希望DocPad警告我丢失的数据。 我缺少一个设置吗?

1 个答案:

答案 0 :(得分:1)

你可以通过多种方式解决这个问题。

1。条件

<% if @document.title?: %>
    <%= @document.title %>

2。 Postfix Conditional

<%= @document.title if @document.title? %>

3。控制台

如果您想收到警告,可以拨打console.log(&#34;无论您想要什么。&#34;),它将由node.js输出到您的终端。

<% if @document.title?: %>
    <%= @document.title %>
<% else: %>
    <% console.log("No document title in " + @document) %>

4。查询/收集级别

如果您不想渲染没有标题的文档,您可以在/docpad.coffee中的查询级别处理该文档

pages: ->
  @getCollection('documents').findAllLive({title: $exists: true}, [pageOrder:1,title:1])

这将检查以确保文档在将其放入页面集合之前具有标题。

5。原型文档对象

你可以重写我想的文档对象,以重载属性调用,并在该属性不存在的情况下让它输出控制台警告,但是这个级别要低得多。 ..