Jekyllセッティングのメモ
Category: tool Date: 10 Nov 2016このnoteの状態
環境整備
Windows
Gemで各ライブラリ等を導入する際は何時も問題が起こる。ほとんどDevKitの設定の問題
- RubyInstallerにてインストールを行わないと結びつかない
- Rubyをインストールする度に,dk.rbによる初期化とインストールコマンドが必要
- RubyInstallerでは32bit/64bit版が明確に分かれるので,Portableにするには切替を行う仕組みも必要
Linux/Mac
bundleでsudoしないためにrbenvを準備する必要がある
- 各導入の仕方はググる
- それぞれデフォルトで入っているRubyも有るので環境変数でrbenv側を先に入れておく事
- 各ライブラリ(openssl,yaml等)を予め入れておく必要があることに注意
Jekyllでの本体作成
- GitHubでリポジトリの作成
- ローカルにClone
- Jekyllの構築
jekyll new [PATH] --force
.gitignore
を編集,対象は自分で追加していくので全てを否定する形にしておく_config.yml
Gemfile
を編集- Bundle install しておく
各環境で試験環境を作って立ち上げるまで
Gitから取得してBundle_Install
git clone
bundle install
bundle exec jekyll serve --source ~/Dropbox/tools/note-content
DropBox側のpostをきちんとリアルタイムに反映されるには sourceをオプション指定する必要がある,この際:
- layoutsは総体的に読み込まれるので問題なし
- destinationは指定しなければコマンド起動フォルダになる
- pluginsはconfig側で開発フォルダに向くように指定している
- postを使い安くするためのシンボリックリンク化はLinux側で実施するべき(Windowsジャンクションでは駄目)
- ディレクトリの構成や名称変更,リンクの張り直しは必ずLinuxで実施する事(でないと同期が止まる)
プラグイン作成
プラグインは指定フォルダ(通常はplguins)にrbファイルとして入れておく事で起動時に呼び出しが行われる。 普通はGenerator等の種別毎のルールに基づくものだが,Monkey_patchingが可能なので細かい動作をいじる事も可能。
ディレクトリ構造をそのままカテゴリ化するplguin
- site.rbからprocessメソッドからディレクトリ構造の読み込み
- 同 read_directly から read_content これが get_entries/get_entriesを使って,指定されたコンテンツ種別クラスを次々と生成していく
- よってpostクラスを作るやり方に注目する
- post.rbを見ると,自身でcategoriesを持っているので,これをディレクトリ構造に基づくものに書き換えられないか
- ディレクトリの階層がどこまで深くてもpost生成が行われる/ インスタンス変数nameには潜ったディレクトリ名も含めて残っている,これを利用出来そう
- nameは,正規表現MATCHERを介して変数への展開が行われる,これを旨く変更すれば 自分の望む形でのファイルフォーマット/日本語への対応/ディレクトリのカテゴリ化が 全て旨く出来そう
起動コマンド
DropBoxと連動させているためか,バックグラウンドで動かしても更新が正しく動作しないため, screenを使って起動しデタッチさせた状態で常時起動する形にして解決