Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#26 2016-08-30 19:11:14

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Альтернативный парсер BBCODE. Регулярка.

Подумалось мне lol почему бы не хранить вместо текста в базе, его структуру в виде json строки:

{"tag":"ROOT","def":null,"attr":null,"children":[{"tag":"b","def":null,"attr":null,"children":[{"tag":"TEXT","text":"Жирненько"}]},{"tag":"TEXT","text":"Просто текст"}]}

Структура получается такая:

[
 'tag' => 'ROOT',
 'def' => null,
 'attr' => null,
 'children' => [
  0 => [
   'tag' => 'b',
   'def' => null,
   'attr' => null,
   'children' => [
     0 => [
      'tag' => 'TEXT',
      'text' => 'Жирненько',
     ]
   ],
  ],
  1 => [
   'tag' => 'TEXT',
   'text' => 'Просто текст',
  ],
 ]
]

А исходный текст такой:

[b]Жирненько[/b]Просто текст

В результате при отображении темы останется пробежать по структуре и отобразить html обвес для тегов и ни какого парсинга в момент отображения.

При изменении вида отображаемых тегов, сообщения так же меняются.

Парсинг нужен только при сохранении сообщения и редактировании.

P.S. Смайлы только распарсить в картинки придется.

Редактировался Visman (2016-08-30 19:13:54)

Offline

#27 2016-10-12 10:24:54

lakki
Участник
Зарегистрирован: 2015-10-21
Сообщений: 145

Re: Альтернативный парсер BBCODE. Регулярка.

Хорошая задумка, какие сейчас успехи?

Offline

#28 2016-10-12 15:13:22

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Альтернативный парсер BBCODE. Регулярка.

@lakki, 3 или 4 варианта написано. Ни один до ума не довел. Сейчас занят делами домашними.

Offline

#29 2016-11-25 11:28:49

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Альтернативный парсер BBCODE. Регулярка.

Парсер (вариант который дописал) выложил тут https://github.com/MioVisman/Parserus
Это не готовое решение для форума, это отдельный модуль для парсинга текстов с бб-кодами.
Парсер не только выводит текст в виде html, но и проверяет/исправляет/дополняет введенный текст.
Примеры там же в wiki и в папке examples.

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens