restructuredtext - reStructuredText 内联代码后跟“s”会导致“内联解释文本或短语引用起始字符串没有结束字符串。”?
问题描述
在 reStructuredText 中,:code:`Observation`
将创建一个内联代码块,该代码块在文档中显示为Observation
. 就我而言,它指的是我的Observation
班级。在生成的文档中,我希望能够执行诸如使用所有格形式(Observation
's)并引用多个对象(Observation
s)之类的事情。但是,后者会导致警告/错误。也就是说,:code:`Observation`s
导致
sphinx.errors.SphinxWarning: Inline interpreted text or phrase reference start-string without end-string.
:code:`Observation`'s
值得注意的是,在我在内联代码( 、:code:`Observation`.
等)之后使用非字母符号的其他情况下,文档按预期编译。
s
为什么在内联代码解释文本之后不允许立即使用类似字符?我怎样才能实现类似的目标,特别是确保原始 reStructuredText 文档仍然是干净的书写/可读的,但也能以正确的方式编译?
解决方案
默认情况下,根据内联标记识别规则,reStructuredText 只允许内联标记后的某些标点符号和空格。具体来说,默认情况下,内联标记只能紧跟在后面
- 空白
- ASCII 字符之一 - . , : ; !? \ / ' " ) ] } >
- 类似的非 ASCII 标点符号
reStructuredText 解析器设置character_level_inline_markup
可以设置True
为放宽这些要求。但是应该注意,这有可能改变内联标记其他部分的预期行为(请参阅character_level_inline_markup
链接中的警告)。
另一种选择是简单地在内联标记之后的字符之前放置一个转义反斜杠(例如,:code:`Observation`\s
),但是这种用法是明确不鼓励的,建议仅在没有其他选择时使用,因为它会影响可读性原始文件。
推荐阅读
- reactjs - 如何将jwt令牌重定向到身份验证登录反应?
- go - 如何在 Go 中获取第二个 h2 元素
- javascript - Javascript:如何创建一个无限循环的承诺?
- node.js - 为什么忽略 Microsoft.Web/sites 中的 WEBSITES_PORT 和 PORT 以及 dockerfile 中的 EXPOSE?
- ios - Admob、资金选择和欧盟同意,广告未展示
- python - 如何使用 Pandas 将纳秒的时间戳转换为秒?
- c++ - 如何在 C++ 中进行部分前缀搜索?
- python - 在pygame中点击后如何平滑移动图像?
- java - 如何有效地实现抽象类的多个方法?
- flutter - 让 RefreshIndicator 与 SingleChildScrollable 一起使用