From 500398b8195fed344ed376f7c518e8cf7bae56c2 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Tue, 15 Oct 2019 23:16:33 +0300 Subject: [PATCH] PDF Documentation Build tox target This patch adds a `pdf-docs` tox target that will build PDF versions of our docs. As per the Train community goal: https://governance.openstack.org/tc/goals/selected/train/pdf-doc-generation.html Add sphinxcontrib-svg2pdfconverter to doc/requirements.txt to convert our SVGs. Change-Id: I5d6f04dfc81897029200ac67c574af07c28d564f Story: 2006105 --- doc/requirements.txt | 3 ++- doc/source/_static/ .gitkeep | 0 doc/source/conf.py | 28 +++++++++++++++++++++++++--- doc/source/configure-haproxy.rst | 2 +- tox.ini | 12 +++++++++++- 5 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 doc/source/_static/ .gitkeep diff --git a/doc/requirements.txt b/doc/requirements.txt index a4fd173..a78d386 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -10,7 +10,8 @@ # automatically be proposed to all the repositories which use it. sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD +sphinx>=1.8.0,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD +sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD openstackdocstheme>=1.20.0 # Apache-2.0 reno>=2.5.0 # Apache-2.0 doc8>=0.6.0 # Apache-2.0 diff --git a/doc/source/_static/ .gitkeep b/doc/source/_static/ .gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/doc/source/conf.py b/doc/source/conf.py index a99d239..12875e3 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -22,6 +22,7 @@ # All configuration values have a default; values that are commented out # serve to show the default. +import openstackdocstheme import pbr.version # If extensions (or modules to document with autodoc) are in another directory, @@ -40,6 +41,8 @@ import pbr.version extensions = [ 'openstackdocstheme', 'sphinx.ext.autodoc', + 'sphinx.ext.extlinks', + 'sphinxcontrib.rsvgconverter', ] # Add any paths that contain templates here, relative to this directory. @@ -64,13 +67,22 @@ description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.' project = 'OpenStack-Ansible' role_name = 'haproxy_server' target_name = 'openstack-ansible-' + role_name -title = 'OpenStack-Ansible Documentation: ' + role_name + 'role' +title = 'OpenStack-Ansible Documentation: ' + role_name + ' role' # The link to the browsable source code (for the left hand menu) oslosphinx_cgit_link = ( "https://opendev.org/openstack/{}".format(target_name) ) +# References variable for substitutions +current_series = openstackdocstheme.ext._get_series_name() +dev_docs_prefix = "https://docs.openstack.org/openstack-ansible/{}/%s".format( + current_series +) + +# Format: Reference name: (string containing %s for substitution, linkname) +extlinks = {'dev_docs': (dev_docs_prefix, '')} + # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. @@ -250,10 +262,12 @@ latex_elements = { # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, target_name + '.tex', - title, author, 'manual'), + (master_doc, 'doc-' + target_name + '.tex', + title.replace("_", "\_"), author, 'manual'), ] +latex_use_xindy = False + # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None @@ -310,3 +324,11 @@ texinfo_documents = [ # If true, do not generate a @detailmenu in the "Top" node's menu. # texinfo_no_detailmenu = False +# -- Options for PDF output -------------------------------------------------- + +pdf_documents = [ + (master_doc, target_name, + title, author) +] + +locale_dirs = ['locale/'] diff --git a/doc/source/configure-haproxy.rst b/doc/source/configure-haproxy.rst index 700ab0e..3611853 100644 --- a/doc/source/configure-haproxy.rst +++ b/doc/source/configure-haproxy.rst @@ -12,7 +12,7 @@ host in the ``haproxy_hosts`` group. Ensure you review the services exposed by HAProxy and limit access to these services to trusted users and networks only. For more details, - refer to the :ref:`least-access-openstack-services` section. + refer to the :dev_docs:`Securing network access to OpenStack services ` section. .. note:: diff --git a/tox.ini b/tox.ini index 32b006e..454d209 100644 --- a/tox.ini +++ b/tox.ini @@ -35,12 +35,22 @@ setenv = [testenv:docs] basepython = python3 deps = -r{toxinidir}/doc/requirements.txt -commands= +commands = bash -c "rm -rf doc/build" doc8 doc sphinx-build -b html doc/source doc/build/html +[testenv:pdf-docs] +basepython = python3 +deps = {[testenv:docs]deps} +whitelist_externals = + make +commands = + sphinx-build -W -b latex doc/source doc/build/pdf + make -C doc/build/pdf + + [doc8] # Settings for doc8: extensions = .rst