Написал: pyhoster, 27/11/2009 23:03
Мои эксперименты так важны, так прекрасны, так удивительны, что я с трудом могу оторваться от них, чтобы поесть.
(с) Н. Тесла
Как я и думал, встраивание подсвеченного кода в пост в чистом виде оказалось решением скверным. Причем, помимо неудобств при редактиваронии, такой подход вызывает дополнительные проблесмы при экспотре RSS - лишние теги + лишние стили... ничего хорогошего вобщем. =)
В итоге я заменил способ подстветки - теперь это работает так:
В WYSIWYG вставляется контейнер с небработанным кодом, которому присваивается класс highlight и в аттрибуте lang указывается язык для подсветки. По окончании загрузаки страницы, из всех контейнеров класса highlight извлекается их содержимое и AJAX-запросом отправляется на сервер, а полученный результат замещает собой первоначальный контейнер.
Выполнено это пока не очень изящно, однако работает.
$(document).ready(function() {
$(".highlight").each(function() {
var hObject = $(this);
$.post("/tools/highlight/", {
"language" : hObject.attr("lang")? hObject.attr("lang") : "text",
"code" : hObject.html()
},
function(response_data) {
hObject.replaceWith($("<div>").append(response_data));
});
})
});
| Категории: Программирование | Тэги: AJAX jQuery Pygments Подсветка синтаксиса | Комментарии(1) |


