Интегрированный текстовый редактор WYSIWYG Markdown
В поисках простого редактора WYSIWYG для кода Markdown я не нахожу сравнимый пользовательский интерфейс с CkEditor, TinyMCE и т.д.
В частности, редакторы Markdown "WYSIWYG", которые часто рекомендуются (например, сообщения, такие как this), не являются чистыми редакторами WYSIWYG в том смысле, что пользователи либо все еще пишут raw Markdown (MarkItUp) или перейдите к другому пределу, имеющему встроенное редактирование без стандартных элементов управления (Hallo).
Мне нужно что-то промежуточное.
Я ищу редактор Markdown, который выглядит и работает как текстовое поле с разделителем CkEditor, и которое принимает и выводит Markdown. Должна быть панель инструментов с минимальным набором параметров форматирования (B, I, U, списки, ect), а в области ввода текста должна отображаться преобразованная Markdown, а не необработанный код. Должна быть кнопка "Источник", которая позволит пользователям редактировать необработанный Markdown, но даже это необязательно. Пример:
![enter image description here]()
Я получаю причину Markdown/wiki, ect - безопасность, которую он предлагает. Я не против ввода сырого кода, как здесь, в SE, но мои пользователи не являются вундеркиндами и не считают это приятным. Они не хотят видеть * * * ___ и пробелы, смешанные с их текстом. Они используются для редактирования стиля "Word" и наиболее эффективны в этой среде.
Итак - есть ли действительно встроенный редактор WYSIWYG для Markdown? Я пишу на PHP, поэтому что-то, что я могу вызвать с классом, было бы идеальным.
23 сентября 2015 г. Обновление
Теперь CKEditor имеет Markdown addon, который делает эту точную вещь. Проект аддона размещен на github.
Скриншоты:
![markdown WYSIWYG]()
![источник разметки]()
13 апреля 2015 г. Обновление
Кто-то, кто занимается разработкой CKEditor, говорит, что внешний вид CommonMark - это смена игры, и мы могли бы увидеть правильный интерфейс разметки для CKEditor (читайте комментарии для полной истории).
6 февраля 2015 г. Обновление
Теперь CKEditor поставляется с плагином, который выводит (и принимает на вход) BBCode.
Демо: http://ckeditor.com/demo#bbcode
Ответы
Ответ 1
Я изучал эту тему на днях, и я не нашел подходящего редактора WYSIWYG с выходом Markdown. На самом деле, сначала вам нужно создать редактор WYSIWG Markdown, это HTML-редактор WYSIWG, и их мало, что можно использовать на рынке.
Есть вероятность, что вы сможете создать dataProcessor
для CKEditor, который изменит редактор HTML в редактор Markdown. У нас есть плагин для BBCode, который работает так (посмотрите http://nightly-v4.ckeditor.com/3737/samples/bbcode.html).
Все, что вам нужно сделать, это реализовать этот интерфейс http://nightly-v4.ckeditor.com/ckeditor_api/#!/api/CKEDITOR.dataProcessor. Если вы проверите код плагина BBCode, вы увидите некоторые хаки и трюки, потому что, к сожалению, нынешняя архитектура CKEditor еще не готова (но) создать такой процессор данных. Однако я считаю, что если вы хотите предоставить только несколько вариантов стилизации, вы сможете быстро реализовать поддержку Markdown.
Ответ 2
SimpleMDE, новичок, может быть ответом. Я искал что-то подобное в течение месяца. Я удивлен, что это не показывает больше в результатах поиска. Мне пришлось пройти через уведомление lepture/editor, чтобы найти это.
![введите описание изображения здесь]()
Ответ 3
Pen - новый (активен с 2014 года) редактор WYSIWYG, который выводит Markdown.
Это не идеально - у меня были проблемы с вставкой HTML-кода, но он работает.
Изменить: Извините! Он не выводит Markdown. Walery Strauch указал в комментариях, что знаки Markdown, которые я видел, были на самом деле правилами элемента CSS:
![]()
Тем не менее, я оставлю его здесь как вариант, так как некоторые люди поддержали этот ответ, и он, возможно, был полезен кому-то.
Ответ 4
РЕДАКТИРОВАТЬ 23 сентября 2015 г.
Теперь CKEditor имеет Markdown addon, который делает эту точную вещь. Проект аддона размещен на github.
Скриншоты:
![markdown WYSIWYG]()
![источник разметки]()
Как было опубликовано в моем обновлении от 6 февраля 2015 года, CKEditor теперь включает плагины, которые позволяют ввод и вывод BBCode.
Демо доступно здесь: http://ckeditor.com/demo#bbcode
РЕДАКТИРОВАТЬ 13 апреля 2015 года:
Кто-то, кто занимается разработкой CKEditor, говорит, что внешний вид CommonMark - это смена игры, и мы могли бы увидеть правильный для CKEditor (читайте комментарии для полной истории).
Ответ 5
Я также ищу редактор меток, который описан в верхней части этого потока
Вы видели "инструменты разметки": http://md-wysiwyg.sourceforge.net/
Демо: http://md-wysiwyg.sourceforge.net/cgi-bin/cgi_wysiwyg_test.py/
Это кажется очень близким к тому, что мы ищем, он делает разумную работу по переносу вашего текста WYSIWYG и вывода меток. Однако это не удалось из-за исключения кодировки, когда я вставлял в какой-то богатый текст из документа google.
Ответ 6
Я реализовал очень простой редактор, который позволяет содержимое <textarea>
, которое содержит Markdown для редактирования в режиме WYSIWYG.
Я использовал Hallo. Я не думаю, что его веб-сайт делает очевидным, что он сам не является редактором Markdown WYSIWYG, но demo создает путь к одному.
Hallo позволяет редактировать WYSIWYG HTML внутри <div>
. Я использовал javascript, чтобы скрыть любые блоки <textarea>
, которые имеют определенный класс CSS wysiwyg
, заменяя его <div>
и копируя содержимое <textarea>
в <div>
. Копирование выполняется через Showdown, который создает HTML из Markdown.
Другая процедура Javascript реагирует каждый раз при изменении содержимого <div>
. Он копирует содержимое обратно в (теперь скрытый) <textarea>
. Содержимое выполняется через to-markdown для преобразования из HTML в Markdown.
Если <textarea>
- это поле в <form
> , тогда отредактированная Markdown будет отправлена на сервер при отправке этой формы.
Вдохновение для этого происходит из примера Hallo Markdown, в частности editor.js. Я использовал это как основу для моего собственного script вместе с hallo.js, showdown.js и to-markdown.js.
My script, wysiwyg.js является производным от editor.js из Пример отметки Hallo Markdown. Некоторые замечания:
- Я использую это в приложении Rails (не это важно)
- Он работает на
ready
, а также на page:load
, последний, поскольку Rails использует Turbolinks
- Он работает на
ajaxComplete
, потому что я использую Ajax для отчетов об ошибках формы
- Существуют и другие зависимости: JQueryUI и Rangy (пользователи Rails могут использовать драгоценные камни jquery-ui-rails и rangy-rails).
- Также Шрифт Awesome используется для значков панели инструментов. Версия
hallo.js
, используемая demo, устарела (используется старая версия Шрифт Awesome) - вместо hallo.js из GitHub.
Вам нужно добавить CSS class='wysiwyg'
в любой <textarea>
, чтобы включить WYSIWYG. <textarea>
должен отображать отформатированный текст Markdown.
Я бы ожидал, что wysiwyg.js можно легко адаптировать для использования другого редактора, если вам не нравится Hallo, пока он работает на HTML в <div>
. Есть довольно много на выбор, но не все из них такие же легкие, как Hallo.
Насколько я понял, эта работа была markdown-html-form. Он использует те же Showdown и to-markdown.
Ответ 7
Попробуйте ли вы это: http://mrcoles.com/demo/markdown-css/
Кажется лучшим в своем роде и работает 3 способа, т.е. HTML-Markdown-Preview
Есть еще одна вещь, отсутствующая, WYSIWYG.