マークダウン:番号付きリストを続ける


474

次のマークダウンコードではitem 3、リスト番号3から始めたいと思います。しかし、マークダウンの間にあるコードブロックのため、このリスト項目は新しいリストとして開始されます。その行動を防ぐ方法はありますか?

望ましい出力:

1. item 1
2. item 2

```
Code block
```

3. item 3

生成される出力:

  1. アイテム1
  2. アイテム2

Code block

  1. アイテム3

4
これが正しい解決策です。Macmadeの答えのトリプルバッククォートは、実際に<code>は改行を含むHTML要素を生成するだけです。これは構文の強調表示ではなく、コードとして目に見えるように強調表示された上に余分な空白行があります。
Dan Dascalescu 2014

1
あなたが本当に必死であるならば、あなたが使いたい数のために(そして、それ以降のすべてのアイテムのために)HTML文字コードを調べることができます...のように&#50;&#57;. this is list item number 29。ただし、これはすべてのマークダウンパーサーで機能するとは限りません。
ロイティンカー、

回答:


621

4つのスペースを使用して、箇条書きの間のコンテンツをインデントします

1. item 1
2. item 2

    ```
    Code block
    ```
3. item 3

生成する:

  1. アイテム1
  2. アイテム2

    Code block

  3. アイテム3

5
はい、インデントにより、コードブロックがリストアイテム2に属していることがパーサーに明確になります。それ以外の場合は、通常の段落にすぎず、リストが終了します。
Macmade 2013

42
しかし、インデントが必要ない場合はどうすればよいでしょうか。私が知る限り、Markdownには解決策がありません。多くの場合、リストを開始してから、リストについてのメタコメントであるテキストを停止して提供することは自然なことです。次にリストを続行します。マークダウンは私たちがそうすることを望んでいません。それは、Markdownが人々に表現してほしくないという考えの形式です-Markdownは表現する方法を知らない、Markdownがあまりにも...自由だと考えているということです。ツールは思考に従うべきです。はぁ。HTMLで書いたり、PDFを作成したりできます。
火星

2
私にはまったく効果がないようです。上に示したように、単純な番号付きリストがあり、インデントされ、改行されています。まだ1から再開します
レイ

10
私が試したいくつかのMarkdownエディター(Bitbucket、Tumblr)では、これは機能しません-適切にインデントされたコードブロックの代わりにインラインコードをレンダリングします。
thdoan

2
IntelliJでは、各番号付きブロックの下部にある空白行の数が異なります。2つの空白行を残すと、番号付けが再開されます。1つだけ残して、続行します。
ルバーブ

36

Macmadeのソリューションでは、「コードブロック」の上に追加のコード行が表示されていることに注意してください。

次に、2つの優れたソリューションを示します。

  1. 余分な4つのスペースでコードブロックをインデントします(したがって、このネストされたリストの例では通常12、8)。これにより、コードが<pre>要素に配置されます。SOでは、4つのスペースでインデントされた構文の強調表示を指定することもでき
    <!-- language: lang-js -->ます(ネストされたリストのため、ここでは+1)。

    1. アイテム1
    2. アイテム2

      Code.block('JavaScript', maybe)?
    3. アイテム3

  2. または、コードブロックをバッククォート内に配置し、4つのスペースでインデントします(ここでは、ネストされたリストのために1つ余分に)。<code>中に要素がある通常のインデントされたテキスト段落が表示されます。これは構文ハイライトできません:

    1. アイテム1
    2. アイテム2

      Code block

    3. アイテム3

注:この回答で[編集]をクリックすると、基になるMarkdownコードを確認できます。保存する必要はありません;)


27
これは、この特定の問題の解決策ですが、テキストが途中で挿入された後、次の番号でMarkdownリストを再開するという問題の一般的な解決策ではありません。これを行う方法はないようで、私を夢中にさせています。Markdownに関する他のすべては素晴らしいです。
火星

@MarsはDavidTの回答からわかるように、一般的な解決策は、テキストを任意の数のスペースでインデントすることです。たとえば、4つではなく1つのスペースを追加すると、コードブロックを作成しなくても、間にあるテキストを挿入できます。
ClydeTheGhost 2017

36

