Ми}{алы4

Блог хеллоуворлдщика

Простой и мощный текстовый редактор для Yii2 использующий парсер BB-кода и фильтр HtmlPurifier

06.02.2015 yii2, редактор, bb-code

В связи с тем, что потребовалось реализовать свой редактор с индивидуальной разметкой я сначала посмотрел в сторону wisiwyg Imperavi, попробовал его расширить, и пришёл к выводу, что в моём случае он не подходит, т.к. обычный пользователь может навставлять такое огромное количество лишний HTML тегов, что это приводит к тому, что всё съезжает. Да и вообще, мне лично никогда wisiwyg не нравились, очень сложно уследить за тем, чтобы разметка была корректна и правильная, что не скажешь, например о Markdown или обычным редактором на BB-кодах.

Далее я подумал, что стоит посмотреть в сторону Markdown, но опять же, вспоминая о том, что редактором будут пользоваться обычные пользователи, то решил использовать редактор на BB-кодах, который использует практически на всех форумах, который легко расширяется, очень мощный и на выходе у нас имеется корректная разметка контента без каких-то артефактов.

И я сразу же "нырнул" в GitHub, где нашел, по моему мнению, отличный парсер BB-кодов, который просто расширяется, очень мощный и простой. Немного его модернизировав я написал bahavior для ActiveRecord, который срабатывает до принятия изменений. Так-же в коробке есть HtmlPurifier, который можно включить до передачи контента на обработку парсеру BB-кодов и после обработки. Настройки для каждого из варианта разные.

Страница расширения на GitHub: https://github.com/bupy7/yii2-bbcode

Страница расширения на Packagist: https://packagist.org/packages/bupy7/yii2-bbcode

Страница на jBBCode: https://github.com/jbowens/jBBCode

Страница на HtmlPurifier: https://github.com/ezyang/htmlpurifier