我尝试使用 sphinx 在 *.rst 文档中使用 json 词法分析器。这个有效:
.. code-block:: console
//Comment
key1: value,
key2: value2,
但是当我尝试像这样使用 json 时:
.. code-block:: json
//Comment
key1: value,
key2: value2,
我收到错误
WARNING: Could not lex literal_block as "json". Highlighting skipped.
我检查了,pygmentize -L lexers | grep json
但结果显示 json 已上线。这是什么问题?
答案1
我也对这个警告感到疑惑!
我仔细研究了一下,结果发现 JSON 词法分析器是可用的,但我的代码实际上并不是有效的 JSON,因此 Sphinx 禁用了此代码片段的词法分析器。
如果您将代码块更改为有效的 JSON,则突出显示应该可以再次起作用!
请注意(如果我没记错的话):
- JSON 不允许注释
- 字符串必须用引号引起来
- 字典值必须括在
{
和}
- 最后一个键值对后不允许有逗号
请注意,如果词法分析器不可用,则警告消息会有所不同:
WARNING: Pygments lexer name 'xyz' is not known