現在位置: Top/XreaのPukiwikiでkakasi
- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- XreaのPukiwikiでkakasi へ行く。
- 1 (2005-08-15 (月) 23:24:43)
- 2 (2005-08-16 (火) 01:18:28)
- 3 (2005-08-16 (火) 21:50:11)
- 4 (2005-08-17 (水) 03:39:04)
- 5 (2015-04-03 (金) 22:54:09)
XreaのPukiwikiでkakasi
kakasiはうまく動作していれば、ふりがなをきちんとつけてくれる。
漢字に対して1文字しかつかない場合は、kakasiはうまく作動していない。
文字コードから置き換えしたに過ぎない。
ふりがながつかない場合は、kakasiが置き換えるはずのファイルにアクセスしていないことになる。
ファイルを準備
- kakasi.cgiを作成
#!/bin/sh echo "Content-type: text/html <HTML> <BODY> " /usr/local/bin/kakasi -kK -HK -JK < /virtual/hkd/public_html/cgi/PageReading > /virtual/hkd/public_html/cgi/PageReading2 echo "</BODY></HTML>" exit
- lib/file.phpを改造
case 'kakasi': /*FALLTHROUGH*/ case 'kakashi': $tmpfname = '/virtual/xxx/public_html/cgi/PageReading'; $fp = fopen($tmpfname, "w") or die_message("Cannot write temporary file '$tmpfname'.\n"); foreach ($readings as $page => $reading) { if($reading == '') { fputs($fp, mb_convert_encoding("$page\n", $pagereading_kanji2kana_encoding, SOURCE_ENCODING)); } } fclose($fp); chmod($tmpfname, 0666); virtual($pagereading_kakasi_path); $tmpfname = '/virtual/xxx/public_html/cgi/PageReading2'; $fp = fopen($tmpfname, "r"); foreach ($readings as $page => $reading) { if($reading == '') { $line = fgets($fp); $line = mb_convert_encoding($line, SOURCE_ENCODING, $pagereading_kanji2kana_encoding); $line = chop($line); $readings[$page] = $line; } } fclose($fp); break; case 'none':
- pukiwiki.ini.phpを編集
$pagereading_enable = 1; $pagereading_kanji2kana_converter = 'kakasi'; $pagereading_kakasi_path = '/cgi/kakasi.cgi';
サーバーにディレクトリを作成
/virtual/xxx/public_html/
に
/virtual/xxx/public_html/cgi/
というディレクトリを用意した
ファイルをサーバーに転送
kakasi.cgiは/virtual/xxx/public_html/cgi/へ
lib/file.phpとpukiwiki.ini.phpは所定の場所へ。
完成!!
ページ一覧を見る際に五十音順に並んでいるはず。
http://xxx.s151.xrea.com/?:config/PageReadingでふりがなが適切につけられているかをチェックしてみよう。
問題点
自動広告にしている場合、virtual関数で呼び出すときに、すでにページヘッダを送信しているようで、「すでにヘッダを送信しています」というエラーが出る。
リロードをすれば大丈夫で、動作には影響しない。

