*明示的に<blockquote>から抜け出る方法がない

-ページ: BugTrack
-投稿者: [[reimy]]
-優先順位: 重要
-状態: 提案
-カテゴリー: 本体バグ
-投稿日: [[2002-06-28]] (金) 08:24:06
-バージョン:

**メッセージ
現状では、明示的にblockquoteから抜け出る方法がないので、blockquoteの直後にプラグインを指定するとプラグインがblockquote内に置かれてしまう((ここではわかりやすいのでプラグインを例にしていますが、プラグイン以外の要素でも同じようなことは起こります。))。

たとえば
 >引用文
 #comment

とすると、#commentプラグインが展開されたタグはblockquoteの中に入ってしまいます。

 >引用文~
 #comment

これでも引用文からは抜け出せませんから、やはりプラグインが展開されたタグはblockquoteの中です。

 >引用文
 (空行)
 #comment

こうするといちおうblockquoteの外側にプラグインが置けますが、この場合、空行が<p>になるため、今度はプラグインが展開されたタグは<p>の中に入ってしまいます(<p>にtext-indentやmarginを指定している場合、プラグインもインデントやマージンが実行されるのではっきりわかります)。

blockquoteの中から抜け出るための明示的な方法がないという現在の仕様の欠陥だと思います。何らかの対策が必要です。

これは下記の2つをが同じに解釈するというように現在の仕様を決めてしまったことに起因するように思えます。なんでこんな仕様にしたんだろ?

(1)
 >test
 test
 test

(2)
 >test
 >test
 >test

(1)のように > が行頭にない場合はblockquoteから抜け出るような仕様にしておけばよかったんでしょうが…。<p>を改行の<br>代わりに使ってしまった弊害のように思えます。

これについては、現状で非常に困ってるので 1.4 での改善をお願いします。
----
-一度使った行頭書式をキャンセルするには空行を入れなくてはならないというルールをどうにかしなくてはならないということですね。 -- [[kawara]] SIZE(1):2002-06-28 (金) 13:15:59
-現状では<ul>についても<li>以外のものも直下に置けてしまうので<li>の次の行にプラグインを置いたときに同じようなことが起きます。↓の#commentのように… -- [[reimy]] SIZE(1):2002-06-28 (金) 13:55:41
-空行を<p>に割り当てるのならば、何らかのブロック要素の解除のためのものが必要となる。空行に解除の意味を持たせるのならば、空行に<p>の機能を持たせない…のいずれかだと思います。従来のデータへの副作用を考えると、ブロック要素の解除の機能を空行以外に持たせることになるのかなあ。お尻<p>の問題とも関連しますね。 -- [[reimy]] SIZE(1):2002-06-28 (金) 14:07:35
-今日のチャットで、現在の「お尻でp」や一番上の例のblockquoteが続いてしまう問題を残した「互換スイッチ」を残した上で、一番下の(2)の構文にして、空行を<p>~</p>にして連続複数空行は一つの<p>とみなす、新モードに以降しようと思います。 -- [[ゆう]] SIZE(1):2002-06-29 (土) 00:06:22
-はい、OKです。空行の次に文字データ(段落)が来る場合はその処理でいいと思います、ただ、空行の次に<ul>や<dl>、<blockquote>及びプラグインが来る場合の空行はどう処理されるのでしょう? その場合はやはり<br>に変換されるわけですよね? まさか<p><ul>~</ul></p>や<p></p><ul>~</ul>ってことはないですよね? -- [[reimy]] SIZE(1):2002-06-29 (土) 15:03:42
-空行を見付けて、</p>を出力した後で空行を読みとばし、次に来る行がブロックを成さない場合のみ<p>を付けるという事ですかねぇ。 -- [[seagull]] SIZE(1):2002-06-29 (土) 15:43:11
-そうですね。ブロック要素やプラグインの直前には空行を置かない、段落の直前にのみ空行を開けるってことが徹底されるなら、そこまでする必要もないわけですけど。実際、<br>のつもりで空行を入れる人は多いですからねぇ… -- [[reimy]] SIZE(1):2002-06-29 (土) 16:14:02

従来は
 ><blockquote>
 >   hogehoge
 ></blockquote>
 ><blockquote>
 >   hogehoge
 ></blockquote>

や
 ><blockquote>
 >   hogehoge
 ></blockquote>
 ><br>
 ><blockquote>
 >   hogehoge
 ></blockquote>

というようなのを記述するのに
 >hogehoge
 ~
 >hogehoge

と書いたのではうまくいかないので
 >hogehoge
 (空行)
 >hogehoge

     (出力は
     <blockquote>
        hogehoge
     </blockquote>
     <p>
     <blockquote>
        hogehoge
     </blockquote>
     )

とか
 >hogehoge
 >>
 >hogehoge

     (出力は
     <blockquote>
        hogehoge
        <blockqopte>

        </blockquote>
        hogehoge
     </blockquote>
     )

と書いてたわけですけど、これからは
 >hogehoge
 (空行)
 >hogehoge

     (出力は
     <blockquote>
        hogehoge
     </blockquote>
     <blockquote>
        hogehoge
     </blockquote>
     )

または
 >hogehoge
 ~
 >hogehoge

     (出力は
     <blockquote>
        hogehoge
     </blockquote>
     <br>
     <blockquote>
        hogehoge
     </blockquote>
     )

と書けばよくなるわけですね。

 >hogehoge
 ~
 >hogehoge

と書いたら
 <blockquote>
    hogehoge
 </blockquote>
 <p><br></p>
 <blockquote>
    hogehoge
 </blockquote>

になっちゃのかな?
-[[BugTrack/38]]の<blockquote>の中の処理も[[BugTrack/40]]と同じ処理でお願いします。 -- [[reimy]] SIZE(1):2002-06-30 (日) 03:00:28
#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.127 sec.

OSDN