Notez que cet article a été écrit pour la première fois il y a plus de 2 ans, mais n'est pas nécessairement obsolète.
L’insertion de l’espace insécable (no-break space : ), fort utile en français, ne fonctionne pas dans le plugin charmap de l’éditeur visuel tinyMCE de wordPress. Ce caractère est essentiel dans la typographie française, en particulier avant les deux-points (:), les points d’exclamation (!) et d’interrogation (?). Il n’est pas agréable de voir ces points à la ligne suivante s’ils se trouvent en fin de ligne. Même dans la version 4.6.1 de wordPress, cela ne fonctionne pas.

Pour remédier à cela, il faut modifier le plugin charmap de tinyMCE. Celui-ci se trouve dans le répertoire wp-includes/js/tinymce/plugins/charmap. Dans ce répertoire, il y a deux fichiers : (ah tiens, un espace insécable devant les deux points) plugin.js et plugin.min.js. La version chargée dans l’éditeur tinyMCE est la version minifiée.
Quoi qu’il en soit, dans le fichier beautified plugin.js, il faut modifier à partir de la ligne 345 :
341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 |
for (x = 0; x < width; x++) { var index = y * width + x; if (index < charmap.length) { var chr = charmap[index]; var chrText = chr ? String.fromCharCode(parseInt(chr[0], 10)) : ' '; // gridHtml += '<td title="' + chr[1] + '"><div tabindex="-1" title="' + chr[1] + '" role="button">' + // (chr ? String.fromCharCode(parseInt(chr[0], 10)) : ' ') + '</div></td>'; gridHtml += ( '<td title="' + chr[1] + '"><div tabindex="-1" title="' + chr[1] + '" role="button" data-chr="' + chrText + '">' + chrText + '</div></td>' ); } else { gridHtml += '<td />'; } } gridHtml += '</tr>'; } gridHtml += '</tbody></table>'; var charMapPanel = { type: 'container', html: gridHtml, onclick: function(e) { var target = e.target; if (/^(TD|DIV)$/.test(target.nodeName)) { if (getParentTd(target).firstChild) { // insertChar(tinymce.trim(target.innerText || target.textContent)); insertChar(target.getAttribute('data-chr')); if (!e.ctrlKey) { win.close(); } } } }, |
Les anciennes lignes ont été mises en commentaires. La correction est présentée sur github.com. Et le fichier minifié par mes soins après la correction plugin.min.js.
Et hop, voilà retrouvée une fonctionnalité essentielle pour écrire en français, même si l’on peut s’arranger sur des claviers avec un pad numérique en utilisant le code alt : Alt+0160.
Quelques codes alt très pratiques :
- Alt+0160 : Non-breaking space, espace insécable,
- Alt+0173 : Soft hyphen ­, marque de césure pour indiquer où couper un mot,
- Alt+0133 : …, horizontal ellipsis, les trois-points,
- Alt+0192 : À, A grave,
- Alt+0201 : É, E acute, E aigu,
- Alt+0199 : Ç, C cedil, C cédille,
- Alt+0156 : œ, oe ligature
Et rehop, et si wordPress se met à jour et ne corrige pas le fichier plugin.min.js, il faudra le recopier à nouveau dans le répertoire wp-includes/js/tinymce/plugins/charmap.