以前のOctopressではrake preview
とした時には
published: false
なポストも表示されてたのですが、
最近のアップデートで出来なくなりました。
どうもJekyllのアップデートに合わせて色々やった結果の様です。
Jekyllのドラフトオプション
Jekyllの方でbuildするときに使うファイルの選び方を見てみると
ここにあるように、以下の4つのオプションがあります 1。
_config.yml | 初期値 | 動作 |
---|---|---|
show_drafts | null | true にするとsource/_postsに加え、source/_drafts内にあるポストも使う様になる。jekyll build --draft とするとtrue の場合と同じ動作になる。 |
limit_posts | 0 | 最新の方から数え、最大この数だけのポストを使う様になる。0の場合は全て使う。jekyll build --limit_posts NUM で同じ様にNUM 個のポストだけに出来る。 |
future | true | yamlブロックのdateの時間が現在時刻より先の物を使うかどうか(日時だけでなく時刻も見る)。基準となる時間はtimezoneを_config.ymlで指定している場合はそれに依る。そうでなければ手元のマシンの基準時間。jekyll build --future でtrue と同じ動作に。 |
unpublised | false | yamlブロックでpublished: fasleにしているものを使うかどうか。jekyll build --unpublished でtrue と同じ動作に。 |
ここで、同じようなdraft
のものとunpublished
の物があるのですが、
その辺に関しては以下で議論されてます。
–drafts doesn’t respect published front-matter · Issue #1337 · jekyll/jekyll
- unpublished: 書き終えたがまだ公開したくないものとか公開を辞めたもの。
- draft: まだ完成していない書きかけのもの。
の様に使ってるよ、と@parkrさんが言っていますが、 @iccoさんが言ってるように unpublishedの方をドラフト的に使っている、と言う人も多いはず。
ということで、unpublishedの方も同じようにJekyllのコマンドオプションからも 簡単に変更出来るようになっています。
Octopressのドラフト
Octopressではこのrake new_post
がsource/_postsにファイルを作るようになっていますし、
isolate
タスクなどもsource/_drafts
を意識した物にはなっていないので、
unpublishedな物をドラフト、として使うほうが便利ですし
これまでそうしてきました。
以前のOctopressではplugins/preview_unpublished.rb
というプラグインを使ってpublished: false
なものも
previewの際にはtrue
に変換して表示させていました。
コレを使って、最新のドラフトをのみを軽くGenerateする、 みたいなコマンドも自分で作っていました。
これが使えなくなっていて結構不便だったんですが、
published: false doesn’t work for rake preview? · Issue #520 · imathis/octopress
これを見ると、確かに今は出来なくて、次の2.1のリリースでは治す、 ということですが、いつ2.1になるのか分からない。。。
で、もう一つ、
こちらにも同じ様なものがあって、
上のポストと同じ内容なのでもう放っておかれてるのかな、と思っていたら
一週間くらい前に返事があったみたいで、
ここでunpublished: true
オプションどうこう言ってるのを見たので
上のを調べてみたわけです。
で、見てみると単に--unpublished
オプションを加えれば良いだけに見えるのでやってみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
こんな感じで--unpublished
を加えてあげればOK。
これで以前と同じように
$ rake preview
とするとpublished: false
なポストも表示される様になります。
generate_only
タスクなどについての最新バージョンはこちら
$ rake gen_only
とすると、source/_postsにある最後に編集されたファイルだけを ビルドします。 ポストが100も超えてくると必須。
自動投稿的な
上のを調べる過程でfuture
と言う値を
_config.yml内で指定できる事を知りました。
これを使うと、常時動いてるマシンがあれば、
1時間に1回くらいrake gen_deploy
する様にcron
とかで設定しておいて、
指定時間になったら投稿する、みたいなことも出来るな、とか考えてみたり。
ただ、毎回ビルドするのも馬鹿らしいので
結局ファイルのアップデートを見てーみたいな事をしようと思うと、
その際にファイルのdate
の値をチェック、みたいなことをすれば良い気もするので
あまり意味ないかな。
-
_config.yml 1 2 3 4 5 6 7 8 9 10 11
## Filtering Content show_drafts: null # If true, it reads source/_drafts, in addition to source/_posts # `jekyll --draft` works same as "show_drafts: true". limit_posts: 0 # Number of pots to be parsed. # 0 for all. # `jekyll --limit_posts NUM` works same. future: true # If false, do not parse posts later than current time. # Depend on "timezone". # `jekyll --future` works as "future: true". unpublished: false # If true, parse even "publised: fase" posts. # `jekyll --unpublished` works as "unpublished: true".