ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

django-oscar 文档写作指南:目录结构、构建流程与风格规范

django-oscar 文档写作指南:目录结构、构建流程与风格规范 后端电商【免费下载链接】django-oscarDomain-driven e-commerce for Django项目地址https://gitcode.com/gh_mirrors/dj/django-oscar点击查看免费下载本篇技术指南围绕 docs/source/internals/contributing/writing-documentation.rst 展开系统讲解 django-oscar 官方文档的组织方式internals/、ref/、topics/、howto/四大板块、make docs的完整构建链路、index.rst入口设计以及文档风格要求。读完本文你将掌握为 django-oscar 新增、修改并验证一篇文档的完整工作流同时理解其基于 Sphinx 的构建配置与底层源码细节可直接上手参与该项目的文档贡献。文档从哪来make docs的构建链路django-oscar 的文档不是手工维护的 HTML而是由 Sphinx 从 reStructuredText.rst源文件编译而来。构建入口是仓库根目录下的make docs该命令对 Python 版本有明确要求当前实现使用python3因此请确保环境中的python3可正常解析项目所需的 Python 版本。从根 Makefile 可以看到docs目标的真实定义docs: venv ## Compile docs make -C docs html SPHINXBUILD$(PWD)/$(VENV)/bin/sphinx-build它依赖venv目标后者会先创建虚拟环境并安装测试与文档依赖venv: ## Create a virtual env and install test and production requirements $(shell which python3) -m venv $(VENV) --upgrade-deps $(VENV)/bin/pip install -e .[test] $(VENV)/bin/pip install -r docs/requirements.txt文档依赖清单见 docs/requirements.txt内容为-e .[docs,test]即以可编辑模式安装 django-oscar 自身并附带docs、test两个 extras确保 Sphinx 及相关扩展与项目源码同环境共存。进入docs/目录后实际编译由 docs/Makefile 驱动其核心变量与常用 target 如下变量 / Target作用SPHINXBUILD sphinx-build指定 Sphinx 构建器可通过命令行覆盖根 Makefile 即覆盖为 venv 内的 sphinx-buildSPHINXOPTS附加的 Sphinx 选项默认留空BUILDDIR build输出目录所有构建产物统一写入docs/build/ALLSPHINXOPTS内部组合参数-d $(BUILDDIR)/doctrees ... sourcemake html生成独立 HTML 页面产物在build/htmlmake dirhtml/singlehtml生成目录式 HTML / 单个大 HTML 文件make latex/latexpdf生成 LaTeX 源文件并可选地编译 PDFmake text/man生成纯文本 / Unix man 手册make changes生成变更/新增/废弃条目概览make linkcheck校验全部外部链接的完整性make doctest运行文档内嵌的 doctest如启用make spelling基于sphinxcontrib.spelling做拼写检查make clean清空build/下全部产物因此一条完整的本地验证命令可以是make docs # 等价于创建 venv 后执行 sphinx-build 编译 HTML make -C docs linkcheck # 校验文档中所有外部链接 make -C docs spelling # 运行拼写检查需要 venv 中已安装 docs 依赖文档目录结构docs/source下的四大板块所有文档源文件都位于docs/source/下。这份目录结构是Django 官方文档结构的简化版本通过目录名即能判断文档的定位其设计意图如下目录定位仓库中的实例internals/与 Oscar 项目自身相关的内容贡献指南、设计哲学、开发环境说明等docs/source/internals/contributing/ 下汇集了开发环境搭建、编码风格、提交 PR、运行测试、写作文档等 6 篇指南ref/参考文档Reference其中ref/apps/应对每个 Oscar 核心 app逐一给出指南说明其功能、主要模型、与其他 app 的关系等docs/source/ref/apps/ 下覆盖 address、analytics、basket、catalogue、checkout、dashboard、offer、order、partner、payment、search、shipping、voucher、wishlists 等全部核心应用topics/元级文章解释多个 app 如何协同工作或 Oscar 如何与其他方案组合docs/source/topics/ 下的 customisation、class_loading_explained、prices_and_availability、deploying、translation、upgrading 等howto/教程式tutorial-style操作指南解决某个具体问题docs/source/howto/ 下的 how_to_customise_models、how_to_integrate_payment、how_to_set_up_order_processing 等 20 余篇三类文档的分工可以这样理解howto/回答怎么做例如如何自定义一个视图how_to_customise_a_view.rst以步骤导向、面向具体任务ref/回答是什么例如某个 app 有哪些模型、哪些信号属于可精确检索的参考材料topics/回答为什么这样组合例如类加载机制class_loading_explained.rst如何支撑 Oscar 的应用覆盖fork能力是跨 app 的全局视角。index.rst入口设计与子索引的取舍docs/source/index.rst被设计为文档总入口并且特意在结构上偏离上述四类划分目的是让读者更容易上手——它按阅读路径组织而非按文档类型组织。查看 docs/source/index.rst 可以看到它分为三个toctree区块First stepssandbox、getting_started、key_questions、modelling_your_catalogue、getting_help、glossaryUsing Oscarplatform_database_support、customisation、class_loading_explained、prices_and_availability、deploying、translation、upgrading、fork_appReference 与项目信息core、Oscars apps、howto/index、settings、signals、templatetags、design-decisions、releases、contributing。关键取舍规则在原文中写得很清楚只有当一个目录下文件过多、无法在总入口逐一列出时才为它单独创建index.rst。因此顶层index.rst直接链接了topics/和internals/下的所有文件文件数量适中而howto/与ref/apps/分别拥有自己的 index.rst 和 index.rst顶层入口通过howto/index、Oscars apps /ref/apps/index间接引用。这一设计与 Sphinx 的master_doc index配置呼应见 docs/source/conf.pySphinx 以index作为文档树的根其余.rst文件只有被某个toctree引用才会出现在生成结果中。风格指南与语言规范Oscar 目前没有自成一派的文档风格指南因此官方要求贡献者认真参考以下两个权威风格指南Python 官方文档撰写风格指南Python Documentation Style GuideDjango 官方文档撰写风格指南Djangos documentation writing guide因为 Oscar 的目录结构正是 Django 的简化版其行文与组织惯例高度可迁移。在此基础上还有一条硬性语言要求请使用性别中立语言gender-neutral language即在行文中避免以he/she等二元性别代词指代不特定的人优先使用they或重构句式。除了写作风格仓库还内置了机械化的语言校验手段。在 docs/source/conf.py 中可以看到# Going with British English as the default because of history of the project spelling_lang en_GB spelling_word_list_filename spelling_wordlist.txt即文档默认采用**英式英语en_GB**拼写例如 organisation 而非 organization并启用sphinxcontrib.spelling扩展不在标准词典中的专有名词Oscar 相关术语、库名、人名等应登记进 docs/source/spelling_wordlist.txt否则make -C docs spelling会将其标记为疑似拼写错误。这一机制让文档语言在拼写层面具备可自动验证的约束。构建配置深潜conf.py 与 Django 环境的接入理解构建细节有助于写出能被正确渲染的文档。docs/source/conf.py 是 Sphinx 配置的核心几个值得注意的点1. 文档构建时会加载真实 Django 环境oscar_folder os.path.realpath( os.path.join(os.path.dirname(__file__), ../..)) sandbox_folder os.path.realpath( os.path.join(os.path.dirname(__file__), ../../sandbox)) sys.path.append(oscar_folder) sys.path.append(sandbox_folder) os.environ.setdefault(DJANGO_SETTINGS_MODULE, settings_sphinx) django.setup()构建过程会把项目根目录与sandbox/加入sys.path并以 sandbox/settings_sphinx.py 作为 Django 设置模块随后调用django.setup()。这意味着文档中若使用 autodoc 引用模型或视图Sphinx 是在真实的 Oscar Django 应用上下文中解析它们的。2. 扩展集合extensions [ sphinx.ext.autodoc, sphinx.ext.todo, sphinx.ext.coverage, sphinx.ext.viewcode, sphinx.ext.napoleon, sphinxcontrib.spelling, sphinx_issues, ]autodoc从源码 docstring 自动生成 API 文档viewcode在 HTML 中内嵌源码链接napoleon解析 Google/NumPy 风格的 docstringsphinx_issues支持issue #123这类引用其配置issues_github_path django-oscar/django-oscar将问题编号解析到对应 issue。3. 为 Django 模型自动生成字段文档conf.py 末尾通过setup(app)注册了一个autodoc-process-docstring钩子process_docstring当被文档化的对象是 Djangomodels.Model子类时它会遍历模型的字段把每个字段的help_text若无则用首字母大写的verbose_name追加为:param 字段名:并把字段类型追加为:type 字段名:条目。这意味着 Oscar 文档中引用模型时字段级说明是自动从模型定义生成的——写文档时无需也不应手工罗列字段保证文档与模型保持一致。4. 主题与版本信息HTML 输出使用sphinx_rtd_themeRead the Docs 风格主题版本号由oscar.get_version()/get_short_version()动态注入因此发布时无需手工更新文档中的版本号。新增一篇文档的实操步骤综合上述机制为 django-oscar 新增一篇文档的推荐流程是确定文档类型与落点讲解某个具体问题的解决步骤 → 放到docs/source/howto/并注册进 howto/index.rst 的toctree讲解某个核心 app 的模型与功能 → 放到docs/source/ref/apps/app/对应位置并注册进 ref/apps/index.rst跨 app 的宏观机制 → 放到docs/source/topics/项目自身流程贡献指南、设计决策等→ 放到docs/source/internals/。接入 toctree在对应目录的index.rst的toctree指令下新增一行文档名不含.rst后缀。注意遵守文件过多才建子 index的约定避免过度嵌套。本地验证渲染在仓库根目录执行make docs确认新文档出现在docs/build/html/下且内部交叉引用、代码块、autodoc 指令均正常渲染。运行质量检查make -C docs linkcheck # 外部链接完整性 make -C docs spelling # 英式英语拼写检查新术语请加入 spelling_wordlist.txt make -C docs doctest # 文档内嵌代码示例的 doctest如适用遵守风格约束行文参考 Python 与 Django 的文档风格指南全程使用性别中立语言涉及 Django 模型的字段说明时依赖 autodoc 自动生成不在正文中重复堆砌字段列表。结语django-oscar 的文档体系是一个结构规约 构建自动化 语言校验三者配合的工程目录结构继承了 Django 的成熟分类法make docs串联起虚拟环境、依赖安装与 Sphinx 编译而 conf.py 中加载真实 Django 环境、自动生成模型字段文档以及英式拼写检查等机制则让文档与代码保持同步、质量可自动验证。对希望参与文档贡献的开发者而言遵循 writing-documentation.rst 所确立的这套约定即可用最少的摩擦为项目补齐高质量文档。赞分享后端电商【免费下载链接】django-oscarDomain-driven e-commerce for Django项目地址https://gitcode.com/gh_mirrors/dj/django-oscar点击查看免费下载相关推荐NemoClaw 文档风格与结构规范基于 Fern MDX 的技术文档写作指南NemoClaw 文档风格与结构规范基于 Fern MDX 的技术文档写作指南 NVIDIA NemoClaw 是一个用于在 NVIDIA OpenShellBMAD-METHOD 文档写作规范指南基于 Google 风格与 Diataxis 结构的项目文档体系BMAD METHOD 文档写作规范指南基于 Google 风格与 Diataxis 结构的项目文档体系 本文讲解 BMAD METHOD 仓库BreaktAI 技能人工智能开发工具django CMS 文档贡献指南写作规范、Sphinx 构建、拼写检查与提交全流程django CMS 文档贡献指南写作规范、Sphinx 构建、拼写检查与提交全流程 本文是面向 django CMS 开发者的 文档贡献实战指南 。它以仓库CMS后端上一篇go-socket.io 项目教程下一篇如何快速实现Python与Java无缝通信Py4J零基础入门指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表