Je poste souvent des pages avec des exemples de code. Cependant, Wordpress supprime les espaces, ruinant ainsi l'indentation et le formatage de mon code. Donc ça:
<pre>
selector {
property: value;
property: value;
}
</pre>
devient ceci:
sélecteur {propriété: valeur; propriété: valeur;}
J'ai trouvé le plugin HTML brut , qui corrige les sauts de ligne, mais même avec HTML brut , les espaces ne sont pas préservés, ce qui donne l'aspect suivant:
sélecteur { propriété: valeur; propriété: valeur; }
J'ai également joué avec le Préservé Editeur HTML Markup plugin, mais il ne supporte pas les balises <pre>
ou <code>
, ce qui est exactement où j'en ai besoin. Comment puis-je préserver plusieurs espaces contigus?
Edit: Juste pour clarifier, l’espace blanc est supprimé par Wordpress avant qu’il ne soit envoyé au navigateur: la visualisation du code source révèle que les espaces ont été réduits.
Vous n'emballez pas le code dans les balises <code>
.
<pre>
<code>
selector {
property: value;
property: value;
}
</code>
</pre>
De plus, la plupart des plugins de coloration syntaxique utilisent également ce format (à la fois <pre>
et <code>
) pour restituer le code. Ici vous avez plus à ce sujet. https://css-tricks.com/snippets/css/make-pre-text-wrap/
N'utilisez pas l'éditeur visuel. Copiez le code dans votre vue "HTML" pour préserver l’indentation. Copiez-le dans la vue 'Visual' et votre code sera tout aligné à gauche ...
Vous pourriez peut-être faire remove_filter( 'the_content', 'wp_filter_kses' );
mais cela supprimerait également le balisage du reste du message, pas seulement les bits de code.
Peut-être pourriez-vous essayer de supprimer le filtre comme décrit ci-dessus, puis ajoutez un filtre sur 'the_content'
avec votre propre fonction. Dans cette fonction, vous pouvez spécifier exactement les éléments à traduire en balisage et ceux à conserver dans leur forme d'origine (par exemple, tout ce qui se trouve entre les balises <pre>
, par exemple).
Vous pouvez utiliser un plugin de surlignage de code, par exemple http://wordpress.org/extend/plugins/syntaxhighlighter/ . Ils devraient pouvoir garder l'espace blanc.
Les espaces blancs suivants sont supprimés par défaut en HTML (par exemple: " "
, deux espaces deviennent " "
un.
Vous devez remplacer les espaces par le code
ou ajouter le code entre les balises <pre></pre>
(indiquant le texte préformaté).
(Je n'ai pas testé le plugin ou associé à)