githubpagesに移行した

2013-08-25  /  GitHubCMS

社内でS3が安いと知る→静的コンテンツの生成とかについて調べる→jekyllとか見つける→そういえばgithub pagesあったな〜

という流れで、移行した。

jekyllに対応

markdown形式で書いて、コミットしたらページができる。記事一覧とかも一応自動生成できるようになってる。octpressだと楽できるらしいけど、よく知らない。

静的ページしか対応してないので、コメント欄を設けたかったら、facebook コメントとか設置しないといけない。今は別にいらんので設置してない。

RSSの生成はどうすんだ〜と思ったけど、まだ調べてない。

Wordpress(前のサイト)の記事の移行

jekyll-importってのがあるので、それを使った。wordpressにもちゃんと対応している。手順はjekyllのページに載ってる。
http://jekyllrb.com/docs/migrations/

書いてある通りにやれば良いかなと思ったけど、地味に躓いた。

なので、手順としては以下になった。

% sudo yum install mysql-devel
% cat Gemfile
# A sample Gemfile
source "https://rubygems.org"

gem 'github-pages'
gem 'jekyll-import'
gem 'sequel'
gem 'mysql2'

% bundle
% bundle exec ruby -rubygems -e 'require "jekyll/jekyll-import/wordpress";
JekyllImport::WordPress.process(:dbname => "database", :user => "user", :pass => "pass")'

上手く行くと、_postsの下にファイルがごっそりできる。

ファイルを見ると、wordpress関係の余計な情報が入っているので、必要なものだけ出力されるようにjekyll-import/wordpressを修正する。必要な情報としては、layout, published, tags くらいかな。

def self.process_post の最後の方に出力するデータが定義されているので、その辺をごにょごにょっと変更。

data = {
  'layout'        => post[:type].to_s,
  'published'     => (post[:status].to_s == "publish"),
  'title'         => title.to_s,
  'tags'          => options[:tags] ? tags : nil,
}.delete_if { |k,v| v.nil? || v == '' }.to_yaml

これでもう一度エクスポート処理をすると問題なかった。

github に push する前にローカルで確認しておく。jekyll serve で立ち上げると4000番ポートにアクセスできる。

% jekyll serve

ここで、移行したデータに問題があればエラーとかページがおかしかったりするので、ちまちま直す。けっこうめんどくさくなってきた…。

変更した箇所は主に以下の2つ。

最後に改行コードが気になったので、統一しておく。dos2unixが入ってなかったので、ついでに入れといた。

% sudo yum install dos2unix
% dos2unix _posts/*

出来たらgithub に push して終わり。

% git add -A _posts/*
% git commit -m "過去記事の追加"
% git push

投稿の内容に関しては、wordpressのショートタグとか使ってなかったので、特に問題なさそう。

とりあえずこんなとこで。

Published: 2013-08-25  /  Tags: GitHubCMS  /  Share: X