You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Sphinx不解析Django项目DocString直接渲染为普通文本

解决方案

方案1:修改Sphinx配置(无需改动项目源码,推荐)

你可以通过Sphinx的事件钩子自动处理目标docstring,不需要修改Django项目的原有代码,操作如下:
打开Sphinx项目下的conf.py文件,在末尾添加如下代码:

def process_raw_docstring(app, what, name, obj, options, lines):
    # 仅处理porter.urls模块的docstring,如需要全局生效可删除该判断
    if name == "porter.urls":
        # 将docstring包装为纯文本代码块,完全保留原有格式
        lines.insert(0, ".. code-block:: text")
        lines.insert(1, "")
        for idx in range(2, len(lines)):
            lines[idx] = "    " + lines[idx]

def setup(app):
    app.connect("autodoc-process-docstring", process_raw_docstring)

修改完成后重新构建文档即可,原有docstring会作为预格式化文本原样渲染,不会触发reStructuredText语法校验和相关警告。

方案2:局部修改docstring(适合少量文件场景)

如果可以接受少量修改原有代码,直接在对应docstring的开头添加.. parsed-literal::标记和一个空行即可,示例:

"""
.. parsed-literal::

    URL Configuration

    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/3.1/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  path('', views.home, name='home')
    # 剩余原有内容保持不变
"""

该标记会通知Sphinx直接渲染后续内容,不做语法解析。


内容的提问来源于stack exchange,提问作者Zhao Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:09