ReST 中的代码和代码块指令有什么区别?

What's the difference between the code and code-block directives in ReST?

在我尝试过的每个渲染器中,codecode-block 似乎有完全相同的结果:一段代码。两者都生成完全相同的 html——包括 类 和标签种类(使用我认为它是 docutils?):

<pre class="code [language] literal-block">

那么,有什么区别呢?为什么我们两者都有?是否有任何渲染器以不同方式渲染它们?有语义差异吗?

code 是一个 reStructuredText 指令。 code-block 是 Sphinx 指令。

code-blockcode 指令有一组不同的选项。 例如。 :emphasize-lines:

当您使用 Sphinx 时,我建议您使用 code-block 指令。

使用 code-block 时,我总能得到正确的突出显示。使用 code 时,我有时会得到颜色,有时只是文字代码块。我还没有弄清楚 conf.py 中的哪些设置组合可以预测地生成彩色输出。

code 指令的优点是该文档既可以在 Sphinx 文档树中使用,又可以同时作为独立的 reStructuredText 文档使用。