PukiWikiページをEvernote形式で出力するスクリプト書いてみた

PukiWikiのページ全部Evernoteにいれてみようかなと思ってスクリプト書いてみました。(だいぶ前に書いて放置してたんですが、せっかくなので公開しておきます)ただ自分用で作って一度実行しただけなのでイマイチだと思います。おかしいところがあったら突っこみください。PukiWikiは1.4.7を元に書きました。これより低いバージョンでは動かないかもしれません。

pukiwiki2evernote.phpをダウンロードしてPukiWikiのディレクトリのトップにおいてください。

設定変数としてあるのは
$p2e_exclude_pages = array();
が除外したいページの配列です。これとは別にpukiwikiのデフォルトページも除外するようになっています。

$p2e_topicpath2tag = false;
がパンくずリスト(’/’区切りなパス)をタグとして出力するかです。実際やってみたらいまいちだったので使わない方がよいかも。

$p2e_exclude_tags = array();
が除外したいタグの配列です。$p2e_topicpath2tagがfalseならタグは出力されないので関係ないです。

そのサーバで実行する場合は、

cd /path/to/yourpukiwkipath/
php ./pukiwiki2evernote.php > pukiwiki.enex

で出力できます。

レンタルサーバとかでコマンドが実行できない場合は、http://example.org/pukiwiki2evernote.php
に直接アクセスしてファイルを保存してもよいかもしれません。

ちなみに設定でexcludeがあってincludeがないのはとりあえず全部だしてみて要らないのがあったらEvernote上で消せばいいや、というスタンスから来ています。

実行してみて知ったのですが、PukiWikiはPKWK_PLUGIN_CALL_TIME_LIMITという閾値を使ってあまりにプラグインの実行回数が多い場合はスパムや暴走と判断してそこで処理を止めてしまう機能があります。このスクリプトは一度の実行ですべてのページを出力するためかなりの回数のプラグインが呼び出しがあります。スクリプトの最初の方で大きめに設定してありますが、これでも足りない場合はさらに大きい値を設定する必要があるかもしれません。

ここまで書いておいて最後にこんなこというのもアレですが、やっぱWikiにはWikiの良さがあるべ。と思ってEvernoteから消しちゃいました。もともとどのマシンからも編集できるようにと自分用のメモをPukiWikiで書いていて、その目的ならevernoteだけでもよくね?と思ってやってみたのですが、Wikiのが編集しやすいこともあるのでこれはこれで捨てがたいな、と。用途に合わせてEvernoteとPukiWikiを使い分けています。