2017-01-24 9 views
2

Я пытаюсь определить, что я делаю что-то не так, или если есть ошибка с общими процессорами Markdown.Markdown форматирование кодовых блоков в списках

У меня есть код, следующий уценки (source):

1. Verify that your system meets the [system requirements for BLT](../INSTALL.md) 
1. [Fork](https://help.github.com/articles/fork-a-repo) the primary GitHub repository 
1. Clone your fork to your local machine: 

     git clone [email protected]:username/project-repo.git 
     git remote add upstream [email protected]:acquia-pso/project-repo.git 

1. If your project uses separate `master` and `develop` branches, checkout the `develop` branch: `git checkout develop` 
1. Run `composer install` (you must already have Composer installed). 
1. Install `blt` alias: `composer blt-alias` 

Вы можете увидеть, как это делает здесь:

  1. Убедитесь, что система отвечает требованиям к системе для BLT
  2. Fork в первичный репозиторий GitHub
  3. Клонировать вилку на локальном компьютере:

    git clone [email protected]:username/project-repo.git 
    git remote add upstream [email protected]:acquia-pso/project-repo.git 
    
  4. Если ваш проект использует отдельные master и develop ветви, проверка на develop филиал: git checkout develop

  5. Run composer install (вы должны уже установили композитор).
  6. Установите blt псевдоним: composer blt-alias

Осмотреть HTML и обратите внимание, как список пунктов 3 и 4 заключены в пункте блоков, в то время как другие элементы списка не являются. Это может привести к очень несовместимому стилю в зависимости от используемого CSS.

Мне просто интересно, почему Markdown помещает некоторые элементы списка в параграфы, а не другие? Я могу воспроизвести это поведение здесь, в Stackoverflow, на Github и на Readthedocs (что выглядит худшим).

+0

Я только видел его на пунктах 3 и 4. У меня есть подозрение, что имеет отношение к другие теги внутри li, но я не уверен. По этой логике 5 и 6 тоже должны иметь это. – dave

ответ

3

Пункты указаны только в пунктах 3 и 4. № 3 имеет один из-за блока кода - я не думаю, что есть что-то в этом отношении [0]. # 4 имеет один из-за дополнительной строки после блока кода.

Вот a gist, у которого нет абзаца на товар # 4.

[0] Я не эксперт HTML, но поскольку для кода требуется <pre>, предыдущий текст, вероятно, должен быть в <p>. См. inline vs block-level elements.

1

Ближе всего к стандарту уценки является CommonMark и says:

список является свободно если какой-либо из составляющих ее элементов списка разделены пустыми строками, или если какой-либо из составляющих ее элементов списка непосредственно содержат два элемента уровня блока с пустой линией между ними. В противном случае список плотный. (Разница в выходе HTML является то, что пункты в свободном списке завернуты в <p> тегах, в то время как пункты в напряженном списке нет.)

Различных уценок парсеры обрабатывать эти вещи по-разному, но так как ваш третий пункт содержит кода, по крайней мере, этот элемент будет обернут в тег <p>. Согласно CommonMark, все элементы списка затем должны быть обернуты в абзацы.

В любом случае, вы можете заставить все <p> тегов, разделяя элементы списка новой строки:

1. Verify that your system meets the [system requirements for BLT](../INSTALL.md) 

1. [Fork](https://help.github.com/articles/fork-a-repo) the primary GitHub repository 

1. Clone your fork to your local machine: 

     git clone [email protected]:username/project-repo.git 
     git remote add upstream [email protected]:acquia-pso/project-repo.git 

1. If your project uses separate `master` and `develop` branches, checkout the `develop` branch: `git checkout develop` 

1. Run `composer install` (you must already have Composer installed). 

1. Install `blt` alias: `composer blt-alias`