From 88bc0fade74cb2eae04ff50e6b11b1e326bf66de Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Thu, 17 Oct 2019 17:29:15 +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: I0ea6477cb62773a1c9c82e77204c9bc72255a892 Story: 2006105 --- doc/requirements.txt | 3 ++- doc/source/_static/.gitkeep | 0 doc/source/conf.py | 36 +++++++++++++++++++----------------- tox.ini | 12 +++++++++++- 4 files changed, 32 insertions(+), 19 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 71ae97c..d3a9304 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -22,9 +22,7 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import openstackdocstheme import pbr.version -import os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -41,7 +39,8 @@ import os # ones. extensions = [ 'openstackdocstheme', - 'sphinx.ext.autodoc' + 'sphinx.ext.autodoc', + 'sphinxcontrib.rsvgconverter', ] # Add any paths that contain templates here, relative to this directory. @@ -66,7 +65,7 @@ description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.' project = 'OpenStack-Ansible' role_name = 'memcached_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 = ( @@ -84,17 +83,10 @@ release = version_info.version_string_with_vcs() # The short X.Y version. version = version_info.canonical_version_string() -# A few variables have to be set for the log-a-bug feature. -# gitsha: The SHA checksum of the bug description. -# Automatically extracted from git log. -# bug_tag: Tag for categorizing the bug. Must be set manually. -# These variables are passed to the logabug code via html_context. -git_cmd = "/usr/bin/git log | head -n1 | cut -f2 -d' '" -gitsha = os.popen(git_cmd).read().strip('\n') +# openstackdocstheme options +repository_name = 'openstack/' + target_name bug_project = project.lower() -bug_title = "Documentation bug" -html_context = {"gitsha": gitsha, "bug_tag": "docs", - "bug_title": bug_title, "bug_project": bug_project} +bug_tag = '' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -153,7 +145,7 @@ html_theme = 'openstackdocs' # html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -html_theme_path = [openstackdocstheme.get_html_theme_path()] +# html_theme_path = [openstackdocstheme.get_html_theme_path()] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". @@ -259,10 +251,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 @@ -319,3 +313,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/tox.ini b/tox.ini index d5d9cc1..7c9e266 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