LINUX.ORG.RU

WYSIWYG bbcode


0

1

Здравствуйте.

Интересует сабж. Из того что я посмотрел/потестил:

- cleditor. Есть bb-code плагин, но создает <div> мусор. Нет тегов code и quote

- tinyeditor/nicedit. Вроде как аналогично не умеет quote/code

- TinyMCE / CKeditor / elrte - толстые

- WYMeditor

Собственно, идеальный вариант - это cleditor, но не создающий мусора. С js я почти не знаком, поэтому вариант до- пере- пиливания - последний.

Есть вариант пройтись re с целью преобразования html->bbcode на сервере, но нужен редактор, который не создает мусора.

Или wysiwyg на форумах не нужен?

Когда я столкнулся с подобной задачей, то сообразил, что:

1. Код, который генерит WYSIWYG редактор будет валидным (т.е. все теги закрываются, причем в нужном порядке, т.е. text не будет) и мне нужно просто проверить, что он валидный. А также что он не содержит дырок для XSS, т.е. есть только разрешенные аттрибуты и запрещен протокол javascript: для src картинок, например.

2. редактору проще генерить html, чем bbcode.

После чего сделал вывод, что bbcode не нужен - можно генерить сразу html. На сервере нужно проверить, что этот HTML содержит валидный HTML только с разрешенными тегами и аттрибутами (проверять нужно не любой html, а тот, что создан javascript редактором, т.е. очень правильный и удобный для парсинга).

В результате написал за пару дней на boost.Spirit (C++) HTML валидатор под конкретную задачу (до этого я Spirit'ом не пользовался).

Предполагаю, что использование bbcode для таких задач явление чисто историческое (ну и изобилие bbcode библиотек для php тоже влияют).

Еще к тебе есть вопрос, не для троллинга. В чем толстота TinyMCE? Клиент по GPRS долго будет качать или на iPhone JavaScript медленно работать будет или что-то другое?

WYSIWYG очень удобная штука, главное, чтобы он был удобен (т.е. не делал непредсказуемых вещей, типа вставки ненужных тегов, которые потом непонятно как исправить).

anonymous ()
Ответ на: комментарий от anonymous

Еще к тебе есть вопрос, не для троллинга. В чем толстота TinyMCE? Клиент по GPRS долго будет качать или на iPhone JavaScript медленно работать будет или что-то другое?

ты разметку видел после него? Она более чем странная.

xpahos ★★★★★ ()
Ответ на: комментарий от anonymous

Еще к тебе есть вопрос, не для троллинга. В чем толстота TinyMCE? Клиент по GPRS долго будет качать или на iPhone JavaScript медленно работать будет или что-то другое?

$ ls ./* -lah | grep js
-rw-r--r--  1 user user 203K Ноя  3 14:43 ./tiny_mce.js
-rw-r--r--  1 user user 5,3K Ноя  3 14:43 ./tiny_mce_popup.js
-rw-r--r--  1 user user 437K Ноя  3 14:43 ./tiny_mce_src.js
-rw-r--r-- 1 user user 6,4K Ноя  3 14:43 en.js
-rw-r--r-- 1 user user 2,0K Ноя  3 14:43 editable_selects.js
-rw-r--r-- 1 user user 5,9K Ноя  3 14:43 form_utils.js
-rw-r--r-- 1 user user 4,0K Ноя  3 14:43 mctabs.js
-rw-r--r-- 1 user user 6,0K Ноя  3 14:43 validate.js

Если бы его можно было дергать с какого-нибудь гуглокода... В принципе, может и не стоит дергаться про размеры.

Я просто что боюсь html-wysiwyg юзать: юзер может сделать текст мелким/цветом_фона/нечитаемым и напихать туда рекламы, или еще какой-нибудь фигни, поэтому парсер может оказаться весьма сложным. А так юзер ограничен bb-кодами, которые в случае чего просто не будут распознаны, а при выводе весь нераспознанный трешак покроется escape'ами, оставив только валидные ббкоды.

division_hell ()
Ответ на: комментарий от xpahos

ты разметку видел после него? Она более чем странная.

Понятнее можно, что не так с разметкой?

У меня TinyMCE рисует редактор ровно в том месте, где должна быть textarea (скрывает textarea и на его месте рисует что-то свое). Генерит он ровно тот набор тегов, которые ему разрешены (и которые пропускает парсер).

anonymous ()
Ответ на: комментарий от anonymous

Понятнее можно, что не так с разметкой?

я в общем-то о том, что у него очень много лишних тэгов, какие-то непонятные span с жестко прописанными style и на каждый абзац p. Поэтому вот в одном проекте будем постепенно убирать его.

xpahos ★★★★★ ()
Ответ на: комментарий от xpahos

я в общем-то о том, что у него очень много лишних тэгов, какие-то непонятные span с жестко прописанными style и на каждый абзац p. Поэтому вот в одном проекте будем постепенно убирать его.

Ага, понял. Я тоже такое видел в генерируемом им html коде сообщения. Решил, что это потому, что он пытается туда вставить какой-то аттрибут, но я большую часть ему запретил генерировать и в результате остается один span. Мне это не мешает, я решил все так и оставить. Будет мешать - буду искать решение.

anonymous ()
Ответ на: комментарий от xpahos

span с жестко прописанными style

Ы? А куда ему их прописывать, в какой-нибудь style.css на твоём сервере?

и на каждый абзац p

Ы? Вообще-то в HTML <p> - это и есть разбивка на абзацы.

Но, согласен, WYSIWYG-редакторы не нужны.

karbofos ()
16 июля 2012 г.
Ответ на: комментарий от Kalashnikov

Я вот не понимаю, почему нельзя было написать что-то типа «вот я тут редактор написал, зацените».

А сам я заюзал то ли django-ckeditor, то ли django-tinymce и плюнул на «безопасность», т.к. вся тема нужна была для внутреннего использования.

Кстати, а @wbb не хочет сделать django-wysibb? :)

division_hell ()
Ответ на: WISYWYG редактор BBCode от wbb

Вот интересный WISYWYG редактор BBCode - http://www.wysibb.com

О! Интересно. Пойду запишу.

class wysibb
{
    static function init($element)
    {
        jquery::load();
        jquery::plugin(config('jquery.wysibb.path').'/jquery.wysibb.min.js');
        jquery::on_ready("\$($element).wysibb();");
    }
}

KRoN73 ★★★★★ ()
Ответ на: комментарий от division_hell

Не, мне ббкод не нужен, мне хтмл (ну не конвертить же бд взад). Пользуюсь редактором имперави, но что-то таки глючит иногда, мусор иногда тоже оставляет (хотя не обновлял давно).

На безопасность условно плевать, фреймворк умеет чистить хсс.

Kalashnikov ★★★ ()
Ответ на: комментарий от division_hell

Не могу понять, почему не понравился мой пост. Чем текст типа «вот я тут редактор написал, зацените» лучше? Ну, думаю здесь дело вкуса.

Сейчас мой редактор находится на стадии появления, как на сайте и написано, это лишь первые бета версии, проходит тестирование и доработка. Поэтому и документация пока скудная, не все сразу.

wbb ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.