一覧表示の五十音順分類

PukiWikiでの「一覧」は日本語ページ名の物は全て「日本語」というカテゴリでひとくくりになる。
これをChaSenやKAKASIの漢字→仮名変換機能を利用して、日本語ページ名の読みを取得し、一覧表示(?cmd=list)の五十音順分類に役立てる。

できること

日本語ページ名の五十音順分類。
この機能を使用しない場合、日本語ページ名は「日本語」というカテゴリにまとめられ、その中で文字コード順に配置されるが、この機能を使用すると、日本語ページ名の1文字目のカナ順で配置されるようになる。

設定方法

pukiwiki.ini.phpの以下の項目を設定することで、ChaSen、KAKASIを利用した読みの取得が可能になる。

  • ChaSenまたはKAKASIによる、ページ名の読みの取得(0:無効,1:有効)
    ($pagereading_enable)
  • ChaSenまたはKAKASIのどちらを利用するか(chasen or kakasi or none)
    ($pagereading_kanji2kana_converter)
  • ChaSenまたはKAKASIとの受け渡しに使う漢字コード(UNIX系は EUC、Win系は SJIS が基本)
    ($pagereading_kanji2kana_encoding)
  • ChaSenまたはKAKASIの実行ファイル(各自の環境に合わせて設定)
    ($pagereading_chasen_path、または$pagereading_kakasi_path)
  • ページ名読みを格納したページの名前 ($pagereading_config_page)

ChaSenまたはKAKASIによる、ページ名の読みの取得

ページ名の読みを取得するかどうかを設定する。

// ChaSen, KAKASI による、ページ名の読みの取得 (0:無効,1:有効)
$pagereading_enable = 0;

デフォルトは0になっているので使用する場合は1にする。

ChaSenまたはKAKASIのどちらを利用するか

ChaSenとKAKASIのどちらを利用するかを設定する。

// ChaSen or KAKASI
//$pagereading_kanji2kana_converter = 'chasen';
$pagereading_kanji2kana_converter = 'kakasi';

デフォルトではKAKASIを選択している。
ChaSenを使用する場合はKAKASIを選択している行をエスケープし、ChaSenのエスケープを外す。

ChaSenまたはKAKASIとの受け渡しに使う漢字コード

データの受け渡しに使用する文字コードを選択。
ChaSen/KAKASI が扱える文字コードを指定して下さい。PukiWiki本体の文字コード(SOURCE_ENCODING)設定とは別物です。

// ChaSen/KAKASI との受け渡しに使う漢字コード (UNIX系は EUC、Win系は SJIS が基本)
$pagereading_kanji2kana_encoding = 'EUC';
//$pagereading_kanji2kana_encoding = 'SJIS';

デフォルトではEUCを選択している。
SJISを使用する場合はEUCを選択している行をエスケープし、SJISのエスケープを外す。

ChaSenまたはKAKASIの実行ファイル

ChaSen、またはKAKASIのパスを設定する。

// ChaSen/KAKASI の実行ファイル (各自の環境に合わせて設定)
$pagereading_chasen_path = '/usr/local/bin/chasen';
//$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
$pagereading_kakasi_path = '/usr/local/bin/kakasi';
//$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';

各自の環境に合わせて設定する。

ページ名読みを格納したページの名前

ChaSen、またはKAKASIによって取得されたページ名の格納場所を設定する。

// ページ名読みを格納したページの名前
$pagereading_config_page = ':config/PageReading';

ChaSen使用の場合の設定例

※ChaSenのパスはデフォルトのままにしています。
UNIX系の場合

// ChaSen, KAKASI による、ページ名の読みの取得 (0:無効,1:有効)
$pagereading_enable = 1;
// ChaSen or KAKASI
$pagereading_kanji2kana_converter = 'chasen';
//$pagereading_kanji2kana_converter = 'kakasi';
// ChaSen/KAKASI との受け渡しに使う漢字コード (UNIX系は EUC、Win系は SJIS が基本)
$pagereading_kanji2kana_encoding = 'EUC';
//$pagereading_kanji2kana_encoding = 'SJIS';
// ChaSen/KAKASI の実行ファイル (各自の環境に合わせて設定)
$pagereading_chasen_path = '/usr/local/bin/chasen';
//$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
//$pagereading_kakasi_path = '/usr/local/bin/kakasi';
//$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';
// ページ名読みを格納したページの名前
$pagereading_config_page = ':config/PageReading';

