-
Добрый день.
Столкнулся с такое проблемой — кроме подсветки синтаксиса мне нужна фоновая подсветка строк (это вывод diff файла), для этого внутри тегов <pre> <code> я использую <span> с указанием нужного класса. Но в этом случае highliht.js перестает работать. Как то это можно решить?
Заранее благодарен за подсказку. -
Так происходит по двум причинам. Во-первых считается, что если внутри кода уже есть какая-то разметка, то автор кода имел намерение показать что-то отдельное, и не надо ему мешать еще дополнительной разметкой. Но главное, это просто очень сложно сделать, потому что авторская разметка может перемешиваться с автоматической произвольным образом, и это надо как-то совмещать. Если представить себе например вот такой фрагмент с комментарием:
some_func(); /* This is a multiline comment */То что тут кого должно разрезать?
<span>ы строк комментарный<span>или нет? А если в авторской разметке это не строки, а что-то еще? И это простой случай из головы, если хорошо подумать, там могут быть вещи и сложнее.В связи с этим я не знаю конкретного ответа на вопрос "как" :-). Наверное можно подумать в сторону подкладывания под
<pre>с хайлайтингом фонового<div>а с полосатыми строками. -
ведь в приведённом примере, "is" находится внутри комментария, который будет выделен от начала блока комментария до конца строки, а "is" уже внутри этого блока... и казалось бы перекрытий особо никаких нет.
И с другой стороны можно строить пересечения множеств (обычного текста, и текста с дополнительным span'ом) и добавлять в span'ы highligher'а классы/стили из span'а пользователя -
А причем тут "is"?
-
ты привёл пример кода
<pre><code>some_func(); /* This <span style="font-weight:bold>is</span> a multiline
comment
*/</code></pre>
т.е span внутри pre code
is в данном случае текст, находящийся в span'е -
Пример кода тут про многострочный комментарий. И весь текст вокруг про это. То, что там "is" подсвечен вообще не имеет отношения к делу.
-
но зачастую требуется подсветить какое-то одно максимум два слова в однообразном блоке, например в целом комментарии выделить какое-то слово курсивом или жирным, или в xml выделить какой-нибудь атрибут жирным, или вообще дать в комментарии href
казалось бы - если автор не указал no-highlight, то код и не надо подсвечивать - в другом случае надеется, что код будет подсвечен, конечно по возможности не стоит делать серьёзных препятствий highligher'у - но и не подсвечивать, когда явно нет конфликтов тоже не совсем корректно. -
Проблема в том, как определить "явно нет конфликтов". Когда смотришь глазами на раскрашенный код, это очевидно. Но как это запрограммировать — совершенно неясно. Мне, по крайней мере :-)
-
патч выслал на почту
-
Да, я видел письмо (конечно же :-) ). Как только руки дойдут, посмотрю. Спасибо!
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

