Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

FuraxKawaiBB - парсер bb-кодов и связанных мелочей (Furax)
Author Message
Furax
Участник форума



Joined: 07 Sep 2007
Posts: 25
Карма: 12
   поощрить/наказать


PostPosted: Sun Mar 14, 2010 2:05 pm (написано за 27 минут 16 секунд)
   Post subject: FuraxKawaiBB - парсер bb-кодов и связанных мелочей
Reply with quote

Доброго всем времени суток!

Предлагаю на суд общественности свой парсер bb-тегов FuraxKawaiBB. Его отличительные особенности:
  1. Парсер выполняет полный набор операций над исходным текстом, включая разбор bb-кодов, экранировку спецсимволов, подстановку смайлов, выделение адресов гиперссылками и расстановку переносов; разумеется, любая из операций может быть пропущена.
  2. Форматирование разбито на последовательное выполнение отдельных действий (см. п. 1); пользователь может сам определять дополнительные действия и добавлять их в любое место этой очереди. Изменения файлов самого парсера при этом не требуется.
  3. Богатый программный интерфейс для настройки параметров парсера сочетается с малым объёмом (<40кБ) непосредственно исполняемого кода за счёт того, что исполняемый код - "брутальный парсер" - собирается индивидуально в соответствии с заданными настройками. Характерное время сборки брутального парсера - 0.04 секунды на моей ненагруженной машине (Core 2 Duo 2.13GHz, 2 Gb 800MHz RAM).
  4. Изначально парсер понимает около 35 тегов (любой из которых, разумеется, может быть отключен). Пользователь может добавлять к парсеру дополнительные теги, не изменяя исходного кода парсера.
  5. Существует режим, гарантирующий, что HTML-код не будет испорчен при подстановке смайлов (многие движки сыпятся на ситуациях, когда смайл присутствует в URLе, или неверно обрабатывают точку с запятой в конце HTML-сущности, если за ней идёт закрывающая скобка).
  6. Большинство операций над тегами выполняется автоматически; большинство настроек задаётся непосредственно. Для добавления к парсеру нового тега нужно лишь определить способ генерации его HTML-кода (или использовать один из уже определённых в пакете классов тегов).
  7. Код комментирован и документирован.
  8. Парсер бесплатен для некоммерческих проектов.
Разумеется, у продукта есть и минусы, как и у всякого явления природы:
  1. Парсер не является легковесным решением, и разобраться во всех его возможностях за 30 секунд нельзя. Для понимания принципа его действия (что необходимо для определения пользовательских тегов и операций) нужно ознакомиться с принципом его работы и используемой терминологией.
  2. Поскольку на этапе настройки и тестирования и на этапе выполнения работают разные ипостаси парсера (кавайный парсер и брутальный парсер, соответственно), рабочий код форматирования тегов или выполнения операций над текстом должен быть записан дважды (в разных нотациях) - для выполнения в каждом из них, соответственно. Если кто-то предложит приемлемый выход из этой ситуации (кроме введения надъязыка), буду очень рад.
  3. Парсер не предназначен для использования в платных пакетах.
Общий принцип действия - это последовательное (циклическое либо рекурсивное в зависимости от контекста) выполнение операций над текстом. Конкретно парсер bb-тегов сначала выделяет одним регулярным выражением все теги в строке, а затем движется по полученному массиву, пытаясь разобрать каждый из них.

Актуальна версия 0.3 (в прикреплении). Она отлажена (корректно форматирует собственное описание и все входящие в него примеры), но, возможно, не до конца.

Домашняя страница проекта - furax.narod.ru/furaxkawaibb/.

Отзывы и предложения приветствуются.


furax_kawai_bb_0.3.zip
 Description:
FuraxKawaiBB версии 0.3.

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
Back to top
View user's profile Send private message
Furax
Участник форума



Joined: 07 Sep 2007
Posts: 25
Карма: 12
   поощрить/наказать


PostPosted: Sun Aug 08, 2010 9:32 am (спустя 4 месяца 24 дня 19 часов 26 минут; написано за 53 секунды)
   Post subject:
Reply with quote

Версия 0.1. Единственное отличие - переход на utf-8 (по сравнению с windows-1251 в 0.0). Вложение в первом сообщении темы заменено.
Back to top
View user's profile Send private message
Furax
Участник форума



Joined: 07 Sep 2007
Posts: 25
Карма: 12
   поощрить/наказать


PostPosted: Sun Aug 22, 2010 12:51 pm (спустя 14 дней 3 часа 18 минут; написано за 37 секунд)
   Post subject:
Reply with quote

Версия 0.2. Всего лишь исправлена одна ма-а-аленькая ошибка. Вложение обновлено.
Back to top
View user's profile Send private message
Furax
Участник форума



Joined: 07 Sep 2007
Posts: 25
Карма: 12
   поощрить/наказать


PostPosted: Fri Feb 11, 2011 6:13 pm (спустя 5 месяцев 20 дней 5 часов 21 минуту; написано за 2 минуты 19 секунд)
   Post subject:
Reply with quote

Версия 0.3. Исправлена очепятка в документации, появившаяся в результате перевода на utf-8, а вместо вызова
Code (any language): скопировать код в буфер обмена
call_user_func_array(array($this, 'parent::addToGroups'), $arguments)
на 36-ой строке entities.php прописан
Code (any language): скопировать код в буфер обмена
call_user_func_array(array($this, 'FuraxBBAlgorithm::addToGroups'), $arguments)
В чём разница, не знаю, но с первым вариантом php 5.3.3 под Denwer3_Base_2010-11-07_a2.2.4_p5.3.1_m5.1.40_pma3.2.3 вылетает по 301 ошибке.
Back to top
View user's profile Send private message
tuweb
Заглянувший



Joined: 15 Jan 2013
Posts: 2
Карма: -3
   поощрить/наказать

Location: Москва

PostPosted: Tue Jan 15, 2013 9:51 am (спустя 1 год 11 месяцев 3 дня 15 часов 38 минут; написано за 20 секунд)
   Post subject:
Reply with quote

а смысл в этом парсере?
Back to top
View user's profile Send private message
matvei20
Заглянувший



Joined: 07 Feb 2013
Posts: 2
Карма: 0
   поощрить/наказать

Location: Рязанская обл., п. Сапожок

PostPosted: Wed Mar 06, 2013 9:30 am (спустя 1 месяц 21 день 23 часа 38 минут; написано за 1 минуту 23 секунды)
   Post subject:
Reply with quote

tuweb wrote:
а смысл в этом парсере?
Парсер штука полезная, тем более в свободном доступе. Ну а как применять - каждый решит сам.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML