Ruby

日本語でJekyllをつかうときに便利なシェルスクリプト

投稿日:2018年7月21日 更新日:

Jekyll

Jekyllはいわずと知れたRuby製の静的サイトのジェネレーター.


(うえの情報は古いかもしれないので最新情報は英語版サイトで確認したほうがいい)

docxをgithubフレーバーのマークダウンに変換

まず、原稿がdocxできたので、まずmdに変換する.
それにはpandocをつかう.
ただ、pandocの拡張マークダウンだと、テーブルをあとでうまくHTML変換できなかったので、Githubフレーバーのマークダウンにする.

フロントマターを追加する

jekyllではファイルの先頭にyamlのフロントマターを書いておく必要がある.
ないと、処理してくれない.
sedをつかって、まとめてフロントマターを追加する.

macの場合はめんどうくさい.

日本語ファイル名を英語に変換する

urlとかもろもろ日本語だと都合が悪いことも多い.
そこで、日本語をハイフン分かち書きでローマ字に変換する.
そこで、kakasiをつかう.

kakasiはbrewからインストールできる.

ついでにパーマリンクも設定.
categoryやtagをつかうには_posts以下に配置しないといけないんだけど、日付-タイトル.mdというファイル名じゃないと_posts以下にいれても反応しない.
今回、日付はどうでもよかったので適当.
必要なら日付はdateなどをつかう.

スクリプトをまとめて実行する

スクリプトからほかのスクリプトを実行するには、単にバッククォートでくくるだけでなくて、変数にいれる必要がある.

画像ファイルをまとめてリサイズしてExif情報を削除する

画像ファイルをウェブ用に変換する.
コマンドにはImageMegickのconvertをつかう.
resizeオプションは優秀で幅だけ指定すれば縦横比を保ちながら変換してくれる.
densityはメタデータのdpiだけ変更するもの.ファイルサイズは変わらない.
resampleは指定のdpiに画像を変換する.
stripはExifデータの削除.

おまけ カテゴリー名を表示するときだけ日本語に変換する

上記のページのプラグインを_pluginsに配置する.
そして、layoutなどで、フィルターをつかう.

おまけ2 プラグインを自作

今回のポストは、h1,p,h2,p,h2,p…という感じだったので、最初のh1とpを抜き出して、そのあとにtocをいれて、以下本文みたいな表示にした.
そこで、上のページを参考にフィルターをプラグインとして自作した.

完成した使い方としては次のようなイメージ.toc_onlyはjekyll-tocのプラグインから.

Nokogiriでギコギコと切ったり貼ったり.
NokogiriではHTML.parseしたら、各要素に、children.children.childrenでアクセスできる.

あと、注意事項としては、jekyllサーバーを再起動しないとpluginの変更を認識しない.

おまけ3 プラグイン自作〜ラッピング

h2,p,h2,p,p,h2,…みたいなのを、 <section>h2,p</section><section>h2,p,p</section> みたいに、h2と複数のpをsectionタグでラッピングする.

-Ruby
-, ,

執筆者:

関連記事

関連記事はありませんでした