今日WordpressからOctopressに移行しました。
Octopressとは、JekyllというRuby製の静的サイト生成ツールを使って静的なブログを生成するフレームワークです。
移行は以下の手順で行いました。
- Octopressの導入
- Wordpressの記事をJekyll向けにexport
- GitHub pagesにDeploy
- 独自ドメインを設定する
- werckerを使ってDeployの自動化
Octopressの導入
Octopressの導入については以下のリンクで説明されています。
http://octopress.org/docs/setup/
OctopressはRuby1.9.3以上がインストールされている必要があります。rbenvやRVMでインストールをしておきましょう。
以下のようにoctopressをcloneします
1 2 |
|
次にbundlerのインストールと必要Gemのインストール
1 2 |
|
最後にデフォルトのテーマのインストールです
1
|
|
_config.ymlにブログの情報を書きます。
1 2 3 4 5 6 |
|
Wordpressの記事をJekyll向けにexport
Wordpress to Jekyll exporterというWordpressのプラグインを利用しました。
https://github.com/benbalter/wordpress-to-jekyll-exporter
使い方
- このリポジトリの中身を/wp-content/plugins/フォルダに入れる
- php.iniに
extention=zip.so
のコメントアウトが外れていることを確認 - WordpressのダッシュボードからPluginを有効化
- ToolsのメニューからExport to Jekyllを選択する
ダウンロードしたExportファイルを_config.yml以外を先程のOctopressのフォルダに入れればOKです
基本的にはちゃんと変換されますが、Wordpressのプラグインを利用した記述は時々おかしくなっているので修正します。 僕は、Syntax highlighterの部分がおかしくなっていました。
またiframeを利用したyoutubeの貼り付けなどがおかしくなっていたので手動で修正しました。
GitHub pagesにDeploy
Github pagesの作り方については以下のリンクに説明があります。
ユーザネーム.github.ioでリポジトリを作り、そこにhtmlをpushするとユーザネーム.github.ioのアドレスで配信されるようになります。
Deploy先を以下のコマンドで設定できます。
1
|
|
途中でリポジトリのURLを聞かれるので、入力します。 例) git@github.com:fly1tkg/fly1tkg.github.io.git
そうすると以下のコマンドでdeployできるようになります。
1 2 |
|
独自ドメインを設定する
独自ドメインの設定については以下のリンクに説明があります。
https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages
CNAMEというファイルを作成して、中身は設定したい独自ドメインのみを記述します。 このブログだったらb.fly1tkg.comをCNAMEに書きます。
そしてそのCNAMEファイルをGitに追加してGitHubにpushします。
次にDNSプロバイダで独自ドメインのDNS設定をします。
CNAMEレコードでユーザネーム.github.ioに転送するように設定します。詳しくは各DNSプロバイダのドキュメントを参照すると良いと思います。
僕はRoute53を利用しているので、さくっとCNAMEレコードを追加しました。
werckerを使ってDeployの自動化
Octopressのコードはgithub.ioのリポジトリとは別で管理するので、記事を書くたびに両方にデプロイするのは面倒なので、masterにコミットした内容を自動でgithub.ioにデプロイするようにします。
デプロイの自動化はCircle CIやwerckerを利用するといいと思います。今回はwerckerを利用しました。
GitHub pagesへのDeployについては以下のリンクが参考になります。
http://blog.wercker.com/2013/07/25/Using-wercker-to-publish-to-GitHub-pages.html
werckerでアプリを作成して、wercker.ymlをリポジトリに追加します。
僕は以下の様な設定をしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Deployの設定をする
werckerのアプリの設定ページでDeployの設定ができます。
Add Deploy targetのボタン –> Custom deployを選択して、
- Deploy target name: github-pages
- Auto deploy: チェック, master
と設定しました。
Deploy pipelineの項目でAdd new variableというボタンを選択することでデプロイ時の環境変数を設定することができます。
以下のように設定しました。
- name: GIT_REMOTE
- value:
https://GitHubのアプリケーションTOKEN@github.com/ユーザ名/リポジトリ名.git
アプリケーションTOKENについてはGitHubのSettingのApplicationのセクションで新規作成できます。 wercker用のものを発行しておきましょう。
Deployはrake deployで行うのですが、デプロイを簡単にするためにgitのforceオプションでコミットするように変更します。
Rakefileを開き、pushタスクのgit push
に-f
をつけます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
これでDeployの設定が完了です。masterブランチに変更をpushすると自動でgithub-pagesにdeployされるようになります。