可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
In the following markdown code I want item 3
to start with list number 3. But because of the code block in between markdown starts this list item as a new list. Is there any way to prevent that behaviour?
Desired output:
1. item 1
2. item 2
```
Code block
```
3. item 3
Produced output:
- item 1
- item 2
Code block
- item 3
回答1:
Use four spaces to indent content between bullet points
1. item 1
2. item 2
```
Code block
```
3. item 3
Produces:
- item 1
item 2
Code block
- item 3
回答2:
Notice how in Macmade's solution, you can see an extra line of code above the "Code block".
Here are two better solutions:
Indent the code block by an extra 4 spaces (so usually 8, in this nested list example, 12). This will put the code in a <pre>
element. On SO, you can even specify syntax highlight with a
<!-- language: lang-js -->
indented by 4 spaces (+1 here due to the nested list).
- item 1
item 2
Code.block('JavaScript', maybe)?
item 3
Or, just put the Code block within backticks and indent by 4 spaces (here, 1 extra because of the nested list). You'll get a regular indented text paragraph, with a <code>
element inside it. This one you can't syntax-highlight:
- item 1
item 2
Code block
item 3
Note: you can click "edit" on this answer to see the underlying Markdown code. No need to save ;)
回答3:
As an extension to existing answers. For those trying to continue a numbered list after something other than a code block. For example a second paragraph. Just indent the second paragraph by at least 1 space.
Markdown:
1. one
2. two
three
3. four
Output:
- one
two
three
- four
回答4:
If you use tab to indent the code block it will shape the entire block into one line. To avoid this you need to use html ordered list.
- item 1
- item 2
Code block
<ol start="3">
<li>item 3</li>
<li>item 4</li>
</ol>
回答5:
Macmade's solution doesn't work for me anymore on my Jekyll instance on Github Pages anymore but I found this solution on an issue for the kramdown github repo. For OP's example it would look like this:
1. item 1
2. item 2
```
Code block
```
{:start="3"}
3. item 3
Solved my issues handily.
回答6:
Source;
<span>1.</span> item 1<br/>
<span>2.</span> item 2
```
Code block
```
<span>3.</span> item 3
Result;
1. item 1
2. item 2
Code block
3. item 3
回答7:
Put the list numbers in parentheses instead of followed by a period.
(1) item 1
(2) item 2
code block
(3) item 3
回答8:
If you don't want the lines in between the list items to be indented, like user Mars mentioned in his comment, you can use pandoc
's example_lists
feature. From their docs:
(@) My first example will be numbered (1).
(@) My second example will be numbered (2).
Explanation of examples.
(@) My third example will be numbered (3).
回答9:
I solved this problem on Github separating the indented sub-block with a newline, for instance, you write the item 1, then hit enter twice (like if it was a new paragraph), indent the block and write what you want (a block of code, text, etc). More information on Markdown lists and Markdown line breaks.
Example:
- item one
item two
this block acts as a new paragraph, above there is a blank line
item three
some other code
- item four