Top > BugTrack > 168

toc プラグイン更新に伴う不具合

  • ページ: BugTrack
  • 投稿者: Anonymous
  • 優先順位: 低
  • 状態: 完了
  • カテゴリ: プラグイン
  • 投稿日: 2008-07-06 (日) 01:29:02
  • バージョン: i18n rev.1691 以降

メッセージ

toc プラグイン更新で発生した不具合をいくつか

  • その1。Documents/Setting of PHP のページなどでもすでに表面化していますが、htmlタグを消さなくなったせいで正しくリンクが表示されなくなる可能性があります。
    具体的にはWikiNameや、AutoLinkなどで作られたリンクがそのままになっているので、下のような出力になっています(一部を抜粋)。
    <a href="#r01e075e"><!--autolink--><span class="autolink"><a href="http://pukiwiki.cafelounge.net/plus/?PukiWiki%20Plus%21" title="PukiWiki Plus! (115d)">PukiWiki Plus!</a></span><!--/autolink--> I18N版</a>
    なので、次のようにはできないでしょうか?
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
    
     		if ($off > $i) {
     			$i++;
     			continue;
     		}
     
     		$rc[$i]['tag'] = empty($matches[2]) ? '' : '#'.$matches[2];
    -		$rc[$i]['dat'] = $matches[3];
    +		$rc[$i]['dat'] = strip_htmltag($matches[3]);
     		$rc[$i]['lvl'] = $matches[1]-1;
     		$i++;
     	}
     	return $rc;
     }
  • その2。paraedit のアイコンを表示するようにしている場合、目次にアイコンが表示されてしまうようになってしまいました。
    理由は、固有アンカーを消さずにconvert_html() へ送るようになったからみたいです。
  • その3。先頭・最後へジャンプする$_msg_content_back_to_top を使っている場合、見出し文字を拾わずにエラーが出ます。
    $_msg_content_back_to_top に何らかの文字を設定していると、この文字の後に<h2> などが来るので、今のマッチパターンではこのような場合にこのプラグインを使えなくなってしまいます。

toc_convert_index() からtoc_trim_pw() を使うようにすればいい、という訳でもないので、その2とその3は修正案なしですが (T-T 、よろしくお願いします。


  • 文章を考えたり、投稿時にspam対策に引っかかってやり直したりしてる間に、その2はrev.1693 で修正がかかってた (^^; -- 2008-07-06 (日) 01:36:38
  • ちょっと考えてみます (T-T 。以前のロジックは、判定について確実ではあるものの、毎回 convert_html をかけていたので、今回のようなケースでは、1度で処理したい。ということからの修正です。なので、パフォーマンスも良くはなっているはずなのですけどね。まぁ、いずれにしても、世間的には、見出しに番号を振りたい方々が多いようなので、num プラグインのようなものがあると嬉しいようです。で、それを使ったときに、contents と toc がうまく動作すればよいということで、確認はしたんですけど、テストケースが足りていないようですね (T-T 。 -- upk 2008-07-06 (日) 12:05:57
  • rev1694で対応してみました。ご確認をお願いします (^^; 。 -- upk 2008-07-06 (日) 12:25:30
  • 自分で試した範囲では問題ないので、完了とします。対応ありがとうございます。 -- 2008-07-06 (日) 18:42:29
  • Documents/Skin で新たな問題が発覚したので、このページを借ります。convert_html をかけた後、改行で分割してからpreg_match で値を得ようとしていますが、プラグインなどが改行を含む文章を返してきたときに、値の収得に失敗してしまうようです。
    <h2 id="hca2b1f4"><a href="#" onclick="return GB_showFullScreen('tDiary', 'http://www.tdiary.org/');">tDiary</a>
    のテーマを利用する場合</h2>
    上はDocuments/Skin で問題になっている部分の抜粋 -- 2009-04-06 (月) 13:02:27
  • rev1756 で対応しました (^^; 。 -- upk 2009-04-07 (火) 00:32:20
  • rev1756 を試しましたが、continue する時に該当行の削除をし忘れているため、結果的にtocプラグインを書く手前のものを含む、全ての見出しがリストに表示されます。($fixed_heading_anchor を無効にしている場合は、アンカー番号がずれてしまうと思われます) -- 2009-04-07 (火) 23:32:40
  • ご指摘ありがとう御座います (T-T 。確かに消し忘れていますので、まずいですね。修正します。ただ、$fixed_heading_anchor が無効な場合って、contents でもまともに動くように思えませんけどねぇ。 (T-T 。-- upk 2009-04-08 (水) 02:29:05
  • rev1759 で対応しておきました。$fixed_heading_anchor の対応は暫定的です*1。 -- upk 2009-04-08 (水) 03:27:48
  • rev1759 を$fixed_heading_anchor が有効の場合だけ試して、問題なさそうなのを確認しました。無効の場合の話は、見出しの番号がtoc_convert_index() でずれた分、toc_mode_toc() で#content_1_X のX がずれてしまいそうと言うつもりだったんですが、そういえば形式(#h2_content_1_X)から違ってましたね。(忘れてました (^^; ) -- 2009-04-08 (水) 18:15:56

*1 恐らくなおしません

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Wed, 21 Jul 2010 17:17:01 JST (50d)