diff --git a/CHANGES b/CHANGES
index b91062f68..6a7e76b8f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -21,6 +21,7 @@ Incompatible changes
* #4389: output directory will be created after loading extensions
* autodoc does not generate warnings messages to the generated document even if
:confval:`keep_warnings` is True. They are only emitted to stderr.
+* shebang line is removed from generated conf.py
Deprecated
----------
@@ -75,6 +76,11 @@ Features added
* #4183: doctest: ``:pyversion:`` option also follows PEP-440 specification
* #4235: html: Add :confval:`manpages_url` to make manpage roles to hyperlinks
* #3570: autodoc: Do not display 'typing.' module for type hints
+* #4354: sphinx-build now emits finish message. Builders can modify it through
+ ``Builder.epilog`` attribute
+* #4245: html themes: Add ``language`` to javascript vars list
+* #4079: html: Add ``notranslate`` class to each code-blocks, literals and maths
+ to let Google Translate know they are not translatable
* #4271: sphinx-build supports an option called ``-j auto`` to adjust numbers of
processes automatically.
@@ -107,6 +113,8 @@ Features removed
* LaTeX environment ``notice``, use ``sphinxadmonition`` instead
* LaTeX ``\sphinxstylethead``, use ``\sphinxstyletheadfamily``
* C++, support of function concepts. Thanks to mickk-on-cpp.
+* Not used and previously not documented LaTeX macros ``\shortversion``
+ and ``\setshortversion``
Bugs fixed
diff --git a/doc/extdev/builderapi.rst b/doc/extdev/builderapi.rst
index 668f46698..b8ff0595b 100644
--- a/doc/extdev/builderapi.rst
+++ b/doc/extdev/builderapi.rst
@@ -15,6 +15,7 @@ Builder API
.. autoattribute:: name
.. autoattribute:: format
+ .. autoattribute:: epilog
.. autoattribute:: supported_image_types
These methods are predefined and will be called from the application:
diff --git a/sphinx/application.py b/sphinx/application.py
index e76f101a3..8a22a9e6d 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -338,6 +338,13 @@ class Sphinx(object):
(status, self._warncount)))
else:
logger.info(bold(__('build %s.') % status))
+
+ if self.statuscode == 0 and self.builder.epilog:
+ logger.info('')
+ logger.info(self.builder.epilog % {
+ 'outdir': path.relpath(self.outdir),
+ 'project': self.config.project
+ })
except Exception as err:
# delete the saved env to force a fresh build next time
envfile = path.join(self.doctreedir, ENV_PICKLE_FILENAME)
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index a1e360d2f..51578a1d6 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -54,6 +54,11 @@ class Builder(object):
name = '' # type: unicode
#: The builder's output format, or '' if no document output is produced.
format = '' # type: unicode
+ #: The message emitted upon successful build completion. This can be a
+ #: printf-style template string with the following keys: ``outdir``,
+ #: ``project``
+ epilog = '' # type: unicode
+
# default translator class for the builder. This will be overrided by
# ``app.set_translator()``.
default_translator_class = None # type: nodes.NodeVisitor
diff --git a/sphinx/builders/applehelp.py b/sphinx/builders/applehelp.py
index 52ba2ce5c..0426be331 100644
--- a/sphinx/builders/applehelp.py
+++ b/sphinx/builders/applehelp.py
@@ -75,6 +75,10 @@ class AppleHelpBuilder(StandaloneHTMLBuilder):
on the ``hiutil`` command line tool.
"""
name = 'applehelp'
+ epilog = ('The help book is in %(outdir)s.\n'
+ 'Note that won\'t be able to view it unless you put it in '
+ '~/Library/Documentation/Help or install it in your application '
+ 'bundle.')
# don't copy the reST source
copysource = False
diff --git a/sphinx/builders/changes.py b/sphinx/builders/changes.py
index 5309649c6..ff80250a3 100644
--- a/sphinx/builders/changes.py
+++ b/sphinx/builders/changes.py
@@ -38,6 +38,7 @@ class ChangesBuilder(Builder):
Write a summary with all versionadded/changed directives.
"""
name = 'changes'
+ epilog = 'The overview file is in %(outdir)s.'
def init(self):
# type: () -> None
diff --git a/sphinx/builders/devhelp.py b/sphinx/builders/devhelp.py
index 88a9be219..c5e9eb6ea 100644
--- a/sphinx/builders/devhelp.py
+++ b/sphinx/builders/devhelp.py
@@ -43,6 +43,10 @@ class DevhelpBuilder(StandaloneHTMLBuilder):
Builder that also outputs GNOME Devhelp file.
"""
name = 'devhelp'
+ epilog = ('To view the help file:\n'
+ '$ mkdir -p $HOME/.local/share/devhelp/%(project)s\n'
+ '$ ln -s %(outdir)s $HOME/.local/share/devhelp/%(project)s\n'
+ '$ devhelp')
# don't copy the reST source
copysource = False
diff --git a/sphinx/builders/dummy.py b/sphinx/builders/dummy.py
index 74a3d4187..08d99a584 100644
--- a/sphinx/builders/dummy.py
+++ b/sphinx/builders/dummy.py
@@ -21,6 +21,8 @@ if False:
class DummyBuilder(Builder):
name = 'dummy'
+ epilog = 'The dummy builder generates no files.'
+
allow_parallel = True
def init(self):
diff --git a/sphinx/builders/epub3.py b/sphinx/builders/epub3.py
index 92c55c880..c98c4b853 100644
--- a/sphinx/builders/epub3.py
+++ b/sphinx/builders/epub3.py
@@ -63,6 +63,7 @@ class Epub3Builder(_epub_base.EpubBuilder):
an epub file.
"""
name = 'epub'
+ epilog = 'The ePub file is in %(outdir)s.'
supported_remote_images = False
template_dir = path.join(package_dir, 'templates', 'epub3')
diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py
index 464d574cc..f7f0d6811 100644
--- a/sphinx/builders/gettext.py
+++ b/sphinx/builders/gettext.py
@@ -214,6 +214,7 @@ class MessageCatalogBuilder(I18nBuilder):
Builds gettext-style message catalogs (.pot files).
"""
name = 'gettext'
+ epilog = 'The message catalogs are in %(outdir)s.'
def init(self):
# type: () -> None
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index f9c9420c2..dcbc59280 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -153,6 +153,8 @@ class StandaloneHTMLBuilder(Builder):
"""
name = 'html'
format = 'html'
+ epilog = 'The HTML pages are in %(outdir)s.'
+
copysource = True
allow_parallel = True
out_suffix = '.html'
@@ -1066,6 +1068,8 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
HTML page.
"""
name = 'singlehtml'
+ epilog = 'The HTML page is in %(outdir)s.'
+
copysource = False
def get_outdated_docs(self): # type: ignore
@@ -1328,12 +1332,14 @@ class PickleHTMLBuilder(SerializingHTMLBuilder):
"""
A Builder that dumps the generated HTML into pickle files.
"""
+ name = 'pickle'
+ epilog = 'You can now process the pickle files in %(outdir)s.'
+
implementation = pickle
implementation_dumps_unicode = False
additional_dump_args = (pickle.HIGHEST_PROTOCOL,)
indexer_format = pickle
indexer_dumps_unicode = False
- name = 'pickle'
out_suffix = '.fpickle'
globalcontext_filename = 'globalcontext.pickle'
searchindex_filename = 'searchindex.pickle'
@@ -1347,11 +1353,13 @@ class JSONHTMLBuilder(SerializingHTMLBuilder):
"""
A builder that dumps the generated HTML into JSON files.
"""
+ name = 'json'
+ epilog = 'You can now process the JSON files in %(outdir)s.'
+
implementation = jsonimpl
implementation_dumps_unicode = True
indexer_format = jsonimpl
indexer_dumps_unicode = True
- name = 'json'
out_suffix = '.fjson'
globalcontext_filename = 'globalcontext.json'
searchindex_filename = 'searchindex.json'
diff --git a/sphinx/builders/htmlhelp.py b/sphinx/builders/htmlhelp.py
index 0b45601e3..63fba05f3 100644
--- a/sphinx/builders/htmlhelp.py
+++ b/sphinx/builders/htmlhelp.py
@@ -174,6 +174,8 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder):
index files. Adapted from the original Doc/tools/prechm.py.
"""
name = 'htmlhelp'
+ epilog = ('You can now run HTML Help Workshop with the .htp file in '
+ '%(outdir)s.')
# don't copy the reST source
copysource = False
diff --git a/sphinx/builders/latex.py b/sphinx/builders/latex.py
index 8fdb2fa49..088f5d9ef 100644
--- a/sphinx/builders/latex.py
+++ b/sphinx/builders/latex.py
@@ -49,6 +49,12 @@ class LaTeXBuilder(Builder):
"""
name = 'latex'
format = 'latex'
+ epilog = 'The LaTeX files are in %(outdir)s.'
+ if os.name == 'posix':
+ epilog += ("\nRun 'make' in that directory to run these through "
+ "(pdf)latex\n"
+ "(use `make latexpdf' here to do that automatically).")
+
supported_image_types = ['application/pdf', 'image/png', 'image/jpeg']
supported_remote_images = False
default_translator_class = LaTeXTranslator
diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py
index ca62b9fe1..c1a47607b 100644
--- a/sphinx/builders/linkcheck.py
+++ b/sphinx/builders/linkcheck.py
@@ -90,6 +90,8 @@ class CheckExternalLinksBuilder(Builder):
Checks for broken external links.
"""
name = 'linkcheck'
+ epilog = ('Look for any errors in the above output or in '
+ '%(outdir)s/output.txt')
def init(self):
# type: () -> None
diff --git a/sphinx/builders/manpage.py b/sphinx/builders/manpage.py
index b57a756ee..8f7800846 100644
--- a/sphinx/builders/manpage.py
+++ b/sphinx/builders/manpage.py
@@ -40,6 +40,8 @@ class ManualPageBuilder(Builder):
"""
name = 'man'
format = 'man'
+ epilog = 'The manual pages are in %(outdir)s.'
+
default_translator_class = ManualPageTranslator
supported_image_types = [] # type: List[unicode]
diff --git a/sphinx/builders/qthelp.py b/sphinx/builders/qthelp.py
index 2f56792a9..9d08df2a3 100644
--- a/sphinx/builders/qthelp.py
+++ b/sphinx/builders/qthelp.py
@@ -108,6 +108,11 @@ class QtHelpBuilder(StandaloneHTMLBuilder):
Builder that also outputs Qt help project, contents and index files.
"""
name = 'qthelp'
+ epilog = ('You can now run "qcollectiongenerator" with the .qhcp '
+ 'project file in %(outdir)s, like this:\n'
+ '$ qcollectiongenerator %(outdir)s/%(project)s.qhcp\n'
+ 'To view the help file:\n'
+ '$ assistant -collectionFile %(outdir)s/%(project)s.qhc')
# don't copy the reST source
copysource = False
diff --git a/sphinx/builders/texinfo.py b/sphinx/builders/texinfo.py
index 82c6f1b9d..39653c117 100644
--- a/sphinx/builders/texinfo.py
+++ b/sphinx/builders/texinfo.py
@@ -9,6 +9,7 @@
:license: BSD, see LICENSE for details.
"""
+import os
from os import path
from docutils import nodes
@@ -97,6 +98,12 @@ class TexinfoBuilder(Builder):
"""
name = 'texinfo'
format = 'texinfo'
+ epilog = 'The Texinfo files are in %(outdir)s.'
+ if os.name == 'posix':
+ epilog += ("\nRun 'make' in that directory to run these through "
+ "makeinfo\n"
+ "(use 'make info' here to do that automatically).")
+
supported_image_types = ['image/png', 'image/jpeg',
'image/gif']
default_translator_class = TexinfoTranslator
diff --git a/sphinx/builders/text.py b/sphinx/builders/text.py
index 7b977b1b9..a7ecd0e68 100644
--- a/sphinx/builders/text.py
+++ b/sphinx/builders/text.py
@@ -31,6 +31,8 @@ logger = logging.getLogger(__name__)
class TextBuilder(Builder):
name = 'text'
format = 'text'
+ epilog = 'The text files are in %(outdir)s.'
+
out_suffix = '.txt'
allow_parallel = True
default_translator_class = TextTranslator
diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py
index 599530ac1..80d7723aa 100644
--- a/sphinx/builders/xml.py
+++ b/sphinx/builders/xml.py
@@ -35,6 +35,8 @@ class XMLBuilder(Builder):
"""
name = 'xml'
format = 'xml'
+ epilog = 'The XML files are in %(outdir)s.'
+
out_suffix = '.xml'
allow_parallel = True
@@ -108,6 +110,8 @@ class PseudoXMLBuilder(XMLBuilder):
"""
name = 'pseudoxml'
format = 'pseudoxml'
+ epilog = 'The pseudo-XML files are in %(outdir)s.'
+
out_suffix = '.pseudoxml'
_writer_class = PseudoXMLWriter
diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py
index 476a0ed46..74d004ad1 100644
--- a/sphinx/ext/coverage.py
+++ b/sphinx/ext/coverage.py
@@ -50,8 +50,12 @@ def compile_regex_list(name, exps):
class CoverageBuilder(Builder):
-
+ """
+ Evaluates coverage of code in the documentation.
+ """
name = 'coverage'
+ epilog = ('Testing of coverage in the sources finished, look at the '
+ 'results in %(outdir)s/python.txt.')
def init(self):
# type: () -> None
diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py
index 948ddfec8..1a1c05998 100644
--- a/sphinx/ext/doctest.py
+++ b/sphinx/ext/doctest.py
@@ -271,6 +271,8 @@ class DocTestBuilder(Builder):
Runs test snippets in the documentation.
"""
name = 'doctest'
+ epilog = ('Testing of doctests in the sources finished, look at the '
+ 'results in %(outdir)s/output.txt.')
def init(self):
# type: () -> None
diff --git a/sphinx/ext/jsmath.py b/sphinx/ext/jsmath.py
index a74f0641a..0858e4d5d 100644
--- a/sphinx/ext/jsmath.py
+++ b/sphinx/ext/jsmath.py
@@ -20,14 +20,14 @@ from sphinx.ext.mathbase import get_node_equation_number
def html_visit_math(self, node):
- self.body.append(self.starttag(node, 'span', '', CLASS='math'))
+ self.body.append(self.starttag(node, 'span', '', CLASS='math notranslate'))
self.body.append(self.encode(node['latex']) + '')
raise nodes.SkipNode
def html_visit_displaymath(self, node):
if node['nowrap']:
- self.body.append(self.starttag(node, 'div', CLASS='math'))
+ self.body.append(self.starttag(node, 'div', CLASS='math notranslate'))
self.body.append(self.encode(node['latex']))
self.body.append('')
raise nodes.SkipNode
@@ -40,7 +40,7 @@ def html_visit_displaymath(self, node):
self.body.append('(%s)' % number)
self.add_permalink_ref(node, _('Permalink to this equation'))
self.body.append('')
- self.body.append(self.starttag(node, 'div', CLASS='math'))
+ self.body.append(self.starttag(node, 'div', CLASS='math notranslate'))
else:
# but only once!
self.body.append('
')
diff --git a/sphinx/ext/mathjax.py b/sphinx/ext/mathjax.py
index 8698e2801..bfbd34979 100644
--- a/sphinx/ext/mathjax.py
+++ b/sphinx/ext/mathjax.py
@@ -21,7 +21,7 @@ from sphinx.ext.mathbase import get_node_equation_number
def html_visit_math(self, node):
- self.body.append(self.starttag(node, 'span', '', CLASS='math'))
+ self.body.append(self.starttag(node, 'span', '', CLASS='math notranslate'))
self.body.append(self.builder.config.mathjax_inline[0] +
self.encode(node['latex']) +
self.builder.config.mathjax_inline[1] + '')
@@ -29,7 +29,7 @@ def html_visit_math(self, node):
def html_visit_displaymath(self, node):
- self.body.append(self.starttag(node, 'div', CLASS='math'))
+ self.body.append(self.starttag(node, 'div', CLASS='math notranslate'))
if node['nowrap']:
self.body.append(self.encode(node['latex']))
self.body.append('
')
diff --git a/sphinx/make_mode.py b/sphinx/make_mode.py
index 0bc1a797d..4b325160f 100644
--- a/sphinx/make_mode.py
+++ b/sphinx/make_mode.py
@@ -97,101 +97,6 @@ class Make(object):
if not osname or os.name == osname:
print(' %s %s' % (blue(bname.ljust(10)), description))
- def build_html(self):
- # type: () -> int
- if self.run_generic_build('html') > 0:
- return 1
- print()
- print('Build finished. The HTML pages are in %s.' % self.builddir_join('html'))
- return 0
-
- def build_dirhtml(self):
- # type: () -> int
- if self.run_generic_build('dirhtml') > 0:
- return 1
- print()
- print('Build finished. The HTML pages are in %s.' %
- self.builddir_join('dirhtml'))
- return 0
-
- def build_singlehtml(self):
- # type: () -> int
- if self.run_generic_build('singlehtml') > 0:
- return 1
- print()
- print('Build finished. The HTML page is in %s.' %
- self.builddir_join('singlehtml'))
- return 0
-
- def build_pickle(self):
- # type: () -> int
- if self.run_generic_build('pickle') > 0:
- return 1
- print()
- print('Build finished; now you can process the pickle files.')
- return 0
-
- def build_json(self):
- # type: () -> int
- if self.run_generic_build('json') > 0:
- return 1
- print()
- print('Build finished; now you can process the JSON files.')
- return 0
-
- def build_htmlhelp(self):
- # type: () -> int
- if self.run_generic_build('htmlhelp') > 0:
- return 1
- print()
- print('Build finished; now you can run HTML Help Workshop with the '
- '.hhp project file in %s.' % self.builddir_join('htmlhelp'))
- return 0
-
- def build_qthelp(self):
- # type: () -> int
- if self.run_generic_build('qthelp') > 0:
- return 1
- print()
- print('Build finished; now you can run "qcollectiongenerator" with the '
- '.qhcp project file in %s, like this:' % self.builddir_join('qthelp'))
- print('$ qcollectiongenerator %s.qhcp' % self.builddir_join('qthelp', proj_name))
- print('To view the help file:')
- print('$ assistant -collectionFile %s.qhc' %
- self.builddir_join('qthelp', proj_name))
- return 0
-
- def build_devhelp(self):
- # type: () -> int
- if self.run_generic_build('devhelp') > 0:
- return 1
- print()
- print("Build finished.")
- print("To view the help file:")
- print("$ mkdir -p $HOME/.local/share/devhelp/" + proj_name)
- print("$ ln -s %s $HOME/.local/share/devhelp/%s" %
- (self.builddir_join('devhelp'), proj_name))
- print("$ devhelp")
- return 0
-
- def build_epub(self):
- # type: () -> int
- if self.run_generic_build('epub') > 0:
- return 1
- print()
- print('Build finished. The ePub file is in %s.' % self.builddir_join('epub'))
- return 0
-
- def build_latex(self):
- # type: () -> int
- if self.run_generic_build('latex') > 0:
- return 1
- print("Build finished; the LaTeX files are in %s." % self.builddir_join('latex'))
- if os.name == 'posix':
- print("Run `make' in that directory to run these through (pdf)latex")
- print("(use `make latexpdf' here to do that automatically).")
- return 0
-
def build_latexpdf(self):
# type: () -> int
if self.run_generic_build('latex') > 0:
@@ -206,25 +111,6 @@ class Make(object):
with cd(self.builddir_join('latex')):
return subprocess.call([self.makecmd, 'all-pdf-ja'])
- def build_text(self):
- # type: () -> int
- if self.run_generic_build('text') > 0:
- return 1
- print()
- print('Build finished. The text files are in %s.' % self.builddir_join('text'))
- return 0
-
- def build_texinfo(self):
- # type: () -> int
- if self.run_generic_build('texinfo') > 0:
- return 1
- print("Build finished; the Texinfo files are in %s." %
- self.builddir_join('texinfo'))
- if os.name == 'posix':
- print("Run `make' in that directory to run these through makeinfo")
- print("(use `make info' here to do that automatically).")
- return 0
-
def build_info(self):
# type: () -> int
if self.run_generic_build('texinfo') > 0:
@@ -237,60 +123,6 @@ class Make(object):
dtdir = self.builddir_join('gettext', '.doctrees')
if self.run_generic_build('gettext', doctreedir=dtdir) > 0:
return 1
- print()
- print('Build finished. The message catalogs are in %s.' %
- self.builddir_join('gettext'))
- return 0
-
- def build_changes(self):
- # type: () -> int
- if self.run_generic_build('changes') > 0:
- return 1
- print()
- print('Build finished. The overview file is in %s.' %
- self.builddir_join('changes'))
- return 0
-
- def build_linkcheck(self):
- # type: () -> int
- res = self.run_generic_build('linkcheck')
- print()
- print('Link check complete; look for any errors in the above output '
- 'or in %s.' % self.builddir_join('linkcheck', 'output.txt'))
- return res
-
- def build_doctest(self):
- # type: () -> int
- res = self.run_generic_build('doctest')
- print("Testing of doctests in the sources finished, look at the "
- "results in %s." % self.builddir_join('doctest', 'output.txt'))
- return res
-
- def build_coverage(self):
- # type: () -> int
- if self.run_generic_build('coverage') > 0:
- print("Has the coverage extension been enabled?")
- return 1
- print()
- print("Testing of coverage in the sources finished, look at the "
- "results in %s." % self.builddir_join('coverage'))
- return 0
-
- def build_xml(self):
- # type: () -> int
- if self.run_generic_build('xml') > 0:
- return 1
- print()
- print('Build finished. The XML files are in %s.' % self.builddir_join('xml'))
- return 0
-
- def build_pseudoxml(self):
- # type: () -> int
- if self.run_generic_build('pseudoxml') > 0:
- return 1
- print()
- print('Build finished. The pseudo-XML files are in %s.' %
- self.builddir_join('pseudoxml'))
return 0
def run_generic_build(self, builder, doctreedir=None):
diff --git a/sphinx/templates/quickstart/Makefile_t b/sphinx/templates/quickstart/Makefile_t
index 2858d9bf7..bf752404e 100644
--- a/sphinx/templates/quickstart/Makefile_t
+++ b/sphinx/templates/quickstart/Makefile_t
@@ -5,14 +5,16 @@
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
PAPER ?=
+SOURCEDIR = {{ rsrcdir }}
BUILDDIR = {{ rbuilddir }}
# Internal variables.
PAPEROPT_a4 = -D latex_elements.papersize=a4
PAPEROPT_letter = -D latex_elements.papersize=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) {{ rsrcdir }}
+# $(O) is meant as a shortcut for $(SPHINXOPTS)
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(O) $(SOURCEDIR)
# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) {{ rsrcdir }}
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(O) $(SOURCEDIR)
.PHONY: help
help:
@@ -49,86 +51,6 @@ help:
clean:
rm -rf $(BUILDDIR)/*
-.PHONY: html
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-.PHONY: dirhtml
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-.PHONY: singlehtml
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-.PHONY: pickle
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-.PHONY: json
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-.PHONY: htmlhelp
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-.PHONY: qthelp
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/{{ project_fn }}.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/{{ project_fn }}.qhc"
-
-.PHONY: applehelp
-applehelp:
- $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
- @echo
- @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
- @echo "N.B. You won't be able to view it unless you put it in" \
- "~/Library/Documentation/Help or install it in your application" \
- "bundle."
-
-.PHONY: devhelp
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/{{ project_fn }}"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/{{ project_fn }}"
- @echo "# devhelp"
-
-.PHONY: epub
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
- @echo
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-.PHONY: latex
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
- "(use \`make latexpdf' here to do that automatically)."
-
.PHONY: latexpdf
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@@ -157,26 +79,6 @@ xelatexpdf:
$(MAKE) PDFLATEX=xelatex -C $(BUILDDIR)/latex all-pdf
@echo "xelatex finished; the PDF files are in $(BUILDDIR)/latex."
-.PHONY: text
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
- @echo
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-.PHONY: man
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-.PHONY: texinfo
-texinfo:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo
- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
- @echo "Run \`make' in that directory to run these through makeinfo" \
- "(use \`make info' here to do that automatically)."
-
.PHONY: info
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@@ -187,49 +89,9 @@ info:
.PHONY: gettext
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
- @echo
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-.PHONY: changes
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
-
-.PHONY: linkcheck
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in $(BUILDDIR)/linkcheck/output.txt."
-
-.PHONY: doctest
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
-
-.PHONY: coverage
-coverage:
- $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
- @echo "Testing of coverage in the sources finished, look at the " \
- "results in $(BUILDDIR)/coverage/python.txt."
-
-.PHONY: xml
-xml:
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
- @echo
- @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-.PHONY: pseudoxml
-pseudoxml:
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
- @echo
- @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
-
-.PHONY: dummy
-dummy:
- $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
- @echo
- @echo "Build finished. Dummy builder generates no files."
+# Catch-all target: route all unknown targets to Sphinx
+.PHONY: Makefile
+%: Makefile
+ $(SPHINXBUILD) -b "$@" $(ALLSPHINXOPTS) "$(BUILDDIR)/$@"
diff --git a/sphinx/templates/quickstart/conf.py_t b/sphinx/templates/quickstart/conf.py_t
index c42861c28..2583b9891 100644
--- a/sphinx/templates/quickstart/conf.py_t
+++ b/sphinx/templates/quickstart/conf.py_t
@@ -1,19 +1,13 @@
-{% if PY3 -%}
-#!/usr/bin/env python3
-{% endif -%}
# -*- coding: utf-8 -*-
#
# {{ project }} documentation build configuration file, created by
# sphinx-quickstart on {{ now }}.
#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/stable/config
+
+# -- Path setup -----------------------------------------------------------
# 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
@@ -33,6 +27,18 @@ sys.path.insert(0, u'{{ module_path }}')
{% endif -%}
{% endif %}
+# -- Project information --------------------------------------------------
+
+project = u'{{ project_str }}'
+copyright = u'{{ copyright_str }}'
+author = u'{{ author_str }}'
+
+# The short X.Y version
+version = u'{{ version_str }}'
+# The full version, including alpha/beta/rc tags
+release = u'{{ release_str }}'
+
+
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
@@ -60,20 +66,6 @@ source_suffix = '{{ suffix }}'
# The master toctree document.
master_doc = '{{ master_str }}'
-# General information about the project.
-project = u'{{ project_str }}'
-copyright = u'{{ copyright_str }}'
-author = u'{{ author_str }}'
-
-# 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.
-#
-# The short X.Y version.
-version = u'{{ version_str }}'
-# The full version, including alpha/beta/rc tags.
-release = u'{{ release_str }}'
-
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
diff --git a/sphinx/templates/quickstart/make.bat_t b/sphinx/templates/quickstart/make.bat_t
index 230977488..6e8665a49 100644
--- a/sphinx/templates/quickstart/make.bat_t
+++ b/sphinx/templates/quickstart/make.bat_t
@@ -8,8 +8,9 @@ if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set BUILDDIR={{ rbuilddir }}
-set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% {{ rsrcdir }}
-set I18NSPHINXOPTS=%SPHINXOPTS% {{ rsrcdir }}
+set SOURCEDIR={{ rsrcdir }}
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% %SOURCEDIR%
+set I18NSPHINXOPTS=%SPHINXOPTS% %SOURCEDIR%
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_elements.papersize=%PAPER% %ALLSPHINXOPTS%
set I18NSPHINXOPTS=-D latex_elements.papersize=%PAPER% %I18NSPHINXOPTS%
@@ -50,7 +51,6 @@ if "%1" == "clean" (
goto end
)
-
REM Check if sphinx-build is available and fallback to Python version if any
%SPHINXBUILD% 1>NUL 2>NUL
if errorlevel 9009 goto sphinx_python
@@ -74,92 +74,6 @@ if errorlevel 9009 (
:sphinx_ok
-
-if "%1" == "html" (
- %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/html.
- goto end
-)
-
-if "%1" == "dirhtml" (
- %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
- goto end
-)
-
-if "%1" == "singlehtml" (
- %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
- goto end
-)
-
-if "%1" == "pickle" (
- %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can process the pickle files.
- goto end
-)
-
-if "%1" == "json" (
- %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can process the JSON files.
- goto end
-)
-
-if "%1" == "htmlhelp" (
- %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can run HTML Help Workshop with the ^
-.hhp project file in %BUILDDIR%/htmlhelp.
- goto end
-)
-
-if "%1" == "qthelp" (
- %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can run "qcollectiongenerator" with the ^
-.qhcp project file in %BUILDDIR%/qthelp, like this:
- echo.^> qcollectiongenerator %BUILDDIR%\qthelp\{{ project_fn }}.qhcp
- echo.To view the help file:
- echo.^> assistant -collectionFile %BUILDDIR%\qthelp\{{ project_fn }}.ghc
- goto end
-)
-
-if "%1" == "devhelp" (
- %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished.
- goto end
-)
-
-if "%1" == "epub" (
- %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The epub file is in %BUILDDIR%/epub.
- goto end
-)
-
-if "%1" == "latex" (
- %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
- goto end
-)
-
if "%1" == "latexpdf" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
@@ -180,96 +94,14 @@ if "%1" == "latexpdfja" (
goto end
)
-if "%1" == "text" (
- %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The text files are in %BUILDDIR%/text.
- goto end
-)
-
-if "%1" == "man" (
- %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The manual pages are in %BUILDDIR%/man.
- goto end
-)
-
-if "%1" == "texinfo" (
- %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
- goto end
-)
-
if "%1" == "gettext" (
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
goto end
)
-if "%1" == "changes" (
- %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
- if errorlevel 1 exit /b 1
- echo.
- echo.The overview file is in %BUILDDIR%/changes.
- goto end
-)
-
-if "%1" == "linkcheck" (
- %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
- if errorlevel 1 exit /b 1
- echo.
- echo.Link check complete; look for any errors in the above output ^
-or in %BUILDDIR%/linkcheck/output.txt.
- goto end
-)
-
-if "%1" == "doctest" (
- %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
- if errorlevel 1 exit /b 1
- echo.
- echo.Testing of doctests in the sources finished, look at the ^
-results in %BUILDDIR%/doctest/output.txt.
- goto end
-)
-
-if "%1" == "coverage" (
- %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
- if errorlevel 1 exit /b 1
- echo.
- echo.Testing of coverage in the sources finished, look at the ^
-results in %BUILDDIR%/coverage/python.txt.
- goto end
-)
-
-if "%1" == "xml" (
- %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The XML files are in %BUILDDIR%/xml.
- goto end
-)
-
-if "%1" == "pseudoxml" (
- %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
- goto end
-)
-
-if "%1" == "dummy" (
- %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. Dummy builder generates no files.
- goto end
-)
+%SPHINXBUILD% -b %1 %ALLSPHINXOPTS% %BUILDDIR%/%1
+goto end
:end
popd
diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty
index 2b41673db..075ae408b 100644
--- a/sphinx/texinputs/sphinx.sty
+++ b/sphinx/texinputs/sphinx.sty
@@ -504,7 +504,7 @@
\fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}}
\fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}}
\fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}}
- \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}}
+ \fancyhead[LE,RO]{{\py@HeaderFamily \@title\sphinxheadercomma\py@release}}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
% define chaptermark with \@chappos when \@chappos is available for Japanese
@@ -1401,18 +1401,26 @@
% \date{}. This allows the date to reflect the document's date and
% release to specify the release that is documented.
%
-\newcommand{\py@release}{}
-\newcommand{\version}{}
-\newcommand{\shortversion}{}
+\newcommand{\py@release}{\releasename\space\version}
+\newcommand{\version}{}% part of \py@release, used by title page and headers
+% \releaseinfo is used on titlepage (sphinxmanual.cls, sphinxhowto.cls)
\newcommand{\releaseinfo}{}
-\newcommand{\releasename}{Release}
-\newcommand{\release}[1]{%
- \renewcommand{\py@release}{\releasename\space\version}%
- \renewcommand{\version}{#1}}
-\newcommand{\setshortversion}[1]{%
- \renewcommand{\shortversion}{#1}}
-\newcommand{\setreleaseinfo}[1]{%
- \renewcommand{\releaseinfo}{#1}}
+\newcommand{\setreleaseinfo}[1]{\renewcommand{\releaseinfo}{#1}}
+% this is inserted via template and #1=release config variable
+\newcommand{\release}[1]{\renewcommand{\version}{#1}}
+% this is defined by template to 'releasename' latex_elements key
+\newcommand{\releasename}{}
+% Fix issue in case release and releasename deliberately left blank
+\newcommand{\sphinxheadercomma}{, }% used in fancyhdr header definition
+\newcommand{\sphinxifemptyorblank}[1]{%
+% test after one expansion of macro #1 if contents is empty or spaces
+ \if&\expandafter\@firstofone\detokenize\expandafter{#1}&%
+ \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}%
+\AtBeginDocument {%
+ \sphinxifemptyorblank{\releasename}
+ {\sphinxifemptyorblank{\version}{\let\sphinxheadercomma\empty}{}}
+ {}%
+}%
% Allow specification of the author's address separately from the
% author's name. This can be used to format them differently, which
diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html
index 75c1ca568..050de15df 100644
--- a/sphinx/themes/basic/layout.html
+++ b/sphinx/themes/basic/layout.html
@@ -91,6 +91,7 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '{{ url_root }}',
VERSION: '{{ release|e }}',
+ LANGUAGE: '{{ language }}',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
HAS_SOURCE: {{ has_source|lower }},
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index 84e7bfbc9..16fc69bea 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -444,7 +444,7 @@ class HTMLTranslator(BaseTranslator):
location=(self.builder.current_docname, node.line), **highlight_args
)
starttag = self.starttag(node, 'div', suffix='',
- CLASS='highlight-%s' % lang)
+ CLASS='highlight-%s notranslate' % lang)
self.body.append(starttag + highlighted + '\n')
raise nodes.SkipNode
@@ -494,10 +494,10 @@ class HTMLTranslator(BaseTranslator):
# type: (nodes.Node) -> None
if 'kbd' in node['classes']:
self.body.append(self.starttag(node, 'kbd', '',
- CLASS='docutils literal'))
+ CLASS='docutils literal notranslate'))
else:
self.body.append(self.starttag(node, 'code', '',
- CLASS='docutils literal'))
+ CLASS='docutils literal notranslate'))
self.protect_literal_text += 1
def depart_literal(self, node):
diff --git a/sphinx/writers/html5.py b/sphinx/writers/html5.py
index 50bf2ea8c..c2810a898 100644
--- a/sphinx/writers/html5.py
+++ b/sphinx/writers/html5.py
@@ -390,7 +390,7 @@ class HTML5Translator(BaseTranslator):
location=(self.builder.current_docname, node.line), **highlight_args
)
starttag = self.starttag(node, 'div', suffix='',
- CLASS='highlight-%s' % lang)
+ CLASS='highlight-%s notranslate' % lang)
self.body.append(starttag + highlighted + '\n')
raise nodes.SkipNode
@@ -440,10 +440,10 @@ class HTML5Translator(BaseTranslator):
# type: (nodes.Node) -> None
if 'kbd' in node['classes']:
self.body.append(self.starttag(node, 'kbd', '',
- CLASS='docutils literal'))
+ CLASS='docutils literal notranslate'))
else:
self.body.append(self.starttag(node, 'code', '',
- CLASS='docutils literal'))
+ CLASS='docutils literal notranslate'))
self.protect_literal_text += 1
def depart_literal(self, node):
diff --git a/tests/test_build_html.py b/tests/test_build_html.py
index 153ff5165..2388b06ec 100644
--- a/tests/test_build_html.py
+++ b/tests/test_build_html.py
@@ -163,21 +163,21 @@ def test_html_warnings(app, warning):
(".//pre/span", u'"quotes"'),
(".//pre/span", u"'included'"),
(".//pre/span[@class='s2']", u'üöä'),
- (".//div[@class='inc-pyobj1 highlight-text']//pre",
+ (".//div[@class='inc-pyobj1 highlight-text notranslate']//pre",
r'^class Foo:\n pass\n\s*$'),
- (".//div[@class='inc-pyobj2 highlight-text']//pre",
+ (".//div[@class='inc-pyobj2 highlight-text notranslate']//pre",
r'^ def baz\(\):\n pass\n\s*$'),
- (".//div[@class='inc-lines highlight-text']//pre",
+ (".//div[@class='inc-lines highlight-text notranslate']//pre",
r'^class Foo:\n pass\nclass Bar:\n$'),
- (".//div[@class='inc-startend highlight-text']//pre",
+ (".//div[@class='inc-startend highlight-text notranslate']//pre",
u'^foo = "Including Unicode characters: üöä"\\n$'),
- (".//div[@class='inc-preappend highlight-text']//pre",
+ (".//div[@class='inc-preappend highlight-text notranslate']//pre",
r'(?m)^START CODE$'),
- (".//div[@class='inc-pyobj-dedent highlight-python']//span",
+ (".//div[@class='inc-pyobj-dedent highlight-python notranslate']//span",
r'def'),
- (".//div[@class='inc-tab3 highlight-text']//pre",
+ (".//div[@class='inc-tab3 highlight-text notranslate']//pre",
r'-| |-'),
- (".//div[@class='inc-tab8 highlight-python']//pre/span",
+ (".//div[@class='inc-tab8 highlight-python notranslate']//pre/span",
r'-| |-'),
],
'autodoc.html': [
diff --git a/tests/test_build_html5.py b/tests/test_build_html5.py
index 4ac70be51..168e516cf 100644
--- a/tests/test_build_html5.py
+++ b/tests/test_build_html5.py
@@ -72,21 +72,21 @@ def cached_etree_parse():
(".//pre/span", u'"quotes"'),
(".//pre/span", u"'included'"),
(".//pre/span[@class='s2']", u'üöä'),
- (".//div[@class='inc-pyobj1 highlight-text']//pre",
+ (".//div[@class='inc-pyobj1 highlight-text notranslate']//pre",
r'^class Foo:\n pass\n\s*$'),
- (".//div[@class='inc-pyobj2 highlight-text']//pre",
+ (".//div[@class='inc-pyobj2 highlight-text notranslate']//pre",
r'^ def baz\(\):\n pass\n\s*$'),
- (".//div[@class='inc-lines highlight-text']//pre",
+ (".//div[@class='inc-lines highlight-text notranslate']//pre",
r'^class Foo:\n pass\nclass Bar:\n$'),
- (".//div[@class='inc-startend highlight-text']//pre",
+ (".//div[@class='inc-startend highlight-text notranslate']//pre",
u'^foo = "Including Unicode characters: üöä"\\n$'),
- (".//div[@class='inc-preappend highlight-text']//pre",
+ (".//div[@class='inc-preappend highlight-text notranslate']//pre",
r'(?m)^START CODE$'),
- (".//div[@class='inc-pyobj-dedent highlight-python']//span",
+ (".//div[@class='inc-pyobj-dedent highlight-python notranslate']//span",
r'def'),
- (".//div[@class='inc-tab3 highlight-text']//pre",
+ (".//div[@class='inc-tab3 highlight-text notranslate']//pre",
r'-| |-'),
- (".//div[@class='inc-tab8 highlight-python']//pre/span",
+ (".//div[@class='inc-tab8 highlight-python notranslate']//pre/span",
r'-| |-'),
],
'autodoc.html': [
diff --git a/tests/test_ext_intersphinx.py b/tests/test_ext_intersphinx.py
index 19f8613c6..aef495d30 100644
--- a/tests/test_ext_intersphinx.py
+++ b/tests/test_ext_intersphinx.py
@@ -236,7 +236,8 @@ def test_missing_reference_cppdomain(tempdir, app, status, warning):
html = (app.outdir / 'index.html').text()
assert (''
+ ' title="(in foo v2.0)">'
+ ''
'Bar' in html)
assert ('\na^2 + b^2 = c^2' in content
- assert '\n\\begin{split}a + 1 < b\\end{split}
' in content
+ assert '\na^2 + b^2 = c^2
' in content
+ assert '\n\\begin{split}a + 1 < b\\end{split}
' in content
assert (u'(1)'
- u'\ne^{i\\pi} = 1
' in content)
+ u'\ne^{i\\pi} = 1
' in content)
assert (u'(2)'
- u'\n'
+ u'
\n'
u'e^{ix} = \\cos x + i\\sin x
' in content)
- assert '
\nn \\in \\mathbb N
' in content
- assert '
\na + 1 < b
' in content
+ assert '
\nn \\in \\mathbb N
' in content
+ assert '
\na + 1 < b
' in content
@pytest.mark.skipif(not has_binary('dvipng'),
@@ -89,7 +89,7 @@ def test_mathjax_align(app, status, warning):
app.builder.build_all()
content = (app.outdir / 'index.html').text()
- html = (r'
\s*'
+ html = (r'
\s*'
r'\\\[ \\begin\{align\}\\begin\{aligned\}S \&= \\pi r\^2\\\\'
r'V \&= \\frac\{4\}\{3\} \\pi r\^3\\end\{aligned\}\\end\{align\} \\\]
')
assert re.search(html, content, re.S)
@@ -102,7 +102,7 @@ def test_math_number_all_mathjax(app, status, warning):
app.builder.build_all()
content = (app.outdir / 'index.html').text()
- html = (r'
\s*'
+ html = (r'
\s*'
r'
\(1\)\xb6\\\[a\^2\+b\^2=c\^2\\\]
')
assert re.search(html, content, re.S)
@@ -167,7 +167,7 @@ def test_mathjax_numfig_html(app, status, warning):
app.builder.build_all()
content = (app.outdir / 'math.html').text()
- html = ('
\n'
+ html = ('
\n'
'
(1.2)')
assert html in content
html = ('Referencing equation '
+ (''
'code sample
'),
r'\\sphinxcode{\\sphinxupquote{code sample}}',
),
@@ -141,7 +141,7 @@ def get_verifier(verify, verify_re):
# correct interpretation of code with whitespace
'verify_re',
':samp:`code sample`',
- (''
+ (''
'code sample
'),
r'\\sphinxcode{\\sphinxupquote{code sample}}',
),
@@ -149,7 +149,8 @@ def get_verifier(verify, verify_re):
# interpolation of braces in samp and file roles (HTML only)
'verify',
':samp:`a{b}c`',
- ('a'
+ (''
+ 'a'
'b'
'c
'),
'\\sphinxcode{\\sphinxupquote{a\\sphinxstyleemphasis{b}c}}',
@@ -173,7 +174,7 @@ def get_verifier(verify, verify_re):
# non-interpolation of dashes in option role
'verify_re',
':option:`--with-option`',
- (''
+ (''
'--with-option
$'),
r'\\sphinxcode{\\sphinxupquote{-{-}with-option}}$',
),
@@ -188,7 +189,7 @@ def get_verifier(verify, verify_re):
# ... but not in literal text
'verify',
'``"John"``',
- (''
+ (''
'"John"
'),
'\\sphinxcode{\\sphinxupquote{"John"}}',
),