Пометка с разбивкой по блокам <section> и <div>?
Я заметил, что элементы уровня блока не очень дружелюбны. Представьте себе следующий сегмент (да, я собираюсь вывести для twitter bootstrap):
<section id="loremipsum">
<div class="page-header">
# Heading 1 #
</div>
Lorem ipsum, blah blah blah, yada yada yada.
</section>
Ожидаемый результат должен быть:
<section id="loremipsum">
<div class="page-header">
<h1>Heading 1</h1>
</div>
<p>Lorem ipsum, blah blah blah, yada yada yada.</p>
</section>
Вместо этого полученный результат близок к:
<p><section id="loremipsum"></p>
<div class="page-header">
# Heading 1 #
</div>
<p>Lorem ipsum, blah blah blah, yada yada yada.</section></p>
Здесь есть две проблемы:
Обе эти проблемы на самом деле происходят и в официальном парсере Dingus, так что я думаю, что это один из тех, кто "работает по назначению". Тем не менее, есть ли там уцензурные гуру, которые знают, как обойти эти проблемы?
Ответы
Ответ 1
Да, это по дизайну. Согласно Gruber:
Обратите внимание, что синтаксис форматирования Markdown не обрабатывается в блочных HTML-тегах. Например, вы не можете использовать Markdown-style * emphasis * внутри блока HTML.
Я не знаю об этом обходном пути, но я бы не поставил себя на уровень гуру, когда дело доходит до Markdown.
Изменить. Возможно, вы захотите проверить PHP Markdown Extra, если вы работаете с PHP.
Ответ 2
Вы можете использовать Pandoc markdown, который по умолчанию интерпретирует код между тегами <div>
как текст разметки.
$ pandoc input.md -o output.html
(Подробнее см. в разделе markdown_in_html_blocks
Doc.)
Ответ 3
Немного поздно в игре, но обновленный ответ (по состоянию на лето 2015 года).
Вопрос зависит от того, какую реализацию вы используете, но хорошая ссылка на уценку CommonMark. В соответствии с спецификацией HTML-блоков вы можете получить желаемый результат с этой уценкой:
<section id="loremipsum">
<div class="page-header">
# Heading 1 #
</div>
Lorem ipsum, blah blah blah, yada yada yada.
</section>
Обратите внимание на пустые строки, которые являются конечными условиями для HTML-блоков. Также обратите внимание:
Блок начинается с строки, которая соответствует условию начала (после до трех пробелов дополнительного отступа).
Значение должно быть осторожным с отступом начала HTML-блоков.
markdown-it реализует commonmark 100% в js, perl-commonmark дает привязки к библиотеке CommonMark C, и я предполагаю, что вы найдете реализации CommonMark на большинстве языков программирования.
Ответ 4
Некоторые реализации могут быть чувствительны к регистру.
Оказывается, что markdownsharp
будет использовать реальный div
, если вы используете тэг <DIV>
, но не используете <DIV>
.
Так что это может дать вам то, что вы хотите
<DIV class="video-panel">
![Review][1]
![Review][2]
</DIV>
Даже разметка stackoverflow по-прежнему отличает их, хотя и вытесняет сам DIV. Для общедоступного веб-сайта это, вероятно, хорошая вещь!
это будет выделено жирным шрифтом
** это не будет выделено жирным шрифтом **