带有内部缩进的 RST 代码块

RST codeblock with internal indentation

我正在使用 Sphinx 来记录 return 字典的方法。

def do_stuff(foo, bar):
    """Do some stuff

    :param foo: I'm an argument
    :param bar: So am I

    :return: dict::

        {
          "success": (Boolean) True if stuff was done
          "meta": {
              "aaa": A nested return value
              "bbb": Another nested return value
          }
        }
    """

字典对象的格式不正确:

据我所知,问题是 RST 中的字符串文字应该缩进到同一级别。

有解决办法吗?

缩进 :: 然后进一步缩进字典,将其识别为代码块。这是使用 .. autofunction:: do_stuff 和 sphinx 1.5.2。

def do_stuff(foo, bar):
    """Do some stuff

    :param foo: I'm an argument
    :param bar: So am I

    :return: dict
        ::
            {
              "success": (Boolean) True if stuff was done
              "meta": {
                  "aaa": A nested return value
                  "bbb": Another nested return value
              }
            }
    """

当我分离出 dict 部分时,我不得不这样格式化。

def do_stuff(foo, bar):
    """Do some stuff

    :param foo: I'm an argument
    :param bar: So am I
    :rtype: dict
    :return:
        ::

            {
              "success": (Boolean) True if stuff was done
              "meta": {
                  "aaa": A nested return value
                  "bbb": Another nested return value
              }
            }
    """