Нумерация списков Jupyter Notebook markdown

Я пытаюсь создать учебник для студентов. Я хочу пронумеровать вопросы, которые я им задаю, но между ними я хотел бы добавить информацию, чтобы ввести вопросы. Как я могу сделать автоматически пронумерованный список, который не сбрасывает нумерацию каждый раз, когда я помещаю текст. Например:

This is some info.
1. This is question one.

This is more info.
2. This is question two.

дает выход:

это некоторая информация.

  1. это первый вопрос.

Это подробнее.

  1. это вопрос два.

2 ответов


это напрямую невозможно со стандартной уценкой, хотя вы можете "подделать" (см. ниже). На самом деле правила состояние:

важно отметить, что фактические числа, которые вы используете для маркировки списка, не влияют на выходную разметку HTML. ... Дело в том, что, если вы хотите, вы можете использовать порядковые номера в упорядоченных списках уценки, чтобы номера в вашем источнике соответствовали номерам в опубликованном HTML. Но если ты хочешь быть ленивым ... , тебе и не нужно.

если вы используете ленивую нумерацию списка, однако, вы все равно должны начать список с номером 1. В какой-то момент в будущем Markdown может поддерживать запуск упорядоченных списков с произвольным числом.

это будущее никогда не наступало, официально. Однако несколько различных реализаций Markdown могут предложить такую функцию, как опция не по умолчанию. К сожалению, это редко (и я не помню, какие реализации они АР.)

независимо от того, у вас будет другая проблема. Мне не ясно, как ваш желаемый результат будет действительным HTML. По сути, вы просите абзацы вне ваших элементов списка, которые вложены в ваш список. Это будет недопустимый HTML:

<ol>
  <p>This is some info.</p>
  <li>This is question one.</li>
  <p>This is more info.</p>
  <li>This is question two.</li>
</ol>

тем не менее, он будет (почти) отображаться по вашему желанию (элементы без списка также отступы).

    это некоторая информация.

  1. это первый вопрос.
  2. Это подробнее.

  3. это второй вопрос.

Я бы не рекомендовал его, но вы можете использовать его как необработанный HTML. Возможно, вы могли бы найти какой-то другой способ или формат представления данных.

я рассмотрел предложение использовать упорядоченный список, вложенный в список определений, если ваша реализация Markdown поддерживает его (хотя и нестандартная, эта функция очень распространена и согласована между реализациями, хотя она может быть не включена неисполнение.) Это дает вам правильное вложение, но та же проблема, если непоследовательных чисел сохраняется. Однако, если вы вручную добавляете числа и избегаете их, чтобы они не интерпретировались как элементы списка, это работает следующим образом:

This is some info.
: 1\. This is question one.

This is more info.
: 2\. This is question two.

что делает as:

<dl>
<dt>This is some info.</dt>
<dd>1. This is question one.</dd>
<dt>This is more info.</dt>
<dd>2. This is question two.</dd>
</dl>

и выглядит так:

Это некоторая информация.     1. Это первый вопрос. Это больше информации.     2. Это второй вопрос.

интересно, как так удаляет (обычно по умолчанию) отступы в списках определений, в моих попытках подделать его в демо выше, я понял, что есть более простое решение, которое должно работать во всех реализациях Markdown. Просто используйте абзацы, ручные номера и неразрывные пробелы, чтобы заставить отступ:

This is some info.

&nbsp; &nbsp; 1. This is question one.

This is more info.

&nbsp; &nbsp; 2. This is question two.

обратите внимание, что неразрывные пробелы заставляют Markdown не видеть эти строки как элементы списка, отрицающие необходимость их избежать. Вышесказанное представляется как:

<p>This is some info.</p>
<p>&nbsp; &nbsp; 1. This is question one.</p>
<p>This is more info.</p>
<p>&nbsp; &nbsp; 2. This is question two.</p>

и отображает as:

это некоторая информация.

1. Это первый вопрос.

Это подробнее.

2. Это второй вопрос.


не идентично желаемому, но jupyter прекратил перенумерование, когда я написал Один) Два) Три) так далее.

')', похоже, отключает перенумерацию, выполняемую уценкой Jupyter. В аренду для jupyter версии 5.0.0 работает python 3.5.2.