Comment puis-je faire en sorte que Blogger insère des balises <p> au lieu de <br> lorsque j'utilise l'éditeur de texte enrichi?

10

Je n'aime pas comment lorsque j'utilise l'éditeur de texte enrichi dans Blogger et j'appuie Enterdessus pour insérer un <br >au lieu d'un <p>. Existe-t-il un moyen de changer le comportement? Ou au moins existe-t-il un moyen d'insérer un <p>sans passer à l'onglet HTML?

J'utilise Blogger en version préliminaire , soit dit en passant. J'ai essayé à la fois l'ancien éditeur et le nouveau; et utiliser Press "Enter" for line breaksau lieu de Use <br /> tagsn'aide pas.

J'ai également essayé de désactiver Convert Line breaks, ce qui est décrit comme:

Si Oui est sélectionné, les retours durs simples entrés dans l'éditeur de publication seront remplacés par des <br />balises uniques dans votre blog, et deux retours durs seront remplacés par deux balises ( <br /><br />).

Sensé
la source
Une solution de contournement laide, mais si vous voulez vous débarrasser des sauts de ligne doubles, vous pouvez masquer la seconde <br/>avec une règle CSS comme br+br {display: none}​dans Thème > Modifier HTML où vous trouverez un tas de styles sous<head><b:skin><![CDATA[...
ccpizza

Réponses:

10

Ce comportement n'est pas configurable. L'éditeur actuel, l'éditeur de brouillon et l '"ancien" éditeur utilisent une combinaison de balises BR et DIV alors qu'ils devraient utiliser des balises P.

C'est une décision ahurissante, et c'est tout à fait faux. Cela explique la plupart des problèmes de rendu de paragraphe incohérent dans Blogger. Peut-être que cela fonctionne dans IE, mais cela ne fonctionne pas de manière cohérente dans les navigateurs Webkit comme Chrome et Safari.

Je pense que le dernier éditeur insère deux balises BR consécutives, mais le plus ancien a inséré un seul DIV et un seul BR.

Windows Live Writer de Microsoft fait les choses correctement comme indiqué ci-dessus. MarsEdit pour OS X est moins cohérent, je pense que si cela commence par un article écrit par Blogger, il y a confusion de balises.

Je ressens ta douleur.

user6267
la source
Mais Live Writer peut-il modifier un article existant? Puisque beaucoup de gens dont moi aiment publier l'article, lire et polir.
Gqqnbig
4

Je viens de découvrir que si vous publiez immédiatement votre article de blog contenant des balises p au lieu de passer d'abord à l'onglet HTML, les balises p restent.

Exemple:

<p>
Here is a body text<br />
that is wrapped in p-tags<br />
</p>
  1. Aller à la vue HTML.
  2. Entrez le code ci-dessus.
  3. Cliquez sur le bouton Publier.

Si vous essayez de regarder le code dans l'onglet HTML, les balises p seront remplacées par des balises div.

PAR EXEMPLE
la source
0

Eh bien, il n'y a aucun moyen de le configurer avec Blogger.

Mais ce que j'ai réalisé, c'est que cela peut être fait avec jQuery.

Pour ce faire, vous devrez vous rendre dans la zone des modèles et cliquer sur «modifier HTML». Faites une recherche /body. Juste au-dessus, insérez, <script src="http://code.jquery.com/jquery-1.10.1.min.js">puis insérez <script></script>. Ce que vous avez maintenant devrait être le suivant:

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

Les appels jQuery appropriés peuvent être déterminés à partir de cette page dans laquelle ils donnent un exemple demandant presque exactement ce que vous voulez faire. Cet exemple a été copié ci-dessous (depuis 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>

Nous pouvons utiliser la .contents()méthode pour aider à convertir cette goutte de texte en trois paragraphes bien formés:

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

Certes, vous devrez apporter quelques légères modifications à ce qui précède pour que cela fonctionne. Mais je vais vous laisser le comprendre. :-)

merlinpatt
la source