preタグ内の改行(brタグ)を無効にする(MT・Movable Type)

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

preタグで文字を端っこで折り返すで試みた行を端っこで折り返す方法で、プログラムコードのソースの表示が楽になった。

スポンサーリンク

しかし、またしても新たな問題発生。
Movable Typeのエントリーを投稿で、改行設定で「改行変換」にして記事を作成すると、preタグ内で改行されている行に対して、<br />が勝手に挿入されてしまう場合があるのです。(MT3.34の場合です。現行バージョンは改善されているかも。)

その結果、preタグ内がものすごく間延びしてしまう。
MTのエントリー画面で、エントリー内容を入力し、改行設定を「改行変換」で記事作成すると・・・
例えば、以下のように、preタグ内が間延びして表示されてしまう場合がある。

■例1.preタグ内表示ここから

echo "あいうえお";

echo "かきくけこ";
echo "さしすせそ";

■例1.ここまで

上記の■例1.preタグ内表示ここから~■例1.ここまでの部分は、MTのエントリーの内容上には・・・

■例1.preタグ内表示ここから
<pre>echo “あいうえお”;

echo “かきくけこ”;
echo “さしすせそ”;</pre>
■例1.ここまで

と、記述されている。
しかし、HTMLソースには、<pre>タグ内に、<br />が勝手に挿入され間延びする原因となっている。

このpreタグ内の自動brタグ付加の問題を解決するには、MTのエントリーの内容に記述する際に、以下の2点を気をつけると改善されます。

1.preタグ内で、2回改行して空の行を作らない。
例1の「echo “あいうえお”;」と「echo “かきくけこ”;」の間のような空の行はMTエントリーの際に、preタグ内に作らないようにする。

2.<pre>タグのすぐ上に、1行だけ空の行を作る。(2行以上、空けてはいけない。)

つまり、以下のようにMTエントリーの際に記述する。

■例2.preタグ内表示ここから

<pre>echo “あいうえお”;
echo “かきくけこ”;
echo “さしすせそ”;</pre>

■例2.ここまで

すると、preタグ内にbrタグが勝手に挿入されず、以下のようにpreタグ内が間延びしないで、ウェブページ上に表示されます。

■例2.preタグ内表示ここから

echo "あいうえお";
echo "かきくけこ";
echo "さしすせそ";

■例2.ここまで

簡単に言えば、preタグを使う場合は、<pre>タグのすぐ上部の文章との間に、1行だけ空の行を作るようにして、また<pre>タグ内では、1行も空の行を作らないようにする、の2点を守ると良いということです。

MTの挙動として、エントリーを投稿で、改行設定で「改行変換」にして、preなどの特定のタグを書いて記事を作成すると・・・

1.preなど特定のタグのすぐ上部の文章との間に、1行だけ空行がある場合・・・
 ⇒preなど特定のタグ内に、brを自動挿入しない。

2.preなど特定のタグのすぐ上部の文章との間に、空行がないor2行以上の空行の場合・・・
 ⇒preなど特定のタグ内に、brを自動挿入する。

となっているようです。
この法則は、他のタグ、blockquoteやtableなどを用いるときも共通のようです。
しかし、なんでこんな不可思議な挙動になってんのかね、MT・・・

文章がまとまっていなくて、非常に申し訳ないです。
分かりにくかったら、ご指摘下さい。

スポンサーリンク
 
スポンサーリンク