<имеет особое значение в уценке?

tmp.md:

Choices for blank 91:       __A__:  pa>pb      __B__:  pa<pb      __C__: pa==pb      __D__: pa<>pb

Choices for blank 92:       __A__:  pa<>pb      __B__:  pa<pb      __C__:  pa>pb      __D__: pa==pb

Скомпилировано с 'grip --export tmp.md' и вы получите неожиданный результат:

Choices for blank 91: A: pa>pb B: papb

Choices for blank 92: A: pa<>pb B: papb D: pa==pb

Похоже, GRIP обрабатывается <как метасимвол. Но руководство по уценке так не говорит? Я что-то здесь упускаю?

1 ответ

Решение

Как говорится в правилах:

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

Поэтому уценка проходит < а также > без изменений. Однако, поскольку эти символы являются разделителями тегов HTML, ваш браузер будет интерпретировать что угодно между < и > как тег HTML, и он не будет отображаться. Конечно, если вы никогда не открываете тег <), затем закрывающий тег (>) будет игнорироваться браузером. Поэтому при использовании < в качестве простого текстового символа лучше всего использовать HTML-сущность, чтобы браузер воспринимал ее так: &lt; (подсказка: L ess T han => &lt; => <)

Итак, чтобы использовать ваш пример ввода:

Choices for blank 91:       __A__:  pa>pb      __B__:  pa&lt;pb      __C__: pa==pb      __D__: pa&lt;>pb

Choices for blank 92:       __A__:  pa&lt;>pb      __B__:  pa&lt;pb      __C__:  pa>pb      __D__: pa==pb

Вывод будет выглядеть так:

Варианты выбора для бланка 91: A: pa> pb B: pa C: pa == pb D: pa <> pb

Выбор для бланка 92: A: pa <> pb B: pa C: pa> pb D: pa == pb

Обратите внимание, что это поведение вашего браузера. Markdown ничего не мог бы сделать, чтобы изменить это, если только он не разрешал / не поддерживал использование исходного HTML в документах Markdown.

Конечно, печатать &lt; каждый раз, когда вы хотите < характер не идеален. Как правило, текст, который содержит такие символы, может быть классифицирован как "код". Поэтому, как правило, лучше всего обернуть его в диапазон кода (когда он встроен в текст) или в блок кода (когда весь код состоит из блока из одной или нескольких строк).

For example, this paragraph contains `<>` characters.

Приведенная выше уценка приведет к созданию следующего HTML:

<p>For example, this paragraph contains <code>&lt;&gt;</code> characters.</p>

Обратите внимание, что угловые скобки были преобразованы в &lt;&gt; для вас (и завернутый в <code> теги). И браузер отобразит это как:

Например, этот абзац содержит <> персонажи.

Другие вопросы по тегам