Question : Peut-on écrire directement du HTML dans un champ de texte ?

Niveau : Utilisation avancée

Réponse :

La réponse est à la fois oui et non.

Non, car la syntaxe HTML n’est pas reconnue lorsque l’on écrit un paragraphe de texte standard. La raison en est que les sections de texte sont enregistrés dans un format XML spécifique, une sorte de XHTML simplifié, conçu pour pouvoir être traité facilement et générer aussi bien du XHTML que le XML du format OpenDocument. Sa principale différence avec le XHTML est de ne pas permettre l’imbrication de balises (pas de <em><strong></strong></em> par exemple).

Oui, car il existe un moyen d’indiquer une zone spéciale qui contient des données HTML brutes en signalant le début et la fin de cette zone avec la séquence de caractères ???. Les données dans cette zone seront affichées telles quelles. Ce type de zone est notamment utilisé pour l’insertion d’une vidéo. Il faut noter que le contenu de cette zone ne sera pas récupéré dans une transformation au format ODT.

???
<p>Ici <strong> on peut <em> faire </em></strong> une soupe de <span style="color: red">balises
<p>sans rien</span> fermer</div>
???

Exemple de zone de données HTML brutes

Ici on peut faire une soupe de balises

sans rien fermer

Résultat de l’exemple précédent

Il faut préciser que ces données subissent un traitement vérifiant la validité du code HTML, en particulier des balises fermantes orphelines ce qui permet d’éviter des interférences avec le reste du HTML. Dans notre exemple, les balises </div> et </span> sont supprimées et le code devient :

???
<p>Ici <strong> on peut <em> faire </em></strong> une soupe de <span style="color: red">balises </span></p>
<p>sans rien fermer</p>
???

Questions voisines