Le bug de l'espace supplémentaire…

Depuis près de deux ans et demi, j'avais un bug assez énervant qui faisait que tous les liens insérés dans un bloc de texte riche était systématiquement suivi d'un espace lors du rendu ce qui est particulièrement gênant avec la ponctuation qui se retrouve parfois sur la ligne suivante. Depuis quelque temps j'étais persuadé qu'il s'agissait d'un bug d'eZ Publish lié au fait que j'avais fait un override du template content/datatype/view/ezxmltags/link.tpl en le plaçant dans le design de mon site.

Aujourd'hui, j'ai refait quelques tests sur le code Planet eZ Publish.fr qui souffrait du même problème. J'ai découvert que le problème ne venait pas de la surcharge directement, mais de l'édition du template avec Vim qui, par défaut, insère systématiquement un caractère fin de ligne (EOL ) sur la dernière ligne d'un fichier et ce caractère qui apparaissait comme un espace. Ceci explique aussi les messages de diff/svn diff indiquant qu'un caractère fin de ligne a été ajouté ou supprimé selon les cas.

Il est heureusement possible de désactiver ce comportement en ajoutant les lignes suivantes dans sa configuration de Vim :

au BufWritePre * :set binary | set noeol
au BufWritePost * :set nobinary | set eol