XREAでkakasiを使う

Perl版Chasen/KAKASIの利用法

kakasi.cgi

#!/usr/local/bin/perl

use Text::Kakasi;
Text::Kakasi::getopt_argv('kakasi', '-kK', '-HK', '-JK');
@kata = ();

# PageReadingファイルパス指定
$fname = '/virtual/ACCOUNT ID/public_html/pukiwiki/cache/PageReading';

open(IN, $fname);
while (<IN>) {
	push(@kata, Text::Kakasi::do_kakasi($_));
}
close(IN);
Text::Kakasi::close_kanwadict();

open(OUT, "> $fname");
foreach $i (@kata) {
	print OUT "$i";
}
close(OUT);

print "Content-Type: text/html\n\n";

exit;

pukiwiki.ini.php

$pagereading_kakasi_path = '/cgi-bin/kakasi.cgid'; // URLを相対パスで

file.phpの604行目case 'kakashi'からcase 'none'までの間を次のように変更。

case 'kakashi':
	$tmpfname = CACHE_DIR . 'PageReading'; // 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);
	$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);

	unlink($tmpfname) or die_message("Temporary file can not be removed: $tmpfname");
	break;

case 'none':

質問箱から移動したもの

[XREA] Perl版Chasen/KAKASIの利用法

質問

表題の通り、私がPukiwikiを使ってるXREAではPerlでChasen/KAKASIが提供されているようです。
そこで、こいつを使いたいのですが単純にpukiwiki.ini.phpで利用するように設定してもNot Foundになってしまいます。
Perl版を使うには何か別の設定が必要なのでしょうか?

回答


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-06-24 (火) 09:04:50
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.633 sec.

OSDN