Задача. Хранить содержание статей в базе в обработанном виде. Обработанный вид - любой формат, который можно перевести в html и обратно, который поддерживает любые вставки, в том числе видео с YouTube, Vimeo, VK, плеер из SoundCloud и т.п.
Почему не хранить сырой html? Сегодня мне нужно вывести <b>Text</b> завтра <strong>Text</strong> послезавтра <span class=”bold”>Text</span> с этим разобрались.
Как по мне, для таких задач хорошо использовать BBCode. Очень лаконично и читабельно выглядят вставки любых внешних плееров [youtube]youtube id[/youtube][vimeo]vimeo id[/vimeo], а также просто написать свой обработчик, который будет выглядеть уместным. Например [mycomponent id=254]content[/mycomponent]
Но! Слышу много мнений что использовать BBCode в 2017-ом это… как бы устаревшее решение, и взамен предлагают markdown.
Облазив интернет, я так и не нашел адекватного решения вставки видео с YouTube или своих кастомных блоков в markdown.
Так почему не стоит использовать BBCode в 2017-ом? Или markdown это наше все и есть пару хуков, которые покроют мои требования?
По мне, абсолютно не важно как вы храните данные... Фильтруйте входящие и перед отдачей юзеру и все будет нормально.
Да хоть ::B:: текст ::B:: , если вы эти данные сможете потом обработать, зачем извращаться...
Markdown, кстати, отнюдь не молод... 2004 год...
Не парьтесь, это как "Вы все еще юзаете JQuery? 2016/17 на дворе - React!" (если что, это Каково оно учить JavaScript в 2016).
На самом деле не так важно что юзать, смотрите что удобнее вам поддерживать.
Примерно то же самое с CodeIgniter. Версия 2.Х вполне себе работоспособная и обкатанная, однако "надо идти вперед" и появляется версия 3. Сыровата и с глюками, "но это же последняя версия!".
Старое - не значит плохое. Понты обычно вылазят боооольшим боком. Ну и бритва Оккама вам в помощь ))
Вы же читали внимательно мой вопрос, верно? Облазив интернет, я так и не нашел адекватного решения вставки видео с YouTube или своих кастомных блоков в markdown.
AnjeyTsibylskij: внимательно читал. Вы просто вставляете ссылку на такой ресурс, и бекенд по определенным шаблонам просто заменит это после обработки md.
AnjeyTsibylskij: а что если я скажу вам что для вставки youtube вообще можно не использовать bbcode или другие решения "внешние"?
Достаточно перед выводом найти ссылки на ютуб и заменить чем угодно.
Тоже самое и про другие кастомные вещи можно сказать скорее всего.
Т.е. использовать полностью своё решение без дополнительных пакетов.
AnjeyTsibylskij: так используйте же уже bbcode, вас за руки же никто не хватает)
Если убрать абсолютно дурацкий пункт со сменой вёрстки(для любой "верстки" текста достаточно стандартных тегов и общих стилей на них), то очевидным выбором становится любой более менее адекватный визуальный редактор html.
Или вы собираетесь каждый день/неделю/месяц менять дизайн сайта, и заодно менять всю вёрстку на всём сайте?
Почему не стоит использовать BBCode?
потому что это неудобно. Да были времена когда любое работающее топорное решение было очень хорошими и удобным - по сравнению с ничем т.к. других вариантов просто не было.
Все более менее современные сайты/движки используют визуальные редакторы через contenteditable.
И не нужны никакие прослойки между html <> html.
А заменить на можно без проблем на выводе,и это ничем не будет отличаться от использования bbcode, кроме того что все хранится в html. Еще лучше конечно массово заменить в базе вхождения, если уж меняется верстка так мощно, дабы не делать лишних регулярок.