プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Markdown記法+Git+md2review+ReVIEWで原稿・ドキュメント管理

 来年は、インプットあたりのアウトプットの増加を目指しています。具体的なアウトプットとしては、ブログを書くこともその1つですし、公開・非公開を問わずに効率的にドキュメントを書いていくこともあります。その中で効率的にドキュメントを書くには、バージョン管理を含めドキュメントを管理する仕組みが必須だと思います。以前、原稿を書いていた時は、Git+MS Wordで書いていました。版管理出来るという点では良いのですが、Wordということで執筆出来る端末も限定され、またフォーマット変更もしづらいので改善を考えていました。
 そんな中で、IT系の物書きの人たちの間でReVIEW良いよという話を何度も聞いたので試してみようと思いました。一方で、記述のデファクトは今後はMarkDown基本になると思うのでそちらもマスターしたいと考えています。Twitterで何気なく呟いたら、@masawadaさんにmd2reviewで実現出来ると教えて頂きました。これだと思い試してみましたので、そのメモです。


 簡単にやりたいことをまとめると、下の図の通りです。将来的には、MarkDownから直接変換も見越しています。

md2reviewとReVIEWをインストールする



ReVIEWもmd2reviewも、rubyのgemで配布されています。私は、rvm管理下のruby-2.0.0-p247でインストールしました。gem installするだけなので、簡単だと思います。環境ごとのgemを使い分けたいのであれば、globalではなく専用のgemsetを作るのも良いでしょう。


reviewのインストール

$ gem install review
Fetching: review-1.1.0.gem (100%)
Successfully installed review-1.1.0
Parsing documentation for review-1.1.0
Installing ri documentation for review-1.1.0
1 gem installed


md2reviewのインストール

$ gem install md2review
Fetching: redcarpet-3.0.0.gem (100%)
Building native extensions. This could take a while...
Successfully installed redcarpet-3.0.0
Fetching: md2review-1.0.1.gem (100%)
Successfully installed md2review-1.0.1
Parsing documentation for md2review-1.0.1
Installing ri documentation for md2review-1.0.1
Parsing documentation for redcarpet-3.0.0
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/redcarpet.bundle, skipping
Installing ri documentation for redcarpet-3.0.0
2 gems installed

 md2reviewが利用するredcarpetというモジュールで、unable to convert "\xCF" from ASCII-8BIT to UTF-8というエラーが出てスキップされました。軽く調べて見ましたが特に問題はなさそうなので、取りあえずスルーしておきます。また問題が起きれば、対処することにします。

MarkDown形式で記載して変換する



 簡単な文章で試してみました。MarkDown形式については、別途勉強しようと思っています。


元文章
sample.md

# 見出し h1
色は匂へど **散りぬるを**

我が世誰ぞ 常ならむ
有為の奥山 今日越えて
浅き夢見じ 酔ひもせず

## 見出し h2

### 見出し h3

ReVIEW形式に変換

$ md2review sample.md > sample.re


変換後のファイル
sample.re

= 見出し h1


色は匂へど @<strong>{散りぬるを}


我が世誰ぞ 常ならむ
有為の奥山 今日越えて
浅き夢見じ 酔ひもせず

== 見出し h2

=== 見出し h3


ReVIEW形式から、様々な形式に変換

review-compile --target text sample.re > sample.txt ←テキストにする
review-compile --target html sample.re > sample.html ←HTMLにする
review-compile --target latex sample.re > sample.tex ←LaTeXにする

Gitで管理する


Gitでバージョン管理



 ここまで出来れば、後はGitで管理するだけです。私は以前何回か書きましたが、GitのライブラリをDropboxフォルダに置いて管理しています。オンライン・オフライン問わずに取りあえずPushしておけば、オンラインになった時に同期されるので便利です。自分一人で使うリポジトリの管理はこれで充分です。

$ mkdir ~/Dropbox/git/Documents/sample
$ git init ~/Dropbox/git/Documents/sample --bare --shared=true
Initialized empty shared Git repository in /Users/user/Dropbox/git/Documents/sample/
$ git init 
$ git remote add origin ~/Dropbox/git/Documents/sample/
$ git add .
$ git commit -m"init"
$ git push origin master 

まとめ



 まずは環境を整えた段階だけですが、軽量で自分のスタイルに合っていて使いやすいように思えます。最近、ブログの移行を考えていてMarkDown形式が使える所を選ぼうと考えています。そうすれば、全ての原稿・ドキュメントを一旦手元で書いて管理出来るのではと期待しています。


See Also:
週末プログラマにお薦め!!Subversion+DropBoxで似非分散型バージョン管理
Git+DropBoxで、プライベートリポジトリ作成。或いはGitをAmazon S3でバックアップ


参照:
review/doc/quickstart.rdoc at master · kmuto/review · GitHub
takahashim/md2review · GitHub