ジキル投稿は生成されません


100

Jekyllサイトに新しい投稿を追加しようとしていますが、を実行しても、生成されたページに投稿が表示されませんjekyll serve

ジキル投稿が生成されない一般的な理由は何ですか?

回答:


230

1
future:true:にスペースを入れずに使用すると、_config,ymlERR:構成ファイル:(INVALID)になります。future: trueほとんどが代わりに使用されます。
yaitloutou 2017年

別の考えられる理由は.markdown、ファイル名に拡張子を追加し忘れているためです。それが原因で私の人生の5分が無駄になったので、私はこれを知っています。
H2ONOCK 2017年

どうもありがとうございます!日付フィルターがあることを理解するまで私の投稿が表示されなかった理由を30分間検索しただけです...(15分で「魔法のように」動作します...)。将来のオプションを追加し、すべてが期待どおりに動作します。私の考えでは、trueがデフォルトである必要があります。
Matthias Kleine 2017

1
何が欠けていますか。ここの私の投稿のタイトルにコロンが付いていますが、問題ありませんか?raw.githubusercontent.com/alexharv074/alexharv074.github.io/… そしてそれはここで大丈夫ですか?alexharv074.github.io
Alex Harvey

1
@AlexHarveyコメントありがとうございます!これは確かにもう問題ではないようです。回答を更新しました。
aronisstav

19

を使用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それが将来の日付を持っているのでjekllyがスキップされているのを発見しました。


6

考えられる理由の1つdateは、前付けで指定されたタイムゾーンオフセットが含まれていないことです。この場合、デフォルトではローカルマシンのタイムゾーンではなく、UTCに設定されています。UTCが現在のローカルタイムゾーンであるBSTに「追いつく」まで、これに1時間を費やしました。

これに対する明確な答えは見つかりませんでしたが、前付けの日付はタイムゾーンオフセットを付けてUTCで指定する必要があると思います(省略した場合のデフォルトはゼロです)。

だから、date: 2018-05-03 12:34:27 UTCであるにかかわらず、世界であなたがどこにいるの、とのかかわりなくtimezoneで設定_config.yml

したがって、次のように日時を指定するように注意してください。

date: 2018-05-03 12:34:27 +0100

1
フォーマットdate: 2018-05-03 12:34:27 +01:30も機能するようです。追加のコロンに注意してください。
YinglaiYang

これが問題であることを理解するために10分を無駄にしました。ありがとう!
samisnotinsane

2

または、_siteフォルダーではなく、ブログのメインページで直接投稿のリストを表示している場合も、ブラウザーキャッシュになる可能性があります。


2

私はこれらのルールを表現するために私のブログのために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構成は、ここのコンテキスト確認できます


2

理由をもう1つ追加すると、記事をから_draftsに移動するときに_post_siteに、記事を再生成ために。

私の場合、それはしばしば起こります _site再生成前に完全に削除されないため、新しい記事が表示されないあります。

とにかくrm -rf _sitebundle exec jekyll serve作品:)


1

でファイルを追跡できず--verbose、ファイルが黙って無視される場合は、ファイルを削除collections_dirしてみてくださいconfig.yml。これで問題は解決しました。


0

私の投稿にもエラーは表示されませんでした。私の名前では、ドットなどを使用していました2017-10-18-test.2.md
これは受け入れられません2017-10-18-test2.md。使用する必要があります。


0

前付けを確認し、すべてが順調で、jekyll build --verbose何も明らかにされていない場合(私の場合は、ファイルがまったく存在しないかのように機能し、除外としてリストされていません)、エンコードを確認しますあなたのファイルの。どうやら、それはUTF-8署名なしである必要があります。それはUTF-8 BOM(またはUTF-8 with Signature一部のテキストエディターで呼ばれているように)、警告なしに無視されます。さらに悪いことに、一部のエディターは両方のタイプを同じように表示UTF-8するため、違いを見つけるのがさらに難しくなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.