Уценка: списки плохо конвертируются - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь создать список в Markdown.Как я читал в некоторой документации, если я напишу этот код Markdown:

My list
* first item
* second item
* third item

Not in the list

, я получу в результате то же самое, что если я напишу это в HTML:

<p>My list</p>
<li>
   <ul>first item</ul>
   <ul>second item</ul>
   <ul>third item</ul>
</li>
<p>Not in the list</p>

Iиспользуйте Atom в качестве редактора и средства просмотра Markdown, и все в порядке, но когда я использую pandoc для преобразования моего файла Markdown следующим образом:

pandoc test.md -o test.odt

, я получаю следующее:

My list * first item * second item * third item
Not in the list

Где я делаю не так?

1 Ответ

0 голосов
/ 05 февраля 2019

Существует два возможных решения вашей проблемы:

  1. Добавьте пустую строку между абзацем и списком (как @melpomene упоминается в комментарии).

    My list
    
    * first item
    * second item
    * third item
    
    Not in the list
    
  2. Оставьте пустую строку и скажите Pandoc использовать commonmark в качестве формата ввода вместо значения по умолчанию, markdown.

    pandoc -f commonmark -o test.odt test.md
    

«Проблема» заключается в том, что редактор Atom использует синтаксический анализатор CommonMark, а по умолчанию Pandoc использует анализатор Markdown старой школы, который в основном следует этим правилам и эталонной реализации (markdown.pl).Фактически, спецификация Commonmark специально признает эту разницу:

В CommonMark список может прерывать абзац.То есть, для отделения абзаца от следующего списка не требуется пустой строки:

Foo
- bar
- baz

<p>Foo</p>
<ul>
<li>bar</li>
<li>baz</li>
</ul>

Markdown.pl не позволяет этого из-за боязни вызвать список с помощью цифры в жесткой строке:

The number of windows in my house is
14.  The number of doors is 6.

Если вы хотите, чтобы ваши инструменты имели общее поведение, вам нужно использовать только те инструменты, которые следуют тому же поведению.

...