documenteer 2.1.0__tar.gz → 2.2.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.1.0 → documenteer-2.2.0}/CHANGELOG.md +23 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/PKG-INFO +1 -1
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/Makefile +1 -1
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/_rst_epilog.rst +1 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/changelog.md +23 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/api/documenteer.ext.rst +8 -2
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/documenteer.toml +2 -1
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/migrate.rst +47 -66
- documenteer-2.2.0/docs/technotes/start-a-technote.rst +45 -0
- documenteer-2.2.0/src/documenteer/ext/bibtex.py +147 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/jira.py +3 -1
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/lsstdocushare.py +2 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/mockcoderefs.py +3 -1
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/openapi.py +1 -1
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/remotecodeblock.py +2 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/robots.py +1 -1
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/pre-commit-config.yaml +1 -1
- documenteer-2.2.0/src/documenteer/storage/localtemplates/technote/requirements.txt +1 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/technotetoml.py +14 -4
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer.egg-info/PKG-INFO +1 -1
- documenteer-2.2.0/tests/storage/technotetoml_test.py +336 -0
- documenteer-2.1.0/docs/technotes/start-a-technote.rst +0 -35
- documenteer-2.1.0/src/documenteer/ext/bibtex.py +0 -57
- documenteer-2.1.0/src/documenteer/storage/localtemplates/technote/requirements.txt +0 -1
- documenteer-2.1.0/tests/storage/technotetoml_test.py +0 -125
- {documenteer-2.1.0 → documenteer-2.2.0}/.flake8 +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.github/CONTRIBUTING.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.github/SUPPORT.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.github/dependabot.yml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.github/workflows/ci-cron.yaml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.github/workflows/ci.yaml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.gitignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.npmrc +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.nvmrc +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.pre-commit-config.yaml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.prettierignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.prettierrc.yaml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.vscode/settings.json +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/.vscode/tasks.json +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/LICENSE +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/MANIFEST.in +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/Makefile +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/README.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/changelog.d/_template.md.jinja +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/.gitignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/Makefile +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/diagram.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/extra-notebook.ipynb +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/index.ipynb +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/subdir/subdir-notebook.ipynb +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/ipynb-technote/technote.toml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/md-technote/.gitignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/md-technote/Makefile +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/md-technote/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/md-technote/diagram.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/md-technote/index.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/md-technote/technote.toml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/rst-technote/.gitignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/rst-technote/Makefile +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/rst-technote/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/rst-technote/diagram.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/rst-technote/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/demo/rst-technote/technote.toml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/.gitignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/api/documenteer.conf.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/api/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/development.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/html-templates.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/release.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/theme-assets.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/dev/theme.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/badges.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/configuration-preset.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/configuration.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/diagrams.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/extend-conf-py.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/including-notebooks.ipynb +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/markdown-primer.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/openapi.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/organization.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/overview.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/page-redirects.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/pyproject-configuration.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/rst-epilog.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/tabsets.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/toml-reference.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/guides/video-embeds.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/sphinx-extensions/docushare-reference.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/sphinx-extensions/githubbibcache.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/sphinx-extensions/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/sphinx-extensions/jira-reference.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/sphinx-extensions/lsst-pybtex-style.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/sphinx-extensions/openapi.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/sphinx-extensions/remote-code-block.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/_templates/README.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/_templates/README.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/author-metadata.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/configuration.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/document-status.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/edit-locally.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/edit-on-github.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/extensions.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/how-your-technote-gets-published.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/docs/technotes/wide-content.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/licenses/README.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/licenses/astropy-helpers.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/licenses/sphinx-issue.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/licenses/sphinx.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/licenses/sphinxcontrib-redoc.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/package-lock.json +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/package.json +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/postcss.config.js +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/pyproject.toml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/ruff-shared.toml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/setup.cfg +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/SourceSans3VF-Italic.ttf.woff2 +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/SourceSans3VF-Upright.ttf.woff2 +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/_hacks.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/_properties.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/components/_article-header.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/components/_authors.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/components/_global-breadcrumbs.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/components/_index.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/components/_sidebar-section.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/components/_version-info.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/assets/rubin-technote/styles/rubin-technote.scss +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/_packagemetadata.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/_requestsutils.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/_utils.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/.gitignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/731c8feefe13e72a8691.woff2 +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/b8bc3440ba2145e132f5.woff2 +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/favicon.ico +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rsd-assets/rubin-imagotype-color-on-black-crop.svg +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rsd-assets/rubin-imagotype-color-on-white-crop.svg +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rubin-favicon-transparent-32px.png +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rubin-favicon.svg +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rubin-pydata-theme.css +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rubin-technote.css +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rubin-technote.css.map +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rubin-titlebar-imagotype-dark.svg +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/rubin-titlebar-imagotype-light.svg +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/scripts/rubin-technote.js +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/assets/scripts/rubin-technote.js.map +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/cli.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/conf/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/conf/_toml.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/conf/_utils.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/conf/guide.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/conf/technote.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/githubbibcache.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/redoc/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/redoc/_redoc.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/ext/redoc/assets/redoc.html.jinja2 +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/py.typed +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/services/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/services/technoteauthor.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/services/technotemigration.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/authordb.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/latex.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/Makefile +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/README.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/ci.yaml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/dependabot.yml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/gitignore +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates/technote/tox.ini +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/storage/localtemplates.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/pydata/autosummary_core/exception.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/pydata/autosummary_core/pydantic_model.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/pydata/layout.html +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/technote/.gitkeep +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/technote/components/.gitkeep +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/technote/components/sidebar-source.html +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/technote/sections/.gitkeep +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/technote/sections/header-article.html +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/templates/technote/sections/sidebar-primary.html +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer/version.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer.egg-info/SOURCES.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer.egg-info/dependency_links.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer.egg-info/entry_points.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer.egg-info/requires.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/src/documenteer.egg-info/top_level.txt +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/conftest.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/afw.doxygen.conf +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/authordb.yaml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/doxygen.tag.zip +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_alpha/doc/_static/package_alpha/README.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_alpha/doc/doxygen.conf.in +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_alpha/doc/manifest.yaml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_alpha/doc/package.alpha/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_alpha/doc/package_alpha/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_alpha/include/README.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_alpha/src/README.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/data/package_beta/doc/README.md +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/ext/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/ext/jira_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/ext/lsstdocushare_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/ext/mockcoderefs_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/ext/redoc_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/ext/robots_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/packagemetadata_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-autocppapi/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-autocppapi/doxygen.tag.zip +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-autocppapi/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-redoc/_static/openapi.json +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-redoc/api.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-redoc/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-redoc/documenteer.toml +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-redoc/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-robots-nositemap/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-robots-nositemap/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-robots-nositemap/page1.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-robots-sitemap/conf.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-robots-sitemap/index.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-robots-sitemap/page1.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/roots/test-robots-sitemap/page2.rst +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/services/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/services/technotemigration_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/storage/__init__.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/storage/authordb_test.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/test_conf_toml.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tests/test_conf_utils.py +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/tox.ini +0 -0
- {documenteer-2.1.0 → documenteer-2.2.0}/webpack.config.js +0 -0
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- scriv-insert-here -->
|
|
4
4
|
|
|
5
|
+
<a id='changelog-2.2.0'></a>
|
|
6
|
+
## 2.2.0 (2025-08-06)
|
|
7
|
+
|
|
8
|
+
### New features
|
|
9
|
+
|
|
10
|
+
- Updated the `documenteer technote migrate` command to use Documenteer 2.0 for new technotes.
|
|
11
|
+
- Technote migration documentation now uses uv/uvx for running migration tools.
|
|
12
|
+
- Improved the formatting for reference section in technotes with the Rubin BibTeX style:
|
|
13
|
+
|
|
14
|
+
- If an entry has more than 7 authors, the first three authors are listed, followed by "and others."
|
|
15
|
+
- LaTeX macros for journals are now converted to their expected names in the bibliography.
|
|
16
|
+
|
|
17
|
+
### Other changes
|
|
18
|
+
|
|
19
|
+
- Cleanup the API documentation for cleaner documentation builds.
|
|
20
|
+
|
|
21
|
+
<a id='changelog-2.1.1'></a>
|
|
22
|
+
## 2.1.1 (2025-07-17)
|
|
23
|
+
|
|
24
|
+
### Bug fixes
|
|
25
|
+
|
|
26
|
+
- When adding or updating authors in `technote.toml`, Documenteer avoids setting null values. TOML represents null values as absent keys, but previous versions of Documenteer included null `ror` values.
|
|
27
|
+
|
|
5
28
|
<a id='changelog-2.1.0'></a>
|
|
6
29
|
## 2.1.0 (2025-07-16)
|
|
7
30
|
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
.. _`authordb.yaml`: https://github.com/lsst/lsst-texmf/blob/main/etc/authordb.yaml
|
|
63
63
|
.. _pipx: https://pipx.pypa.io
|
|
64
64
|
.. _`LSSTC Slack Workspace`: https://lsstc.slack.com
|
|
65
|
+
.. _`uv`: https://docs.astral.sh/uv/
|
|
65
66
|
|
|
66
67
|
.. |dmw-squarebot| replace:: `direct message with @squarebot <https://slack.com/app_redirect?app=A07PWG9UG9M&team=T02SVMGU4>`__
|
|
67
68
|
|
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- scriv-insert-here -->
|
|
4
4
|
|
|
5
|
+
<a id='changelog-2.2.0'></a>
|
|
6
|
+
## 2.2.0 (2025-08-06)
|
|
7
|
+
|
|
8
|
+
### New features
|
|
9
|
+
|
|
10
|
+
- Updated the `documenteer technote migrate` command to use Documenteer 2.0 for new technotes.
|
|
11
|
+
- Technote migration documentation now uses uv/uvx for running migration tools.
|
|
12
|
+
- Improved the formatting for reference section in technotes with the Rubin BibTeX style:
|
|
13
|
+
|
|
14
|
+
- If an entry has more than 7 authors, the first three authors are listed, followed by "and others."
|
|
15
|
+
- LaTeX macros for journals are now converted to their expected names in the bibliography.
|
|
16
|
+
|
|
17
|
+
### Other changes
|
|
18
|
+
|
|
19
|
+
- Cleanup the API documentation for cleaner documentation builds.
|
|
20
|
+
|
|
21
|
+
<a id='changelog-2.1.1'></a>
|
|
22
|
+
## 2.1.1 (2025-07-17)
|
|
23
|
+
|
|
24
|
+
### Bug fixes
|
|
25
|
+
|
|
26
|
+
- When adding or updating authors in `technote.toml`, Documenteer avoids setting null values. TOML represents null values as absent keys, but previous versions of Documenteer included null `ror` values.
|
|
27
|
+
|
|
5
28
|
<a id='changelog-2.1.0'></a>
|
|
6
29
|
## 2.1.0 (2025-07-16)
|
|
7
30
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
documenteer.ext
|
|
3
3
|
###############
|
|
4
4
|
|
|
5
|
-
.. automodapi:: documenteer.ext.openapi
|
|
6
|
-
|
|
7
5
|
.. automodapi:: documenteer.ext.bibtex
|
|
8
6
|
:no-inherited-members:
|
|
9
7
|
:no-inheritance-diagram:
|
|
10
8
|
|
|
9
|
+
.. automodapi:: documenteer.ext.githubbibcache
|
|
10
|
+
|
|
11
11
|
.. automodapi:: documenteer.ext.jira
|
|
12
12
|
:no-inheritance-diagram:
|
|
13
13
|
|
|
@@ -16,3 +16,9 @@ documenteer.ext
|
|
|
16
16
|
|
|
17
17
|
.. automodapi:: documenteer.ext.mockcoderefs
|
|
18
18
|
:no-inheritance-diagram:
|
|
19
|
+
|
|
20
|
+
.. automodapi:: documenteer.ext.openapi
|
|
21
|
+
|
|
22
|
+
.. automodapi:: documenteer.ext.remotecodeblock
|
|
23
|
+
|
|
24
|
+
.. automodapi:: documenteer.ext.robots
|
|
@@ -5,7 +5,7 @@ Migrate legacy reStructuredText/Sphinx technical notes
|
|
|
5
5
|
######################################################
|
|
6
6
|
|
|
7
7
|
Introduced in December 2023, Rubin Observatory has a new technical note format for Markdown and reStructuredText documents.
|
|
8
|
-
This update provides many `new features <https://community.lsst.org/t/the-next-generation-of-rubin-observatory-technotes-with-documenteer-1-0/8166>`__
|
|
8
|
+
This update provides many `new features <https://community.lsst.org/t/the-next-generation-of-rubin-observatory-technotes-with-documenteer-1-0/8166>`__ including a responsive and branded page design, Markdown support, improved build configuration, automated bibliography management, and citation-ready metadata.
|
|
9
9
|
|
|
10
10
|
This page shows how to migrate your existing technotes with a command-line tool that largely automates the process.
|
|
11
11
|
This page also provides file-by-file notes in case you need to revise the migration.
|
|
@@ -16,39 +16,17 @@ This page also provides file-by-file notes in case you need to revise the migrat
|
|
|
16
16
|
|
|
17
17
|
LaTeX-format technotes are unaffected by this migration.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
Use the migration tool
|
|
20
|
+
======================
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
Documenteer provides a command-line tool, :command:`documenteer technote migrate`, to migrate legacy technotes to the new format.
|
|
23
|
+
The migration tool requires:
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
- Python 3.12 or later
|
|
26
|
+
- The :command:`uvx` command from the `uv`_ package
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.. tab-set::
|
|
31
|
-
|
|
32
|
-
.. tab-item:: pip
|
|
33
|
-
|
|
34
|
-
.. prompt:: bash
|
|
35
|
-
|
|
36
|
-
python -m pip install pipx
|
|
37
|
-
|
|
38
|
-
.. tab-item:: conda-forge
|
|
39
|
-
|
|
40
|
-
.. prompt:: bash
|
|
41
|
-
|
|
42
|
-
conda install -c conda-forge pipx
|
|
43
|
-
|
|
44
|
-
.. tab-item:: homebrew
|
|
45
|
-
|
|
46
|
-
.. prompt:: bash
|
|
47
|
-
|
|
48
|
-
brew install pipx
|
|
49
|
-
|
|
50
|
-
Step 2. Clone your technote and create a branch
|
|
51
|
-
===============================================
|
|
28
|
+
Step 1. Clone your technote and create a branch
|
|
29
|
+
-----------------------------------------------
|
|
52
30
|
|
|
53
31
|
Since the migration is performed locally, you need to clone the repository:
|
|
54
32
|
|
|
@@ -60,12 +38,12 @@ Then create a branch for the migration (see the `Developer Guide <https://develo
|
|
|
60
38
|
|
|
61
39
|
.. code-block:: bash
|
|
62
40
|
|
|
63
|
-
git switch -c
|
|
41
|
+
git switch -c technote-migration
|
|
64
42
|
|
|
65
43
|
Working from a branch allows you to create a pull request to verify the migration before merging it into the main branch.
|
|
66
44
|
|
|
67
|
-
Step
|
|
68
|
-
|
|
45
|
+
Step 2. Look up author IDs
|
|
46
|
+
--------------------------
|
|
69
47
|
|
|
70
48
|
The migration tool needs the IDs of the technote's authors to fully configure the technote's metadata.
|
|
71
49
|
|
|
@@ -74,15 +52,39 @@ For example, ``sickj`` is the ID for Jonathan Sick.
|
|
|
74
52
|
|
|
75
53
|
.. _technote-migration-tool:
|
|
76
54
|
|
|
77
|
-
Step
|
|
78
|
-
|
|
55
|
+
Step 3. Run the migration tool
|
|
56
|
+
------------------------------
|
|
79
57
|
|
|
80
58
|
From the root of the cloned technote repository, run the migration tool, listing any identified authors that are relevant to your technote:
|
|
81
59
|
|
|
82
60
|
.. code-block:: bash
|
|
83
61
|
:caption: Set author IDs with the -a option
|
|
84
62
|
|
|
85
|
-
|
|
63
|
+
uvx documenteer technote migrate -a sickj -a economouf
|
|
64
|
+
|
|
65
|
+
.. dropdown:: Details for installing uv/uvx...
|
|
66
|
+
|
|
67
|
+
The migration tool needs **Python 3.12 or later**.
|
|
68
|
+
You can verify this by running ``python --version`` from your shell.
|
|
69
|
+
|
|
70
|
+
This official migration procedure uses the :command:`uvx` command from uv_ to install and run the migration tool in an isolated Python environment.
|
|
71
|
+
|
|
72
|
+
If you don't have the :command:`uvx` command-line tool already, you can install ``uv`` several ways:
|
|
73
|
+
|
|
74
|
+
.. tab-set::
|
|
75
|
+
|
|
76
|
+
.. tab-item:: pip
|
|
77
|
+
|
|
78
|
+
.. prompt:: bash
|
|
79
|
+
|
|
80
|
+
python -m pip install uv
|
|
81
|
+
|
|
82
|
+
.. tab-item:: homebrew
|
|
83
|
+
|
|
84
|
+
.. prompt:: bash
|
|
85
|
+
|
|
86
|
+
brew install uv
|
|
87
|
+
|
|
86
88
|
|
|
87
89
|
When the migration runs, it shows a summary of the files changed and deleted.
|
|
88
90
|
Use ``git diff`` to review the changes in case you need to make tweaks before committing.
|
|
@@ -91,22 +93,21 @@ If you want to learn more about the changes made by the migration tool, you can
|
|
|
91
93
|
|
|
92
94
|
.. _technote-migration-markdown:
|
|
93
95
|
|
|
94
|
-
Step
|
|
95
|
-
|
|
96
|
+
Step 4 (optional). Migrate to Markdown
|
|
97
|
+
--------------------------------------
|
|
96
98
|
|
|
97
99
|
The new technote format supports Markdown as well as reStructuredText.
|
|
98
100
|
If you wish to use Markdown, you can use MyST Parser's migration tool:
|
|
99
101
|
|
|
100
102
|
.. prompt:: bash
|
|
101
103
|
|
|
102
|
-
|
|
103
|
-
rst2myst convert index.rst
|
|
104
|
+
uvx --from "rst-to-myst[sphinx]" rst2myst convert index.rst
|
|
104
105
|
|
|
105
106
|
The Markdown flavor used by the new technote format is MyST Markdown, which is a superset of CommonMark Markdown with support for Sphinx roles and directives.
|
|
106
107
|
See the `MyST Parser documentation <https://myst-parser.readthedocs.io/en/latest/syntax/roles-and-directives.html#roles-directives>`__ for more information.
|
|
107
108
|
|
|
108
|
-
Step
|
|
109
|
-
|
|
109
|
+
Step 5 (optional). Build the technote locally
|
|
110
|
+
---------------------------------------------
|
|
110
111
|
|
|
111
112
|
You can build the technote locally to verify that the migrated technote compiles successfully.
|
|
112
113
|
|
|
@@ -136,8 +137,8 @@ You might also want to run the linter to check links and find common issues:
|
|
|
136
137
|
If you have any questions or issues about the build, you should still proceed with committing and creating a pull request (see next step).
|
|
137
138
|
This way you can link to the repository when you reach out for help in `#square-docs-support`_ on Slack.
|
|
138
139
|
|
|
139
|
-
Step
|
|
140
|
-
|
|
140
|
+
Step 6. Commit the migration, pull request, and merge
|
|
141
|
+
-----------------------------------------------------
|
|
141
142
|
|
|
142
143
|
At this point, you should have a working technote in the new format.
|
|
143
144
|
If you haven't already, commit your work, push your branch to the GitHub repository, and open a pull request.
|
|
@@ -225,26 +226,6 @@ The new technote format requires some changes to this file: the title is now par
|
|
|
225
226
|
Additionally, the new technote format supports Markdown as well as reStructuredText.
|
|
226
227
|
See :ref:`migrate to Markdown <technote-migration-markdown>` to learn how to switch to Markdown.
|
|
227
228
|
|
|
228
|
-
.. tip::
|
|
229
|
-
|
|
230
|
-
Besides these changes, your technote can also be written in Markdown (:file:`index.md`).
|
|
231
|
-
If you wish to switch from ReStructuredText to Markdown, you can use MyST Parser's migration tool:
|
|
232
|
-
|
|
233
|
-
.. prompt:: bash
|
|
234
|
-
|
|
235
|
-
pipx install "rst-to-myst[sphinx]"
|
|
236
|
-
rst2myst convert index.rst
|
|
237
|
-
|
|
238
|
-
This procedure uses pipx_ to install the ``rst-to-myst`` tool in an isolated Python environment (you might have already installed pipx_ to run the :ref:`main migration tool <technote-migration-tool>`).
|
|
239
|
-
|
|
240
|
-
Finally, delete the original :file:`index.rst` file and edit :file:`index.md` to fix any formatting issues.
|
|
241
|
-
|
|
242
|
-
.. prompt:: bash
|
|
243
|
-
|
|
244
|
-
git rm index.rst
|
|
245
|
-
git add index.md
|
|
246
|
-
git commit -m "Switch to Markdown format"
|
|
247
|
-
|
|
248
229
|
Title
|
|
249
230
|
~~~~~
|
|
250
231
|
|
|
@@ -402,7 +383,7 @@ To start, add a :file:`.pre-commit-config.yaml` file:
|
|
|
402
383
|
|
|
403
384
|
.. tip::
|
|
404
385
|
|
|
405
|
-
You can add additional pre-commit hooks to this file to
|
|
386
|
+
You can add additional pre-commit hooks to this file to suit your needs.
|
|
406
387
|
See Pre-commit's `directory of available hooks <https://pre-commit.com/hooks.html>`__ for ideas.
|
|
407
388
|
|
|
408
389
|
requirements.txt file (updated)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
####################
|
|
2
|
+
Start a new technote
|
|
3
|
+
####################
|
|
4
|
+
|
|
5
|
+
Rubin Observatory staff can start a new technote through the rubin-obs.slack.com workspace.
|
|
6
|
+
This page explains how to create a new technote project in either the Markdown or reStructuredText format.
|
|
7
|
+
|
|
8
|
+
Prerequisites
|
|
9
|
+
=============
|
|
10
|
+
|
|
11
|
+
To create and edit a technote, you'll need access to the rubin-obs.slack.com workspace.
|
|
12
|
+
You'll also need push access to the technote.
|
|
13
|
+
If you don't have push access in the whole organization, you can ask an organization administrator to add you as a `collaborator <https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization>`__ to the technote's repository after you create it.
|
|
14
|
+
|
|
15
|
+
To create and edit a technote, you'll need:
|
|
16
|
+
|
|
17
|
+
1. Access to the rubin-obs.slack.com workspace
|
|
18
|
+
2. Push access to edit the technote repository after it's created
|
|
19
|
+
|
|
20
|
+
For GitHub access, you have two options:
|
|
21
|
+
|
|
22
|
+
- **Organization member**: If you have push access to the relevant GitHub organization (different technote series are hosted in different organizations), you'll automatically have access to your new technote repository.
|
|
23
|
+
- **External collaborator**: If you don't have organization-wide access, ask an organization administrator to add you as a `collaborator <https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization>`__ to the technote repository once it's created.
|
|
24
|
+
|
|
25
|
+
Create a technote repository through Slack
|
|
26
|
+
==========================================
|
|
27
|
+
|
|
28
|
+
1. In the rubin-obs.slack.com workspace, send a message to ``@Squarebot``:
|
|
29
|
+
|
|
30
|
+
.. code-block:: text
|
|
31
|
+
|
|
32
|
+
/msg @Squarebot create project
|
|
33
|
+
|
|
34
|
+
2. In response, a message with a drop-down appears. From the drop-down, select a template based on the preferred format:
|
|
35
|
+
|
|
36
|
+
- For reStructuredText: :menuselection:`Documents --> Technote (reStructuredText)`
|
|
37
|
+
- For Markdown: :menuselection:`Documents --> Technote (Markdown)`
|
|
38
|
+
|
|
39
|
+
3. Watch for threaded replies in Slack that provide a link to the GitHub repository and the technote's publication URL.
|
|
40
|
+
|
|
41
|
+
Next steps
|
|
42
|
+
==========
|
|
43
|
+
|
|
44
|
+
- :doc:`edit-locally`
|
|
45
|
+
- :doc:`edit-on-github`
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"""Support for Rubin BibTeX files for pybtex/sphinxcontrib.bibtex."""
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pybtex.style.formatting.plain
|
|
6
|
+
from pybtex.database import Entry, Person
|
|
7
|
+
from pybtex.plugin import register_plugin
|
|
8
|
+
from pybtex.style.formatting import toplevel
|
|
9
|
+
from pybtex.style.template import (
|
|
10
|
+
FieldIsMissing,
|
|
11
|
+
Node,
|
|
12
|
+
field,
|
|
13
|
+
first_of,
|
|
14
|
+
href,
|
|
15
|
+
join,
|
|
16
|
+
node,
|
|
17
|
+
optional,
|
|
18
|
+
optional_field,
|
|
19
|
+
sentence,
|
|
20
|
+
tag,
|
|
21
|
+
)
|
|
22
|
+
from sphinx.application import Sphinx
|
|
23
|
+
from sphinx.util.typing import ExtensionMetadata
|
|
24
|
+
|
|
25
|
+
from ..version import __version__
|
|
26
|
+
|
|
27
|
+
__all__ = ["setup"]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@node
|
|
31
|
+
def truncated_names(
|
|
32
|
+
children: list[Node], context: typing.Any, role: str, **kwargs: typing.Any
|
|
33
|
+
) -> Node:
|
|
34
|
+
"""Return formatted names, truncating long author lists."""
|
|
35
|
+
assert not children # noqa: S101 (matches pybtex original)
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
persons = context["entry"].persons[role]
|
|
39
|
+
except KeyError:
|
|
40
|
+
raise FieldIsMissing(role, context["entry"]) from None
|
|
41
|
+
|
|
42
|
+
# If there are more than 7 authors we return the first 3.
|
|
43
|
+
if len(persons) > 7:
|
|
44
|
+
persons = persons[:3] + [Person("others")]
|
|
45
|
+
style = context["style"]
|
|
46
|
+
formatted_names = [
|
|
47
|
+
style.format_name(person, style.abbreviate_names) for person in persons
|
|
48
|
+
]
|
|
49
|
+
return join(**kwargs)[formatted_names].format_data(context)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class LsstBibtexStyle(pybtex.style.formatting.plain.Style):
|
|
53
|
+
"""Bibtex style used for Rubin tech notes.
|
|
54
|
+
|
|
55
|
+
* Limits the number of authors for large author lists.
|
|
56
|
+
* Handles LaTeX journal macros.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
# Allows a mapping of journal or series name found in the bibtex file
|
|
60
|
+
# to a more usable name for the Sphinx output. In particular ADS returns
|
|
61
|
+
# bib entries that assume latex commands exist to convert from \apj
|
|
62
|
+
# to ApJ or Astrophys. J as needed (allowing each style to decide how
|
|
63
|
+
# to report journal names).
|
|
64
|
+
bib_to_display_name: typing.ClassVar = {
|
|
65
|
+
r"\actaa": "Acta Astron.",
|
|
66
|
+
r"\aap": "A&A",
|
|
67
|
+
r"\aaps": "A&AS",
|
|
68
|
+
r"\aj": "AJ",
|
|
69
|
+
r"\ao": "Appl. Opt.",
|
|
70
|
+
r"\apj": "ApJ",
|
|
71
|
+
r"\apjl": "ApJL",
|
|
72
|
+
r"\apjs": "ApJS",
|
|
73
|
+
r"\apss": "Ap&SS",
|
|
74
|
+
r"\araa": "ARA&A",
|
|
75
|
+
r"\icarus": "Icarus",
|
|
76
|
+
r"\memsai": "Mem. Soc. Ast. Italiana",
|
|
77
|
+
r"\mnras": "MNRAS",
|
|
78
|
+
r"\nat": "Nature",
|
|
79
|
+
r"\pasa": "PASA",
|
|
80
|
+
r"\pasj": "PASJ",
|
|
81
|
+
r"\pasp": "PASP",
|
|
82
|
+
r"\physrep": "Phys. Rep.",
|
|
83
|
+
r"\prd": "Phys. Rev. D.",
|
|
84
|
+
r"\procspie": "Proc. SPIE",
|
|
85
|
+
"Society of Photo-Optical Instrumentation Engineers (SPIE) Conference"
|
|
86
|
+
" Series": "Proc. SPIE",
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
def _rewrite_field(self, e: Entry, field: str) -> None:
|
|
90
|
+
"""Rewrite the field contents based on the bib name map."""
|
|
91
|
+
if field in e.fields:
|
|
92
|
+
bib_name = e.fields[field]
|
|
93
|
+
if modified_name := self.bib_to_display_name.get(bib_name):
|
|
94
|
+
e.fields[field] = modified_name
|
|
95
|
+
|
|
96
|
+
def get_article_template(self, e: Entry) -> Node:
|
|
97
|
+
# Fix up the journal name before rendering.
|
|
98
|
+
# In particular journal entries from ADS tend to use \apj style
|
|
99
|
+
# latex commands which need expanding.
|
|
100
|
+
self._rewrite_field(e, "journal")
|
|
101
|
+
return super().get_article_template(e)
|
|
102
|
+
|
|
103
|
+
def get_inproceedings_template(self, e: Entry) -> Node:
|
|
104
|
+
# Potentially modify the series string before formatting it.
|
|
105
|
+
self._rewrite_field(e, "series")
|
|
106
|
+
self._rewrite_field(e, "booktitle")
|
|
107
|
+
return super().get_inproceedings_template(e)
|
|
108
|
+
|
|
109
|
+
def format_docushare(self, e: Entry) -> str:
|
|
110
|
+
default_url = join["https://ls.st/", field("handle", raw=True)]
|
|
111
|
+
|
|
112
|
+
template = toplevel[
|
|
113
|
+
sentence[tag("b")["[", href[default_url, field("handle")], "]"]],
|
|
114
|
+
self.format_names("author"),
|
|
115
|
+
self.format_title(e, "title"),
|
|
116
|
+
sentence[field("year")],
|
|
117
|
+
sentence[optional_field("note")],
|
|
118
|
+
# Use URL if we have it, else provide own
|
|
119
|
+
first_of[
|
|
120
|
+
optional[self.format_url(e)],
|
|
121
|
+
# define our own URL
|
|
122
|
+
sentence["URL", href[default_url, default_url]],
|
|
123
|
+
],
|
|
124
|
+
]
|
|
125
|
+
return template.format_data(e)
|
|
126
|
+
|
|
127
|
+
def format_names(self, role: str, as_sentence: bool = True) -> Node: # noqa: FBT001, FBT002
|
|
128
|
+
# Copied from pybtex but using a different names function that
|
|
129
|
+
# caps the number of authors.
|
|
130
|
+
formatted_names = truncated_names(
|
|
131
|
+
role, sep=", ", sep2=" and ", last_sep=", and "
|
|
132
|
+
)
|
|
133
|
+
if as_sentence:
|
|
134
|
+
return sentence[formatted_names]
|
|
135
|
+
else:
|
|
136
|
+
return formatted_names
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def setup(app: Sphinx) -> ExtensionMetadata:
|
|
140
|
+
"""Add this plugin to the Sphinx application."""
|
|
141
|
+
register_plugin("pybtex.style.formatting", "lsst_aa", LsstBibtexStyle)
|
|
142
|
+
|
|
143
|
+
return {
|
|
144
|
+
"version": __version__,
|
|
145
|
+
"parallel_read_safe": True,
|
|
146
|
+
"parallel_write_safe": True,
|
|
147
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
documenteer[technote]>=2.0,<3
|
|
@@ -105,17 +105,26 @@ class TechnoteTomlFile:
|
|
|
105
105
|
) -> None:
|
|
106
106
|
"""Update a toml author table with the Author data."""
|
|
107
107
|
name_table = tomlkit.inline_table()
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
if author.given_name is not None:
|
|
109
|
+
name_table["given"] = author.given_name
|
|
110
|
+
if author.family_name is not None:
|
|
111
|
+
name_table["family"] = author.family_name
|
|
112
|
+
|
|
110
113
|
table["name"] = name_table
|
|
114
|
+
|
|
111
115
|
table["internal_id"] = author.internal_id
|
|
116
|
+
|
|
112
117
|
if author.orcid is not None:
|
|
113
118
|
table["orcid"] = str(author.orcid)
|
|
114
119
|
|
|
115
120
|
if "affiliations" not in table:
|
|
116
121
|
table.add("affiliations", tomlkit.aot())
|
|
117
122
|
affiliations_aot = cast(tomlkit.items.AoT, table["affiliations"])
|
|
118
|
-
|
|
123
|
+
|
|
124
|
+
existing_affiliation_ids = [
|
|
125
|
+
a["internal_id"] for a in affiliations_aot if "internal_id" in a
|
|
126
|
+
]
|
|
127
|
+
|
|
119
128
|
for affiliation in author.affiliations:
|
|
120
129
|
if affiliation.internal_id not in existing_affiliation_ids:
|
|
121
130
|
# Add a new affiliation
|
|
@@ -134,4 +143,5 @@ class TechnoteTomlFile:
|
|
|
134
143
|
) -> None:
|
|
135
144
|
t["name"] = affiliation_info.name
|
|
136
145
|
t["internal_id"] = affiliation_info.internal_id
|
|
137
|
-
|
|
146
|
+
if affiliation_info.ror is not None:
|
|
147
|
+
t["ror"] = str(affiliation_info.ror)
|