Jekyll::Composeで投稿作成を効率化しよう

              ·

jekyll のプラグイン jekyll-compose の紹介と簡単な導入方法についての記事です。

はじめに

「新規投稿を作成するコマンドって jekyll に同梱されてないんだなあ🤔」と思いGoogle先生に聞いてみた所、 以下のページにたどり着きました。

stackoverflow: Why isn’t there a “jekyll post” command to create posts like in hexo?

そうそう、そうなんだよ。で、回答者によると 「jekyll-compose を使うと良いよ😎」だそうです。早速試してみましょう。

🤔 jekyll-compose ってなぁに?

jekyll/jekyll-compose | github

📝 Streamline your writing in Jekyll with these commands.
これらのコマンドを使って、Jekyll での執筆を効率化しよう。(意訳)

jekyll-compose は jekyll のプラグインです。 jekyllと一緒に導入することで、記事の執筆を効率的にするいくつかのサブコマンドを追加してくれます。

※ ver0.8.0現在
subcommand description
draft 指定された名前で新規の下書き投稿を作成する
post 指定された名前で新規の投稿を作成する
publish 下書きを _postディレクトリ に移動し、日付を付与する
unpublish 投稿を _draftsディレクトリ に戻す
page 指定された名前で新規ページを作成する

新規投稿(post)の作成であれば、以下でできるということですね😚

$ bundle exec jekyll post "This is My First Post!"

🚶🏻‍ Jekyll::Compose の導入

Ruby やら Jekyll 本体やらは導入済みとします。

導入手順は、READMEに書いてある通り。 jekyll new <site-name>で作成されたGemfileにjekyll-composeを追加し、bundleするだけ。 とっても簡単ですね😁

# Gemfile の修正

source "https://rubygems.org"
# ...
gem "jekyll", "~> 3.8.4"
+ gem 'jekyll-compose', group: [:jekyll_plugins]
# ...
# インストール
$ bundle

 ...略...
Fetching jekyll-compose 0.8.0
Installing jekyll-compose 0.8.0

2018/10/01現在では、 ver 0.8.0 が落ちてきました。

jekyll help の結果に追加されたサブコマンド群が確認できれば大丈夫そうです。

$ bundle exec jekyll help

jekyll 3.8.4 -- Jekyll is a blog-aware, static site generator in Ruby

Usage:

  jekyll <subcommand> [options]

Options:
 ...略...

Subcommands:
 ...略...

  draft                 Creates a new draft post with the given NAME
  post                  Creates a new post with the given NAME
  publish               Moves a draft into the _posts directory and sets the date
  unpublish             Moves a post back into the _drafts directory
  page                  Creates a new page with the given NAME

新規投稿を作成したり

$ bundle exec jekyll post "This is My First Post!"

Configuration file: /path/to/your/blog/_config.yml
New post created at _posts/2018-10-01-this-is-my-first-post.md.
Configuration file: /path/to/your/blog/_config.yml

下書きを書いたり

$ bundle exec jekyll draft "My Awesome Post!"

Configuration file: /path/to/your/blog/_config.yml
New draft created at _drafts/my-awesome-post.md.

下書きを公開したり

$ bundle exec jekyll publish _drafts/my-awesome-post.md

Configuration file: /path/to/your/blog/_config.yml
Draft _drafts/my-awesome-post.md was moved to _posts/2018-10-01-some-awesome-post.md

🏃🏻‍ auto_open 機能の有効化

デフォルトの設定でも十分満足だけれども、せっかくなので新規投稿を生成したらそのまま 懇意のエディタ📝 で開いて欲しいですよね。 READMEによると、 _config.yamlに設定を追加すると投稿生成と同時に指定したエディタで開くことが可能だそうです。早速設定しておきましょう。

# _config.yaml の修正

+ jekyll_compose:
+   auto_open: true
+   EDITOR: vim

以上で、bundle exec jekyll post "Post title." した際に自動生成されたファイルが vim で開かれます。 やったね🎉

これでブログ投稿の執筆が捗りそうですね😉

😱 ver0.8.0 時点での 問題点

環境が整ったので、いざ下書きを書いてみようと思い、 bundle exec jekyll draft してみます。 が、残念ながらエディタは起動しません。

なんてこった。 どうやら現時点では jekyll post の時にしか auto_open が機能しないようです。

改善に関する Issue が挙がっているので、近い将来対応されるかもしれませんね。 もしくは、 Ruby いける方々は是非貢献してみてはいかがでしょうか? (他力本願 🙇🏻‍)

件のIssue : Open new draft in editor #77

2019-03-22 追記
現在、すでに 下書き作成時にも外部エディタで開く対応がなされ、マージ済みの様です🎉 https://github.com/jekyll/jekyll-compose/pull/79
が、私は試していません…。なぜなら、 Hugo に乗り換えてしまったから。

おわり


comments powered by Disqus