我正在尝试为我的项目创建文档,该文档具有通过串行接口的特定通信协议。
协议的工作原理如下:
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提供的主题,但这不是必需的。
谢谢。
答案 0 :(得分:1)
如果我了解您的问题,则可以使用自定义样式。
例如,在Pyramid documentation glossary中,创建一个新样式规则:
fs.readFile
查看how to add a custom style to the RTD theme的详细信息。
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.