Задача. Хранить содержание статей в базе в обработанном виде. Обработанный вид - любой формат, который можно перевести в 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. Сыровата и с глюками, "но это же последняя версия!".
Старое - не значит плохое. Понты обычно вылазят боооольшим боком. Ну и бритва Оккама вам в помощь ))