Win系の場合

// ChaSen, KAKASI による、ページ名の読みの取得 (0:無効,1:有効)
$pagereading_enable = 1;
// ChaSen or KAKASI
$pagereading_kanji2kana_converter = 'chasen';
//$pagereading_kanji2kana_converter = 'kakasi';
// ChaSen/KAKASI との受け渡しに使う漢字コード (UNIX系は EUC、Win系は SJIS が基本)
//$pagereading_kanji2kana_encoding = 'EUC';
$pagereading_kanji2kana_encoding = 'SJIS';
// ChaSen/KAKASI の実行ファイル (各自の環境に合わせて設定)
//$pagereading_chasen_path = '/usr/local/bin/chasen';
$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
//$pagereading_kakasi_path = '/usr/local/bin/kakasi';
//$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';
// ページ名読みを格納したページの名前
$pagereading_config_page = ':config/PageReading';

KAKASI使用の場合の設定例

KAKASIのパスはデフォルトのままにしています。
UNIX系の場合

// ChaSen, KAKASI による、ページ名の読みの取得 (0:無効,1:有効)
$pagereading_enable = 1;
// ChaSen or KAKASI
//$pagereading_kanji2kana_converter = 'chasen';
$pagereading_kanji2kana_converter = 'kakasi';
// ChaSen/KAKASI との受け渡しに使う漢字コード (UNIX系は EUC、Win系は SJIS が基本)
$pagereading_kanji2kana_encoding = 'EUC';
//$pagereading_kanji2kana_encoding = 'SJIS';
// ChaSen/KAKASI の実行ファイル (各自の環境に合わせて設定)
//$pagereading_chasen_path = '/usr/local/bin/chasen';
//$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
$pagereading_kakasi_path = '/usr/local/bin/kakasi';
//$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';
// ページ名読みを格納したページの名前
$pagereading_config_page = ':config/PageReading';

Win系の場合

// ChaSen, KAKASI による、ページ名の読みの取得 (0:無効,1:有効)
$pagereading_enable = 1;
// ChaSen or KAKASI
//$pagereading_kanji2kana_converter = 'chasen';
$pagereading_kanji2kana_converter = 'kakasi';
// ChaSen/KAKASI との受け渡しに使う漢字コード (UNIX系は EUC、Win系は SJIS が基本)
//$pagereading_kanji2kana_encoding = 'EUC';
$pagereading_kanji2kana_encoding = 'SJIS';
// ChaSen/KAKASI の実行ファイル (各自の環境に合わせて設定)
//$pagereading_chasen_path = '/usr/local/bin/chasen';
//$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
//$pagereading_kakasi_path = '/usr/local/bin/kakasi';
$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';
// ページ名読みを格納したページの名前
$pagereading_config_page = ':config/PageReading';

使用方法

上記の設定を施した後で、「一覧表示」をすると「:config/PageReading」というページが出来る。
それにChaSenまたはKAKASIが作成した読みが格納されている。
読みが誤っているものは、「:config/PageReading」を直接編集する。

-[[高崎]] タカサキ
-[[高松]] タカマツ
-[[高知]] コウチ
-[[高知県]] コウチケン

「高知」を「タカチ」と読ませたい場合は

-[[高知]] タカチ

と書き換える。

現状では、見出しを分類する時に読みの先頭の一文字のみが使用されているので、「高崎」の場合は「タ」、「高知県」の場合は「コ」でも構わない。

ChaSen(およびMeCab)利用時の問題点

ChaSenまたはMeCabのバージョン、及び利用する辞書(ipadic)のバージョンによって、うまく動作しない。BugTrack/496参照。

ChaSen/Kakasiが無い場合

BugTrack/562を参照

UTF-8 版利用時の注意点

  • 共通(chasen or kakasi or none)
    • lib/func.php のpage_list() で利用している正規表現の中に、EUC-JP依存の部分([^ぁ-ん亜-熙])がある。(UTF-8では画数の少ない漢字から並んでいるため、一部漢字がヒットしない可能性がある)
      BugTrack2/232 にて報告あり

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-12-07 (月) 16:39:39
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.408 sec.

OSDN