結論
変換は出来たけど、あまり使えなかった。
理由
- Pandocがpukiwikiに対応していなかった。
- markdown to pukiwiki の変換を見つけたけど org to markdownが希望の変換してくれなかった。
(先に気がつけよ・・・・・・・pandocのドキュメントを翻訳してくれている人もいるのに)
本編
仕事関連のメモはorg、昇格するとClosedなPukiWiki。
公開可能な個人メモはmarkdown、昇格するとQiita。
ってやっていこうかと思うので、各種ドキュメントを相互変換出来るようにPandocを使ってみる。
ざっくり
- pandocよさ気
- でも、org to pukiwiki は直接出来ない
- markdown to pukiwiki の gem 発見
- org to markdown to pukiwiki でやる
- 早速使って見たら微妙。。。
ツールのインストール
PandocはHaskellで作られているのでHaskell環境が必要。
Pandocはbrewでもインストール出来るけど、現在ではbrewの方がVersionが低い。
なので、以下の手順でpandocをイントールする。
- Haskellをインストール
- Haskellのパッケージマネージャ(cabal)を使ってpandocをインストール
Haskell(cabal)のインストール
Haskellのパッケージマネージャ cabal を以下のコマンドで入れる。
brew install ghc cabal-install
数分程度かかるけど、ボトルネックはネットワーク環境っぽい。
cabalのインストール方法を調べていると、以下のコマンドも出てくる。
でもすでにパッケージ化していないようでエラーになる。
$ brew install ghc haskell-platform
Error: No available formula for haskell-platform
We no longer package haskell-platform. Consider installing ghc
and cabal-install instead:
brew install ghc cabal-install
A binary installer is available:
https://www.haskell.org/platform/mac.html
意訳すれば、
すでに時代遅れの(no longer)"haskell-platform"はパッケージ化してないよ。
代わりに(insted) "brew install ghc cabal-install"使ってね。
ってことらしい。
Pandocのインストール
準備が出来たので、cabalをupdateしてpandocをインストール
cabal update
cabal install pandoc
installにそこそこ時間かかる(20〜30分!?)ので、のんびり待つ。
ネットワーク環境に大きく左右されるっぽ。
インストール終わったら、いつものバージョン確認コマンド。
pandoc --version
今回(2015/02現在)のバージョンはpandoc 1.13.2
md2pukiwiki のインストール
Pandocで org to pukiwiki したかったけど、実はPukiwikiは対応してなかった。
うろうろしてたら、こちらを見つけたので早速あやかる事に。
gem install md2pukiwiki
使い方
結果は標準出力に吐かれるようなので適当なファイルにリダイレクトする。
md2pukiwiki markdownファイル > foo.pukiwiki
orgファイルからPukiwikiへ変換
諸々準備が整ったので、org to markdown to pukiwiki をshでラッピングして~/bin(パスが通っている前提)に突っ込む。
#!/bin/bash
src_file=$1
# 拡張子ありのファイル名を取得
file_name_ext=`basename ${src_file}`
# こっちでも良いよ
# file_name_ext="${src_file##*/}"
# 拡張子なしのファイル名を取得
file_name=`basename ${src_file} .org`
# ↑だと拡張子がorg固定だから、こっちの方がいいかも。
# file_name="${src_file%.*}"
# ディレクトリ取得
file_dir=`dirname ${src_file}`
# こっちでも良いよ
# file_dir="${fpath%/*}"
# org to markdown
pandoc -s ${src_file} -o ${file_dir}/${file_name}.md
# markdown to pukiwiki
md2pukiwiki ${file_dir}/${file_name}.md > ${file_dir}/${file_name}.pukiwiki
ls -l ${file_dir}/${file_name}*
exit 0
使い方はこんな感じ
org2pukiwiki ~/projects/note.org