Лучший вариант для Wiki-подобного текстового редактора для сохранения исходной разметки?

Нам нужен веб-редактор с расширенными возможностями, похожий на wiki, способный сохранять исходную разметку. В настоящий момент заданная пользовательская разметка преобразуется в HTML для отображения и редактирования (позволяя людям редактировать HTML в случае ссылок и т.п.), а затем конвертируется обратно в конкретную разметку при сохранении. Это явно подвержено ошибкам и не идеально.

Первое важное решение - между решением на основе чистого javascript html (например, TinyMCE ) и более ориентированным на клиента решением с такими вещами, как flash или silverlight , которые позволят нам не беспокоиться о html и т. Д.

Какие варианты, по вашему мнению, являются лучшими на данный момент?

Ответов (8)

Решение

Это долгая дискуссия. Я советую использовать JavaScript с хорошим выводом XHTML. Ни в коем случае не используйте вспышку или серебристый свет.

Для своего проекта я использовал текстовый редактор YUI, и все работало очень хорошо. Попробуйте здесь: http://developer.yahoo.com/yui/examples/editor/skinning_editor.html

Попробуйте эту ссылку, это действительно хорошее сравнение веб-редакторов, чтобы получить то, что вам нужно:

Редактор javascript, поставляемый с WordPress, превосходен.

В Mozilla над этим работают:

Мозилла Беспин

Мы используем Screwturn для разработки вики-страниц, основанных на международных знаниях, которые могут быть использованы нашими разработчиками. Я бы сказал, что это достойный бесплатный вики-инструмент.

Возможно, вам не потребуется разрешать прямое редактирование HTML, если вы используете что-то вроде Markdown или Textile - пользователи всегда будут работать с простым текстовым представлением контента, в то время как по запросу будет выполняться одностороннее преобразование простого текста в HTML. возможно для более красивого вида на HTML-страницах.

Существует ряд Ruby Gems, которые помогут вам в реализации преобразования Markdown и Textile из обычного текста в HTML, если это необходимо. Есть также несколько хороших редакторов для уценки (как и тот, который использует SO).

На мой взгляд, редактирования простого текста (в Markdown, Textile или аналогичном) достаточно, и это лучший выбор в большинстве случаев. Это определенно очень легкий и соответствующий стандартам метод создания богатого контента, и хотя Markdown, Textile и подобные не охватывают все возможные варианты форматирования, путь простого текста заслуживает серьезного рассмотрения.

Вы также можете увидеть здесь, в StackOverflow, который использует Markdown для вопросов и ответов, что это достойный вариант. Я решительно поддерживаю необходимость видеть «теги форматирования», потому что WYSIWYG почти всегда приводит к неуместным / ненужным тегам. Кроме того, использование текстовых форматов позволяет вам иметь 100% контроль над результирующим HTML .

Если вам необходимо использовать WYSIWYG, мой опыт работы с TinyMCE оказался достаточно приличным, чтобы рекомендовать его.

Тип пользователей и среда, в которой используются данные, могут многое сказать. HTML - это формат представления, поэтому использование его для редактирования содержимого неоптимально. Во многих случаях вам нужно отделить контент от презентации, и тогда HTML вызовет у вас проблемы из-за этого. Вы, конечно, можете попытаться ограничить ввод только подмножеством HTML, но это сложно сделать правильно, и это в первую очередь подрывает идею, потому что тогда ввод больше не будет действительно wysiwyg. CMS годами боролась с этой проблемой, поэтому я думаю, что нет простого решения.

If you editors are power users (probably programmers, but I've had success with mere mortals), you can have them input content in markdown or a similar content-centric format and then transform it to HTML on presentation. The biggest hurdle for this approach seems to be the lack of realtime preview (wysiwyg). I've used Showdown to render a preview in realtime, like this site does - and I've recently made a widget for a sort of hybrid wysiwyg type of input, that you may find usable.

Я бы посоветовал использовать редактор на основе Javascript. Их много, и они действительно хороши. Я считаю редакторы на основе flash / java / active x / и т. Д. Медленными и неуклюжими по сравнению с редакторами JS.

Некоторые из редакторов JS, которые мне нравятся:

Мне лично нравится TinyMCE.

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

Сохраните его в базе данных в формате BB-кода, а затем замените строку при отображении текста.

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