Template‐ノート:SpoilerH/subj/SpoilerHFの動作不良

message: かつて（リスト構造こそ破壊されていましたが）Spoiler機能による折り畳みが問題なく行なわれていたにもかかわらず、今見ると折りたたまれずに開きっぱなしになっている記事を確認したので、SpoilerH を昨年10月の版に差し戻し（この頃テンプレートの大改革を行なったので）して確認しましたが、元には戻りませんでした。
昔からテンプレートが貼られている記事で今折りたたまれていないものは、SpoilerH の編集のどこかでバグが発生し、以降誰にも直されず、このノートへのコメントも無く、そのまま放置されてしまっていたという可能性があります。但し、上記のファイナルファンタジーXIの登場人物/アルタナ諸国 過去は、初版が昨年11月。SpoilerH 大改革後の記事です。結局のところ、どのような理由で「今は折りたたまれていない」が発生したのか不明です。SpoilerH/F 共々、テンプレート本体を初版まで差し戻してしまいましょうか。--ラッキースター・キッド ◆Luck.w.AEQ 2008年2月26日 (火) 16:35 (UTC)
replies: text: 結局、SpoilerH/Fの中に改行をいれた為に誤動作して居る様ですね。プレビューで動作を確認しながら執筆すれば防げますし、何カ月もほったらかされていますので、放置して良いと思います。BB-45 2008年2月26日 (火) 16:45 (UTC)
replies: text: :試しにR-TYPE Δという記事で動かないSpoilerH/Fを見かけましたので、改行を2つ除去したところ、動作する様になりました。この手の「空家Spoiler」がかなり多いですね。ちなみにR-TYPE Δでも攻略法を隠そうとしていました。まぁ、確かに攻略法もネタバレの一種なんでしょうが・・・・。BB-45 2008年2月26日 (火) 16:53 (UTC)
replies: text: :: おかしいですね。そういった\nほんにゃら\n構造のものは、折り畳みできていたはず。Template:SpoilerH/docの解説に、そのような形式で書かれているのもそのためです。やはり、過去の編集の何処かでバグが発生していたようです。誰か、「この頃までは問題なかった」という人が居たら、時期を教えてください。
replies: text: ::: 問題多発のテンプレートとはいえ、折りたたみも出来ないようでは本格的に意味が無い。今日はもう（編集しすぎたので）やめておきますが、後日、再び過去版に差し戻してみます。--ラッキースター・キッド ◆Luck.w.AEQ 2008年2月26日 (火) 17:03 (UTC)
勝手ながら、「SpoilerH/Fの動作不良」という節を新設し、それにともなって、インデントを変更しました。また、今から説明することのために必要なので、このコメントからインデントを戻します。
R-TYPE Δを元に動作不良の発生条件を調べました。
----
まず、次のようなコードは不具合を発生させます。wikiマークアップ的に、「:」で始まるブロックと、その次のブロックが区別されるために、の後で「:」で始まるブロックが閉じられるためだと思います。
例1

text: 本文
ネタバレ

例1

text: 本文
ネタバレ
----
そして、次のようなコードは不具合を発生させません。wikiマークアップ的に、の前で「:」で始まるブロックが閉じられるためだと思います。
例2

text: 本文

ネタバレ

例2

text: 本文
ネタバレ
----
しかし、次のようなコードは不具合を発生させます。おそらくCategory:ダミーカテゴリ・このカテゴリーは作成しないでくださいが直前の改行を吸収する結果、例1と同様のコードだと解釈されるのでしょう。
例3

text: 本文
Category:ダミーカテゴリ・このカテゴリーは作成しないでください
ネタバレ

例3

text: 本文
Category:ダミーカテゴリ・このカテゴリーは作成しないでください
ネタバレ
----
というのが実験結果です。たぶん、この不具合は直せると思うので、直しておきます。--Mizusumashi 2008年2月26日 (火) 18:07 (UTC)

text: カテゴリ付与機能をからに移動させることにより、直しておきました。ファイナルファンタジーXIの登場人物/アルタナ諸国 過去で動作確認したところ、空編集によってキャッシュを破棄する必要がありましたが、その結果ネタバレ部分は隠されることになりました。--Mizusumashi 2008年2月26日 (火) 18:23 (UTC)
replies: text: :修正お疲れ様でした。しかしテンプレートの説明では「箇条書き内では途中に改行を挟まずに使用してください」と書かれています（「改行したい場合はを用いる」というのは書いてありませんでしたが）。試しにファイナルファンタジーXIの登場人物/アルタナ諸国 過去の記事でヴォルダイン一人の箇所をこの方式に直すだけで、IE6のプレビュー画面のソースを比べると75バイトも変化します。これはまさに不適切な箇条書きです。テンプレートの使用例を守っていただければ、生じなかった問題ですね。--Kickaha 2008年2月27日 (水) 01:32 (UTC)
（説明の必要のためインデント戻し）えーと、転送量のほうは確認していませんが、問題になっていた不具合のほうは、なんというか、もう少し微妙な問題です。
----
* リスト
* リスト
地の文
このように記述すると、次のように表示されます。
* リスト
* リスト
地の文
----
* リスト
* リスト
Category:ダミーカテゴリ・このカテゴリーは作成しないでください地の文
このように記述すると、次のように表示されます。
* リスト
* リスト
Category:ダミーカテゴリ・このカテゴリーは作成しないでください地の文
----
つまり、カテゴリ附与用のリンクが直前の改行を吸収してしまう結果、「箇条書き外」だったものが、「箇条書き内」に入っちゃうんです。問題になっていた不具合は、この現象のため、本来なら「箇条書き内では途中に改行を挟まずに使用してください」を守っていたはずのものが、守っていないようにパーサに解釈されていたのです。--Mizusumashi 2008年2月27日 (水) 02:07 (UTC)

text: 「はみ出し」の原理がもうひとつわかっていませんが……。レアケースとして箇条書き外で発生する不具合だとしても、現実に起きていたのは「箇条書き内に記述すべきケース」における不適切な使用法だったと思います（不具合の時点で確認してないので断言は出来ない）。でですね。想定外の使用法をされると、環境依存という面からも不具合が発生しやすくなりそうですので、使用例の構文（による改行を含む）の厳守を説明文でもっと強調した方が良い気がしました。--Kickaha 2008年2月27日 (水) 09:21 (UTC)
replies: text: :::説明文に追記してみました。--Kickaha 2008年2月28日 (木) 15:34 (UTC)

text: : 今更ですが、いきなり異常が生じたのはメディアウィキに新しいパーサープリプロセッサが導入されたからでしょう（参考：m:Migration to the new preprocessor）。実際ウィキニュースでは、今まで問題になってなかったテンプレート中の改行が異常の原因になってましたし。  署名忘れ--辞典の虫 2008年2月27日 (水) 14:30 (UTC)

text: : …と思っていたのですが、会話ページでMizusumashiさんにお教えいただいたところ、カテゴリの追加が最近のことだと失念していたことに気づきました。変更がないのにいきなり異常がでたならこれだと思ったのですが。プリプロセッサが新しくなったのは先週金曜あたりですので、先週末には異常が無かったならばプリプロセッサが原因ではないです。--辞典の虫 2008年2月27日 (水) 14:30 (UTC)
replies: text: :: カテゴリリンクが直前の改行を無効化してしまう現象が新しいプリプロセッサによるものではないかとも思い、特別:ParserDiffTestでこのページを調べてみましたが、違いはありませんでした。--辞典の虫 2008年2月27日 (水) 15:10 (UTC)
thread_title:  SpoilerH/Fの動作不良