MOGOKのアカウントをとったものの、なんに使うか全く考えてなかったのでOctopressを動かしてみた。その時の作業記録。
できたもの:http://not-taihen.ruby.iijgio.com/
参考
- http://route477.net/d/?date=20130220
- http://gunjisatoshi.ruby.iijgio.com/blog/2012/12/08/install-octopress-in-mogok/
環境
- Mac OSX Mountain Lion(10.8.3)
- rbenv
- ruby 1.9.3-p194
- bundlerインストール済み
MOGOKインストール
MOGOKのサイトからログインし、サイドメニューの「ダウンロード」からgemをダウンロードしてくる。ダウンロードしたgemをインストールする。
gem install mogok-1.0.3.gem
mogok --help
が動くか確認した。
Octopressインストール
Octopressのリポジトリをcloneしてくる。
git clone git://github.com/imathis/octopress.git
cd octopress
GemfileがそのままだとMOGOK上で動かないので次のように修正する。
この後の手順でエラーが出た1ので、色々やってみたけど参考URLを元にこれに落ち着いた。
gem "rails", ">= 3.0.0"
gem "sinatra", "1.3.4"
その後、次のコマンドでOctopressをインストールする。
bundle install
bundle exec rake install
ブログ設定
_config.ymlを編集して、ブログの情報を書く。
title, subtitle, author, descriptionを筆頭に色々。URLはそのまま。(目に付くやつをかたっぱしから変えたのでどれが必須とかはわからない……。)
HTML作成・起動
次のコマンドでHTMLを作成する。
bundle exec rake generate
_condig.ymlが文法的におかしいならここでエラーが出るので修正してリトライ。
問題なく終了したなら、public以下に生成したHTMLができる。
次に、下のコマンドを実行してローカルでOctopressを起動する。
bundle exec rackup
localhost:9292で起動するのでブラウザで確認する。
記事を作成・確認
記事の原稿(Markdown形式)はsource/_posts/以下にYYYY-MM-DD-タイトル.markdownというファイルで作成する。次のコマンドを実行すると、YAML front-matterを書いたファイルを作成してくれる。
bundle exec rake new_post
これだけ書くと、新しい記事のタイトルを聞いてくるので入力する。(ここでは"test-first"とした。)
多分普通は、下のようにタイトルを引数で指定して実行する。
bundle exec rake new_post["test-first"]
エスケープをよく忘れるので今回はしなかった。(エスケープするなら[に)
で、ここではsource/_posts/YYYY-MM-DD-test-first.markdownに記事を書く。
次に記事をHTMLで確認するんですが、さっきみたいにrake generateしてもいいんだけど、確認するだけなら次のコマンドでいける。
bundle exec rake preview
こうするとlocahost:4000で開ける。ファイルの変更に応じてHTMLも再生成する。
ここまでの変更をコミット
今までHTMLを作成してない(rake previewしかしてないとか)なら次を実行する。
bundle exec rake generate
まず.gitignoreを編集して、publicの行を削除する。そのあと今までの変更をコミット。(ここではmogokブランチにコミットする。)
git co -b mogok
git add public/
git commit -m "Add the first article"
git add _config.yml
git commit -m "Update my blog info"
(_config.ymlとpublic/のコミット順が逆だったり.gitignoreをコミットしてない。。)
MOGOKにログイン
(次に実行するmogok createでログインしようとしたけど入力ミスしまくったので先にログインだけした。なのでここは省いてもログインのタイミングが変わるだけで問題ないと思う。)
次のコマンドでインストールする。本来はすでに存在するアプリケーション名のリストを表示するコマンド。
mogok list
アプリ作成
MOGOKにアプリを作成する。(次のコマンドの"not-taihen"がアプリ名)
mogok create not-taihen
今回の場合、http://not-taihen.ruby.iijgio.com/ からアプリにアクセスできるようになった。ただし現時点だとMOGOKのアプリケーションサーバーが動いてないので、メンテナンス中とか出る。
名前はどのあたりまでユニークなのかわからないけど、少なくとも自分のアプリケーションの中でユニークならおk、というわけではなさそう。(URLを見る限り)
MOGOKにデプロイ
まず手元の変更をMOGOK上のリポジトリにpushする。
git push mogok mogok:master
MOGOKのアカウントとパスワードを聞かれるので入力する。これはpushする度に聞かれる。
pushが成功したら、次のコマンドでMOGOKでOctopressを実行できるようにする(パッケージを作成する)。
mogok build
最後。次のコマンドを入力すると、アプリケーションサーバーが動いてMOGOK上のOctopressにアクセスできるようになる。
mogok start
http://not-taihen.ruby.iijgio.com/ にアクセスすると、書いた記事が表示されているのが確認できる。
2回目以降
すでにMOGOKでOctopressが動いている場合。箇条書きで。今まで通り、rakeの実行には bundle exec
を使っている。
bundle exec rake new_post
- 文章を書く <->
bundle exec rake preview
で確認 bundle exec rake generate
git add .
git commit -m "…"
git push mogok mogok:master
mogok build
ここまで来たら、次のコマンドでアプリケーションサーバーを再起動する。
mogok stop
mogok start
mogok restart
ではいけなかった。(新しい記事が表示されなかった)
補足:情報表示
リポジトリやアプリケーションのURLなど、MOGOKの情報を表示するときに使うコマンド。
mogok info
デザインの変更
ここを参考に変更した。(メモ紛失。)