ReadTheDocs系统的代码格式

时间:2019-07-03 15:05:09

标签: magento python-sphinx read-the-docs mkdocs

我第一次使用Read the Docs。我正在为命令行系统编写文档,而我的“代码示例”包括shell输出日志。 Shell输出最终看起来像这样

image of shell output that read the docs has attempted to format as though it was source code resulting in some weird choices

也就是说,该服务(或我对它的使用?)正在尝试格式化运行shell命令的示例,就好像它是源代码一样,并且正在将magento2:generate当作一个类来对待。常数。

我可以控制哪些代码块在阅读文档时获取源代码格式吗?我试过在管理员中未设置任何基本语言,但似乎没有效果。还是我需要在Sphinx级别的mkdocs上控制此内容? (通过将markdown或sphinx文件转换为漂亮的HTML文件来阅读文档,可以看到其他内容吗?还是我不走运?

1 个答案:

答案 0 :(得分:2)

您需要在源文档中定义代码块的“语言”。 Sphinx和MkDocs都将尝试猜测该语言,这通常已经足够好了。但是,有时它会猜错并导致奇怪的突出显示。为了避免这种情况,两种实现都提供了一种手动定义每个代码块语言的机制。

Sphinx

对于Sphinx,您可以使用code-block指令并包含块的“语言”:

.. code-block:: console

    You shell commands go here

在上面的示例中,我将shell session用于console。别名shell-session也可以使用。请注意,替代词法分析器bash(及其别名:shkshzshshell)并不严格适合,因为它们适用于shell脚本,而在shell会话中同时显示命令和输出。

在Pygments文档中可以找到受支持的language codes的完整列表。

MkDocs

MkDocs利用Fenced Code Block Markdown扩展来定义代码块的“语言”:

``` shell
Your shell commands go here
```

由于MkDocs使用highlight.js而不是Pygments,因此支持的语言列表有所不同。因此,在上面的示例中,我使用了shell(用于shell会话)。