Configure additional properties

Configure the 'html_last_updated_fmt', 'latex_engine' and
'latex_elements' attributes automatically. Documentation is updated to
reflect the fact that these no longer need to be configured by hand.

Change-Id: I429b981135e35845bf5ed70020abfef3deccbf90
This commit is contained in:
Stephen Finucane 2018-02-15 17:15:40 +00:00
parent d03cea1f34
commit 3c8b2a6988
4 changed files with 75 additions and 88 deletions

View File

@ -2,14 +2,6 @@
# #
# openstackdocstheme documentation build configuration file # openstackdocstheme documentation build configuration file
import openstackdocstheme
# Release name for PDF documents
latex_custom_template = r"""
\usepackage{""" + openstackdocstheme.get_pdf_theme_path() + """}
\\newcommand{\openstacklogo}{""" + openstackdocstheme.get_openstack_logo_path() + """}
"""
# -- General configuration ------------------------------------------------ # -- General configuration ------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
@ -63,23 +55,6 @@ html_static_path = ['_static/css']
# -- Options for LaTeX output --------------------------------------------- # -- Options for LaTeX output ---------------------------------------------
latex_engine = 'xelatex'
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
'papersize': 'a4paper',
# The font size ('10pt', '11pt' or '12pt').
'pointsize': '11pt',
#Default figure align
'figure_align': 'H',
# Not to generate blank page after chapter
'classoptions': ',openany',
# Additional stuff for the LaTeX preamble.
'preamble': latex_custom_template,
}
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, # (source start file, target name, title,

View File

