2016-03-04 2 views
8

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

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

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

дает выход:

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

  1. Это вопрос один.

Это больше информации.

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

ответ

5

Это невозможно напрямую с помощью стандартного Markdown, хотя вы можете «подделать его» (см. Ниже). На самом деле rules состояние:

Важно отметить, что фактические цифры, которые вы используете для обозначения списка не имеют никакого эффекта на выходе HTML Markdown производит. ... Дело в том, что если вы захотите, вы можете использовать порядковые номера в упорядоченных списках Markdown, чтобы номера в вашем источнике соответствовали номерам в вашем опубликованном 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. 

Это делает как:

<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. Это вопрос второй.

Интересно, что SO удаляет (обычно по умолчанию) отступы в списках определений, в моих попытках фальсифицировать это в демо выше, я понял, что есть более простое решение, которое должно работать во всех реализациях 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> 

И показывает, как:

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

    1. Это вопрос один.

Это дополнительная информация.

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

1

не совпадает с желаемым, но jupyter остановился перенумерацию, когда я писал 1) 2) 3) и т.д.

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

+0

Это тоже работает для меня, однако между каждой из элементов списка должна быть пустая строка, иначе все пронумерованные точки отображаются в одной строке. Тот же самый метод с использованием полных остановок '.' по-прежнему не работает даже при использовании пустых строк между элементами списка. –

Смежные вопросы