Автоматическое экранирование специальных символов

В HTML есть два символа, требующие особого обращения: < и & . Левые угловые скобки используются для начала тегов; амперсанды используются для обозначения объектов HTML. Если вы хотите использовать их как буквальные символы, вы должны экранировать их как сущности (например, < , & ).

Амперсанды особенно сбивают с толку веб-писателей. Если вы хотите написать «AT&T», вам нужно написать « AT&T ». Вам даже нужно избегать амперсандов в URL-адресах. Таким образом, если вы хотите дать ссылку на:

http://images.google.com/images?num=30&q=larry+bird

вам нужно закодировать URL-адрес как:

http://images.google.com/images?num=30&q=larry+bird

в атрибуте href вашего тега привязки. Излишне говорить, что об этом легко забыть, и это, вероятно, самый распространенный источник ошибок проверки HTML на хорошо размеченных веб-сайтах.

Markdown позволяет вам использовать эти символы естественным образом, беря на себя все необходимое экранирование. Если вы используете амперсанд как часть объекта HTML, он остается неизменным; в противном случае он будет переведен в & .

Итак, если вы хотите включить в свою статью символ авторского права, вы можете написать:

©

и Markdown оставит это в покое. Но если вы напишете:

AT&T

Markdown переведет это на:

AT&T

Аналогичным образом, поскольку Markdown поддерживает встроенный HTML, если вы используете угловые скобки в качестве разделителей для тегов HTML, Markdown будет обрабатывать их как таковые. Но если вы напишете:

4 < 5

Markdown переведет это на:

4 &lt; 5

Однако внутри диапазонов и блоков кода Markdown угловые скобки и амперсанды всегда кодируются автоматически. Это упрощает использование Markdown для написания HTML-кода. (В отличие от необработанного HTML, который является ужасным форматом для написания синтаксиса HTML, поскольку каждый отдельный < и & в вашем примере кода должен быть экранирован.)

Обратная косая черта

Markdown позволяет использовать обратную косую черту для создания литеральных символов, которые в противном случае имели бы особое значение в синтаксисе форматирования Markdown. Например, если вы хотите окружить слово буквальными звездочками (вместо HTML-тега <em> ), вы можете использовать обратную косую черту перед звездочками, например:

\*literal asterisks\*

Markdown обеспечивает обратную косую черту для следующих символов:

\   backslash
`   backtick
*   asterisk
_   underscore
{}  curly braces
[]  square brackets
()  parentheses
#   hash mark
+   plus sign
-   minus sign (hyphen)
.   dot
!   exclamation mark