Как известно, настоящее тестирование начинается только после версии 1.0, когда софт пробует использовать горазд больше людей :-). Первые реальные применения highlight.js выявили один интересный FAQ.

Скрипт подсвечивает блоки кода, находящиеся в <pre><code>...</code></pre>, но только если там внутри нет других тегов. Изначально так было сделано просто потому что так проще с программной точки зрения. Иначе же надо обходить текст всех вложенных элементов (хотя для этого, наверное, есть какие-нибудь функции). Но хуже другое — непонятно что потом делать с этими элементами дальше, то ли выкидывать, то ли как-то вконструировать обратно.

Ответ на это совсем неоднозначный, потому что есть код, в котором теги "просто попались" и никому не нужны (как <acronym>ы у Слаффа, которые проставляются там автоматически). А есть код, где тегами задается очень нужное оформление, как например у меня в статье, где <del>ами показано, что изменилось.

Кстати, Слафф, возможно стоит написать автору плагина с акронимами, чтобы он игнорировал блоки кода. Это, по идее, в любом случае правильно.

Еще одно мелкое теоретическое удобство от этого, что процесс подсветки становится безопасным применять несколько раз: отработает только первый раз, а после этого делать ничего не будет.

В общем и целом, я пока не придумал, оставить ли это как документированную особенность или как-то обработать.

Добавить комментарий