Стараниями Дмитрия Лялина я узнал про еще один плагин WordPress для подсветки синтаксиса — CodeColorer. Как и многие другие плагины (напрмер, WP CodeBox Эрика Вонга или мой CodeBox), CodeColorer использует в качестве движка библиотеку GeSHi.
Несмотря на то, что в readme.txt
CodeColorer'а утверждается, что генерирует он валидную XHTML-разметку, на самом деле это не так. Например, для блока
<style type="text/css">
/* <![CDATA[ */
.style {margin: 0; padding: 0}
/* ]]> */
</style>
[cc]
была сгенерирована такая разметка (для удобства восприятия я её немного переформатировал):
<li class="li1">
<div class="de1">
<span class="sc2">
<span class="kw2"><style</span> <span class="kw3">type</span>=<span class="st0">"text/css"</span><span class="kw2">></span>
</span>
</div>
</li>
<li class="li1">
<div class="de1">/* <span class="sc2">
<span class="kw2"><</span>!<span class="br0">[</span>CDATA<span class="br0">[</span> */
</span></div>
</li>
<li class="li1">
<div class="de1">.<span class="kw3">style</span>
<span class="br0">{</span>margin: <span class="nu0">0</span>; padding: <span class="nu0">0</span><span class="br0">}
</span></div>
</li>
<li class="li1">
<div class="de1">/* <span class="br0">]</span><span class="br0">]</span><span class="kw2">></span> */</div>
</li>
<li class="li1">
<div class="de1">
<span class="sc2">
<span class="kw2"></style></span>
</span>
</div>
</li>
</ol>
В представленном дереве отчётливо видны вложенные элементы span
, что, с точки зрения спецификации (X)HTML, недопустимо.
Дмитрий написал, что [плагин] давно не обновляется
, поэтому я решил взять инициативу в свои руки и написать первое обновление для плагина.
В дальнейшем планирую добавить поддержку синтаксиса CodeColorer в CodeBox и забыть про CodeColorer
Но пока руки до этого не дошли, можно скачать обновление CodeColorer. Кодовая версия обновления — 0.6.0.1. Надеюсь, что автор не против
> Стараниями Дмитрия Лялина
Да какие уж тут старания =)
P.S. А если автор будет против?
Надеюсь, что не будет… Копирайты я не трогал, просто обновил GeSHi и добавил/подкорректировал пару языков (например, в (X)HTML условные комментарии будут корректно подсвечиваться).
Судя по тестам, генерируемый HTML теперь полностью валидный