Answers:
_posts
目录中。YEAR-MONTH-DAY-title.MARKUP
(注意MARKUP
扩展名,通常为.md
或.markdown
)future: true
在(文档)中进行设置来使帖子可见_config.yml
published: false
内容。将其设置为true
。:
字符。替换为:
。3.8.3
(可能还有其他“最新”版本)中工作。.markdown
扩展名添加到文件名中。我知道这一点是因为我因此而浪费了5分钟。
您可以jekyll build --verbose
用来查看构建过程的详细信息。
示例输出:
Logging at level: debug
Configuration file: /home/fangxing/fffx.github.io/_config.yml
Logging at level: debug
Requiring: jekyll-archives
Requiring: jekyll-livereload
Requiring: kramdown
Source: /home/fangxing/fffx.github.io
Destination: /home/fangxing/fffx.github.io/_site
Incremental build: enabled
Generating...
EntryFilter: excluded /Gemfile
EntryFilter: excluded /Gemfile.lock
Reading: _posts/2018-01-14-new-post.md
Reading: _posts/2014-01-01-example-content.md
Reading: _posts/2014-01-02-introducing-lanyon.md
Reading: _posts/2017-11-21-welcome-to-jekyll.markdown
Reading: _posts/2018-01-14-boot-android-on-charge.md
Reading: _posts/2013-12-31-whats-jekyll.md
Skipping: _posts/2018-01-14-boot-android-on-charge.md has a future date
Generating: Jekyll::Archives::Archives finished in 0.000122873 seconds.
Generating: JekyllFeed::Generator finished in 0.000468846 seconds.
...
从日志中发现我跳过了,2018-01-14-boot-android-on-charge.md
因为它有未来的日期。
一个可能的原因是,date
前件中的指定不包含时区偏移量,在这种情况下,它默认为UTC,而不是您所期望的本地计算机的时区。我为此花了一个小时,直到UTC赶上了我当前的本地时区BST。
我尚未找到确切的答案,但我认为最重要的日期必须以UTC给出,并带有时区偏移量(如果省略,则默认为零)。
因此,date: 2018-05-03 12:34:27
在UTC无论你是在世界上的,而不管的timezone
中设置_config.yml
。
因此,请谨慎指定这样的日期时间:
date: 2018-05-03 12:34:27 +0100
date: 2018-05-03 12:34:27 +01:30
似乎也有效。注意其他冒号。
我为我的博客写了Rspec测试,表达了以下规则:
require 'spec_helper'
require 'yaml'
# Documented at https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/
post_regex = %r!^(?:.+/)*(\d{2,4}-\d{1,2}-\d{1,2})-(.*)(\.[^.]+)$!
def date_in_front_matter(date)
return date if date.is_a?(Date)
return date.to_date if date.is_a?(Time)
return Date.parse(date) if date.is_a?(String)
end
describe 'posts' do
Dir.glob("_posts/*md").each do |file|
basename = File.basename(file)
context basename do
front_matter = YAML.load(File.read(file).split(/---/)[1])
it 'filename must match documented post regex' do
expect(basename).to match post_regex
end
it 'date in file name same day as date in front matter' do
date_in_file_name = Date.parse(post_regex.match(basename).captures[0])
expect(date_in_front_matter(front_matter['date'])).to eq date_in_file_name
end
it 'title in front matter should not contain a colon' do
expect(front_matter['title']).to_not match /:/
end
it 'front matter should not have published: false' do
expect(front_matter['published']).to_not be false
end
end
end
end
这可能对其他人有用,因为我由于约会等方面的错字而浪费了很多时间。
这些测试以及Rspec配置的其余部分可以在上下文中找到。
如果你是无法跟踪文件--verbose
,如果文件被自动忽略然后尝试删除collections_dir
该的config.yml
文件。那为我解决了这个问题。
future:true
后没有任何空格会导致ERR:配置文件:(INVALID)。大多数被用来代替。:
_config,yml
future: true