documenteer 2.2.0__tar.gz → 2.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- documenteer-2.3.0/.claude/.gitignore +2 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/CHANGELOG.md +22 -0
- documenteer-2.3.0/CLAUDE.md +98 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/PKG-INFO +1 -1
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/rst-technote/index.rst +1 -1
- documenteer-2.3.0/demo/rst-technote/local.bib +10 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/changelog.md +22 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/configuration.rst +5 -2
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/index.rst +5 -5
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/_templates/README.md +1 -1
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/_templates/README.rst +1 -1
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/edit-locally.rst +1 -1
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/index.rst +1 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/migrate.rst +8 -0
- documenteer-2.3.0/docs/technotes/references.rst +135 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/conf/_utils.py +9 -5
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/bibtex.py +23 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/remotecodeblock.py +37 -2
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/README.rst +1 -1
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer.egg-info/PKG-INFO +1 -1
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer.egg-info/SOURCES.txt +5 -0
- documenteer-2.3.0/tests/storage/__init__.py +0 -0
- {documenteer-2.2.0/src/documenteer/templates/technote → documenteer-2.3.0/.claude/tasks}/.gitkeep +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.flake8 +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.github/CONTRIBUTING.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.github/SUPPORT.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.github/dependabot.yml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.github/workflows/ci-cron.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.github/workflows/ci.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.gitignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.npmrc +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.nvmrc +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.pre-commit-config.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.prettierignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.prettierrc.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.vscode/settings.json +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/.vscode/tasks.json +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/LICENSE +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/MANIFEST.in +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/Makefile +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/README.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/changelog.d/_template.md.jinja +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/.gitignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/Makefile +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/diagram.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/extra-notebook.ipynb +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/index.ipynb +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/subdir/subdir-notebook.ipynb +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/ipynb-technote/technote.toml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/md-technote/.gitignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/md-technote/Makefile +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/md-technote/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/md-technote/diagram.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/md-technote/index.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/md-technote/technote.toml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/rst-technote/.gitignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/rst-technote/Makefile +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/rst-technote/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/rst-technote/diagram.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/demo/rst-technote/technote.toml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/.gitignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/Makefile +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/_rst_epilog.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/api/documenteer.conf.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/api/documenteer.ext.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/api/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/development.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/html-templates.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/release.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/theme-assets.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/dev/theme.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/documenteer.toml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/badges.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/configuration-preset.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/diagrams.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/extend-conf-py.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/including-notebooks.ipynb +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/markdown-primer.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/openapi.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/organization.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/overview.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/page-redirects.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/pyproject-configuration.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/rst-epilog.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/tabsets.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/toml-reference.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/guides/video-embeds.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/sphinx-extensions/docushare-reference.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/sphinx-extensions/githubbibcache.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/sphinx-extensions/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/sphinx-extensions/jira-reference.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/sphinx-extensions/lsst-pybtex-style.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/sphinx-extensions/openapi.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/sphinx-extensions/remote-code-block.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/author-metadata.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/configuration.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/document-status.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/edit-on-github.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/extensions.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/how-your-technote-gets-published.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/start-a-technote.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/docs/technotes/wide-content.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/licenses/README.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/licenses/astropy-helpers.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/licenses/sphinx-issue.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/licenses/sphinx.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/licenses/sphinxcontrib-redoc.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/package-lock.json +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/package.json +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/postcss.config.js +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/pyproject.toml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/ruff-shared.toml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/setup.cfg +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/SourceSans3VF-Italic.ttf.woff2 +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/SourceSans3VF-Upright.ttf.woff2 +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/_hacks.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/_properties.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/components/_article-header.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/components/_authors.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/components/_global-breadcrumbs.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/components/_index.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/components/_sidebar-section.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/components/_version-info.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/assets/rubin-technote/styles/rubin-technote.scss +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/_packagemetadata.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/_requestsutils.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/_utils.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/.gitignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/731c8feefe13e72a8691.woff2 +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/b8bc3440ba2145e132f5.woff2 +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/favicon.ico +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rsd-assets/rubin-imagotype-color-on-black-crop.svg +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rsd-assets/rubin-imagotype-color-on-white-crop.svg +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rubin-favicon-transparent-32px.png +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rubin-favicon.svg +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rubin-pydata-theme.css +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rubin-technote.css +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rubin-technote.css.map +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rubin-titlebar-imagotype-dark.svg +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/rubin-titlebar-imagotype-light.svg +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/scripts/rubin-technote.js +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/assets/scripts/rubin-technote.js.map +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/cli.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/conf/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/conf/_toml.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/conf/guide.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/conf/technote.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/githubbibcache.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/jira.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/lsstdocushare.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/mockcoderefs.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/openapi.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/redoc/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/redoc/_redoc.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/redoc/assets/redoc.html.jinja2 +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/ext/robots.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/py.typed +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/services/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/services/technoteauthor.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/services/technotemigration.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/authordb.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/latex.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/Makefile +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/ci.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/dependabot.yml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/gitignore +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/pre-commit-config.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/requirements.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/tox.ini +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/technotetoml.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/templates/pydata/autosummary_core/exception.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/templates/pydata/autosummary_core/pydantic_model.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/templates/pydata/layout.html +0 -0
- {documenteer-2.2.0/src/documenteer/templates/technote/components → documenteer-2.3.0/src/documenteer/templates/technote}/.gitkeep +0 -0
- {documenteer-2.2.0/src/documenteer/templates/technote/sections → documenteer-2.3.0/src/documenteer/templates/technote/components}/.gitkeep +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/templates/technote/components/sidebar-source.html +0 -0
- /documenteer-2.2.0/tests/__init__.py → /documenteer-2.3.0/src/documenteer/templates/technote/sections/.gitkeep +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/templates/technote/sections/header-article.html +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/templates/technote/sections/sidebar-primary.html +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/version.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer.egg-info/dependency_links.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer.egg-info/entry_points.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer.egg-info/requires.txt +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer.egg-info/top_level.txt +0 -0
- {documenteer-2.2.0/tests/ext → documenteer-2.3.0/tests}/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/conftest.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/afw.doxygen.conf +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/authordb.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/doxygen.tag.zip +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_alpha/doc/_static/package_alpha/README.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_alpha/doc/doxygen.conf.in +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_alpha/doc/manifest.yaml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_alpha/doc/package.alpha/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_alpha/doc/package_alpha/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_alpha/include/README.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_alpha/src/README.md +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/data/package_beta/doc/README.md +0 -0
- {documenteer-2.2.0/tests/services → documenteer-2.3.0/tests/ext}/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/ext/jira_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/ext/lsstdocushare_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/ext/mockcoderefs_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/ext/redoc_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/ext/robots_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/packagemetadata_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-autocppapi/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-autocppapi/doxygen.tag.zip +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-autocppapi/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-redoc/_static/openapi.json +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-redoc/api.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-redoc/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-redoc/documenteer.toml +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-redoc/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-robots-nositemap/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-robots-nositemap/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-robots-nositemap/page1.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-robots-sitemap/conf.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-robots-sitemap/index.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-robots-sitemap/page1.rst +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/roots/test-robots-sitemap/page2.rst +0 -0
- {documenteer-2.2.0/tests/storage → documenteer-2.3.0/tests/services}/__init__.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/services/technotemigration_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/storage/authordb_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/storage/technotetoml_test.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/test_conf_toml.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tests/test_conf_utils.py +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/tox.ini +0 -0
- {documenteer-2.2.0 → documenteer-2.3.0}/webpack.config.js +0 -0
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- scriv-insert-here -->
|
|
4
4
|
|
|
5
|
+
<a id='changelog-2.3.0'></a>
|
|
6
|
+
## 2.3.0 (2025-09-03)
|
|
7
|
+
|
|
8
|
+
### New features
|
|
9
|
+
|
|
10
|
+
- Improved configuration defaults for `documenteer.conf.guide` and `documenteer.conf.technote`:
|
|
11
|
+
|
|
12
|
+
- Add `sentry_sdk` to default non-intersphinx packages
|
|
13
|
+
- Ignore `TypeAliasType` due to sphinx bug
|
|
14
|
+
- Ignore `asyncio.Event`, it has the same problem as `asyncio.Lock`
|
|
15
|
+
|
|
16
|
+
- [ASCL](https://ascl.net) identifiers in bibliography entries are now hyperlinked.
|
|
17
|
+
|
|
18
|
+
### Bug fixes
|
|
19
|
+
|
|
20
|
+
- Vendored `parse_line_num_spec` from Sphinx to accommodate differences between Sphinx 7 and 8.
|
|
21
|
+
- Fix `nitpick_ignore_regex` regexes, they weren't being applied due to a missing `.`
|
|
22
|
+
|
|
23
|
+
### Other changes
|
|
24
|
+
|
|
25
|
+
- Added documentation on creating bibliographies in technotes.
|
|
26
|
+
|
|
5
27
|
<a id='changelog-2.2.0'></a>
|
|
6
28
|
## 2.2.0 (2025-08-06)
|
|
7
29
|
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
Documenteer is a Python package that provides Sphinx documentation tools, extensions, and configurations for Rubin Observatory/LSST projects. It supports two main documentation types:
|
|
8
|
+
- **User guides**: Complete documentation sites using pydata-sphinx-theme
|
|
9
|
+
- **Technotes**: Single-document technical notes using the technote theme
|
|
10
|
+
|
|
11
|
+
## Development Commands
|
|
12
|
+
|
|
13
|
+
### Setup and Installation
|
|
14
|
+
```bash
|
|
15
|
+
make init # Initialize development environment
|
|
16
|
+
pip install -e ".[technote,guide]" --group dev # Install with all extras
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Testing and Quality Assurance
|
|
20
|
+
```bash
|
|
21
|
+
tox -e py-test-sphinx8 # Run tests with Sphinx 8.x
|
|
22
|
+
tox -e coverage-report # Generate coverage report
|
|
23
|
+
tox -e typing-sphinx8 # Run mypy type checking
|
|
24
|
+
tox -e lint # Run linting (pre-commit hooks + prettier)
|
|
25
|
+
tox -e demo # Build demo technote projects (end-to-end test)
|
|
26
|
+
tox -e packaging # Check PyPI packaging
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Documentation
|
|
30
|
+
```bash
|
|
31
|
+
tox -e docs # Build documentation
|
|
32
|
+
tox -e docs-lint # Check documentation links
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Cleanup
|
|
36
|
+
```bash
|
|
37
|
+
make clean # Remove build artifacts
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Architecture
|
|
41
|
+
|
|
42
|
+
### Core Components
|
|
43
|
+
|
|
44
|
+
**Configuration System** (`src/documenteer/conf/`):
|
|
45
|
+
- `guide.py`: Sphinx configuration preset for user guides
|
|
46
|
+
- `technote.py`: Sphinx configuration preset for technotes
|
|
47
|
+
- `_toml.py`: TOML-based configuration models using Pydantic
|
|
48
|
+
- Uses pydata-sphinx-theme for guides, [technote](https://github.com/lsst-sqre/technote) package for technotes
|
|
49
|
+
|
|
50
|
+
**Sphinx Extensions** (`src/documenteer/ext/`):
|
|
51
|
+
- `jira.py`: JIRA ticket references
|
|
52
|
+
- `lsstdocushare.py`: LSST DocuShare document links
|
|
53
|
+
- `openapi.py`: OpenAPI documentation integration
|
|
54
|
+
- `githubbibcache.py`: GitHub-based bibliography caching
|
|
55
|
+
- `bibtex.py`: Enhanced BibTeX support
|
|
56
|
+
- `remotecodeblock.py`: Remote code inclusion
|
|
57
|
+
- `mockcoderefs.py`: Mock code references for testing
|
|
58
|
+
- `redoc.py`: Redoc integration for HTTP API documentation
|
|
59
|
+
- `robots.py`: robots.txt generation
|
|
60
|
+
|
|
61
|
+
**CLI Tools** (`src/documenteer/cli.py`):
|
|
62
|
+
- `technote add-author`: Add authors to technote.toml from authordb
|
|
63
|
+
- `technote sync-authors`: Sync author info from central database
|
|
64
|
+
- `technote migrate`: Migrate legacy technotes to modern format
|
|
65
|
+
|
|
66
|
+
**Services** (`src/documenteer/services/`):
|
|
67
|
+
- `technoteauthor.py`: Author management for technotes
|
|
68
|
+
- `technotemigration.py`: Legacy technote migration logic
|
|
69
|
+
|
|
70
|
+
### Key Design Patterns
|
|
71
|
+
|
|
72
|
+
- **Configuration as Code**: Sphinx configurations are Python modules that can be imported
|
|
73
|
+
- **Pydantic Models**: TOML configuration validation using type-safe models
|
|
74
|
+
- **Extension Architecture**: Modular Sphinx extensions for specific Rubin/LSST needs
|
|
75
|
+
- **Theme Integration**: Tight integration with pydata-sphinx-theme and technote themes
|
|
76
|
+
|
|
77
|
+
### Testing Strategy
|
|
78
|
+
|
|
79
|
+
- Uses tox for multi-environment testing across Sphinx versions
|
|
80
|
+
- Sphinx test roots in `tests/roots/` for extension testing
|
|
81
|
+
- Coverage reporting with branch coverage
|
|
82
|
+
- Type checking with mypy
|
|
83
|
+
- Pre-commit hooks for code quality
|
|
84
|
+
|
|
85
|
+
### Code Style
|
|
86
|
+
|
|
87
|
+
- Follows ruff formatting (run lint command to automatically format)
|
|
88
|
+
- Numpydoc docstrings with types omitted (Sphinx documentation uses type annotations)
|
|
89
|
+
|
|
90
|
+
### Asset Management
|
|
91
|
+
|
|
92
|
+
Static assets are managed in `src/documenteer/assets/` including:
|
|
93
|
+
- Custom CSS and SCSS for Rubin branding
|
|
94
|
+
- JavaScript enhancements
|
|
95
|
+
- Favicon and logo assets
|
|
96
|
+
- Font files (Source Sans Pro)
|
|
97
|
+
|
|
98
|
+
Built assets are compiled using webpack with PostCSS processing.
|
|
@@ -29,7 +29,7 @@ A list:
|
|
|
29
29
|
- Second item
|
|
30
30
|
- Third item
|
|
31
31
|
|
|
32
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin facilisis pharetra neque, at semper nulla mattis auctor. Proin semper mollis enim eget interdum. Mauris eleifend eget diam vitae bibendum. Praesent ut aliquet odio, sodales imperdiet nisi. Nam interdum imperdiet tortor sed fringilla. Maecenas efficitur mi sodales nulla commodo rutrum. Ut ornare diam quam, sed commodo turpis aliquam et. In nec enim consequat, suscipit tortor sit amet, luctus ante. Integer dictum augue diam, non pulvinar massa euismod in. Morbi viverra condimentum auctor. Nullam et metus mauris. Cras risus ex, porta sit amet nibh et, dapibus auctor leo.
|
|
32
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin facilisis pharetra neque, at semper nulla mattis auctor. Proin semper mollis enim eget interdum. Mauris eleifend eget diam vitae bibendum. Praesent ut aliquet odio, sodales imperdiet nisi. Nam interdum imperdiet tortor sed fringilla. Maecenas efficitur mi sodales nulla commodo rutrum. Ut ornare diam quam, sed commodo turpis aliquam et. In nec enim consequat, suscipit tortor sit amet, luctus ante. Integer dictum augue diam, non pulvinar massa euismod in. Morbi viverra condimentum auctor. Nullam et metus mauris. Cras risus ex, porta sit amet nibh et, dapibus auctor leo. :cite:`2010ascl.soft10043C`
|
|
33
33
|
|
|
34
34
|
.. code-block:: python
|
|
35
35
|
:caption: hello.py
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@software{2010ascl.soft10043C,
|
|
2
|
+
author = {{Conroy}, Charlie and {Gunn}, James E.},
|
|
3
|
+
title = "{FSPS: Flexible Stellar Population Synthesis}",
|
|
4
|
+
howpublished = {Astrophysics Source Code Library, record ascl:1010.043},
|
|
5
|
+
year = 2010,
|
|
6
|
+
month = oct,
|
|
7
|
+
eid = {ascl:1010.043},
|
|
8
|
+
adsurl = {https://ui.adsabs.harvard.edu/abs/2010ascl.soft10043C},
|
|
9
|
+
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
|
|
10
|
+
}
|
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- scriv-insert-here -->
|
|
4
4
|
|
|
5
|
+
<a id='changelog-2.3.0'></a>
|
|
6
|
+
## 2.3.0 (2025-09-03)
|
|
7
|
+
|
|
8
|
+
### New features
|
|
9
|
+
|
|
10
|
+
- Improved configuration defaults for `documenteer.conf.guide` and `documenteer.conf.technote`:
|
|
11
|
+
|
|
12
|
+
- Add `sentry_sdk` to default non-intersphinx packages
|
|
13
|
+
- Ignore `TypeAliasType` due to sphinx bug
|
|
14
|
+
- Ignore `asyncio.Event`, it has the same problem as `asyncio.Lock`
|
|
15
|
+
|
|
16
|
+
- [ASCL](https://ascl.net) identifiers in bibliography entries are now hyperlinked.
|
|
17
|
+
|
|
18
|
+
### Bug fixes
|
|
19
|
+
|
|
20
|
+
- Vendored `parse_line_num_spec` from Sphinx to accommodate differences between Sphinx 7 and 8.
|
|
21
|
+
- Fix `nitpick_ignore_regex` regexes, they weren't being applied due to a missing `.`
|
|
22
|
+
|
|
23
|
+
### Other changes
|
|
24
|
+
|
|
25
|
+
- Added documentation on creating bibliographies in technotes.
|
|
26
|
+
|
|
5
27
|
<a id='changelog-2.2.0'></a>
|
|
6
28
|
## 2.2.0 (2025-08-06)
|
|
7
29
|
|
|
@@ -18,11 +18,14 @@ How you do this depends on your project's packaging structure:
|
|
|
18
18
|
.. code-block:: toml
|
|
19
19
|
:caption: pyproject.toml
|
|
20
20
|
|
|
21
|
-
[
|
|
22
|
-
|
|
21
|
+
[dependency-groups]
|
|
22
|
+
docs = [
|
|
23
23
|
"documenteer[guide]"
|
|
24
24
|
]
|
|
25
25
|
|
|
26
|
+
Dependency groups are a way organize development dependencies and are supported by `uv <https://docs.astral.sh/uv/concepts/projects/dependencies/#development-dependencies>`__.
|
|
27
|
+
Dependency groups are preferred over earlier methods of specifying optional dependencies because they are not published as installable dependencies from PyPI.
|
|
28
|
+
|
|
26
29
|
.. tab-item:: requirements.txt
|
|
27
30
|
|
|
28
31
|
.. code-block:: text
|
|
@@ -56,15 +56,15 @@ Installation
|
|
|
56
56
|
|
|
57
57
|
.. code-block:: sh
|
|
58
58
|
|
|
59
|
-
conda install documenteer
|
|
59
|
+
conda install lsst-documenteer
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
To install Documenteer for technote projects:
|
|
61
|
+
For user guide projects:
|
|
64
62
|
|
|
65
63
|
.. code-block:: sh
|
|
66
64
|
|
|
67
|
-
conda-install lsst-documenteer-
|
|
65
|
+
conda-install lsst-documenteer-guide
|
|
66
|
+
|
|
67
|
+
*Conda distributions aren't available for technote projects at this time.*
|
|
68
68
|
|
|
69
69
|
Project guides
|
|
70
70
|
==============
|
|
@@ -16,7 +16,7 @@ A short description of this document.
|
|
|
16
16
|
|
|
17
17
|
## Build this technical note
|
|
18
18
|
|
|
19
|
-
You can clone this repository and build the technote locally if your system has Python 3.
|
|
19
|
+
You can clone this repository and build the technote locally if your system has Python 3.12 or later:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
git clone https://github.com/lsst/example-000
|
|
@@ -22,7 +22,7 @@ A short description of this document.
|
|
|
22
22
|
Build this technical note
|
|
23
23
|
=========================
|
|
24
24
|
|
|
25
|
-
You can clone this repository and build the technote locally if your system has Python 3.
|
|
25
|
+
You can clone this repository and build the technote locally if your system has Python 3.12 or later:
|
|
26
26
|
|
|
27
27
|
.. code-block:: bash
|
|
28
28
|
|
|
@@ -34,7 +34,7 @@ Because of that, you don't need to rely on a specific Rubin Conda environment to
|
|
|
34
34
|
.. important::
|
|
35
35
|
|
|
36
36
|
Tox and pre-commit generally use the Python that they were installed with.
|
|
37
|
-
Documenteer requires Python 3.
|
|
37
|
+
Documenteer requires Python 3.12 or later.
|
|
38
38
|
To check what version of Python you have, run:
|
|
39
39
|
|
|
40
40
|
.. prompt:: bash
|
|
@@ -235,6 +235,7 @@ Add the title to the top of the content:
|
|
|
235
235
|
.. tab-set::
|
|
236
236
|
|
|
237
237
|
.. tab-item:: rst
|
|
238
|
+
:sync: rst
|
|
238
239
|
|
|
239
240
|
.. code-block:: rst
|
|
240
241
|
:caption: index.rst
|
|
@@ -246,6 +247,7 @@ Add the title to the top of the content:
|
|
|
246
247
|
[... content below ...]
|
|
247
248
|
|
|
248
249
|
.. tab-item:: md
|
|
250
|
+
:sync: md
|
|
249
251
|
|
|
250
252
|
.. code-block:: md
|
|
251
253
|
:caption: index.md
|
|
@@ -268,6 +270,7 @@ The new technote format uses an ``abstract`` directive to mark up the abstract/s
|
|
|
268
270
|
.. tab-set::
|
|
269
271
|
|
|
270
272
|
.. tab-item:: rst
|
|
273
|
+
:sync: rst
|
|
271
274
|
|
|
272
275
|
.. code-block:: rst
|
|
273
276
|
:caption: index.rst
|
|
@@ -287,6 +290,7 @@ The new technote format uses an ``abstract`` directive to mark up the abstract/s
|
|
|
287
290
|
[... content below ...]
|
|
288
291
|
|
|
289
292
|
.. tab-item:: md
|
|
293
|
+
:sync: md
|
|
290
294
|
|
|
291
295
|
.. code-block:: md
|
|
292
296
|
:caption: index.md
|
|
@@ -311,6 +315,7 @@ In the new technote format, this section is simplified:
|
|
|
311
315
|
.. tab-set::
|
|
312
316
|
|
|
313
317
|
.. tab-item:: rst
|
|
318
|
+
:sync: rst
|
|
314
319
|
|
|
315
320
|
.. code-block:: rst
|
|
316
321
|
:caption: index.rst
|
|
@@ -323,6 +328,7 @@ In the new technote format, this section is simplified:
|
|
|
323
328
|
.. bibliography::
|
|
324
329
|
|
|
325
330
|
.. tab-item:: md
|
|
331
|
+
:sync: md
|
|
326
332
|
|
|
327
333
|
.. code-block:: md
|
|
328
334
|
:caption: index.md
|
|
@@ -476,12 +482,14 @@ Here is a suggested README template for technotes in the new format:
|
|
|
476
482
|
.. tab-set::
|
|
477
483
|
|
|
478
484
|
.. tab-item:: rst
|
|
485
|
+
:sync: rst
|
|
479
486
|
|
|
480
487
|
.. literalinclude:: _templates/README.rst
|
|
481
488
|
:language: rst
|
|
482
489
|
:caption: README.rst
|
|
483
490
|
|
|
484
491
|
.. tab-item:: md
|
|
492
|
+
:sync: md
|
|
485
493
|
|
|
486
494
|
.. literalinclude:: _templates/README.md
|
|
487
495
|
:language: md
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
#############################
|
|
2
|
+
Citing references with BibTeX
|
|
3
|
+
#############################
|
|
4
|
+
|
|
5
|
+
Technotes include built-in support for citing references with BibTeX. Any bibitem from `lsst-texmf's bibliography files <https://github.com/lsst/lsst-texmf/tree/main/texmf/bibtex/bib>`__ is available for citation.
|
|
6
|
+
You can also define your own BibTeX entries in a local bib files.
|
|
7
|
+
|
|
8
|
+
Set up references section
|
|
9
|
+
=========================
|
|
10
|
+
|
|
11
|
+
To use BibTeX references in your technote, add a "References" section at the end of the main content with a ``bibliography`` directive:
|
|
12
|
+
|
|
13
|
+
.. tab-set::
|
|
14
|
+
:sync-group: markup
|
|
15
|
+
|
|
16
|
+
.. tab-item:: RST
|
|
17
|
+
:sync: rst
|
|
18
|
+
|
|
19
|
+
.. code-block:: rst
|
|
20
|
+
|
|
21
|
+
References
|
|
22
|
+
==========
|
|
23
|
+
|
|
24
|
+
.. bibliography::
|
|
25
|
+
|
|
26
|
+
.. tab-item:: Markdown
|
|
27
|
+
:sync: md
|
|
28
|
+
|
|
29
|
+
.. code-block:: md
|
|
30
|
+
|
|
31
|
+
## References
|
|
32
|
+
|
|
33
|
+
```{bibliography}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
No arguments are needed for the ``bibliography`` directive because it is automatically configured.
|
|
37
|
+
|
|
38
|
+
By default, all BibTeX files from lsst-texmf are available in your technote.
|
|
39
|
+
|
|
40
|
+
Adding local BibTeX entries
|
|
41
|
+
===========================
|
|
42
|
+
|
|
43
|
+
You can define your own BibTeX entries in a local bib file, such as :file:`local.bib`, when lsst-texmf is missing references.
|
|
44
|
+
Any ``*.bib`` file in the root of the technote repository is automatically included in the build.
|
|
45
|
+
|
|
46
|
+
Creating citations in text
|
|
47
|
+
==========================
|
|
48
|
+
|
|
49
|
+
You can add citations in your text using ``cite`` and related roles.
|
|
50
|
+
The ``cite`` roles takes the bibkey as the argument.
|
|
51
|
+
|
|
52
|
+
Author-year citations with cite
|
|
53
|
+
-------------------------------
|
|
54
|
+
|
|
55
|
+
The ``cite`` role adds a parenthetical inline citation like ``[Author et al., Year]``:
|
|
56
|
+
|
|
57
|
+
.. tab-set::
|
|
58
|
+
:sync-group: markup
|
|
59
|
+
|
|
60
|
+
.. tab-item:: RST
|
|
61
|
+
:sync: rst
|
|
62
|
+
|
|
63
|
+
.. code-block:: rst
|
|
64
|
+
|
|
65
|
+
:cite:`RTN-095`
|
|
66
|
+
|
|
67
|
+
.. tab-item:: Markdown
|
|
68
|
+
:sync: md
|
|
69
|
+
|
|
70
|
+
.. code-block:: md
|
|
71
|
+
|
|
72
|
+
{cite}`RTN-095`
|
|
73
|
+
|
|
74
|
+
Multiple bibkeys can be included, separated by commas:
|
|
75
|
+
|
|
76
|
+
.. tab-set::
|
|
77
|
+
:sync-group: markup
|
|
78
|
+
|
|
79
|
+
.. tab-item:: RST
|
|
80
|
+
:sync: rst
|
|
81
|
+
|
|
82
|
+
.. code-block:: rst
|
|
83
|
+
|
|
84
|
+
:cite:`bibkey1,bibkey2`
|
|
85
|
+
|
|
86
|
+
.. tab-item:: Markdown
|
|
87
|
+
:sync: md
|
|
88
|
+
|
|
89
|
+
.. code-block:: md
|
|
90
|
+
|
|
91
|
+
{cite}`bibkey1,bibkey2`
|
|
92
|
+
|
|
93
|
+
Textual citations with cite:t
|
|
94
|
+
-----------------------------
|
|
95
|
+
|
|
96
|
+
The ``cite:t`` role adds a textual citation like ``Author et al. (Year)``:
|
|
97
|
+
|
|
98
|
+
.. tab-set::
|
|
99
|
+
:sync-group: markup
|
|
100
|
+
|
|
101
|
+
.. tab-item:: RST
|
|
102
|
+
:sync: rst
|
|
103
|
+
|
|
104
|
+
.. code-block:: rst
|
|
105
|
+
|
|
106
|
+
:cite:t:`RTN-095`
|
|
107
|
+
|
|
108
|
+
.. tab-item:: Markdown
|
|
109
|
+
:sync: md
|
|
110
|
+
|
|
111
|
+
.. code-block:: md
|
|
112
|
+
|
|
113
|
+
{cite:t}`RTN-095`
|
|
114
|
+
|
|
115
|
+
Specialized citation roles
|
|
116
|
+
--------------------------
|
|
117
|
+
|
|
118
|
+
The sphinxcontrib-bibtex extension also provides specialized citation roles for specific situations, such as listing authors or years, or including pre- or post-text inside a parenthetical citation.
|
|
119
|
+
See the `sphinxcontrib-bibtex documentation <https://sphinxcontrib-bibtex.readthedocs.io/en/latest/usage.html#roles-and-directives>`__ for details.
|
|
120
|
+
|
|
121
|
+
Refresh bib files from lsst-texmf
|
|
122
|
+
=================================
|
|
123
|
+
|
|
124
|
+
The lsst-texmf bib files are automatically downloaded and cached in the :file:`.technote` directory when your technote is built. You can refresh the cached files by deleting the :file:`.technote` directory and rebuilding your technote.
|
|
125
|
+
|
|
126
|
+
.. prompt::
|
|
127
|
+
|
|
128
|
+
rm -rf .technote
|
|
129
|
+
make html
|
|
130
|
+
|
|
131
|
+
You can also delete both the cache and the existing built HTML with:
|
|
132
|
+
|
|
133
|
+
.. prompt::
|
|
134
|
+
|
|
135
|
+
make clean
|
|
@@ -171,10 +171,11 @@ def get_common_nitpick_ignore() -> list[tuple[str, str]]:
|
|
|
171
171
|
"py:obj",
|
|
172
172
|
"safir.pydantic.validate_exactly_one_of.<locals>.validator",
|
|
173
173
|
),
|
|
174
|
-
# asyncio.Lock
|
|
175
|
-
#
|
|
176
|
-
#
|
|
174
|
+
# asyncio.Lock and asyncio.Event are documented but the combination of
|
|
175
|
+
# Sphinx extensions we're using confuse themselves and there doesn't
|
|
176
|
+
# seem to be any way to fix this.
|
|
177
177
|
("py:class", "asyncio.locks.Lock"),
|
|
178
|
+
("py:class", "asyncio.locks.Event"),
|
|
178
179
|
("py:class", "pathlib._local.Path"),
|
|
179
180
|
]
|
|
180
181
|
|
|
@@ -199,15 +200,18 @@ def get_common_nitpick_ignore_regex() -> list[tuple[str, str]]:
|
|
|
199
200
|
"kubernetes_asyncio",
|
|
200
201
|
"pydantic",
|
|
201
202
|
"pydantic_settings",
|
|
203
|
+
"sentry_sdk",
|
|
202
204
|
"starlette",
|
|
203
205
|
]
|
|
204
|
-
patterns = [("py
|
|
206
|
+
patterns = [("py:.*", rf"{package}(?:\..*)?") for package in packages]
|
|
205
207
|
|
|
206
208
|
# Additional patterns that are common to ignore.
|
|
207
209
|
patterns.extend(
|
|
208
210
|
[
|
|
209
211
|
# Bug in sphinx.ext.autodoc for pydantic models.
|
|
210
|
-
("py
|
|
212
|
+
("py:.*", r".*\.all fields"),
|
|
213
|
+
# Sphinx bug handling the type keyword
|
|
214
|
+
("py:.*", r".*\.TypeAliasType"),
|
|
211
215
|
]
|
|
212
216
|
)
|
|
213
217
|
|
|
@@ -18,6 +18,7 @@ from pybtex.style.template import (
|
|
|
18
18
|
optional_field,
|
|
19
19
|
sentence,
|
|
20
20
|
tag,
|
|
21
|
+
words,
|
|
21
22
|
)
|
|
22
23
|
from sphinx.application import Sphinx
|
|
23
24
|
from sphinx.util.typing import ExtensionMetadata
|
|
@@ -100,6 +101,28 @@ class LsstBibtexStyle(pybtex.style.formatting.plain.Style):
|
|
|
100
101
|
self._rewrite_field(e, "journal")
|
|
101
102
|
return super().get_article_template(e)
|
|
102
103
|
|
|
104
|
+
def format_ascl(self, e: Entry) -> Node:
|
|
105
|
+
# based on urlbst format.doi
|
|
106
|
+
url = join["https://ascl.net/", field("eid", raw=True)]
|
|
107
|
+
return href(url)[join["ascl:", field("eid", raw=True)]]
|
|
108
|
+
|
|
109
|
+
def get_software_template(self, e: Entry) -> Node:
|
|
110
|
+
if "eid" in e.fields and "ascl:" in e.fields["eid"]:
|
|
111
|
+
date = words[optional_field("month"), field("year")]
|
|
112
|
+
e.fields["eid"] = e.fields["eid"].removeprefix("ascl:")
|
|
113
|
+
return toplevel[
|
|
114
|
+
optional[sentence[self.format_names("author")]],
|
|
115
|
+
optional[self.format_title(e, "title")],
|
|
116
|
+
sentence[
|
|
117
|
+
optional[field("howpublished")],
|
|
118
|
+
optional[date],
|
|
119
|
+
],
|
|
120
|
+
sentence[optional_field("note")],
|
|
121
|
+
self.format_ascl(e),
|
|
122
|
+
]
|
|
123
|
+
# If not an ASCL entry, use the default software template.
|
|
124
|
+
return super().get_software_template(e)
|
|
125
|
+
|
|
103
126
|
def get_inproceedings_template(self, e: Entry) -> Node:
|
|
104
127
|
# Potentially modify the series string before formatting it.
|
|
105
128
|
self._rewrite_field(e, "series")
|
|
@@ -12,7 +12,7 @@ from docutils import nodes
|
|
|
12
12
|
from docutils.parsers.rst import directives
|
|
13
13
|
from sphinx.application import Sphinx
|
|
14
14
|
from sphinx.directives.code import LiteralIncludeReader, container_wrapper
|
|
15
|
-
from sphinx.util import logging
|
|
15
|
+
from sphinx.util import logging
|
|
16
16
|
from sphinx.util.docutils import SphinxDirective
|
|
17
17
|
from sphinx.util.nodes import set_source_info
|
|
18
18
|
from sphinx.util.typing import ExtensionMetadata
|
|
@@ -25,6 +25,39 @@ __all__ = ["setup"]
|
|
|
25
25
|
logger = logging.getLogger(__name__)
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
# Vendored from sphinx to accomodate differences between Sphinx 7 and 8
|
|
29
|
+
# Copyright the Sphinx team.
|
|
30
|
+
# See licenses/sphinx.txt
|
|
31
|
+
def parse_line_num_spec(spec: str, total: int) -> list[int]:
|
|
32
|
+
"""Parse a line number spec (such as "1,2,4-6") and return a list of
|
|
33
|
+
wanted line numbers.
|
|
34
|
+
"""
|
|
35
|
+
items = []
|
|
36
|
+
parts = spec.split(",")
|
|
37
|
+
for part in parts:
|
|
38
|
+
try:
|
|
39
|
+
begend = part.strip().split("-")
|
|
40
|
+
if begend == ["", ""]:
|
|
41
|
+
raise ValueError
|
|
42
|
+
if len(begend) == 1:
|
|
43
|
+
items.append(int(begend[0]) - 1)
|
|
44
|
+
elif len(begend) == 2:
|
|
45
|
+
start = int(begend[0] or 1) # left half open (cf. -10)
|
|
46
|
+
end = int(
|
|
47
|
+
begend[1] or max(start, total)
|
|
48
|
+
) # right half open (cf. 10-)
|
|
49
|
+
if start > end: # invalid range (cf. 10-1)
|
|
50
|
+
raise ValueError
|
|
51
|
+
items.extend(range(start - 1, end))
|
|
52
|
+
else:
|
|
53
|
+
raise ValueError
|
|
54
|
+
except ValueError as exc:
|
|
55
|
+
msg = f"invalid line number spec: {spec!r}"
|
|
56
|
+
raise ValueError(msg) from exc
|
|
57
|
+
|
|
58
|
+
return items
|
|
59
|
+
|
|
60
|
+
|
|
28
61
|
class RemoteCodeBlock(SphinxDirective):
|
|
29
62
|
"""Directive that works like ``literalinclude`` to show a code block, but
|
|
30
63
|
supports getting content over https.
|
|
@@ -94,7 +127,9 @@ class RemoteCodeBlock(SphinxDirective):
|
|
|
94
127
|
retnode["classes"] += self.options.get("class", [])
|
|
95
128
|
extra_args = retnode["highlight_args"] = {}
|
|
96
129
|
if "emphasize-lines" in self.options:
|
|
97
|
-
hl_lines =
|
|
130
|
+
hl_lines = parse_line_num_spec(
|
|
131
|
+
self.options["emphasize-lines"], lines
|
|
132
|
+
)
|
|
98
133
|
if any(i >= lines for i in hl_lines):
|
|
99
134
|
logger.warning(
|
|
100
135
|
"line number spec is out of range(1-%d): %r",
|
{documenteer-2.2.0 → documenteer-2.3.0}/src/documenteer/storage/localtemplates/technote/README.rst
RENAMED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
Build this technical note
|
|
23
23
|
=========================
|
|
24
24
|
|
|
25
|
-
You can clone this repository and build the technote locally if your system has Python 3.
|
|
25
|
+
You can clone this repository and build the technote locally if your system has Python 3.12 or later:
|
|
26
26
|
|
|
27
27
|
.. code-block:: bash
|
|
28
28
|
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
.prettierignore
|
|
7
7
|
.prettierrc.yaml
|
|
8
8
|
CHANGELOG.md
|
|
9
|
+
CLAUDE.md
|
|
9
10
|
LICENSE
|
|
10
11
|
MANIFEST.in
|
|
11
12
|
Makefile
|
|
@@ -17,6 +18,8 @@ pyproject.toml
|
|
|
17
18
|
ruff-shared.toml
|
|
18
19
|
tox.ini
|
|
19
20
|
webpack.config.js
|
|
21
|
+
.claude/.gitignore
|
|
22
|
+
.claude/tasks/.gitkeep
|
|
20
23
|
.github/CODE_OF_CONDUCT.md
|
|
21
24
|
.github/CONTRIBUTING.md
|
|
22
25
|
.github/SUPPORT.md
|
|
@@ -45,6 +48,7 @@ demo/rst-technote/Makefile
|
|
|
45
48
|
demo/rst-technote/conf.py
|
|
46
49
|
demo/rst-technote/diagram.py
|
|
47
50
|
demo/rst-technote/index.rst
|
|
51
|
+
demo/rst-technote/local.bib
|
|
48
52
|
demo/rst-technote/technote.toml
|
|
49
53
|
docs/.gitignore
|
|
50
54
|
docs/Makefile
|
|
@@ -95,6 +99,7 @@ docs/technotes/extensions.rst
|
|
|
95
99
|
docs/technotes/how-your-technote-gets-published.rst
|
|
96
100
|
docs/technotes/index.rst
|
|
97
101
|
docs/technotes/migrate.rst
|
|
102
|
+
docs/technotes/references.rst
|
|
98
103
|
docs/technotes/start-a-technote.rst
|
|
99
104
|
docs/technotes/wide-content.rst
|
|
100
105
|
docs/technotes/_templates/README.md
|
|
File without changes
|
{documenteer-2.2.0/src/documenteer/templates/technote → documenteer-2.3.0/.claude/tasks}/.gitkeep
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|