@ -32,12 +32,8 @@ Using the theme
and then in your ``conf.py`` you can remove the import statement and and then in your ``conf.py`` you can remove the import statement and
extension listing for *oslosphinx*. extension listing for *oslosphinx*.
#. Then modify your Sphinx settings in ``conf.py`` to include:: #. Once done, you should add ``'openstackdocstheme'`` to the list of extensions
Sphinx needs to initialize and configure the theme::
html_theme = 'openstackdocs'
#. and to add ``'openstackdocstheme'`` to the list of extensions
Sphinx needs to initialize::
extensions = [ extensions = [
# ... # ...
@ -45,6 +41,8 @@ Using the theme
# ... # ...
] ]
html_theme = 'openstackdocs'
#. Set the options to link to the git repository and bug tracker. #. Set the options to link to the git repository and bug tracker.
``repository_name`` ``repository_name``
@ -74,33 +72,61 @@ Using the theme
bug_project = '721' bug_project = '721'
bug_tag = '' bug_tag = ''
#. Enable the "last-updated" information by setting the format for the #. Remove the options that will be automatically configured by the theme.
timestamp::
# Must set this variable to include year, month, day, hours, and minutes. - ``project``
html_last_updated_fmt = '%Y-%m-%d %H:%M' - ``html_last_updated_fmt``
- ``latex_engine``
- ``latex_elements``
#. If you are using this theme for API reference documentation, set the sidebar In addition, if your documentation is versioned, you should remove the
navigation in the `html_theme_options` in the `conf.py` file:: options related to versioning.
- ``version``
- ``release``
.. versionchanged:: 1.20
In older versions of *openstackdocstheme*, it was necessary to manually
configure the ``html_last_updated_fmt`` option for HTML output and the
``latex_engine`` and ``latex_elements`` options if you required PDF output.
This is no longer the case as these attributes are now configured
automatically.
Additional Configuration
------------------------
If you are using this theme for API reference documentation, set the sidebar
navigation in the ``html_theme_options`` in the ``conf.py`` file::
# To use the API Reference sidebar dropdown menu, # To use the API Reference sidebar dropdown menu,
# uncomment the html_theme_options parameter. The theme # uncomment the html_theme_options parameter. The theme
# variable, sidebar_dropdown, should be set to `api_ref`. # variable, sidebar_dropdown, should be set to `api_ref`.
# Otherwise, the list of links for the User and Ops docs # Otherwise, the list of links for the User and Ops docs
# appear in the sidebar dropdown menu. # appear in the sidebar dropdown menu.
html_theme_options = {"sidebar_dropdown": "api_ref", html_theme_options = {
"sidebar_mode": "toc"} # ...
"sidebar_dropdown": "api_ref",
"sidebar_mode": "toc",
# ...
}
#. If you are using this theme for documentation you want to release based on If you are using this theme for documentation you want to release based on git
git tags on your repository, set the release dropdown menu option in the tags on your repository, set the release dropdown menu option in the
`html_theme_options` in the `conf.py` file. By default it is set to False.:: ``html_theme_options`` in the ``conf.py`` file. By default it is set to
``False``::
html_theme_options = {"show_other_versions": "True"} html_theme_options = {
# ...
"show_other_versions": "True",
# ...
}
#. If you are using this theme for a project with published If you are using this theme for a project with published documentation that
documentation that predates the mitaka release cycle, set the predates the Mitaka release cycle, set the earliest published version in the
``earliest_published_series`` theme option to the name of the first ``html_theme_options`` in the ``conf.py`` file to the name of the first series
series with documentation available.:: with documentation available. By default it is set to ``None``::
html_theme_options = { html_theme_options = {
# ... # ...
@ -110,36 +136,8 @@ Using the theme
.. warning:: .. warning::
Do not use this for release-notes as they are always published Do not use this for release-notes as they are always published as one
as one document with internal versioning. document with internal versioning.
#. To generate a PDF document using ``openstackdocstheme``, add a latex
preamble to properly use OpenStack logo image and a font file,
and make sure that release, title, and author information is correctly
set in the `conf.py` file::
pdf_theme_path = openstackdocstheme.get_pdf_theme_path()
openstack_logo = openstackdocstheme.get_openstack_logo_path()
latex_custom_template = r"""
\newcommand{\openstacklogo}{%s}
\usepackage{%s}
""" % (openstack_logo, pdf_theme_path)
latex_elements = {
# ...
# Additional stuff for the LaTeX preamble.
'preamble': latex_custom_template,
}
release = '15.0.0'
latex_documents = [
('index', '[Output_filename].tex', u'[Title]',
u'OpenStack contributors', 'manual'),
]
latex_engine = 'xelatex'
External Link Helper External Link Helper
@ -154,11 +152,6 @@ In the ``conf.py`` for the source documentation, add:
.. code-block:: python .. code-block:: python
extensions = [
# ...
'openstackdocstheme',
]
openstack_projects = ['horizon'] openstack_projects = ['horizon']
Then in the documentation source, link to a target using syntax like: Then in the documentation source, link to a target using syntax like:

View File

@ -213,12 +213,28 @@ def _builder_inited(app):
if project_name: if project_name:
app.config.project = project_name app.config.project = project_name
app.config.html_last_updated_fmt = '%Y-%m-%d %H:%M'
# ...except for version/release which, if blank, should remain that way to # ...except for version/release which, if blank, should remain that way to
# cater for unversioned documents # cater for unversioned documents
if app.config.version != '': if app.config.version != '':
app.config.version = version app.config.version = version
app.config.release = version app.config.release = version
openstack_logo = paths.get_openstack_logo_path()
pdf_theme_path = paths.get_pdf_theme_path()
app.config.latex_engine = 'xelatex'
app.config.latex_elements = {
'papersize': 'a4paper',
'pointsize': '11pt',
'figure_align': 'H',
'classoptions': ',openany',
'preamble': r"""
\usepackage{""" + pdf_theme_path + """}
\\newcommand{\openstacklogo}{""" + openstack_logo + """}
"""}
def setup(app): def setup(app):
logger.info('connecting events for openstackdocstheme') logger.info('connecting events for openstackdocstheme')

View File

@ -7,6 +7,9 @@ features:
- ``project`` - ``project``
- ``version`` - ``version``
- ``release`` - ``release``
- ``html_last_updated_fmt``
- ``latex_engine``
- ``latex_elements``
It is not necessary to retain any configuration in ``conf.py`` and, in most It is not necessary to retain any configuration in ``conf.py`` and, in most
cases, such configuration will be ignored. The sole exceptions to this rule cases, such configuration will be ignored. The sole exceptions to this rule