Модификатор для Smarty - подсветка BBCode и синтаксиса PHP
1 марта 2007
Текущая версия: 1.4.5
Плагин является расширением работы Andre Rabold. Конвертирует BBCode в обычные html-тэги. Мной была добавлена подсветка синтаксиса в тэгах [ php], защита e-mail адресов от спама, несколько новых тэгов, автоматический перенос строк и ещё немного по мелочи.
Установка:
Закинуть в папку plugins
Использовать в шаблонах Smarty как модификатор, т.е. {$some_text|BBCode}
История изменений:
**1.3** (+) Добавлены [h2 ],[h3 ],[h4 ],[h5 ],[h6 ] (*) Тэг [strike ] изменён на [s ] (*) Другие изменения в тэгах **1.4** (+) "@" в почтовых адресах заменяются на ".sobaka." (*) Пофиксено отображение тэгов HTML внутри [php ] (-) Тэги HTML больше не удаляются **1.4.1** (*) Тэгизменён на
**1.4.2** (*) Все внешние CSS включены в код плагина (+) Полная совместимость с RSS **1.4.3** (*) Исправлена ошибка с отображением HTML-кода. **1.4.4** (-) Убран ненужный код (*) Ещё раз исправлена ошибка с отображением HTML-кода. **1.4.5** (+) Валидная замена



Комментарии RSS по email OK
На регулярках - несерьезно -> долго.
Вот если бы на конечных автоматах ... дабы за один проход всё и сразу ...
Есть такая теорема Клини, которая гласит, что класс языков, представимых конечными автоматами, совпадает с классом регулярных языков. Отсюда проходов будет ровно столько же.
А если и нет - дело в кривых регулярках, а не в том, что они плохи.
У Вас там опечатка в блоке //headers (если точнее то с h4 по h6 смотрите...)
Неплохая статья. Вообще, bbcode имеет свои плюсы по сравнению с чистым html. С ним технически намного проще обращаться. Однако, bbcode накладывает и свои ограничения, включая процесс редактирования. Если необходимо разместить статью или объявление на html, то, обычно, возникает одна муторная проблема - необходимость в кропотливой замене скобочек на "<>". Конечно, данную проблему можно обойти, с помощью онлайн конвертера - ida-freewares.ru/html-bbcode.html Но, это не всегда удобно. Любой добавленный специфический тег в набор - автоматически добавляет сложностей и необходимость ручной замены символов.