! ★ コード変換ツール

Shift_JIS、euc-jp、utf-8のコード変換をするツールです。

{{{
ruby tool/unkf.rb <code> <wildcard>
 tool/unkf.rb  コード変換ツールのスクリプトです。
 <code>        コード変換指定パラメタです。utf-8の変換をするにはUconvが必要です。
}}}

コード変換指定パラメタは以下が使用できます。
変換元を大文字で1文字目に、変換先を小文字で2文字目に指定します。
| E |euc-jp
| S |Shift_JIS
| U |utf-8

! ★ Wiki変換ツール wikiconv.rb

Wikiの各種フォーマット、エンコーディングを変換するツールです。

{{{
ruby -K<encoding> tool/wikiconv.rb <format> <code> <file>
  -K<encoding>      rubyをutf-8で認識させます。VikiWikiのエンコーディングを指定します。通常は-Kuです。
  tool/wikiconv.rb  Wiki変換ツールのスクリプトです。
  <format>          Wikiフォーマット指定パラメタです。
  <code>            エンコーディング指定パラメタです。utf-8の変換をするにはUconvが必要です。
  <file>            変換元のファイルを指定します。
}}}

Wikiフォーマット指定パラメタは以下が使用できます。
変換元を大文字で1文字目に、変換先を小文字で2文字目に指定します。
変換先を指定しない場合、HTMLを出力します。
ただし、HTML出力にはヘッダやフッタはつきません。
| V |VikiWiki
| A |AsWiki
| H |Hiki
| T |Tiki
| P |PukiWiki
| Y |YukiWiki

エンコーディング指定パラメタは以下が使用できます。
変換元を大文字で1文字目に、変換先を小文字で2文字目に指定します。
省略した場合、rubyの-Kオプションで指定したエンコーディングをして扱われます。
|E|euc-jp
|S|Shift_JIS
|U|utf-8

以下に変換パラメタの例を示します。
:-Vh -Ue : VikiWikiスタイルをHikiスタイルに、utf-8をeuc-jpに変換します。
:-Py -Es : PukiWikiスタイルをYukiWikiスタイルに、euc-jpをShift_JISに変換します。
:-T      : Tikiスタイルを、コード変換せずにHTMLに出力します。

例えば、VikiWikiフォーマットでutf-8エンコーディングのファイル（このファイル）を
YukiWikiフォーマットのShift_JISエンコーディングに変換するには以下のコマンドを実行します。
{{{
ruby -Ku tool/wikiconv.rb -Vy -Us tool.txt
}}}

HTMLに変換するには以下のコマンドを実行します。
{{{
ruby -Ku tool/wikiconv.rb -V -Us tool.txt
}}}

! ★ 拡張子変換ツール

指定したディレクトリとそのサブディレクトリにあるファイルの拡張子を
変換するためのツールです。
直接編集モードを利用する場合に使用してください。

{{{
ruby tool/chgext.rb <directory> <from-ext> <to-ext>
  tool/chgext.rb  拡張子変換ツールのスクリプトです。
  <directory>     変換する対象のディレクトリです。
  <from-ext>      変換元の拡張子です。
  <to-ext>        変換先の拡張子です。
}}}

.txtを.wikiという拡張子に変換するには以下のコマンドを実行します。
{{{
ruby tool/chgext.rb /home/mopia/public_html/wiki/text txt wiki
}}}

! ★ DiffCVS変換ツール

VikiWiki::CVSから固有の処理を取り除き、汎用化したDiffCVSを利用するように
変更しました。従来の機能とユーザ名の持ち方が異なります。

DiffCVSへの変換にはchgdiffcvsを利用します。
以下のように指定します。
{{{
ruby -Ku tool/chgdiffcvs.rb /home/mopia/html/dynamic/text txt
}}}

! ★ 静的HTML生成ツール

<<<caution
setup.rbでCGIを最新版の形式にする必要があります。
>>>
指定したCGIスクリプトのすべてのページの静的HTMLを生成しなおします。
{{{
Usage: ruby tool/static.rb [options] <local-path> <script-name> [targets]
 tool/static.rb  静的HTMLを生成するためのツールのスクリプトです。
 <local-path>    CGIスクリプトのローカルパスを指定します。
 <script-name>   CGIスクリプトのCGIスクリプトのパスを指定します。
 [targets]       生成するページ名を指定します。
 [options]       以下のオプションを指定します。
   -u          更新されているページだけ静的HTMLを生成します。
   -e          静的HTMLが存在するページだけ静的HTMLを生成します。
   -t          themeディレクトリをコピーします。
   -i          imgディレクトリをコピーします。
   -x          index.htmlを生成します。
   -l          トップページからのリンクおよび逆リンクを芋づる式に生成します。リンク切れがなくなります。
   -d          静的HTMLを生成する前にすべてのHTMLを削除します。
   -q          サイレンとモードで実行します。
   -S,-E,-U    生成するエンコーディングを指定します。S = Shift_JIS, E = euc-jp, U = utf-8
   -o file     生成した結果をファイルに出力します。
}}}

