Markdown/Github:将代码块作为列表子项时进行语法高亮

27

在Github/MD中,如果我们希望启用代码块并将其放置在列表的子项内,我们需要缩进8个空格。

但是如何使这个代码块具有语法高亮功能呢?

以下代码不按预期运行...

    1. foo

             ```python
                print 'bar'
             ```

    2. bar
3个回答

20
```python
print 'bar'
```

不需要空格即可工作:来自GitHub帮助页面:

只需用```将您的代码块包裹起来,您就不需要手动缩进以触发代码块


正如hilz在下面的答案中所示,您需要将````与列表相同的缩进级别+2个空格进行缩进。
代码块的内容不需要缩进

1. foo

  ````python
print 'bar'
  ````

  1.

    ````python
print 'bar'
    ````

请看此示例:

缩进的代码块


1
我的意思是它们在列表中,看看我的更新代码。谢谢。 - Howard
@Howard:列表和预格式化代码混合在一起不太好。我更喜欢手动制作列表,以确保预格式化代码能够正确呈现。 - VonC
@DanielGasienica 不是使用1.2.,而是使用1/2/(它们不被解释为列表)。由于它们不被解释为列表,因此您需要手动创建该列表(即在该手动列表中逐个增加每个点的索引)。 - VonC
1
我尝试过这个,但是我的语法高亮代码块缩进并没有遵循它所在的列表。@Howard,你真的成功地使用```来缩进列表中间的语法高亮代码块了吗? - Endy Tjahjono
1
不幸的是,在跟踪器中,这似乎不再起作用了——通过增加8个空格进行缩进确实有效,但显然不太方便。 - Mr_and_Mrs_D
显示剩余3条评论

11

想要在列表中嵌入带有语法高亮的代码块,请将代码块前后的标记行嵌入到适当缩进级别的段落中,然后按照正常流程进行。例如:

1. lorem ipsum

  ```ruby
resources :dolor
  ```

   1. sit amet

      ```ruby
resources :elit
      ```

   1. sed do

1. eiusmod

缩进每个代码块到适当的深度并保持索引的完整性。


2
这个方法可行。我只需要用两个空格缩进整个代码块,使其成为列表项的一部分。我认为这比被接受的答案更好地回答了这个问题。 - Shiki
2
这应该是被接受的答案,因为它实际上解决了OP中的问题,即在列表内部使用语法突出显示的代码块。 - shoover
这个不再起作用了。 - Harlin

2

现在,您需要做以下几点:

1. lorem ipsum
  ```perl
  use strict;
  ```
2. dolor sit amet
      ```perl
      use warnings;
      ```
   1. consectetur adipiscing elit
   1. sed do
1. eiusmod

也就是说,确保您的语法高亮显示的代码与反引号在同一列。此外,您还需要帮助编号,因为它似乎在代码块后失去了计数。
另请参阅:https://gist.github.com/therealbstern/9cb0dfc7f0f4b76a062247676aed341b

Shiki在hilz的回答下面的评论中指出了这一点,但我需要把它放在一个答案中,因为在评论中埋藏正确的答案似乎不够清晰。此外,评论不允许完整的markdown,这是必要的,以使其更加明显。 - Ben Stern

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接