既存の回答の拡張として。コードブロック以外の何かの後に番号付きリストを続けようとする人のために。たとえば、2番目の段落。2番目の段落を少なくとも1スペースだけインデントします。

マークダウン:

1. one
2. two

 three
3. four

出力:

  1. 1

1
甘い!一連の疑似コードブロックとMathJax方程式がありました。これはまさに私が必要としたものでした。
xtian 2016年

GitHub Wikiでは機能しません。さらにスペースを追加すると、少なくとも番号付けは上記の番号と同じタイプになります。:rofl:
Chaim Eliyah

1
@ChaimEliyahそれは私が99%wikiがGitHub風味のマークダウンを使用していないことを確信しているためです(私は以前にこの好奇心に遭遇したことを確信しています)
DavidT

これは、テキスト、コード、最終的にはリストエントリの終わりの前にさらに多くのテキストを含むリストエントリがある状況にも対応します。
Frotz

14

タブを使用してコードブロックをインデントすると、ブロック全体が1行に整形されます。これを回避するには、html順序リストを使用する必要があります。

  1. アイテム1
  2. アイテム2

コードブロック

<ol start="3">
  <li>item 3</li>
  <li>item 4</li>
</ol>

13

Macmadeのソリューションは、Github PagesのJekyllインスタンスではもう機能しませんが、kramdown githubリポジトリの問題でこのソリューションを見つけました。OPの例では、次のようになります。

1. item 1
2. item 2

```
Code block
```

{:start="3"}
3. item 3

私の問題を手軽に解決しました。


3
残念ながら、これはGitHubのreadmeファイルでは機能しません。:(
Nostalg.io 2017

7

ソース;

<span>1.</span> item 1<br/>
<span>2.</span> item 2
```
Code block
```
<span>3.</span> item 3


結果;

1.アイテム1
2.アイテム2 Code block 3.アイテム3


4

コメントで言及されているユーザーMarsのように、リストアイテム間の行をインデントしたくない場合は、pandocexample_lists機能を使用できます。彼らのドキュメントから:

(@)  My first example will be numbered (1).
(@)  My second example will be numbered (2).

Explanation of examples.

(@)  My third example will be numbered (3).

はい!これはうまくいきました。よくやった。
javadba

これは、この問題に対する最も一般的な解決策です。インデントする必要はなく、リスト要素間に見出しがある場合でも機能します。
リレメ

(@)グローバル続けるリストに対応(その使い方一つだけ存在することができます。pandocstartnumあなたが欲しいとそれだけで作品数と順序付きリストを開始することができ拡張子を。
ABID H. Mujtaba

2

リスト番号の後にピリオドを付けるのではなく、括弧で囲んでください。

(1)アイテム1
(2)アイテム2 code block (3)アイテム3


5
これは<ol><li>elemsを破壊し、代わりにそれらを<p>タグでラップします。さらに、あなたは文字通りを手に入れ(1)ます。
jmargolisvt 2016

2
それが目的だったと思います。
Gal

1

インデントされたサブブロックを改行で区切るGithubでこの問題を解決しました。たとえば、アイテム1を書き込み、Enterキーを2回押して(新しい段落の場合と同様)、ブロックをインデントして、必要なもの(ブロックコード、テキストなど)。マークダウンリストマークダウンの改行に関する詳細情報。

例:

  1. アイテム1
  2. アイテム2

    this block acts as a new paragraph, above there is a blank line

  3. アイテム3

    some other code

  4. アイテム4

0

Markdownの使用の特定のコンテキストに対するこの動作を修正する利用可能な拡張機能もいくつかあることに注意してください。

たとえば、python- markdownのsane_lists拡張(たとえば、mkdocsで使用されます)は、Markdownリストで使用されている番号を認識します。この拡張機能を有効にするだけですarkdown.markdown(some_text, extensions=['sane_lists'])


0

テキストを前のリストアイテムに揃えたいが、「大きな」改行を避けたい場合は、リストアイテムの最後に2つのスペースを使用し、いくつかのスペースでテキストをインデントします。

ソース:(ドットはスペースです;-)もちろんです)

1.·item1··
····This is some text
2.item2

結果:

  1. item1
    これはテキストです
  2. item2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.