たとえば以下のように指定します。
{{{
ruby tool/statict.rb -uetixS /home/mopia/public_html/wiki/vikiwiki.cgi /~mopia/wiki/vikiwiki.cgi
}}}

! ★ ツールバーの画像

toolbar.zipはツールバーの画像です。

! ★ 静的HTMLでフォームを使うプラグインを利用する

静的HTMLではフォームは動的CGIスクリプトを呼び出すため、
フォームを使うプラグインを無効としています。
静的HTMLでもcommentプラグインなどを利用したいとの声があり、
プラグインの呼び出しをフックする機能を追加しました。

+ tool/plugin_hook.cgiファイルをCGIを実行できる場所に設置してください。
+ ファイル名を任意の名前に変更してください。例えば、comment.cgiなどです。
+ そのファイルをエディタで開き、以下の2箇所を修正します。
   - rubyのパスを変更します。
   - SCRIPT_NAMEの後ろのVikiWikiのCGIスクリプトのパスを変更します。
+ VikiWikiのCGIスクリプトをエディタで開き、以下の場所にプラグインのフック機能のパラメタを設定します。
  - PLUGIN_HOOK_SCRIPTには設置したCGIスクリプトのURIを指定します。
  - PLUGIN_HOOK_NAMESにはフック機能を使用するプラグイン名を配列で指定します。
  {{{
：
# *** begin user's definitions ***
'PLUGIN_HOOK_SCRIPT' => '/~hogehoge/comment.cgi',
'PLUGIN_HOOK_NAMES' => ['comment'],
# *** end user's definitions ***
：
  }}}
  + VikiWikiのCGIスクリプトと別の場所におくには、VikiWikiのCGIスクリプトでBASEDIRを明示的に指定します。
    {{{
"BASEDIR" => '/home/hogehoge/pubic_html/wiki',
    }}}
+ commentプラグインを使用しているページを更新し、静的HTMLを出力します。
+ 静的HTMLにもcommentプラグインが表示されます。
+ コメントを入力し書き込むと上記例ではcomment.cgiが呼び出され、すぐに静的HTMLへのLocationとなります。
+ 更新された静的HTMLには書き込んだコメントが追加されています。

このプラグインのフック機能にはpluginのPOST処理以外を処理する機能はないので
動的Wikiへのアクセスをさせないようにすることができます。

この機能は動的Wikiを一切見せないようにすることを目的としているため、
認証方法にはwww認証を使用してください。

! ★ 圧縮ファイルのダウンロードのCGI

以下のような目的に使用することができます。

- 静的HTML全体をダウンロードする。
  マニュアルサイトなどをWikiで構築した場合でも、ダウンロード用に配布物を
  用意したいこともあります。
  このCGIを設置すれば、その時点でのスナップショットをダウンロードすることができます。

- VikiWikiのバックアップをCGIで実行する。
  Wikiサイトのバックアップは定期的にやりたいけどレンタルサーバだから
  バックアップが容易でなかったり、telnetが使えなかったりとバックアップも
  ままならないことがよくあります。
  このCGIを設置すれば、その時点でのバックアップをダウンロードすることができます。

!! 設置方法

+ tool/tarball.cgiの内容を自分の環境に合わせて編集します。
  - rubyのパス
  - 対象ディレクトリ（@directory）
  - 圧縮用コマンド（@compress）
  - ダウンロード用ファイル名（@filename）

+ CGIが実行可能なディレクトリに設置します。

+ 実行権を与えます。

! ★ Wikiパーサのサンプル：wiki-dom.rb

VikiWikiではWikiテキストをDOMに変換する機能を持っています。
WikiテキストをDOMツリーに変換することで、DOMのI/Fを利用した
さまざまな操作をすることができます。

tool/wiki-dom.rbはWikiテキストをDOMツリーに変換し、
さらにWikiテキストに再変換、HTMLに変換、XMLに変換をするサンプルプログラムです。

たとえば、以下のように使用します。
{{{
ruby -Ku tool/wiki-dom.rb /home/hoge/tmp/wiki/FrontPage.txt
}}}

/home/hoge/tmp/wiki/FrontPage.txtはVikiWikiスタイルで記述されたファイルです。
このサンプルプログラムを実行するとカレントディレクトリに以下のファイルが生成されます。
- FrontPage.wiki - Wikiテキスト
- FrontPage.html - HTML
- FrontPage.xml  - XML

