Pandoc Markdown: список из нескольких абзацев с кодовыми блоками

avatar
MASL
7 апреля 2018 в 21:54
1546
1
3

Вся документация по спискам на сайте Pandoc кажется неправильной или в лучшем случае огромным беспорядком.

В основном я разобрался, как работать с несколькими абзацами в списках, но я застрял со следующей комбинацией: Текстовый абзац, следующий за абзацем блока кода, выпадает из списка. То есть абзац блока кода разрывает список (как видно из выходного файла latex .tex; используйте параметр -t tex).

Если следующий текст Markdown находится в файле test.md и я использую Pandoc как pandoc -t latex test.md -o test.pdf

Как следует отформатировать следующий текст Markdown, чтобы абзац 3 попадал внутрь элемента 1 списка и был выровнен с его первым абзацем?

   1. List item. Paragraph 1

   ```javascript
        // Second paragraph is a code block. If start at column 6, code shows ok.
        // Additional indentation only moves code block further right
        // Notice code block tag/backticks starts at column 1 though!!
        //  If it starts at col 2+, code block w/ tag is messed up as all code block.
        var x = 3
        print( "Pandoc has made a mess out of Markdown!" )
   ```

        Paragraph 3. However list is broken and Par 3 falls off.
   2. List item

Должно отображаться как:

  1. Элемент списка. Пункт 1

// Second paragraph is a code block. If start at column 6, code shows ok. // Additional indentation only moves code block further right // Notice code block tag/backticks starts at column 1 though!! // If it starts at col 2+, code block w/ tag is messed up as all code block. var x = 3 print( "Pandoc has made a mess out of Markdown!" )

   Paragraph 3. However list is broken and Par 3 falls off.

2. Элемент списка

Но вместо этого отображается как

  1. Элемент списка. Пункт 1

// Second paragraph is a code block. If start at column 6, code shows ok. // Additional indentation only moves code block further right // Notice code block tag/backticks starts at column 1 though!! // If it starts at col 2+, code block w/ tag is messed up as all code block. var x = 3 print( "Pandoc has made a mess out of Markdown!" )

Абзац 3. Однако список нарушен, и пункт 3 выпадает.

  1. Элемент списка
Источник

Ответы (1)

avatar
Martin C. Arnold
8 апреля 2018 в 18:33
4

Ключ в том, чтобы использовать правильную комбинацию отступов и новых строк:

1. List item, no indention

    This paragraph is indented by two tabs (four spaces). 
    Put separating newlines below and above the following code chunk:

    ```javascript
    // This code chunk is indented by two tabs (four spaces)
    var x = 3
    print("Pandoc has made a mess out of Markdown!")
    ```

    Paragraph 3 is indented by two tabs.

2. List item, no indention

Это дает

enter image description here

MASL
8 апреля 2018 в 22:29
0

Отлично, получилось. Я думаю, что когда-то я прибил его случайно, но это было настоящим источником разочарования. Вы следовали этой комбинации из документов панды? Если да, то я совсем пропустил.

Martin C. Arnold
9 апреля 2018 в 10:40
0

Да, я сделал. :-)

MASL
9 апреля 2018 в 12:31
0

:-) Ну, ваш второй и последующие абзацы имеют отступ в 4 пробела относительно столбца 1, где находятся счетчики списка. Вот и все, он начинается с пятого столбца. Это не то, что говорится в документах. На самом деле этой комбинации нет, где найти объяснение там. Наиболее близким является правило, когда блок кода следует за маркером списка: «Последующие абзацы должны начинаться через 2 столбца после последнего символа маркера списка»! Я нахожу эти документы почти такими же плохими, как и для hexdump...