jekyll:无效日期:''不是有效的日期时间

时间:2014-01-13 18:23:27

标签: ruby jekyll

我是jekyll的新手:

到目前为止,我已经完成了教程提到的内容:这就是我在_layout中的内容:post.html文件:

---
layout: default
---

<div class="post">
  <h1>{{ page.title }}</h1>
  <span class="post-date">{{ page.date | date_to_string }}</span>
  {{ content }}
</div>

<div class="related">
  <h2>Related Posts</h2>
  <ul class="related-posts">
    {% for post in site.related_posts limit:3 %}
      <li>
        <h3>
          <a href="{{ post.url }}">
            {{ post.title }}
            <small>{{ post.date | date_to_string }}</small>
          </a>
        </h3>
      </li>
    {% endfor %}
  </ul>
</div>

我使用名为2014-01-01-myNewPost.md的md文件,我收到以下错误:

      Generating...       Invalid Date: '' is not a valid datetime.
  Liquid Exception: exit in _layouts/post.html

我似乎没有看到任何问题,但无法真正弄清楚为什么它不起作用。

5 个答案:

答案 0 :(得分:3)

我的问题是,由于某些原因,当我跑步时,我一直在终端中收到此错误&#34; jekyll serve --incremental&#34;:

Liquid Exception: Invalid Date: 'nil' is not a valid datetime. in /_layouts/post.html
         ERROR: YOUR SITE COULD NOT BE BUILT:
                ------------------------------------
                Invalid Date: 'nil' is not a valid datetime.
经过大量挖掘后,因为jekyll会在根目录中收集任何类型的帖子,即使它们位于完全不同的文件夹中也是如此。我在&#34; _posts&#34;我的测试帖子在&#34; old_posts&#34;。

只需拥有&#34; old_posts&#34;根项目级别的目录发生此错误。确保你没有这样的东西。

答案 1 :(得分:2)

最有可能的是,您已将示例帖子移至另一个目录,例如examples。 Jekyll在那里找到帖子并试图处理它们,这导致了遇到的问题。

examples文件夹添加到_config.yml的排除列表中,Jekyll将按预期启动。

答案 2 :(得分:1)

看起来你的帖子YAML中的日期变量中有一个拼写错误。检查您的发布日期是否符合此格式YYYY-MM-DD HH:MM:SS

我已经检查了上面发布的帖子布局代码,很好。

如果无效,请卸载Jekyll并通过运行这些命令安装最后一个稳定版本1.2.1

~ $ gem uninstall jekyll
~ $ gem install jekyll --version(="1.2.1")

答案 3 :(得分:1)

我发生了这种情况,事实证明我错误地通过选项单击从我的_posts目录复制了一个文件,它位于我网站的根目录中。如果处理器除了一般错误消息之外还会详细描述错误原因,那就太好了。

答案 4 :(得分:0)

根据this GitHub issue,如果您将某些内容标记为帖子,那么Jekyll会抱怨,如果该内容在标题或前端事项中没有日期,则会尝试格式化日期。如果您在不格式化的情况下引用{{ page.date }},则不会发生这种情况,因此格式函数中必须存在某种nil错误。

我刚遇到这个问题,当文件名为layout: post而不是example.md时,我意识到我在前面标记了一堆带有2016-01-01-example.md的静态页面。我将这些文件更改为layout: page,这解决了问题。

所以至少在我的网站上我必须确保没有日期的东西是页面,而日期的东西是帖子。 (当我重新设计网站时,我从帖子布局中删除了日期,现在又试图将其放回去。)