Support theme configuration via theme.toml
files
#12265
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
theme.conf
and INI-styled theme configuration has served Sphinx well for several years.However, the format suffers from under-specification and a lack of support for anything more than simple key-value pairs. This has led in recent history to adding support for lists of stylesheets or sidebar templates delimited by commas, which is not the most straightforwards.
This series of commits adds first-class support for theme configuration via
theme.toml
files, which are TOML-formatted documents.theme.conf
files remain supported. At some point in the future we may discuss deprecating support, but that seems some way off for now.We also include an automatic conversion tool via
python -m sphinx.theming conf_to_toml [THEME DIRECTORY]
, which writes a newtheme.toml
file to disk without modifying the existingtheme.conf
file.A