Вопрос

Зачем мне нужен Отметка с редактором переднего редактора Омд? Что делает отметка с контентом, который отправляется из редактора WMD?
Как Markdown хранит контент в бэкэнде? Это так же, как *bold* Или в каком -то другом формате? Почему я не могу просто сделать HTML -кодирование?

Извините, если я звучал очень наивно.

Это было полезно?

Решение

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

Мы могли бы назвать это описание богатства (под описанием богатства я имею в виду, как «этот бить текста смел» или «этот бить текста - гиперссылка), мы могли бы назвать это описанием богатства« разметка » - он отмечает Текст с мета "богатство".

Реализации богатого текста может принять два подхода, либо а.) Скрыть разметку от пользователя или b.) Пусть они имеют доступ к разметке.

Для тех, кто решит скрыть это, конечным результатом очень часто висивиг. Пользователь не замечает того, что происходит за кулисами. Редактор заботится о деталях. Подумайте о MS Word в качестве примера. Никто не манипулирует форматом наценки слова как обычного конечного пользователя.

Для реализаций, которые предпочитают разоблачить наценку, затем язык разметки позволяет пользователям взаимодействовать с ней. Такие языки разметки будут такими вещами, как HTML <tag> или, например, код BB, делая что -то вроде [tag].

Удар - один из этих языков.

В отличие от прежних типов, которые я упомянул, Marchdown пыталась спроектировать себя так, чтобы наценка заставила общих людей ASCII уже использовать. Например, людям часто будет звездовать свой текст, чтобы его установить, *important*, и эта обозначения в уценке является индикатором курсива.

Что касается хранения, как отметил Стефан, система, скорее всего, будет хранить необработанную отметку, потому что пользователь, скорее всего, будет иметь возможность редактирования, и для этой цели можно отозвать исходную отметку.

В большинстве систем, которые я построил, я храню отметки, а затем нормализую его во 2 -м поле, которое кэширует html рендеринг разметки. Таким образом, мне не нужно делать рендеринг Markdown-> HTML для каждого поля разметки. Это занимает немного больше места, но я бы предпочел, чтобы у пользователя был более быстрый ответ, чем использовать меньше места для хранения DB.

Следует также соблюдать осторожность при принятии отметки из браузера, поскольку он может легко содержать <script> теги, которые необходимо отфильтровать. Большинство реализаций Marckdown также будут распознавать HTML -смешивание с форматированием Marckdown, так как так, чтобы быть в безопасности, вам необходимо убедиться, что ваши входные данные и кэшизированы должным образом.

Другие советы

diagram

      

Причина использования альтернативной системы кодирования, отличной от HTML, заключается в безопасности.

Обычно не поддерживают языки сценариев.

HTML поддерживает языки сценариев во многих отношениях (

Две основные проблемы безопасности:

  1. Убейные преступники в вредоносных программах используют сценарии в контенте, сгенерированном пользователями, чтобы попытаться вредоносные действия на компьютере контента, сценарии, чтобы получить доступ к известным отверстиям безопасности

  2. Бесплатные погрузчики, использующие сценарии, чтобы подорвать остальную часть сайта, изменяя рамку контента или стили, т.е., меню, логотипы и т. Д. Это также может быть преступным поведением, если не просто раздражающим

Используя промежуточный язык, такой как Marckdown, вы имеете общий контроль на визуализованной выходе

Фильтрация HTML возможно, но также сложна и рискованна

Другой важной причиной альтернативной системы кодирования является соблюдение стиля. Нормальный HTML имеет слишком много вариантов. Ограничивая доступные варианты, пользователи могут использовать только определенные стили. Обычно это делает более чистые и более читаемый контент (сравните с eBay)

Основной причиной использования уценки является читаемость маркированного текста. Например, вы можете отправить его в простой текстовой электронной почте, и читатель все еще поймет эмпиаз, пули, текст будет разделен на параграфы и так далее.

Когда вы спрашиваете о хранении данных, это зависит. Если вы включите Markdown в блоге WordPress, он хранит данные, поскольку пользователь имеет их - в Markdown. Однако в переполнении стека кажется, что данные хранятся как HTML. По крайней мере, «дампы данных переполнения стека» содержит HTML, а не Markdown (я видел люди жалуются) что они должны преобразовать его обратно).

Если вы используете редактор WMD, вы можете показать пользователю, как будут выглядеть выходы после преобразователя в HTML. Несмотря на то, что синтаксис разметки является Действительно просто, не сложно совершать ошибки. Следовательно, лучше всего показать пользователям вывод.

Другая причина использования Markdown вместо управления Wysiwig - управление Wysiwig позволяет пользователю использовать HTML в данных, которые вы отображаете на своей веб -странице. Итак, вы должны быть тем, кто решает, когда есть просто неверный HTML и когда это зло XSS/CSRF/какой бы инъекция. В Markdown вы просто конвертируете * что -то * в <b>something</b>, Удалите любые непосредственные html -элементы, и все готово.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top