Forum Astuces.divers [Obsolète] Poster du code dans les commentaires, astuces, etc. de LinuxFr

Posté par  .
Étiquettes :
1
10
nov.
2007

Obsolète : l’astuce ci-dessous était destinée à l’ancienne version du site, basée sur Templeet.

Si l'on essaie de poster tel quel un bout de code dans les commentaires de LinuxFr, faute du support d'une balise <pre>, les indentations disparaissent, sans compter les problèmes avec les signes < et >.

Une solution consiste à préparer votre code avec la commande suivante :

perl -pe 's/^([^t]*)t/$1 . " " x (8 - length($1) % 8)/eg; s/&/&amp;/g; s/((^| ) +)/"&nbsp;" x length($1)/eg; s/</&lt;/g; s/>/&gt;/g' code_source > /tmp/pret_a_poster_sur_LinuxFr

Ensuite, il n'y a plus qu'à ouvrir le fichier /tmp/pret_a_poster_sur_LinuxFr avec un éditeur et le copier-coller dans la zone de saisie des commentaires.

La substitution s/^([^t]*)t/$1 . " " x (8 - length($1) % 8)/eg remplace les tabulations par des espaces,

s/&/&amp;/g remplace les esperluettes par leur code HTML,

s/((^| ) +)/"&nbsp;" x length($1)/eg; remplace les espaces de début de ligne et les espaces multiples par des espaces insécables, c'est notamment ce qui permet de sauver les indentations,

s/</&lt;/g et s/>/&gt;/g remplacent les signes inférieurs et supérieurs.

À l'essai, un copier-coller depuis Firefox remet bien des espaces normales à la place des espaces insécables.

Si ce n'était pas le cas avec un autre navigateur, il faudrait que le lecteur les reconvertisse avec par exemple :

sed -e 's/xC2?xA0/ /g' fichier_avec_expaces_insecables > fichier_sans_espaces_insecables

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.