diff --git a/doc/config.rst b/doc/config.rst index 98b8a0cfa..649490cd2 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -770,6 +770,12 @@ the `Dublin Core metadata `_. output is usually not wise. This defaults to ``'epub'``, a theme designed to save visual space. +.. confval:: epub_theme_options + + A dictionary of options that influence the look and feel of the selected + theme. These are theme-specific. For the options understood by the builtin + themes, see :ref:`this section `. + .. confval:: epub_title The title of the document. It defaults to the :confval:`html_title` option diff --git a/doc/theming.rst b/doc/theming.rst index 802b211f4..334f6ffe7 100644 --- a/doc/theming.rst +++ b/doc/theming.rst @@ -200,10 +200,14 @@ These themes are: * **traditional** -- A theme resembling the old Python documentation. There are currently no options beyond *nosidebar* and *sidebarwidth*. -* **epub** -- A theme for the epub builder. There are currently no options. - This theme tries to save visual space which is a sparse resource on ebook - readers. +* **epub** -- A theme for the epub builder. This theme tries to save visual + space which is a sparse resource on ebook readers. The following options + are supported: + - **relbar1** (true or false, default true): If this is true, the + `relbar1` block is inserted in the epub output, otherwise it is omitted. + - **footer** (true or false, default true): If this is true, the + `footer` block is inserted in the epub output, otherwise it is ommitted. Creating themes --------------- diff --git a/sphinx/builders/epub.py b/sphinx/builders/epub.py index 3ee4de5f1..ba1eff5b4 100644 --- a/sphinx/builders/epub.py +++ b/sphinx/builders/epub.py @@ -174,7 +174,7 @@ class EpubBuilder(StandaloneHTMLBuilder): self.playorder = 0 def get_theme_config(self): - return self.config.epub_theme, {} + return self.config.epub_theme, self.config.epub_theme_options # generic support functions def make_id(self, name): diff --git a/sphinx/config.py b/sphinx/config.py index d4aacb225..37b2dcbd5 100644 --- a/sphinx/config.py +++ b/sphinx/config.py @@ -122,6 +122,7 @@ class Config(object): # Epub options epub_basename = (lambda self: make_filename(self.project), None), epub_theme = ('epub', 'html'), + epub_theme_options = ({}, 'html'), epub_title = (lambda self: self.html_title, 'html'), epub_author = ('unknown', 'html'), epub_language = (lambda self: self.language or 'en', 'html'), diff --git a/sphinx/themes/epub/layout.html b/sphinx/themes/epub/layout.html index 24395a66a..1f5ad077f 100644 --- a/sphinx/themes/epub/layout.html +++ b/sphinx/themes/epub/layout.html @@ -14,3 +14,12 @@ {% block sidebar2 %}{% endblock %} {% block relbar2 %}{% endblock %} {% block linktags %}{% endblock %} + +{# redefine relbar1 and footer to only call super if options are true #} +{%- block relbar1 %} +{% if theme_relbar1|tobool %}{{ super() }}{% endif %} +{%- endblock %} +{%- block footer %} +{% if theme_footer|tobool %}{{ super() }}{% endif %} +{%- endblock %} + diff --git a/sphinx/themes/epub/theme.conf b/sphinx/themes/epub/theme.conf index d5806ec50..11f098ec9 100644 --- a/sphinx/themes/epub/theme.conf +++ b/sphinx/themes/epub/theme.conf @@ -2,3 +2,7 @@ inherit = basic stylesheet = epub.css pygments_style = none + +[options] +relbar1 = true +footer = true