В HTML есть два символа, требующие особого обращения: <
и &
. Левые угловые скобки используются для начала тегов; амперсанды используются для обозначения объектов HTML. Если вы хотите использовать их как буквальные символы, вы должны экранировать их как сущности (например, &lt;
, &amp;
).
Амперсанды особенно сбивают с толку веб-писателей. Если вы хотите написать «AT&T», вам нужно написать « AT&amp;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 < 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