ブロックレベルのイタリックと太字のBBCodeサポートを追加

このテキストを考えてみてください:

[i]
イタリック体 - 最初の行
イタリック体 - 2 行目
[/i]

これは次のようにレンダリングされます:

イタリック体 - 最初の行
イタリック体 - 2 行目

次に、空行を含む同じテキストを考えてみてください:

[i]
イタリック体 - 最初の行

イタリック体 - 2 行目
[/i]

これは次のようにレンダリングされます:
[i]
イタリック体 - 最初の行

イタリック体 - 2 行目
[/i]

(BBCode が機能しません)

これは意図した動作でしょうか?

「いいね!」 1

[i] はマルチラインのマークアップとして意図されていないと思います。つまり、以下のようにしてください:

[i]イタリック体 - 1 行目[/i]

[i]イタリック体 - 2 行目[/i]
「いいね!」 3

私の知る限り、BBCode はこれを完全にカバーするように仕様化されていませんが、関連する BBCode の例はすべて 1 行で記述されています。したがって、バグである可能性は低いでしょう。

複数行タグを有効にする通常の方法は、タグの間に明示的な改行として HTML の改行タグ <br/> を追加することです。これもここで機能します:

bbcode [i] italic with <br/> <br/> html line break [/i] example.

bbcode italic with

html line break
example.

「いいね!」 2

@Remah さん、&nbsp; を追加しても同様に機能します:

[i]
イタリック - 1 行目
&nbsp;
イタリック - 2 行目
[/i]

レンダリング結果:

イタリック - 1 行目
 
イタリック - 2 行目

@codinghorror さん、おっしゃる通りだと思います。以下のマークアップでは問題が発生しません:

[code]
コードブロック - 1 行目

コードブロック - 2 行目
[/code]
「いいね!」 2

はい、イタリックのBBCodeブロックは複数行として実装されていません。これは現在の意図された動作です。太字についても同様です。私がこのようにした理由は、HTMLにおいて <i><b> タグもインライン要素とブロックレベル要素として扱われるためです。

もし十分な要望があれば、このユースケースの拡張にも前向きですが、現状では設計通り動作しています。

「いいね!」 3

フォーマットタグを段落ごとに記述せず、複数の段落にイタリックや太字を適用するのは、手間に対して迷惑度が極めて高いフォーラム投稿の一種であり、推奨すべきではないと思います。

「いいね!」 7