Furax
Участник форума

Joined: 07 Sep 2007
Posts: 25
Карма: 12 поощрить/наказать
|
Posted: Sun Mar 14, 2010 2:05 pm (написано за 27 минут 16 секунд)
Post subject: FuraxKawaiBB - парсер bb-кодов и связанных мелочей
|
|
Доброго всем времени суток! Предлагаю на суд общественности свой парсер bb-тегов FuraxKawaiBB. Его отличительные особенности:- Парсер выполняет полный набор операций над исходным текстом, включая разбор bb-кодов, экранировку спецсимволов, подстановку смайлов, выделение адресов гиперссылками и расстановку переносов; разумеется, любая из операций может быть пропущена.
- Форматирование разбито на последовательное выполнение отдельных действий (см. п. 1); пользователь может сам определять дополнительные действия и добавлять их в любое место этой очереди. Изменения файлов самого парсера при этом не требуется.
- Богатый программный интерфейс для настройки параметров парсера сочетается с малым объёмом (<40кБ) непосредственно исполняемого кода за счёт того, что исполняемый код - "брутальный парсер" - собирается индивидуально в соответствии с заданными настройками. Характерное время сборки брутального парсера - 0.04 секунды на моей ненагруженной машине (Core 2 Duo 2.13GHz, 2 Gb 800MHz RAM).
- Изначально парсер понимает около 35 тегов (любой из которых, разумеется, может быть отключен). Пользователь может добавлять к парсеру дополнительные теги, не изменяя исходного кода парсера.
- Существует режим, гарантирующий, что HTML-код не будет испорчен при подстановке смайлов (многие движки сыпятся на ситуациях, когда смайл присутствует в URLе, или неверно обрабатывают точку с запятой в конце HTML-сущности, если за ней идёт закрывающая скобка).
- Большинство операций над тегами выполняется автоматически; большинство настроек задаётся непосредственно. Для добавления к парсеру нового тега нужно лишь определить способ генерации его HTML-кода (или использовать один из уже определённых в пакете классов тегов).
- Код комментирован и документирован.
- Парсер бесплатен для некоммерческих проектов.
Разумеется, у продукта есть и минусы, как и у всякого явления природы:- Парсер не является легковесным решением, и разобраться во всех его возможностях за 30 секунд нельзя. Для понимания принципа его действия (что необходимо для определения пользовательских тегов и операций) нужно ознакомиться с принципом его работы и используемой терминологией.
- Поскольку на этапе настройки и тестирования и на этапе выполнения работают разные ипостаси парсера (кавайный парсер и брутальный парсер, соответственно), рабочий код форматирования тегов или выполнения операций над текстом должен быть записан дважды (в разных нотациях) - для выполнения в каждом из них, соответственно. Если кто-то предложит приемлемый выход из этой ситуации (кроме введения надъязыка), буду очень рад.
- Парсер не предназначен для использования в платных пакетах.
Общий принцип действия - это последовательное (циклическое либо рекурсивное в зависимости от контекста) выполнение операций над текстом. Конкретно парсер bb-тегов сначала выделяет одним регулярным выражением все теги в строке, а затем движется по полученному массиву, пытаясь разобрать каждый из них. Актуальна версия 0.3 (в прикреплении). Она отлажена (корректно форматирует собственное описание и все входящие в него примеры), но, возможно, не до конца. Домашняя страница проекта - furax.narod.ru/furaxkawaibb/. Отзывы и предложения приветствуются.
Description: |
|
 Download |
Filename: |
furax_kawai_bb_0.3.zip |
Filesize: |
332.75 KB |
Downloaded: |
540 Time(s) |
Last edited by Furax on Fri Feb 11, 2011 6:07 pm; edited 4 times in total
|
|
Furax
Участник форума

Joined: 07 Sep 2007
Posts: 25
Карма: 12 поощрить/наказать
|
Posted: Sun Aug 08, 2010 9:32 am (спустя 4 месяца 24 дня 19 часов 26 минут; написано за 53 секунды)
Post subject:
|
|
Версия 0.1. Единственное отличие - переход на utf-8 (по сравнению с windows-1251 в 0.0). Вложение в первом сообщении темы заменено.
|
|
Furax
Участник форума

Joined: 07 Sep 2007
Posts: 25
Карма: 12 поощрить/наказать
|
Posted: Sun Aug 22, 2010 12:51 pm (спустя 14 дней 3 часа 18 минут; написано за 37 секунд)
Post subject:
|
|
Версия 0.2. Всего лишь исправлена одна ма-а-аленькая ошибка. Вложение обновлено.
|
|
Furax
Участник форума

Joined: 07 Sep 2007
Posts: 25
Карма: 12 поощрить/наказать
|
Posted: Fri Feb 11, 2011 6:13 pm (спустя 5 месяцев 20 дней 5 часов 21 минуту; написано за 2 минуты 19 секунд)
Post subject:
|
|
Версия 0.3. Исправлена очепятка в документации, появившаяся в результате перевода на utf-8, а вместо вызована 36-ой строке entities.php прописанВ чём разница, не знаю, но с первым вариантом php 5.3.3 под Denwer3_Base_2010-11-07_a2.2.4_p5.3.1_m5.1.40_pma3.2.3 вылетает по 301 ошибке.
|
|
tuweb
Заглянувший
Joined: 15 Jan 2013
Posts: 2
Карма: -3 поощрить/наказать
Location: Москва
|
Posted: Tue Jan 15, 2013 9:51 am (спустя 1 год 11 месяцев 3 дня 15 часов 38 минут; написано за 20 секунд)
Post subject:
|
|
а смысл в этом парсере?
|
|
matvei20
Заглянувший

Joined: 07 Feb 2013
Posts: 2
Карма: 0 поощрить/наказать
Location: Рязанская обл., п. Сапожок
|
Posted: Wed Mar 06, 2013 9:30 am (спустя 1 месяц 21 день 23 часа 38 минут; написано за 1 минуту 23 секунды)
Post subject:
|
|
tuweb wrote: |
а смысл в этом парсере? | Парсер штука полезная, тем более в свободном доступе. Ну а как применять - каждый решит сам.
|
|