*#relatedの出力でタグの不整合 [#vc6cea0c]

-ページ: BugTrack
-投稿者: [[reimy]]
-優先順位: 重要
-状態: 着手
-カテゴリー: 本体バグ
-投稿日: 2003-06-26 (木) 02:07:33
-バージョン: 1.3.x/1.4rc3

**メッセージ [#n47bbdc1]
~#relatedの出力でHTMLのタグ出力が不整合を起こしてます。
~1.4系と1.3系の両方で不整合が起きますが、その出力は微妙に異なります。

-[[1.3.4のサンプル>pukiwiki:kawara#content_1_1]]
 <ul>
   <li>....</li>
   <li>....</li>
    ............
   <li>....</li>
   <li>....</li>
 </ul>
となるべきところが、
      .....</li>
   <li>....</li>
    ...........
   <li>....</li>
   <li>....
と出力されてしまっている。開始部分の<ul><li>と終了部分の</li></ul>が欠落。

-[[1.4rc3のサンプル>雑談#v771ff81]]
 <ul>
   <li>....</li>
   <li>....</li>
    ............
   <li>....</li>
   <li>....</li>
 </ul>
となるべきところが、
   <p>.....</li>
   <li>....</li>
    ...........
   <li>....</li>
   <li>....</p>
と出力されてしまっている。開始部分の<ul><li>が<p>に、終了部分の</li></ul>が</p>に化けている。
----
-とりあえず現状は、&#x23;relatedは下記のように使うしかない。仕様とするなら、注意書が必要かも。 -- [[reimy]] &new{2003-06-26 (木) 05:17:21};
 -#related
-そういう仕様だと思っていました。&#x23;relatedはリストの中で使うものだと。たとえば以下のように。 -- [[ぱんだ]] &new{2003-06-26 (木) 23:45:30};
 - 関連するページ名
 -- #related
-どこにもそういう注意書がないので、旧PukiWiki.orgサイト内で&#x23;relatedを行頭で使ってる人が何人もいました。ヘルプでは&#x23;relatedや&#x23;norelatedはわざと書いてないからなあ… -- [[reimy]] &new{2003-06-27 (金) 01:09:04};
-それっぽいコメントが残っているので、動くようにするなら下のような感じでしょうか。 -- [[masao]] &new{2003-06-28 (土) 08:03:02};
 Index: convert_html.php
 ===================================================================
 RCS file: /cvsroot/pukiwiki/pukiwiki/convert_html.php,v
 retrieving revision 1.45
 diff -u -r1.45 convert_html.php
 --- convert_html.php	12 Jun 2003 00:44:30 -0000	1.45
 +++ convert_html.php	27 Jun 2003 23:00:13 -0000
 @@ -831,7 +831,8 @@
  		
  		// 関連するページ
  		// <p>のときは行頭から、<del>のときは他の要素の子要素として存在
 -		$text = preg_replace('/<(p|del)>#related<\/\1>/e','make_related($vars[\'page\'],\'$1\')',$text);
 +		$text = preg_replace('/<p><del>#related<\/del><\/p>/',make_related($vars['page'],'p'),$text);
 +		$text = preg_replace('/<del>#related<\/del>/',make_related($vars['page']),$text);
  		return $text;
  	}
  	function block(&$lines,$start,$end,$class)
 Index: html.php
 ===================================================================
 RCS file: /cvsroot/pukiwiki/pukiwiki/html.php,v
 retrieving revision 1.82
 diff -u -r1.82 html.php
 --- html.php	22 Jun 2003 05:47:17 -0000	1.82
 +++ html.php	27 Jun 2003 23:00:13 -0000
 @@ -244,16 +244,11 @@
  			"<a href=\"$script?$r_page\">$s_page</a>$passage";
  	}
  	
 -	if ($tag) {
 -		$retval = join($rule_related_str,$_links);
 -		if ($tag == 'p') {
 -			$margin = $_ul_left_margin + $_ul_margin;
 -			$style = sprintf($_list_pad_str,1,$margin,$margin);
 -			$retval =  "\n<ul class=\"list1\" style=\"$style\">\n<li>$retval</li>\n</ul>\n";
 -		}
 -	}
 -	else {
 -		$retval = join($related_str,$_links);
 +	$retval = join($rule_related_str,$_links);
 +	if ($tag == 'p') {
 +		$margin = $_ul_left_margin + $_ul_margin;
 +		$style = sprintf($_list_pad_str,1,$margin,$margin);
 +		$retval =  "\n<ul $style>\n<li>$retval</li>\n</ul>\n";
  	}
  	return $retval;
  }
-あ。そういえばそんなコードを仕込んだ記憶が。動かなくなってたんですね。失礼しました。[[masao]]さんのコードを取り込みました。 -- [[ぱんだ]] &new{2003-06-30 (月) 09:38:58};
-- [[cvs:convert_html.php]](v1.4:r1.47)
-- [[cvs:html.php]](v1.4:r1.84)
-あぅ。ごめんなさい。下手にロジックをいじったせいでバグを入れ込んだみたいです。今度は 「-&#x23;related」 の方がうまくいかなくなってしまってますね。 -- [[masao]] &new{2003-07-04 (金) 19:08:36};

 diff -u -r1.47 convert_html.php
 --- convert_html.php	30 Jun 2003 00:38:21 -0000	1.47
 +++ convert_html.php	4 Jul 2003 10:10:31 -0000
 @@ -832,7 +832,7 @@
  		// 関連するページ
  		// <p>のときは行頭から、<del>のときは他の要素の子要素として存在
  		$text = preg_replace('/<p><del>#related<\/del><\/p>/',make_related($vars['page'],'p'),$text);
 -		$text = preg_replace('/<del>#related<\/del>/',make_related($vars['page']),$text);
 +		$text = preg_replace('/<del>#related<\/del>/',make_related($vars['page'], 'del'),$text);
  		return $text;
  	}
  	function block(&$lines,$start,$end,$class)
 
 diff -u -r1.86 html.php
 --- html.php	30 Jun 2003 06:12:28 -0000	1.86
 +++ html.php	4 Jul 2003 10:10:31 -0000
 @@ -244,11 +244,15 @@
  			"<a href=\"$script?$r_page\">$s_page</a>$passage";
  	}
  	
 -	if ($tag == 'p')
 +	if ($tag)
  	{
 -		$margin = $_ul_left_margin + $_ul_margin;
 -		$style = sprintf($_list_pad_str,1,$margin,$margin);
 -		$retval =  "\n<ul $style>\n<li>".join($rule_related_str,$_links)."</li>\n</ul>\n";
 +		$retval = join($rule_related_str,$_links);
 +		if ($tag == 'p')
 +		{
 +			$margin = $_ul_left_margin + $_ul_margin;
 +			$style = sprintf($_list_pad_str,1,$margin,$margin);
 +			$retval =  "\n<ul $style>\n<li>".join($rule_related_str,$_links)."</li>\n</ul>\n";
 +		}
  	}
  	else
  	{

#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
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.048 sec.

OSDN