ページの作成や編集にはユーザ登録が必要です。
インライン Wiki 書式の入れ子を許容するためのパーサ機能強化
- 投稿者: ぐうます
- カテゴリ: 新規
- 優先度: 重要
- 状態: リリース済
- 日時: 2008年11月15日 17時08分12秒
内容
- BugTrack-wiki/313:Wiki 書式の固定的な優先順位による不具合 で報告した問題を改善するためのプラグインパッケージです。
- BugTrack-wiki/313 で提案していたコードにバグが見つかりましたので、BugTrack-wiki/313 に添付されていた試用版プラグインパッケージ test_parse_line にバグ修正を施したものを、今回改めてプラグインパッケージ parseline2 として投稿致します。
- バグ内容:表中のセルに 1 文字の「0」を入れると、出力される HTML(= ブラウザの表示)ではそのセル内が空になる。
- test_parse_line は FSWiki 3.6.2 を含むそれ以前の版には対応できていませんでしたが、対応方法がわかりましたので、parseline2 はそれ以前の版にも適用できるようになりました(FSWiki 3.6.2 で動作することを確認済み)。
機能説明
3.6.3dev2 以降の FSWiki では、
== http://honyarara.dotto.kom/index.cgi ==
のような Wiki ソースの場合、
http://honyarara.dotto.kom/index.cgi
となり、取消線を使用したつもりなのに取消線になりません。この例のように、インライン Wiki 書式の入れ子には一部制限がある(どのように制限されるかは、FSWiki のバージョンによって異なる)のですが、本プラグインパッケージを導入することでこのような制限がなくなります。
対応バージョン
基本的に、バージョンによらず適用可能と考えています。
FSWiki 3.6.3、及びそれ以前の版。
- 「{{…}}」をパースするコア内部処理が、FSWiki 3.6.3dev* 以降の版と FSWiki 3.6.2 以前の版で大きく異なることから、test_parse_line では FSWiki 3.6.3dev* 以降の版にしか対応できていませんでした。しかし、今回の parseline2 では、「{{…}}」の処理のみオリジナルの Wiki::Parser::parse_line() におまかせすることにしたので、FSWiki 3.6.2 以前の版にも適用できるようになりました。
- FSWiki 3.6.2 では実際に動作確認を実施しており、問題ないことを確認済みです。
- FSWiki 3.6.4 以降では、本プラグインの機能をコア機能として取り込んでいただけました。よって、3.6.4 以降で本プラグインを使用すると、コア機能との干渉により問題が発生する可能性があります。
パッケージ構成
パッケージ内のファイルは次の 1 つのみです。
- plugin/parseline2/Install.pm
インストール手順
- 通常作業
- parseline2.20081207.zip(636) をダウンロードして、サーバ上に展開します。
- FSWiki に管理者ログインし、「管理ページ」の「プラグイン設定」から parseline2 を有効にします。
- 現在、プラグインパッケージ test_parse_line を使用している場合:次の点についてもご確認下さい。
- FSWiki に管理者ログインし、「管理ページ」の「プラグイン設定」から test_parse_line を無効にします。
- 無効にした test_parse_line は、サーバ上からフォルダごと削除することができます。
- 現在 BugTrack-wiki/313 に添付された変更ソースファイル一式(parse_line.20071201.zip)を使用していて、本プラグインを適用する場合には、次のどちらかを実施願います。
- フォルダ lib/Wiki 内の 3 つのファイル Parser.pm, InterWiki.pm, Keyword.pm をオリジナルのものに戻した上で本プラグインを適用してください。これを実施しなくても基本的には動作すると思いますが、上記のバグ修正が不完全になりますので、本プラグインを適用する意味がありません。
- FSWiki3.6.3dev2, 3.6.3dev3 のオリジナルの 3 ファイルは、Parser.pm, InterWiki.pm, Keyword.pm の各リンクを右クリックしてファイル保存することによりダウンロードできます。
- フォルダ lib/Wiki 内の 3 つのファイル Parser.pm, InterWiki.pm, Keyword.pm をオリジナルのものに戻せない場合には、BugTrack-wiki/313 に修正版の変更ソースファイル一式を後日投稿致しますので、本プラグインの適用をあきらめてそちらをご使用下さい。
- フォルダ lib/Wiki 内の 3 つのファイル Parser.pm, InterWiki.pm, Keyword.pm をオリジナルのものに戻した上で本プラグインを適用してください。これを実施しなくても基本的には動作すると思いますが、上記のバグ修正が不完全になりますので、本プラグインを適用する意味がありません。
使用されなくなる関数(2008-12-07版以後)
- 本プラグインパッケージを有効にすると、以下の API 関数の代わりに自前の関数を使用します。
- Wiki::Parser::parse_line()
- Wiki::Keyword::parse_line()
- Wiki::InterWiki::exists_interwiki()
変更・追加される関数(2008-11-17版以前)
- 本プラグインパッケージを有効にすると、以下の API 関数を上書きします。
- Wiki::Parser::parse_line()
- Wiki::Keyword::parse_line()
- Wiki::InterWiki::exists_interwiki()
- 本プラグインパッケージを有効にすると、以下の関数を追加します。
- Wiki::Parser::orig_parse_line()
- Wiki::Parser::parse_line_keyword()
制限事項
- (2008-12-07版以後):上記の使用されなくなる関数を書き換える他のプラグインパッケージを併用すると、そのプラグインパッケージが正しく機能しません。
- (2008-11-17版以前):上記の変更・追加関数と同名の関数を変更・追加する他のプラグインパッケージと併用すると、どちらかのプラグインパッケージが正しく機能しません。
更新履歴
- 2008-12-07版:parseline2.20081207.zip(636)
- mod_perl 環境にて、無限ループに陥るバグを修正。
- 2008-11-17版:parseline2.20081117.zip
- 凡ミスにより「任意のURLリンク」の処理でのパース結果がおかしくなっていたのを修正。
- 2008-11-15版:parseline2.20081115.zip
- parseline2 としての初版公開
ライセンス
GPL
コメント
- インストール手順の項にも追記しましたが、FSWiki3.6.3dev2, 3.6.3dev3 のオリジナルの 3 ファイルは、Parser.pm, InterWiki.pm, Keyword.pm の各リンクを右クリックしてファイル保存することによりダウンロードできます。 - ぐうます (2008年11月16日 13時46分58秒)
- 凡ミスにより「任意のURLリンク」の処理でのパース結果がおかしくなっていたのを修正しました。申し訳ありません。 - ぐうます (2008年11月17日 07時23分24秒)
- mod_perl 環境にて、無限ループに陥るバグを修正しました。申し訳ありません。なお、CGI で運用する場合には、2008-11-17版でも問題ありません。 - ぐうます (2008年12月07日 17時49分10秒)
- FSWiki 3.6.4で取り込ませていただきます。SVNにはコミット済みです。 - たけぞう (2009年07月03日 18時45分12秒)
- 宛 たけぞうさん:コミットいただきましてありがとうございました。 - ぐうます (2009年07月03日 23時37分22秒)
- なお、今回の取り込みでは、本プラグインの機能を FSWiki 3.6.4 のコア機能として取り込んでいただけましたので、「FSWiki 3.6.4 の標準プラグインに parseline2 が加わった」ということではありません。(本ページを後日読む方に誤解を与えないようにするため蛇足ながら補足させていただきました。) - ぐうます (2009年07月03日 23時49分14秒)
最終更新時間:2010年10月24日 00時48分43秒