From f009a70eaebed93edf7618ba6cdec24a3e2f51de Mon Sep 17 00:00:00 2001 From: Shengyu Zhang Date: Sat, 9 May 2026 21:45:05 +0800 Subject: [PATCH] chore: Update project template to sphinx-notes/cookiecutter@233a8daa Co-authored-by: OpenAI --- .cruft.json | 6 ++- .gitignore | 2 + .pre-commit-config.yaml | 2 + AGENTS.md | 40 ++++++++++++++++++ MANIFEST.in | 1 - Makefile | 1 - README.rst | 1 - docs/Makefile | 1 - docs/_images/.gitkeep | 1 + docs/_static/.gitkeep | 1 + docs/changelog.rst | 1 - docs/conf.py | 10 +++-- docs/index.rst | 1 - docs/make.bat | 75 +++++++++++++++++----------------- docs/requirements.txt | 15 +++++++ pyproject.toml | 17 -------- ruff.toml | 1 - src/sphinxnotes/strike/meta.py | 2 +- tests/__init__.py | 1 + 19 files changed, 112 insertions(+), 67 deletions(-) create mode 100644 AGENTS.md create mode 100644 docs/requirements.txt diff --git a/.cruft.json b/.cruft.json index f6c154a..b21ae2b 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "https://github.com/sphinx-notes/cookiecutter", - "commit": "62cd96195962da3392cdc34125c95e9144a5f5ca", + "commit": "233a8daa4e276a9559975a51178f29e7079dcafd", "checkout": null, "context": { "cookiecutter": { @@ -12,6 +12,8 @@ "version": "1.5", "github_owner": "sphinx-notes", "github_repo": "strike", + "generated_file_header": "This file is generated from sphinx-notes/cookiecutter.", + "dont_edit_header": "DO NOT EDIT.", "pypi_name": "sphinxnotes-strike", "pypi_owner": "SilverRainZ", "is_python_project": true, @@ -20,7 +22,7 @@ "sphinx_version": "7.0", "development_status": "3 - Alpha", "_template": "https://github.com/sphinx-notes/cookiecutter", - "_commit": "62cd96195962da3392cdc34125c95e9144a5f5ca" + "_commit": "233a8daa4e276a9559975a51178f29e7079dcafd" } }, "directory": null diff --git a/.gitignore b/.gitignore index 52736b3..7d4bcd8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# This file is generated from sphinx-notes/cookiecutter. + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7dc6a12..ba69c68 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,3 +1,5 @@ +# This file is generated from sphinx-notes/cookiecutter. + repos: - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.14.11 diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..508fca6 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,40 @@ + + +## 基本说明 + +这是一个由 SphinxNotes 开发的 Sphinx Extension,由 `sphinxnotes/cookiecutter` 生成,很多基础文件来自模板。 + +## 首先阅读 + +- 开始了解项目时,优先阅读 `docs/index.rst`。 +- 如果任务和文档、Sphinx 配置或示例有关,继续阅读 `docs/` 下的其他文件 + +## 通用知识 + +- 使用 `make` 会构建 `docs/` 下的文档,文档自依赖当前项目,因此文档构建成功也意味着项目基本能正常构建 + - `docs/_build` 存放构建好的文档,`make clean` 清除所有构建结果 + - `make test` 运行测试,测试位于 `tests/`,可能的 e2e 测试位于 `tests/test_e2e.py` + - `make doctest` 运行 Sphinx 文档测试 + - `make install` 使用 `pip install --user` 将项目安装到本地,跨项目测试时常用 +- `make tmpl-*` 用于模板同步,参看 "模板同步" 小节 + +## 关于 SphinxNotes 项目 + +- 同为 `sphinxnotes` 项目的其他仓库通常位于当前项目的上一级目录 +- 如果你在阅读代码时遇到本地依赖、模板来源或跨仓库复用关系,可以直接读取这些本地仓库文件,不必先猜测实现,也不必优先去远程搜索。 +- 当我提到 "所有项目" 的时候,请从当前项目的上一级目录的 `cookiecutter/project-list.txt` 获取项目列表 +- `docs/conf.py` 往往会直接从源码树导入当前项目,因此排查文档构建问题时,要同时检查运行时依赖和文档依赖。 + +## 模板同步 + +- 先确认任务是当前项目问题,还是模板问题;如果是模板问题,优先在 `sphinxnotes/cookiecutter` 中修复。 +- 模板变更完成后,优先使用 `make tmpl-update` 把改动同步回项目,而不是手工重复修改生成文件。 +- 如果 `make tmpl-update` 产生 `.rej`、冲突或三方合并失败,优先尝试 `make tmpl-apply-rej`,再手工解决冲突。 +- 手工解决冲突时,重点检查 `README.rst`、`pyproject.toml`、`.github/workflows/`、`docs/conf.py`、`docs/requirements.txt` 这些常见受影响文件。 +- 当模板同步结果确认无误后,优先使用 `make tmpl-update-done` 完成后续收尾步骤。 + +### 修改约定 + +- 修改模板生成文件时,保留原有注释,除非模板本身已经统一移除了这些注释。 +- 遇到 `CUSTOM ... START` / `END` 这类用户自定义区块时,必须保留这些锚点,并尽量保留区块中的用户内容。 +- 如果模板更新和项目内手工修改发生冲突,优先保护用户自定义内容,再整理模板变更。 diff --git a/MANIFEST.in b/MANIFEST.in index 4c868dc..98f33c8 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,4 @@ # This file is generated from sphinx-notes/cookiecutter. -# You need to consider modifying the TEMPLATE or modifying THIS FILE. include LICENSE include README.rst diff --git a/Makefile b/Makefile index 6e7539a..0604b4f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,4 @@ # This file is generated from sphinx-notes/cookiecutter. -# You need to consider modifying the TEMPLATE or modifying THIS FILE. LANG = en_US.UTF-8 diff --git a/README.rst b/README.rst index 00c346c..097999f 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,4 @@ .. This file is generated from sphinx-notes/cookiecutter. - You need to consider modifying the TEMPLATE or modifying THIS FILE. ================== sphinxnotes-strike diff --git a/docs/Makefile b/docs/Makefile index 57d350d..c6a9589 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,5 +1,4 @@ # This file is generated from sphinx-notes/cookiecutter. -# You need to consider modifying the TEMPLATE or modifying THIS FILE. # Minimal makefile for Sphinx documentation diff --git a/docs/_images/.gitkeep b/docs/_images/.gitkeep index e69de29..cc71341 100644 --- a/docs/_images/.gitkeep +++ b/docs/_images/.gitkeep @@ -0,0 +1 @@ +# This file is generated from sphinx-notes/cookiecutter. diff --git a/docs/_static/.gitkeep b/docs/_static/.gitkeep index e69de29..cc71341 100644 --- a/docs/_static/.gitkeep +++ b/docs/_static/.gitkeep @@ -0,0 +1 @@ +# This file is generated from sphinx-notes/cookiecutter. diff --git a/docs/changelog.rst b/docs/changelog.rst index ff798cd..941a813 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,5 +1,4 @@ .. This file is generated from sphinx-notes/cookiecutter. - You need to consider modifying the TEMPLATE or modifying THIS FILE. ========== Change Log diff --git a/docs/conf.py b/docs/conf.py index 2f2db9c..a7480e9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,4 @@ # This file is generated from sphinx-notes/cookiecutter. -# You need to consider modifying the TEMPLATE or modifying THIS FILE. # Configuration file for the Sphinx documentation builder. # @@ -24,6 +23,7 @@ extensions = [ 'sphinx.ext.githubpages', 'sphinx.ext.doctest', + 'sphinx.ext.viewcode', 'sphinx_design', 'sphinx_copybutton', 'sphinx_last_updated_by_git', @@ -90,6 +90,9 @@ extensions.append('sphinx.ext.autodoc') autoclass_content = 'init' autodoc_typehints = 'description' +autodoc_default_options = { + 'member-order': 'bysource', +} extensions.append('sphinx.ext.intersphinx') intersphinx_mapping = {} @@ -108,6 +111,7 @@ 'parsed_literal': (['literal'], True), } + extensions.append('sphinxnotes.project') primary_domain = 'any' @@ -118,7 +122,7 @@ # documentation root, use os.path.abspath to make it absolute, like shown here. import os import sys -sys.path.insert(0, os.path.abspath('../src/sphinxnotes')) -extensions.append('strike') +sys.path.insert(0, os.path.abspath('../src/')) +extensions.append('sphinxnotes.strike') # CUSTOM CONFIGURATION diff --git a/docs/index.rst b/docs/index.rst index a3493c0..d34abca 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,5 +1,4 @@ .. This file is generated from sphinx-notes/cookiecutter. - You need to consider modifying the TEMPLATE or modifying THIS FILE. ================== sphinxnotes-strike diff --git a/docs/make.bat b/docs/make.bat index b158787..ebe7703 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -1,37 +1,38 @@ -REM This file is generated from sphinx-notes/cookiecutter. DO NOT EDIT. - -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=python -msphinx -) -set SOURCEDIR=. -set BUILDDIR=_build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The Sphinx module was not found. Make sure you have Sphinx installed, - echo.then set the SPHINXBUILD environment variable to point to the full - echo.path of the 'sphinx-build' executable. Alternatively you may add the - echo.Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% - -:end -popd +REM This file is generated from sphinx-notes/cookiecutter. +REM DO NOT EDIT. + +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=python -msphinx +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The Sphinx module was not found. Make sure you have Sphinx installed, + echo.then set the SPHINXBUILD environment variable to point to the full + echo.path of the 'sphinx-build' executable. Alternatively you may add the + echo.Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..85c7d97 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,15 @@ +# This file is generated from sphinx-notes/cookiecutter. + +# Documentation build dependencies. +# Keep these out of pyproject optional-dependencies to avoid resolver issues. +furo +sphinx_copybutton +sphinxcontrib-gtagjs +sphinx-sitemap +sphinxext-opengraph +sphinx-last-updated-by-git +sphinxnotes-project +sphinxnotes-comboroles + +# CUSTOM DOCS DEPENDENCIES START +# CUSTOM DOCS DEPENDENCIES END diff --git a/pyproject.toml b/pyproject.toml index a5e6bcd..38c8747 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,4 @@ # This file is generated from sphinx-notes/cookiecutter. -# You need to consider modifying the TEMPLATE or modifying THIS FILE. # This file is used to configure your project. # Read more about the various options under: @@ -59,22 +58,6 @@ dev = [ test = [ "pytest", ] -docs = [ - "furo", - "sphinx_design", - "sphinx_copybutton", - "sphinxcontrib-gtagjs", - "sphinx-sitemap", - "sphinxext-opengraph", - "sphinx-last-updated-by-git", - - # Dependencies of sphinxnotes projcts. - "sphinxnotes-project", - "sphinxnotes-comboroles", - - # CUSTOM DOCS DEPENDENCIES START - # CUSTOM DOCS DEPENDENCIES END -] [project.urls] homepage = "https://sphinx.silverrainz.me/strike" diff --git a/ruff.toml b/ruff.toml index 1774a67..9633cdd 100644 --- a/ruff.toml +++ b/ruff.toml @@ -1,5 +1,4 @@ # This file is generated from sphinx-notes/cookiecutter. -# You need to consider modifying the TEMPLATE or modifying THIS FILE. exclude = [ "docs/conf.py", diff --git a/src/sphinxnotes/strike/meta.py b/src/sphinxnotes/strike/meta.py index e2b1f1a..947eb66 100644 --- a/src/sphinxnotes/strike/meta.py +++ b/src/sphinxnotes/strike/meta.py @@ -1,5 +1,5 @@ # This file is generated from sphinx-notes/cookiecutter. -# DO NOT EDIT!!! +# DO NOT EDIT. ################################################################################ # Project meta infos. diff --git a/tests/__init__.py b/tests/__init__.py index e69de29..cc71341 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -0,0 +1 @@ +# This file is generated from sphinx-notes/cookiecutter.