Jekyll 사이트에 새 게시물을 추가하려고하는데를 실행할 때 생성 된 페이지에서 볼 수 없습니다 jekyll serve
.
Jekyll 게시물이 생성되지 않는 일반적인 이유는 무엇입니까?
Jekyll 사이트에 새 게시물을 추가하려고하는데를 실행할 때 생성 된 페이지에서 볼 수 없습니다 jekyll serve
.
Jekyll 게시물이 생성되지 않는 일반적인 이유는 무엇입니까?
답변:
_posts
.YEAR-MONTH-DAY-title.MARKUP
( 메모 MARKUP
확장 일반적으로,.md
또는.markdown
)future: true
에서 설정하여 게시물을 표시 할 수 있습니다._config.yml
published: false
의 앞부분에 있습니다. 로 설정하십시오true
.:
문자가 있습니다. 로 교체:
. 3.8.3
(그리고 아마도 다른 '최신'릴리스에서)..markdown
파일 이름에 확장자를 추가하는 것을 잊었 기 때문입니다 . 나는 그것 때문에 내 인생의 5 분을 낭비했기 때문에 이것을 안다.
jekyll build --verbose
빌드 프로세스를 자세히보기 위해 사용할 수 있습니다 .
Exmaple 출력 :
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.
...
로그에서 jeklly 2018-01-14-boot-android-on-charge.md
는 미래 날짜가 있기 때문에 건너 뛰었 습니다.
한 가지 가능한 이유는 date
서문에 지정된 시간대 오프셋이 포함되어 있지 않기 때문입니다.이 경우 기본적으로 로컬 시스템의 시간대가 아닌 UTC로 설정됩니다. UTC가 현재 현지 시간대 인 BST를 "잡을"때까지 한 시간을 낭비했습니다.
나는 이것에 대한 확실한 답을 찾지 못했지만 앞부분의 날짜는 시간대 오프셋 (생략하면 기본값은 0)과 함께 UTC로 제공되어야한다고 생각합니다.
세계 어디에 있든 .NET의 설정에 관계없이 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
파일 에서 제거해보십시오 . 그것은 나를 위해 문제를 해결했습니다.
앞부분을 확인 jekyll build --verbose
했는데 모든 것이 잘 보이고 아무것도 드러나지 않는 경우 (제 경우에는 파일이 전혀 존재하지 않는 것처럼 작동하고 제외 된 것으로 나열하지 않은 것 같음) 인코딩을 확인하십시오. 파일의. 분명히 UTF-8
서명이 없어야합니다. 그것은 UTF-8 BOM
(또는 UTF-8 with Signature
일부 텍스트 편집기에서 부르는 것처럼) 조용히 무시됩니다. 설상가상으로 일부 편집자는 두 유형을 모두으로 표시 UTF-8
하여 차이점을 찾기가 더 어렵습니다.
future:true
뒤에 공백없이 사용 하면 ERR : 구성 파일 : (INVALID)가 발생합니다. 대부분 대신 사용됩니다.:
_config,yml
future: true