December 23, 2014
import tumblr posts with jekyll-import #1
自分用のメモなども兼ねて Tumblr で blog を書いていたが、もっとシンプルにしたいとか GitHub にアカウントがあるのにしばらく使っていないのでもったいない、などの理由で jekyll を使って GitHub Pages に blog を移行しようと思い立った。
いろいろなアカウントを使い分けるのも面倒になってきたので、メモ的なものや 日記的なもの (これは最近 Nisshi というサービスに書いていた) を全部ここにまとめようと思う。
そこで Jekyll への移行に伴って、jekyll-import を使って Tumblr の post を import した手順を書いておく。全 2, 3 回になるかもしれない。
まずは jekyll-import のインストールから。
$ sudo gem install jekyll-import
その後、jekyll-import を実行 (ファイルは markdown にした)。
JekyllImport::Importers::Tumblr.run({
"url" => "http://stonedsoul.tumblr.com",
"format" => "md",
"grab_images" => false,
"add_highlights" => false,
"rewrite_urls" => false
})'
エラーが出た。
/Library/Ruby/Gems/2.0.0/gems/jekyll-import-0.5.2/lib/jekyll-import/importers/tumblr.rb:135:in `post_to_hash': undefined method `<<' for false:FalseClass (NoMethodError)
from /Library/Ruby/Gems/2.0.0/gems/jekyll-import-0.5.2/lib/jekyll-import/importers/tumblr.rb:47:in `block in process'
from /Library/Ruby/Gems/2.0.0/gems/jekyll-import-0.5.2/lib/jekyll-import/importers/tumblr.rb:47:in `map'
from /Library/Ruby/Gems/2.0.0/gems/jekyll-import-0.5.2/lib/jekyll-import/importers/tumblr.rb:47:in `process'
from /Library/Ruby/Gems/2.0.0/gems/jekyll-import-0.5.2/lib/jekyll-import/importer.rb:23:in `run'
from -e:2:in `<main>'
調べてみたら、同じようなエラーに遭遇している人がいて、解決してたみたいだった。
自分の場合は video post が引っかかってたみたいなので、該当箇所を
when "video"
title = post["video-title"]
content = post["video-player"]
unless post["video-caption"].nil?
content << "<br/>" + post["video-caption"]
end
から
when "video"
title = post["video-title"]
content = post["video-player"]
unless post["video-caption"].nil?
unless post[:content].nil?
content << "<br/>" + post["video-caption"]
end
end
に変えた。
とりあえず、これで全部、またはほとんどの post の .md ファイルができた。
(続く)