Octopressのテーマをclassicからoctostrap3に変更してみる
デフォルトテーマ
Octopressではデザインテーマをinstall
タスクにてインストールします。デフォルトでインストールされるテーマはclassicです。
installタスクの動作を理解する
Octopressでテーマを適用するinstall
タスクの動作を見てみようと思います。
下記コードはOctopressのRakefile
に記述されたinstall
タスクです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
コードを見ても分かる通り、installタスクで実行していることは以下の6つの事だけで、とてもシンプルな動作です。#{theme}
はデフォルトではclassicが代入される変数です(上記コードの6行目)。
source
ディレクトリを作成.themes/#{theme}/source
ディレクトリ以下のファイルやディレクトリを再帰的にsource
ディレクトリにコピーsass
ディレクトリを作成.themes/#{theme}/sass
ディレクトリ以下のファイルやディレクトリを再帰的にsass
ディレクトリにコピーsource/_posts
ディレクトリを作成public
ディレクトリを作成
テーマのインストール
テーマのインストールに必要な作業は以下の3つだけです。
.themes
ディレクトリ以下にインストールしたいテーマをプロジェクトごとコピーする.themes/octostrap3/
のようになる
- installタスクをインストールしたいテーマを明示して実行する
rake 'install[octostrap3]'
のようになる
generate
タスクを実行して静的ファイルを生成する
octostrap3テーマをインストールする
今回はOctostrap3をテーマとしてインストールしてみます。
octostrap3プロジェクトを.themes
ディレクトリ以下にcloneしてきます。
1
|
|
.themes
ディレクトリ以下はこのようなディレクトリ構成になるはずです。
### octostrap3テーマをローカル環境にcloneした状態
octopress
└── .themes/
├── classic
└── octostrap3
Octopressのinstallタスクをテーマを指定して実行
1
|
|
Octopressのgenerateタスクを実行して静的コンテンツを生成
1
|
|
これでサイトのデザインテーマをoctostrap3
に変更できました!
と思ったらサイドサイドメニューのoctopress-tagcloud プラグインで生成されているulタグのデザインがoctostrap3に合っていない...
これはoctopress-tagcloudプラグインをインストールした際に置いたテンプレートファイルの書き方を修正することで対応できます。
octopress-tagcloud プラグイン向けのHTMLテンプレートファイルを修正
プラグインを利用してコンテンツを生成している場合、source/_includes/custom/asides
ディレクトリ以下にコンテンツ生成用のHTMLテンプレートファイルを配置していると思います。
今回、デザインテンプレートをclassic
からoctostrap3
に変更したので、追加したテンプレートファイルのdiv
などのブロック構成、class
やid
などのデザインに関わるコードもoctostrap3
のデザインに合う様に修正しようと思います。
ちょうど、octostrap3のブログページにCategory List Asideという記事でサイドメニューにカテゴリーリストを追加するためのテンプレートコードが掲載されていましたのでそのまま利用させて頂きます。
修正対象ファイル
以下のディレクトリツリーにある2つのHTMLファイルを修正します。
### octostrap3導入にあたって修正するテンプレートファイルのパス
octopress
└── source/
└── _includes
└── custom
└── asides
├── category_list.html
└── tag_cloud.html
修正
source/_includes/custom/asides/category_list.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
source/_includes/custom/asides/tag_cloud.html
1 2 3 4 5 6 |
|
簡単でした!