nvbn 13.01.2009 08:11
0byte — Нужна ли подсветка синтаксиса тегу "code"?
Нужна | 27 | |
Не нужна | 3 |
Ranma 13.01.2009 08:14 #
+ 1 -
Как будет реализована подсветка синтаксиса для различных языков?
было бы неплохо прикрутить стандартные расцветки из vim там или еще чего
или например так:
внешним фильтром с кэшированием, но это смотря как у вас там все устроено, заодно и автоформатилку приделать можно, правда с универсальными сложнее, я для перла perltidy юзаю, для других не знаю.
или например так:
apt-cache show highlight Package: highlight Priority: optional Section: devel Installed-Size: 1664 Maintainer: Ayman Negm <[email protected]> Architecture: amd64 Version: 2.4.8-1.1 Depends: libc6 (>= 2.7-1), libgcc1 (>= 1:4.1.1-21), libstdc++6 (>= 4.2.1-4) Filename: pool/main/h/highlight/highlight_2.4.8-1.1_amd64.deb Size: 409614 MD5sum: 64a875b48e7fee8791b88048166c588e SHA1: cd56bdcb4dab2f1defc4973e2048f36f46615121 SHA256: 2f87a3e2c960179a2d0d8b82adcebfd1e6ef635c80bd9cf7e530214210037b4e Description-ru: универсальный преобразователь исходного кода в форматированный текст Преобразует исходный код в форматы HTML, XHTML, RTF, LaTeX, TeX или XSL-FO с подсветкой синтаксиса. Highlight поддерживает 85 языков программирования. Языковые определения и цветовые схемы можно настраивать. Tag: devel::prettyprint, interface::commandline, role::program, scope::utility, use::converting, use::text-formatting, works-with::software:source, works-with::text, works-with-format::html, works-with-format::tex
внешним фильтром с кэшированием, но это смотря как у вас там все устроено, заодно и автоформатилку приделать можно, правда с универсальными сложнее, я для перла perltidy юзаю, для других не знаю.
Как я понимаю, в базе просто html хранится. Можно во время POST парсить содержимое code и заменять, например строку <#>.* заменить на <span id='bash_comment'><#>.*</span>, и затем прицепить куда-нибудь bash_higlight.css, где будет строка bash_comment {text-color: #33bb33; text-style: italic}.
Извините, если что напутал, давно такими вещами не занимался.
Update: торможу, не совсем так, в базе не html хранится, а местный код (типа BB-code), он парсится при выдаче из базы. Так и code парсить можно при выдаче.
Извините, если что напутал, давно такими вещами не занимался.
Update: торможу, не совсем так, в базе не html хранится, а местный код (типа BB-code), он парсится при выдаче из базы. Так и code парсить можно при выдаче.
есть еще она крезанутая идея написать на javascripte syntax highlight, xmlhttprequest'ом , брать скрипты раскраски для языка и добавлять их динамически в DOM, при обработке поста просто делать что-то типа
может и готовое что есть.
а вот и оно, не смотрел особо идею но вот
http://google-code-prettify.googlecode.com/svn/trunk/README.html
<div style="codehighlight" lang="perl">.
может и готовое что есть.
а вот и оно, не смотрел особо идею но вот
http://google-code-prettify.googlecode.com/svn/trunk/README.html
есть еще одна идея не совсем в тему я как-то писал клиент сервер и использовал подобный cram-md5 auth алгоритм для безопасной передачи паролей через сеть, суть в следующем - сервер генерит хэш при посещении страницы авторизации, на стороне клиента мы этот хэш сливаем с md5 пароля введенного пользователем и передаем серверу md5summ полученой строки сгенеренную жабоскриптом в базе хранится md5 пароля, сервер делает ту же операцию и мы имеем более менее безопасную аудентификацию пользователя без ssl. Всегда удивляло что это не используется практически нигде.
Что-то я не совсем понял: пароль в базе хранится в md5, а сравниваются md5(md5(пароль)), так что ли?
сравниваем
client=md5(concat(hashstring,md5(password)))
server=md5(concat(hashstring,password_md5_from_db))
audentificated = true if client eq server
hashstring генерится сервером по вызову страницы логина и запоминается в сессии на стороне сервера естественно, у меня было задание посложнее - я писал предполагая что вебморда находится вне доверительной зоны.
над передачей пароля изначально(при заведении аккаунта) я не особо думал, думаю надо что-то ssl-подобное городить, возможно уже что-то есть.
client=md5(concat(hashstring,md5(password)))
server=md5(concat(hashstring,password_md5_from_db))
audentificated = true if client eq server
hashstring генерится сервером по вызову страницы логина и запоминается в сессии на стороне сервера естественно, у меня было задание посложнее - я писал предполагая что вебморда находится вне доверительной зоны.
над передачей пароля изначально(при заведении аккаунта) я не особо думал, думаю надо что-то ssl-подобное городить, возможно уже что-то есть.
С ssl свои заморочки.Я как в основном хостинговый админ ненавижу ssl потому что вечно то у браузеров кастомерских слишком много спрашивает, то вообще файрфокс отказывается страницы с одинаковым с сертификатом показывать, и главный косяк для меня - невозможность использования в Shared хостинге, SSL в web это в первую очередь аудентификация сервера, когда это не нужно, это в первую очередь проблемы для юзера и саппорта. Бонусов от использования шифрования меньше чем проблем, поэтому плавно веду проект по пропаганде отказа от ssl и замены на другие - более приемлемые для end юзера способы шифрования траффика в web. Я уже поднимал этот вопрос как-то. Было бы интересно собрать статистику побольше - много ли пользователей браузеров читают сертификат внимательно прежде чем с раздражением нажать трижды accept ? Сколько из них делает так-же при соединении с банком или другими хостами повышенной секурности ?
Подсветка синтаксисов это святое. Тут одно из двух: либо городим свою либо учим code понимать html-теги, чтобы можно было экспортировать код из текстовых редакторов.
Если будешь прикручивать нумерацию строк, то пожалста, как-нить поделикатней - многие могут отсюда просто копипастить код, поэтому лишние циферки в начале каждой строки будут только убийством. Думаю, нумерацию лучше сделать опциональной.
Тогда может сделать блок кода таблицей из двух ячеек? И не надо будет писать теги списка, просто тупо цифры с переносом строк.
В реале переносы кода бывают, можно просто забить 80 символов на ширину строки и в обязательном порядке переносить все, что сверх. Кстати, местным редакторам постов и комментов не хватает предпросмотра.
Псто устарел и пострадал от переезда.