web-dev-qa-db-ja.com

リッチテキストエディターを使用するときに、ブロガーに<br>ではなく<p>タグを挿入させるにはどうすればよいですか?

Bloggerでリッチテキストエディターを使用しているときに押す方法が気に入らない Enter <br >の代わりに<p>を挿入します。動作を変更する方法はありますか?または、少なくとも[HTML]タブに切り替えずに<p>を挿入する方法はありますか?

ところで Blogger in draft を使用しています。古いエディターと新しいエディターの両方を試しました。 Press "Enter" for line breaksの代わりにUse <br /> tagsを使用しても効果はありません。

Convert Line breaksも無効にしようとしました。

[はい]が選択されている場合、投稿エディターで入力された単一のハードリターンはブログの単一の<br />タグに置き換えられ、2つのハードリターンは2つのタグ(<br /><br />)に置き換えられます。

10
Senseful

この動作は構成できません。現在のエディター、ドラフトエディター、および「古い」エディターの両方が、Pタグを使用する必要がある場合、BRタグとDIVタグの組み合わせを使用します。

それは気が遠くなるような決断であり、まったく間違っています。 Bloggerでの一貫性のない段落レンダリングに関する多くの問題を説明しています。おそらくIEで動作しますが、ChromeやSafariなどのWebkitブラウザーでは一貫して動作しません。

最新のエディターは2つの連続したBRタグを挿入すると思いますが、古いエディターは1つのDIVと1つのBRを挿入しました。

MicrosoftのWindows Live Writer は、上記のとおり正しく動作します。 MarsEdit OS Xの一貫性は劣ります。Bloggerで作成された投稿で開始すると、タグの混乱が生じると思います。

あなたの痛みが分かります。

10
user6267

最初にHTMLタブに切り替えるのではなく、Pタグを含むブログ投稿をすぐに公開すると、Pタグがそのまま残ることがわかりました。

例:

<p>
Here is a body text<br />
that is wrapped in p-tags<br />
</p>
  1. HTMLビューに移動します。
  2. 上記のコードを入力してください。
  3. [公開]ボタンをクリックします。

HTMLタブのコードを見ると、pタグはdivタグに置き換えられます。

4
E.G.

1つの方法は、単に別のリッチテキストエディターを使用することです。 MicrosoftのWindows Live Writer を試しました。これは、<p>の代わりに<br>を使用します。

1
Senseful

さて、Bloggerで設定する方法はありません。

しかし、私が気付いたのは、これがjQueryでできることです。

これを行うには、テンプレート領域に移動し、「HTMLを編集」をクリックする必要があります。 /bodyを検索してください。そのすぐ上に、<script src="http://code.jquery.com/jquery-1.10.1.min.js">を挿入し、次に<script></script>を挿入します。あなたが今持っているものは、これであるべきです:

some code
<script src='http://code.jquery.com/jquery-1.10.1.min.js'/>
<script>

This is where the jQuery calls will go.

</script>
&lt/body&gt;
some more code

適切なjQuery呼び出しは、このページから理解できます。このページでは、ほぼ正確に何をしたいかを尋ねる例を示しています。この例を以下にコピーしました( http://api.jquery.com/contents/ から)

<div class="container">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
  do eiusmod tempor incididunt ut labore et dolore magna aliqua.
  <br><br>
  Ut enim ad minim veniam, quis nostrud exercitation ullamco
  laboris nisi ut aliquip ex ea commodo consequat.
  <br><br>
  Duis aute irure dolor in reprehenderit in voluptate velit
  esse cillum dolore eu fugiat nulla pariatur.
</div>

.contents()メソッドを使用して、このテキストのblobを3つの適切な形式の段落に変換できます。

$( ".container" )
  .contents()
    .filter(function() {
      return this.nodeType === 3;
    })
      .wrap( "<p></p>" )
      .end()
    .filter( "br" )
    .remove();

確かに、あなたはそれを機能させるために上記のいくつかのわずかな変更を行う必要があります。しかし、私があなたに理解するのを任せます。 :-)

0
merlinpatt