/pukiwikiconvert

A Character encoding converter of PukiWiki data written by Ruby.

Primary LanguageRuby

pukiwikiconvert

これは何?

EUC-JP版のPukiWikiのデータファイルを、UTF-8版のPukiWiki向けに変換するRubyスクリプトです。

要件

  • Linux(UTF-8環境であること)
  • Ruby 2.3.0
  • 変換元PukiWikiバージョン 1.4.7(EUC-JP版)
  • 変換先PukiWikiバージョン 1.5.1(UTF-8版)

使い方

pukiwikiconvert.rbをダウンロードします。

以下のように起動します。

ruby pukiwikiconvert.rb SRC_DIR DST_DIR
  • SRC_DIR -- 変換元のPukiWikiのディレクトリを指定します。変換元のディレクトリは、変更しません。(例. /var/www/htdocs/pukiwiki)
  • DST_DIR -- 変換先のディレクトリを指定します。ここに変換したファイルを格納します。ディレクトリは空である必要があります。(例. /home/xmisao/pukiwiki)

通常の出力は標準出力へ、変換失敗などのエラーは標準エラー出力に出力します。

DST_DIR以下に出力されたファイルを、移行先のPukiWikiのディレクトリの同名のフォルダにコピーして、パーミッションを設定して下さい。

詳細

以下のファイルを変換元から変換先に変換してコピーします。 変換は、ファイル名、ファイルの内容、どちらも行います。タイムスタンプ(mtime)は維持します。

  • wiki/*.txt -- wikiのページのデータ。ファイル名および内容を変換します。
  • attach/*_* -- ページの添付ファイル。拡張子がないファイルに加え、logのファイル、および数字のファイルも含みます。内容は変換しません。
  • backup/*.gz -- wikiのページの履歴データ。ファイル名および内容を変換します。いったん伸張し、変換した後に、再圧縮します。
  • diff/*.txt -- wikiのページの差分データ。ファイル名および内容を変換します。

注意事項

  • 2016/5/18時点で簡単な動作確認は行っていますが、作りかけです。
  • zlibオプションが有効でない環境のファイル(backup以下のファイルがGZip圧縮されない)の変換には対応していません。
  • 日本語を含む文字列は、EUC-JPよりUTF-8の方がバイト長が長くなります。このため、長いページ名や名前が長い添付ファイルは、変換先ファイル名の長さがファイルシステムの上限を超過し、変換がエラーとなる場合があります。

作者

ライセンス

This library is distributed under the MIT license.