为序列化参数接口创建用法文档

时间:2019-04-01 14:55:27

标签: documentation python-sphinx restructuredtext

我正在尝试为我的项目创建文档,该文档具有通过串行接口的特定通信协议。

协议的工作原理如下:

Request data: 'command id''argument1''argument2'
Response: 'command id''response'

“命令ID”是单个字符,并且ID和参数之间没有空格。

我需要突出显示每个参数,以便正在阅读该参数的人可以识别每个参数的开始和结束位置,并在以后为每个参数提供一个定义。

我能够获得的最好结果是使用了狮身人面像上的glossary选项。问题在于该词汇表是全局的,因此我无法从任何命令中重复任何术语。

这是rst解决方案的glossary代码

command: L (0x4C)
-----------------

Description: Example command.

Usage: :term:`L`\ :term:`argument1`\ :term:`argument2`
    .. glossary::

        L
            command identifier.

        argument1

            first argument1

        argument2

            second argument

Answer: :term:`L`\ :term:`response`
    .. glossary::

        L
            command identifier.

        response
            response example. 

我也尝试使用:

:samp: `L{argument1}{argument2}`

但是,不可能在输出文档中区分每个参数。是一种改变每个参数颜色的方法吗?

还尝试用粗体标记替换每个参数,但是如果不是内容块,则会被主题样式覆盖。

如何获得与示例中的结果类似的结果,但是将glossary限制为我要描述的行?不需要在术语及其定义之间使用glossary创建的引用。

我正在使用readthedocs提供的主题,但这不是必需的。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果我了解您的问题,则可以使用自定义样式。

例如,在Pyramid documentation glossary中,创建一个新样式规则:

fs.readFile

查看how to add a custom style to the RTD theme的详细信息。

Alternate background color for glossary entries

OP编辑:

在此答案之后,我发现了如何完全按照自己的意愿去做,这是第一个:

dl.glossary.docutils dt:nth-of-type(2n+1) {
    background: #ffc0cb;
}

这是自定义css文件

command: E (0x45)
-----------------

Description: Example command.

Usage: :samp:`{E}{argument1}{argument2}`
    .. rst-class:: cmdglossary

        | E: command identifier.
        | argument1: first argument1
        | argument2: second argument

Answer: :samp:`{E}`
    .. rst-class:: cmdglossary

        | E: command identifier.        
        | response: response example.