我是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
我似乎没有看到任何问题,但无法真正弄清楚为什么它不起作用。
答案 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
,这解决了问题。
所以至少在我的网站上我必须确保没有日期的东西是页面,而日期的东西是帖子。 (当我重新设计网站时,我从帖子布局中删除了日期,现在又试图将其放回去。)