トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-wiki/318

ページの作成や編集にはユーザ登録が必要です。

outlineプラグインが正しくLIタグを閉じない

  • 投稿者: ちゃあこ
  • カテゴリ: プラグイン
  • 優先度: 普通
  • 状態: リリース済
  • 日時: 2008年04月05日 01時24分27秒

 内容

3.6.3で確認しました。

!!!見出し1
!!見出し2
!見出し3

この構造のページは正しい。

!!!見出し1A
!!見出し2
!見出し3
!!!見出し1B

この構造のページは不正。「見出し1A」の前にあるLIタグが閉じない(/LIタグが挿入されない)

!!!見出し1
!!見出し2
!!!見出し3

この構造のページも正しい。

!!!見出し1
!見出し2
!!!見出し3

この構造のページは不正。「見出し1」の直前のLIタグが閉じない。「見出し2」の直後の/ULタグの後に余分な/LIタグが挿入される。

!見出し1

この構造のページは不正。「見出し1」の直後の/ULタグの後に余分な/LIタグが挿入され、さらにその直後の/ULタグの直後にも余分な/LIタグが挿入される。

どうやら、アウトラインレベルがページ最後以外で一気に2段階以上変化するとおかしいようです。事前にLIタグを挿入したかどうかを記録や判定をせずに、アウトラインレベルが下がるときに強制的にLIタグを閉じる(/LIタグを挿入する)ようにしているのが原因ではないでしょうか?

IEやFireFoxなどWindows用のブラウザでは余分な/LIタグや閉じていないLIタグでは表示が乱れるようなことはないので、長く気付きませんでしたが、先日PDA(WillcomのAdbancedES)でwikiを見ることがあって気付きました。このPDAのブラウザでは余計な/LIタグがあると字下げのレベルが0とか負になってしまうのか、それ以降表示が左により過ぎてしまったりして乱れるようです。

 コメント

  • とりあえず現状を把握するために、このページを作ってみました。 - suzukimitsuru (2008年06月23日 23時05分39秒)
  • 3.6.2で自分も同様の症状を確認しています。</li>が足りないため、HTMLの文法エラーになるんですよね。全ページの先頭にアウトラインプラグインの記述を入れてて、W3Cのvalid checkをしたときに気づきました。解決策はないのでしょうか? - 通りすがり (2008年07月05日 01時50分43秒)
  • (追記)私の場合、ページ内に大見出しを使わずに、中見出しと小見出しのみ使用で</li>が足りない症状が発生してました。 - 通りすがり (2008年07月05日 07時07分27秒)
  • きちんとliタグを閉じるように修正しました。3.6.4で反映される予定です。 - たけぞう (2009年08月12日 19時46分17秒)
  • 3.6.4でもイマイチきちんとliタグが閉じられません。例えばBugTrack-plugin/415のページのoutlineプラグインの出力は以下の通り。
<div class="header">
<ul class="outline">
<li><a href="#p0">ランキング表示できる「へぇ」プラグイン</a><ul class="outline">
<li><a href="#p1">内容</a><ul class="outline">
<li><a href="#p2">変更点</a></ll>
<li><a href="#p3">インストール</a></ll>
<li><a href="#p4">機能</a></ll>
<li><a href="#p5">表示例</a></ll>
</ul>
</ll>
<li><a href="#p6">コメント</a></ll>
</ul>
</ll>
</ul>
</div>

</li>が</ll>になってるのはご愛敬ですが、最初の<li>の閉じタグが#p5の後に、次のは#p6の後にきています。 - 名無しさん (2010年09月06日 20時01分58秒)

  • ステータスを提案に戻しておきます。 - たけぞう (2010年09月07日 02時45分08秒)
  • これでいかがでしょうか。
--- OutlineParser.pm.org	2010-08-28 23:58:45.000000000 +0900
+++ OutlineParser.pm	2010-09-13 12:44:10.000000000 +0900
@@ -33,13 +33,17 @@
 	
 	if($level > $self->{outline_level}){
 		while($level!=$self->{outline_level}){
+			if($self->{'outline_close_'.($self->{outline_level})} == 1){
+				$self->{outline_html} .= "</li>\n";
+				$self->{'outline_close_'.($self->{outline_level})} = 0;
+			}
 			$self->{outline_html} .= "<ul class=\"outline\">\n";
 			$self->{outline_level}++;
 		}
 	} elsif($level <= $self->{outline_level}){
 		while($level-1  != $self->{outline_level}){
 			if($self->{'outline_close_'.($self->{outline_level})} == 1){
-				$self->{outline_html} .= "</ll>\n";
+				$self->{outline_html} .= "</li>\n";
 				$self->{'outline_close_'.($self->{outline_level})} = 0;
 			}
 			if($level == $self->{outline_level}){
@@ -67,7 +71,7 @@
 	
 	while($self->{outline_level} != 0){
 		if($self->{'outline_close_'.($self->{outline_level})} == 1){
-			$self->{outline_html} .= "</ll>\n";
+			$self->{outline_html} .= "</li>\n";
 		}
 		$self->{outline_html} .= "</ul>\n";
 		$self->{outline_level}--;

ついでにllをliにしておきました。 - 名無しさん (2010年09月13日 12時59分56秒)

  • パッチありがとうございます。修正をSVNにコミットしておきました。 - たけぞう (2010年10月02日 10時33分44秒)
  • あと/lib/Wiki/HTMLParser.pmの閉じ部分も - 名無しさん (2011年01月18日 10時50分29秒)
  • HTMLParser.pm も修正をコミットしておきました。 - KG (2011年04月13日 19時48分51秒)
  • fswiki3.6.5でリリースしました。 - KG (2018年03月30日 11時20分31秒)
お名前: コメント:
diff.txt html.txt

最終更新時間:2018年03月30日 11時20分36秒