web-dev-qa-db-ja.com

リストの番号付けJupyter Notebookマークダウン

学生向けのチュートリアルを作ってみます。質問には番号を付けたいのですが、その間に質問を紹介するための情報を追加したいと思います。テキストを入力するたびに番号がリセットされない自動番号付きリストを作成するにはどうすればよいですか。例えば:

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

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

出力を提供します:

これはいくつかの情報です。

  1. これが質問です。

これは詳細です。

  1. これは2つ目の質問です。
14
Chiel

これを標準のMarkdownで直接行うことはできませんが、「偽造」することはできます(以下を参照)。実際 rules 状態:

リストをマークするために使用する実際の数値は、Markdownが生成する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. これが問題1です。

    これは詳細です。

  2. これは2つ目の質問です。

お勧めしませんが、生の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.これは質問1です。
これは詳細です。
2.これは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.これは質問1です。

これは詳細です。

2.これは2つ目の質問です。

16
Waylan

希望と同じではありませんが、jupyterは1)2)3)などを書いたときに番号の付け直しを停止しました。

')'は、Jupyterのマークダウンによって行われる再番号付けを無効にするようです。 jupyterバージョン5.0.0で少なくともpython 3.5.2。

3
Jeff Winchell