mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
LaTeX: Make the `toplevel_sectioning
` setting optional in LaTeX theme
This commit is contained in:
parent
e666a85cf3
commit
bc1387cabb
2
CHANGES
2
CHANGES
@ -13,6 +13,8 @@ Deprecated
|
||||
Features added
|
||||
--------------
|
||||
|
||||
* LaTeX: Make the ``toplevel_sectioning`` setting optional in LaTeX theme
|
||||
|
||||
Bugs fixed
|
||||
----------
|
||||
|
||||
|
@ -66,20 +66,30 @@ class BuiltInTheme(Theme):
|
||||
class UserTheme(Theme):
|
||||
"""A user defined LaTeX theme."""
|
||||
|
||||
REQUIRED_CONFIG_KEYS = ['docclass', 'wrapperclass']
|
||||
OPTIONAL_CONFIG_KEYS = ['toplevel_sectioning']
|
||||
|
||||
def __init__(self, name: str, filename: str) -> None:
|
||||
self.name = name
|
||||
super().__init__(name)
|
||||
self.config = configparser.RawConfigParser()
|
||||
self.config.read(path.join(filename))
|
||||
|
||||
for key in self.REQUIRED_CONFIG_KEYS:
|
||||
try:
|
||||
self.docclass = self.config.get('theme', 'docclass')
|
||||
self.wrapperclass = self.config.get('theme', 'wrapperclass')
|
||||
self.toplevel_sectioning = self.config.get('theme', 'toplevel_sectioning')
|
||||
value = self.config.get('theme', key)
|
||||
setattr(self, key, value)
|
||||
except configparser.NoSectionError:
|
||||
raise ThemeError(__('%r doesn\'t have "theme" setting') % filename)
|
||||
except configparser.NoOptionError as exc:
|
||||
raise ThemeError(__('%r doesn\'t have "%s" setting') % (filename, exc.args[0]))
|
||||
|
||||
for key in self.OPTIONAL_CONFIG_KEYS:
|
||||
try:
|
||||
value = self.config.get('theme', key)
|
||||
setattr(self, key, value)
|
||||
except configparser.NoOptionError:
|
||||
pass
|
||||
|
||||
|
||||
class ThemeFactory:
|
||||
"""A factory class for LaTeX Themes."""
|
||||
|
Loading…
Reference in New Issue
Block a user