web-dev-qa-db-fra.com

Préserver les espaces dans la page

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.

3
brentonstrine

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/

2
carkod

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 ...

http://codex.wordpress.org/Writing_Code_in_Your_Posts

1
revo

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).

0
Marc Dingena

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 &nbsp; ou ajouter le code entre les balises <pre></pre> (indiquant le texte préformaté).

(Je n'ai pas testé le plugin ou associé à)

0
Arevico