Три причины:
- совместимость с произвольными реализациями Markdown,
- безопасный ввод пользователя,
- контент, независимый от макета
Стандартная уценка не поддерживает таблицы. Он предназначен для электронной почты. SO использует стандартную уценку, поэтому нет таблиц.
Некоторые расширения Markdown поддерживают таблицы, но они несовместимы друг с другом, что лишает законной силы идею Markdown, поскольку контент становится зависимым от конкретной реализации Markdown.
Таким образом, таблицы можно создавать только с помощью HTML-inside-Markdown. Что тоже не хорошо. Я уверен, что конвертеры Markdown2PDF, Markdown2TeX и Markdown2TheNextBigML легко написать. Преобразование Markdown со встроенным HTML во что угодно, кроме HTML, не тривиально. Таким образом, нет смысла хранить все в Markdown (простой текст), если (некоторые) встроенный HTML разрешен.
Другая причина очистки всех представленных пользователем HTML очевидна, это слишком сложно и дорого для правильного анализа, и это может нарушить компоновку (например, <table width="10000" height="10000">
).
Наконец, существует огромная выгода в облегченной (чистой разметке) разметке: она не зависит от конкретной компоновки сайта (ширина экрана, отступы, поля, выравнивание, ширина столбцов и т. Д.). Таким образом, если через год произойдет SO-редизайн, контент редактировать не нужно (фрагменты HTML зависят от конкретного CSS неявно). Дополнительный бонус: удобнее использовать в сторонних приложениях (например, клиентах для мобильных телефонов).