tumblrブログをOctopress用markdownに変換する方法 part2
Finally, I can convert tumblr blog to Octopress!
前回のエントリーでは、tumblr APIを手作業で実行して、xmlを出力したり、octopress用のmarkdownに変換する方法を書いた。
今回は全ての作業を一括して実行するツールであるtumblr2markdownを作った話。
使い方はREADME.mdにも書いた通りだが、日本語でも書いておこうと思う。
Installation
このtumblr2markdownではSymfony2のComsoleコンポーネントを使用している。その依存関係を判断して、自動的に必要なライブラリをインストールしてくれるのがComposerだ。
Install composer
Composerをインストールしていない場合は、まずComposerをインストールする。
次はcomposer.jsonを用意しておく。ここにはインストールすべきツールであるtumblr2markdownが必要だ、ということを書いておく。
Install tumblr2markdown
それからcomposer
コマンドを使ってtumblr2markdownをインストールする。
which composer
を実行したときにcomposerコマンドが見つからない場合はこの方法でインストールできるはずだ。
You can git clone as an alternative way
もちろん、直接git clone
しても大丈夫だ。cloneしたディレクトリでcomposer install
すればいい。
Usage
tumblr2markdownで使えるオプションは-h
または--help
で確認できる。
必要なオプションは-b
または--blogname
だ。ここではブログ名を指定する。自分のtumblrページのURLがsatooshi-jp.tumblr.com
だったら、satooshi-jp
を指定する。
これを実行すると_posts
ディレクトリが作成され、この中にY-m-d-slug.markdown
というファイルが出来上がっているはずだ。これがOctopress用のmarkdownファイルとなる。
Filter export posts
出力したいエントリーをフィルターしたい場合には、次のオプションが使用可能だ。
- --type (-t)
- --id (-i)
- --tagged
- --chrono
- --search
--type
はtumblrブログのエントリータイプをフィルターする。例えば、textタイプのみ出力したい場合は、次のようなコマンドを実行する。というより、このタイプ以外には対応していないので、注意が必要だ。
--id
は特定のエントリーだけを出力したい場合に使用する。例えば、エントリーIDが43537435080の場合は次のようなコマンドを実行する。
--tagged
は特定のタグが付いたエントリーだけを出力したい場合に使用する。例えば、"photo"というタグが付いたエントリーの場合は、次のようなコマンドを実行する.
--chrono
は--tagged
と一緒に使うオプションだ。単に出力順を変えるオプションで、0か1を指定する。
--search
はエントリー内の単語を検索してくれるらしいぞ。実際に付けて実行したことないので、どうなるかは試してみてからのお楽しみだ。
Dump redirection code for Sinatra
もし、tumblrを独自ドメインで使っていて、Octopressでも同じドメインを使う場合、tumblrのURLをOctopressのURLにリダイレクトしたいという事もあるかもしれない。その時には--dump-redirect
または-d
を付けると、リダイレクト用のコードを出力可能だ。ファイルに出力した方が便利だったかもしれないが、echoしただけなので、標準出力に出てくる。完全に手抜きだ。どうしてもファイルに出したい場合は> redirect.rb
とかなんとかしてほしい。
Limitation
適当に作ったツールなので、制限事項がある。
- textタイプ以外のエントリーには対応していない
- htmlフォーマット以外のエントリーには対応していない
もしこれらの制限事項に当てはまる場合は、適当にforkするか、気軽にpull requestして欲しい。もちろん日本語のPRでも大丈夫。markdownフォーマットで書いている場合はpandocを実行しないようにすればいいだけなので、対応も簡単なはずだ。
ちなみに、Githubのページはここにある。