Theming an organizations’s technotes¶
Technotes are intended to be branded and customized by each organization that creates and publishes theme. The general steps for creating a technote theme are:
- Create a Python package that individual technote projects can import (such as from PyPI, conda-forge, or even GitHub). This package needs to include - technoteas a dependency. For example, Rubin Observatory uses Documenteer (lsst-sqre/documenteer) as its theme package.
- Create a configuration module that imports the base technote configuration and then appends any additional Sphinx configurations. - from technote.sphinxconf import * # Add additional configurations below - For an example, see Documenteer’s configuration module. - To access metadata and configuration from - technote.toml, use the- Tvariable exported from- technote.sphinxconf, which is an instance of- TechnoteSphinxConfig.
- Add custom CSS. Declare the CSS file in your package to the - html_static_pathvariable in the Sphinx configuration module, and then append the name of that CSS file to the- html_css_fileslist in the Sphinx configuration module.
- Add Jinja custom templates that override the built-in ones from technote (see the templates on GitHub). Declare the directory in your package containing these templates to the - templates_pathvariable in the Sphinx configuration module.
- Set the logos and the logos’ links by setting - html_theme_options. For example:- html_theme_options = { "light_logo": "rubin-imagotype-color-on-white-crop.svg", "dark_logo": "rubin-imagotype-color-on-black-crop.svg", "logo_link_url": "https://www.lsst.io", "logo_alt_text": "Rubin Observatory logo", } - Don’t forget to declare the path locations of image assets in your package to the - html_static_pathvariable in the Sphinx configuration module.