哪种Sphinx代码块语言用于JSON

Jay*_*n93 14 pygments python-sphinx

我正在使用Sphinx来记录Web服务.我想使用代码块指令显示格式化的JSON Web响应,Spinx通过Pygments执行,但JSON在Pygments中没有语法高亮显示.您建议我指定哪种语言?HTML?JavaScript的?

.. code-block:: javascript

    {
      "name": "roger",
      "score": 100
    }
Run Code Online (Sandbox Code Playgroud)

The*_*inn 16

我正在使用Sphinx 1.4.2,其中包括名为" json " 的Pygments词法分析器.默认情况下,这是开箱即用的.使用:

.. code-block:: json

    {
        "key": "value",
        "key2": "value2",
        ...
    }
Run Code Online (Sandbox Code Playgroud)


Ale*_*puy 6

即使使用 Sphinx 1.2b1 和 Pygments 1.6,我也需要调用 add_lexer.. code-block:: json来做任何事情。我最终将以下代码片段放入扩展名 ( docs/_ext/jsonlexer.py) 中:

def setup(app):
    # enable Pygments json lexer
    try:
        import pygments
        if pygments.__version__ >= '1.5':
            # use JSON lexer included in recent versions of Pygments
            from pygments.lexers import JsonLexer
        else:
            # use JSON lexer from pygments-json if installed
            from pygson.json_lexer import JSONLexer as JsonLexer
    except ImportError:
        pass  # not fatal if we have old (or no) Pygments and no pygments-json
    else:
        app.add_lexer('json', JsonLexer())
Run Code Online (Sandbox Code Playgroud)

My docs/conf.pyfor Sphinx 具有以下功能以启用扩展:

import os
import sys

sys.path.insert(0, os.path.abspath('_ext'))

# Add any Sphinx extension module names here, as strings. They can be
# extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['jsonlexer']
Run Code Online (Sandbox Code Playgroud)


小智 5

我不喜欢使用pygments javascript来解析JSON.是的,JSON可以由javascript词法分析器解析,但是当应用于JSON值时,javascript突出显示不是很有用.你通常会得到一大堆无差别的文字.

由于我找不到一个好的解决方案,我为pygments创建了一个JSON词法分析器.我现在用它来在sphinx创建的PDF文档中突出显示JSON.它并不完美,但结果比javascript lexer更有用.我希望它有所帮助.


Gab*_*ley 3

JSON 是 JavaScript,简单明了。JSON 实际上代表“JavaScript 对象表示法”。