diff --git a/.travis.yml b/.travis.yml
index b7110f065..5a49bf106 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,13 +13,14 @@ matrix:
include:
- python: '3.5'
env:
- - TOXENV=du13
+ - TOXENV=du12
- python: '3.6'
env:
- - TOXENV=py36
- - PYTEST_ADDOPTS="--cov ./ --cov-append --cov-config setup.cfg"
+ - TOXENV=du13
- python: '3.7'
- env: TOXENV=py37
+ env:
+ - TOXENV=py37
+ - PYTEST_ADDOPTS="--cov ./ --cov-append --cov-config setup.cfg"
- python: 'nightly'
env: TOXENV=py38
- python: '3.6'
diff --git a/CHANGES b/CHANGES
index e266c50da..28e99a44d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,9 +1,51 @@
-Release 2.0.0 (in development)
+Release 2.1.0 (in development)
==============================
Dependencies
------------
+Incompatible changes
+--------------------
+
+Deprecated
+----------
+
+Features added
+--------------
+
+Bugs fixed
+----------
+
+Testing
+--------
+
+Release 2.0.0 beta2 (in development)
+====================================
+
+Dependencies
+------------
+
+Incompatible changes
+--------------------
+
+Deprecated
+----------
+
+Features added
+--------------
+
+Bugs fixed
+----------
+
+Testing
+--------
+
+Release 2.0.0 beta1 (in development)
+====================================
+
+Dependencies
+------------
+
* LaTeX builder now depends on TeX Live 2015 or above.
* LaTeX builder (with ``'pdflatex'`` :confval:`latex_engine`) will process
Unicode Greek letters in text (not in math mark-up) via the text font and
@@ -23,7 +65,9 @@ Dependencies
- sphinxcontrib.applehelp
- sphinxcontrib.devhelp
+ - sphinxcontrib.htmlhelp
- sphinxcontrib.jsmath
+ - sphinxcontrib.serializinghtml
- sphinxcontrib.qthelp
Incompatible changes
@@ -59,12 +103,17 @@ Incompatible changes
from LaTeX preamble now get overwritten. Use ``\sphinxtableofcontentshook``
to insert custom user definitions. See :ref:`latex-macros`.
* quickstart: Simplify generated ``conf.py``
+* #4148: quickstart: some questions are removed. They are still able to specify
+ via command line options
* websupport: unbundled from sphinx core. Please use sphinxcontrib-websupport
* C++, the visibility of base classes is now always rendered as present in the
input. That is, ``private`` is now shown, where it was ellided before.
* LaTeX: graphics inclusion of oversized images rescales to not exceed
the text width and height, even if width and/or height option were used.
(refs: #5956)
+* epub: ``epub_title`` defaults to the :confval:`project` option
+* #4550: All tables and figures without ``align`` option are displayed to center
+* #4587: html: Output HTML5 by default
Deprecated
----------
@@ -75,6 +124,10 @@ Deprecated
``EpubBuilder.build_container()``, ``EpubBuilder.bulid_content()``,
``EpubBuilder.build_toc()`` and ``EpubBuilder.build_epub()``
* The arguments of ``Epub3Builder.build_navigation_doc()``
+* The config variables
+
+ - :confval:`html_experimental_html5_writer`
+
* The ``encoding`` argument of ``autodoc.Documenter.get_doc()``,
``autodoc.DocstringSignatureMixin.get_doc()``,
``autodoc.DocstringSignatureMixin._find_signature()``, and
@@ -108,21 +161,30 @@ Deprecated
* ``sphinx.io.SphinxFileInput.supported``
* ``sphinx.io.SphinxRSTFileInput``
* ``sphinx.registry.SphinxComponentRegistry.add_source_input()``
+* ``sphinx.roles.abbr_role()``
+* ``sphinx.roles.emph_literal_role()``
+* ``sphinx.roles.menusel_role()``
+* ``sphinx.roles.index_role()``
+* ``sphinx.roles.indexmarkup_role()``
* ``sphinx.testing.util.remove_unicode_literal()``
* ``sphinx.util.attrdict``
* ``sphinx.util.force_decode()``
* ``sphinx.util.get_matching_docs()``
* ``sphinx.util.inspect.Parameter``
+* ``sphinx.util.jsonimpl``
* ``sphinx.util.osutil.EEXIST``
* ``sphinx.util.osutil.EINVAL``
* ``sphinx.util.osutil.ENOENT``
* ``sphinx.util.osutil.EPIPE``
* ``sphinx.util.osutil.walk()``
* ``sphinx.util.PeekableIterator``
+* ``sphinx.util.pycompat.NoneType``
* ``sphinx.util.pycompat.TextIOWrapper``
* ``sphinx.util.pycompat.UnicodeMixin``
* ``sphinx.util.pycompat.htmlescape``
* ``sphinx.util.pycompat.indent``
+* ``sphinx.util.pycompat.sys_encoding``
+* ``sphinx.util.pycompat.terminal_safe()``
* ``sphinx.util.pycompat.u``
* ``sphinx.writers.latex.ExtBabel``
* ``sphinx.writers.latex.LaTeXTranslator._make_visit_admonition()``
@@ -154,6 +216,11 @@ Features added
* #4182: autodoc: Support :confval:`suppress_warnings`
* #5533: autodoc: :confval:`autodoc_default_options` supports ``member-order``
+* #5394: autodoc: Display readable names in type annotations for mocked objects
+* #5459: autodoc: :confval:`autodoc_default_options` accepts ``True`` as a value
+* #1148: autodoc: Add :rst:dir:`autodecorator` directive for decorators
+* #5635: autosummary: Add :confval:`autosummary_mock_imports` to mock external
+ libraries on importing targets
* #4018: htmlhelp: Add :confval:`htmlhelp_file_suffix` and
:confval:`htmlhelp_link_suffix`
* #5559: text: Support complex tables (colspan and rowspan)
@@ -173,10 +240,17 @@ Features added
* #4611: epub: Show warning for duplicated ToC entries
* #1851: Allow to omit an argument for :rst:dir:`code-block` directive. If
omitted, it follows :rst:dir:`highlight` or :confval:`highlight_language`
+* #4587: html: Add :confval:`html4_writer` to use old HTML4 writer
* #6016: HTML search: A placeholder for the search summary prevents search
result links from changing their position when the search terminates. This
makes navigating search results easier.
-
+* #5196: linkcheck also checks remote images exist
+* #5924: githubpages: create CNAME file for custom domains when
+ :confval:`html_baseurl` set
+* #4261: autosectionlabel: restrict the labeled sections by new config value;
+ :confval:`autosectionlabel_maxdepth`
+
+
Bugs fixed
----------
@@ -225,6 +299,10 @@ Bugs fixed
----------
* LaTeX: Remove extraneous space after author names on PDF title page (refs: #6004)
+* #6026: LaTeX: A cross reference to definition list does not work
+* #6046: LaTeX: ``TypeError`` is raised when invalid latex_elements given
+* #6019: imgconverter: Including multipage PDF fails
+* #6047: autodoc: ``autofunction`` emits a warning for method objects
Testing
--------
diff --git a/bindep.txt b/bindep.txt
new file mode 100644
index 000000000..b99782017
--- /dev/null
+++ b/bindep.txt
@@ -0,0 +1,15 @@
+texlive [platform:rpm]
+texlive-fncychap [platform:rpm]
+texlive-titlesec [platform:rpm]
+texlive-tabulary [platform:rpm]
+texlive-framed [platform:rpm]
+texlive-wrapfig [platform:rpm]
+texlive-upquote [platform:rpm]
+texlive-capt-of [platform:rpm]
+texlive-needspace [platform:rpm]
+texlive-polyglossia [platform:rpm]
+texlive-luatex85 [platform:rpm]
+texlive-anyfontsize [platform:rpm]
+texlive-ctablestack [platform:rpm]
+texlive-gnu-freefont [platform:rpm]
+latexmk [platform:rpm]
diff --git a/doc/_themes/sphinx13/static/sphinx13.css b/doc/_themes/sphinx13/static/sphinx13.css
index 6315800f7..3dadf8168 100644
--- a/doc/_themes/sphinx13/static/sphinx13.css
+++ b/doc/_themes/sphinx13/static/sphinx13.css
@@ -337,7 +337,7 @@ a tt:hover {
}
pre {
- font-family: 'Consolas', 'DejaVu Sans Mono',
+ font-family: 'Consolas', 'Courier New', 'DejaVu Sans Mono',
'Bitstream Vera Sans Mono', monospace;
font-size: 13px;
letter-spacing: 0.015em;
@@ -388,32 +388,29 @@ div.admonition, div.warning {
padding: 0;
}
-div.admonition p, div.warning p {
+div.admonition > p, div.warning > p {
margin: 0.5em 1em 0.5em 1em;
padding: 0;
}
-div.admonition pre, div.warning pre {
+div.admonition > pre, div.warning > pre {
margin: 0.4em 1em 0.4em 1em;
}
-div.admonition p.admonition-title,
-div.warning p.admonition-title {
- margin-top: 1em;
- padding-top: 0.5em;
+div.admonition > p.admonition-title,
+div.warning > p.admonition-title {
+ margin-top: 0.5em;
font-weight: bold;
}
div.warning {
border: 1px solid #940000;
-/* background-color: #FFCCCF;*/
}
-div.warning p.admonition-title {
-}
-
-div.admonition ul, div.admonition ol,
-div.warning ul, div.warning ol {
+div.admonition > ul,
+div.admonition > ol,
+div.warning > ul,
+div.warning > ol {
margin: 0.1em 0.5em 0.5em 3em;
padding: 0;
}
diff --git a/doc/extdev/index.rst b/doc/extdev/index.rst
index 95564936c..7b4bbc692 100644
--- a/doc/extdev/index.rst
+++ b/doc/extdev/index.rst
@@ -290,11 +290,36 @@ The following is a list of deprecated interfaces.
- 4.0
- ``sphinx.builders.epub3.validate_config_values()``
+ * - ``sphinx.builders.html.JSONHTMLBuilder``
+ - 2.0
+ - 4.0
+ - ``sphinx.builders.serializinghtml.JSONHTMLBuilder``
+
+ * - ``sphinx.builders.html.PickleHTMLBuilder``
+ - 2.0
+ - 4.0
+ - ``sphinx.builders.serializinghtml.PickleHTMLBuilder``
+
+ * - ``sphinx.builders.html.SerializingHTMLBuilder``
+ - 2.0
+ - 4.0
+ - ``sphinx.builders.serializinghtml.SerializingHTMLBuilder``
+
* - ``sphinx.builders.html.SingleFileHTMLBuilder``
- 2.0
- 4.0
- ``sphinx.builders.singlehtml.SingleFileHTMLBuilder``
+ * - ``sphinx.builders.html.WebHTMLBuilder``
+ - 2.0
+ - 4.0
+ - ``sphinx.builders.serializinghtml.PickleHTMLBuilder``
+
+ * - ``sphinx.builders.htmlhelp``
+ - 2.0
+ - 4.0
+ - ``sphinxcontrib.htmlhelp``
+
* - ``sphinx.builders.htmlhelp.HTMLHelpBuilder.open_file()``
- 2.0
- 4.0
@@ -370,6 +395,31 @@ The following is a list of deprecated interfaces.
- 4.0
- ``sphinxcontrib.jsmath``
+ * - ``sphinx.roles.abbr_role()``
+ - 2.0
+ - 4.0
+ - ``sphinx.roles.Abbreviation``
+
+ * - ``sphinx.roles.emph_literal_role()``
+ - 2.0
+ - 4.0
+ - ``sphinx.roles.EmphasizedLiteral``
+
+ * - ``sphinx.roles.menusel_role()``
+ - 2.0
+ - 4.0
+ - ``sphinx.roles.GUILabel`` or ``sphinx.roles.MenuSelection``
+
+ * - ``sphinx.roles.index_role()``
+ - 2.0
+ - 4.0
+ - ``sphinx.roles.Index``
+
+ * - ``sphinx.roles.indexmarkup_role()``
+ - 2.0
+ - 4.0
+ - ``sphinx.roles.PEP`` or ``sphinx.roles.RFC``
+
* - ``sphinx.testing.util.remove_unicode_literal()``
- 2.0
- 4.0
@@ -395,6 +445,11 @@ The following is a list of deprecated interfaces.
- 3.0
- N/A
+ * - ``sphinx.util.jsonimpl``
+ - 2.0
+ - 4.0
+ - ``sphinxcontrib.serializinghtml.jsonimpl``
+
* - ``sphinx.util.osutil.EEXIST``
- 2.0
- 4.0
@@ -420,6 +475,11 @@ The following is a list of deprecated interfaces.
- 4.0
- ``os.walk()``
+ * - ``sphinx.util.pycompat.NoneType``
+ - 2.0
+ - 4.0
+ - ``sphinx.util.typing.NoneType``
+
* - ``sphinx.util.pycompat.TextIOWrapper``
- 2.0
- 4.0
@@ -440,6 +500,16 @@ The following is a list of deprecated interfaces.
- 4.0
- ``textwrap.indent()``
+ * - ``sphinx.util.pycompat.sys_encoding``
+ - 2.0
+ - 4.0
+ - ``sys.getdefaultencoding()``
+
+ * - ``sphinx.util.pycompat.terminal_safe()``
+ - 2.0
+ - 4.0
+ - ``sphinx.util.console.terminal_safe()``
+
* - ``sphinx.util.pycompat.u``
- 2.0
- 4.0
diff --git a/doc/extdev/utils.rst b/doc/extdev/utils.rst
index ebf05629e..3aac51ed9 100644
--- a/doc/extdev/utils.rst
+++ b/doc/extdev/utils.rst
@@ -18,5 +18,11 @@ components (e.g. :class:`.Config`, :class:`.BuildEnvironment` and so on) easily.
.. autoclass:: sphinx.util.docutils.SphinxDirective
:members:
+.. autoclass:: sphinx.util.docutils.SphinxRole
+ :members:
+
+.. autoclass:: sphinx.util.docutils.ReferenceRole
+ :members:
+
.. autoclass:: sphinx.transforms.post_transforms.images.ImageConverter
:members:
diff --git a/doc/usage/builders/index.rst b/doc/usage/builders/index.rst
index 5cc6df31c..3b74a02e1 100644
--- a/doc/usage/builders/index.rst
+++ b/doc/usage/builders/index.rst
@@ -28,6 +28,7 @@ The builder's "name" must be given to the **-b** command-line option of
.. autoattribute:: supported_image_types
+.. module:: sphinx.builders.dirhtml
.. class:: DirectoryHTMLBuilder
This is a subclass of the standard HTML builder. Its output is a directory
@@ -45,6 +46,7 @@ The builder's "name" must be given to the **-b** command-line option of
.. versionadded:: 0.6
+.. module:: sphinx.builders.singlehtml
.. class:: SingleFileHTMLBuilder
This is an HTML builder that combines the whole project in one output file.
@@ -297,7 +299,7 @@ name is ``rinoh``. Refer to the `rinohtype manual`_ for details.
.. versionadded:: 1.1
-.. currentmodule:: sphinx.builders.html
+.. currentmodule:: sphinxcontrib.serializinghtml
.. class:: SerializingHTMLBuilder
This builder uses a module that implements the Python serialization API
diff --git a/doc/usage/configuration.rst b/doc/usage/configuration.rst
index 8b82147c1..ada9efefc 100644
--- a/doc/usage/configuration.rst
+++ b/doc/usage/configuration.rst
@@ -1331,6 +1331,12 @@ that use Sphinx's HTMLWriter class.
.. versionadded:: 1.6
+ .. deprecated:: 2.0
+
+.. confval:: html4_writer
+
+ Output is processed with HTML4 writer. Default is ``False``.
+
Options for Single HTML output
-------------------------------
@@ -1561,7 +1567,11 @@ the `Dublin Core metadata `_.
.. confval:: epub_title
The title of the document. It defaults to the :confval:`html_title` option
- but can be set independently for epub creation.
+ but can be set independently for epub creation. It defaults to the
+ :confval:`project` option.
+
+ .. versionchanged:: 2.0
+ It defaults to the ``project`` option.
.. confval:: epub_description
diff --git a/doc/usage/extensions/autodoc.rst b/doc/usage/extensions/autodoc.rst
index 36d497543..cb41cb07d 100644
--- a/doc/usage/extensions/autodoc.rst
+++ b/doc/usage/extensions/autodoc.rst
@@ -237,6 +237,7 @@ inserting them into the page source under a suitable :rst:dir:`py:module`,
.. rst:directive:: autofunction
+ autodecorator
autodata
automethod
autoattribute
@@ -293,10 +294,11 @@ inserting them into the page source under a suitable :rst:dir:`py:module`,
docstrings.
.. versionchanged:: 1.1
Comment docs are now allowed on the same line after an assignment.
-
.. versionchanged:: 1.2
:rst:dir:`autodata` and :rst:dir:`autoattribute` have an ``annotation``
option.
+ .. versionchanged:: 2.0
+ :rst:dir:`autodecorator` added.
.. note::
@@ -376,12 +378,12 @@ There are also new config values that you can set:
'members': 'var1, var2',
'member-order': 'bysource',
'special-members': '__init__',
- 'undoc-members': None,
+ 'undoc-members': True,
'exclude-members': '__weakref__'
}
- Setting ``None`` is equivalent to giving the option name in the list format
- (i.e. it means "yes/true/on").
+ Setting ``None`` or ``True`` to the value is equivalent to giving only the
+ option name to the directives.
The supported options are ``'members'``, ``'member-order'``,
``'undoc-members'``, ``'private-members'``, ``'special-members'``,
@@ -390,6 +392,9 @@ There are also new config values that you can set:
.. versionadded:: 1.8
+ .. versionchanged:: 2.0
+ Accepts ``True`` as a value.
+
.. confval:: autodoc_docstring_signature
Functions imported from C modules cannot be introspected, and therefore the
diff --git a/doc/usage/extensions/autosectionlabel.rst b/doc/usage/extensions/autosectionlabel.rst
index 20b15ca20..caaa5db26 100644
--- a/doc/usage/extensions/autosectionlabel.rst
+++ b/doc/usage/extensions/autosectionlabel.rst
@@ -38,3 +38,10 @@ Configuration
called ``Introduction`` that appears in document ``index.rst``. Useful for
avoiding ambiguity when the same section heading appears in different
documents.
+
+.. confval:: autosectionlabel_maxdepth
+
+ If set, autosectionlabel chooses the sections for labeling by its depth. For
+ example, when set 1 to ``autosectionlabel_maxdepth``, labels are generated
+ only for top level sections, and deeper sections are not labeled. It
+ defaults to ``None`` (disabled).
diff --git a/doc/usage/extensions/autosummary.rst b/doc/usage/extensions/autosummary.rst
index c9d04dda8..2bf8a7d1d 100644
--- a/doc/usage/extensions/autosummary.rst
+++ b/doc/usage/extensions/autosummary.rst
@@ -181,6 +181,12 @@ Packages can be explored recursively when generating stub pages.
.. versionadded:: 2.0
+.. confval:: autosummary_mock_imports
+
+ This value contains a list of modules to be mocked up. See
+ :confval:`autodoc_mock_imports` for more details. It defaults to
+ :confval:`autodoc_mock_imports`.
+
Customizing templates
---------------------
diff --git a/doc/usage/extensions/githubpages.rst b/doc/usage/extensions/githubpages.rst
index f19666ef1..6d56a3036 100644
--- a/doc/usage/extensions/githubpages.rst
+++ b/doc/usage/extensions/githubpages.rst
@@ -6,5 +6,11 @@
.. versionadded:: 1.4
+.. versionchanged:: 2.0
+ Support ``CNAME`` file
+
This extension creates ``.nojekyll`` file on generated HTML directory to publish
the document on GitHub Pages.
+
+It also creates a ``CNAME`` file for custom domains when :confval:`html_baseurl`
+set.
diff --git a/setup.py b/setup.py
index 5b2c38e8c..79c466321 100644
--- a/setup.py
+++ b/setup.py
@@ -18,6 +18,8 @@ install_requires = [
'sphinxcontrib-applehelp',
'sphinxcontrib-devhelp',
'sphinxcontrib-jsmath',
+ 'sphinxcontrib-htmlhelp',
+ 'sphinxcontrib-serializinghtml',
'sphinxcontrib-qthelp',
'Jinja2>=2.3',
'Pygments>=2.0',
diff --git a/sphinx/__init__.py b/sphinx/__init__.py
index bfa5297d5..0a6f26584 100644
--- a/sphinx/__init__.py
+++ b/sphinx/__init__.py
@@ -32,8 +32,8 @@ if 'PYTHONWARNINGS' not in os.environ:
warnings.filterwarnings('ignore', "'U' mode is deprecated",
DeprecationWarning, module='docutils.io')
-__version__ = '2.0.0+'
-__released__ = '2.0.0' # used when Sphinx builds its own docs
+__version__ = '2.1.0+'
+__released__ = '2.1.0' # used when Sphinx builds its own docs
#: Version info for better programmatic use.
#:
@@ -43,7 +43,7 @@ __released__ = '2.0.0' # used when Sphinx builds its own docs
#:
#: .. versionadded:: 1.2
#: Before version 1.2, check the string ``sphinx.__version__``.
-version_info = (2, 0, 0, 'beta', 0)
+version_info = (2, 1, 0, 'beta', 0)
package_dir = path.abspath(path.dirname(__file__))
diff --git a/sphinx/application.py b/sphinx/application.py
index cce9926b5..6d553333b 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -37,7 +37,6 @@ from sphinx.registry import SphinxComponentRegistry
from sphinx.util import docutils
from sphinx.util import import_object, progress_message
from sphinx.util import logging
-from sphinx.util import pycompat # noqa: F401
from sphinx.util.build_phase import BuildPhase
from sphinx.util.console import bold # type: ignore
from sphinx.util.docutils import directive_helper
@@ -68,7 +67,6 @@ builtin_extensions = (
'sphinx.builders.dummy',
'sphinx.builders.gettext',
'sphinx.builders.html',
- 'sphinx.builders.htmlhelp',
'sphinx.builders.latex',
'sphinx.builders.linkcheck',
'sphinx.builders.manpage',
@@ -108,6 +106,8 @@ builtin_extensions = (
# 1st party extensions
'sphinxcontrib.applehelp',
'sphinxcontrib.devhelp',
+ 'sphinxcontrib.htmlhelp',
+ 'sphinxcontrib.serializinghtml',
'sphinxcontrib.qthelp',
# Strictly, alabaster theme is not a builtin extension,
# but it is loaded automatically to use it as default theme.
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index c8cd44e55..335880ef0 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -19,7 +19,7 @@ from sphinx.environment.adapters.asset import ImageAdapter
from sphinx.errors import SphinxError
from sphinx.io import read_doc
from sphinx.locale import __
-from sphinx.util import i18n, import_object, logging, rst, status_iterator
+from sphinx.util import i18n, import_object, logging, rst, progress_message, status_iterator
from sphinx.util.build_phase import BuildPhase
from sphinx.util.console import bold # type: ignore
from sphinx.util.docutils import sphinx_domains
@@ -351,16 +351,14 @@ class Builder:
if updated_docnames:
# save the environment
from sphinx.application import ENV_PICKLE_FILENAME
- logger.info(bold(__('pickling environment... ')), nonl=True)
- with open(path.join(self.doctreedir, ENV_PICKLE_FILENAME), 'wb') as f:
- pickle.dump(self.env, f, pickle.HIGHEST_PROTOCOL)
- logger.info(__('done'))
+ with progress_message(__('pickling environment')):
+ with open(path.join(self.doctreedir, ENV_PICKLE_FILENAME), 'wb') as f:
+ pickle.dump(self.env, f, pickle.HIGHEST_PROTOCOL)
# global actions
self.app.phase = BuildPhase.CONSISTENCY_CHECK
- logger.info(bold(__('checking consistency... ')), nonl=True)
- self.env.check_consistency()
- logger.info(__('done'))
+ with progress_message(__('checking consistency')):
+ self.env.check_consistency()
else:
if method == 'update' and not docnames:
logger.info(bold(__('no targets are out of date.')))
@@ -559,9 +557,8 @@ class Builder:
docnames.add(tocdocname)
docnames.add(self.config.master_doc)
- logger.info(bold(__('preparing documents... ')), nonl=True)
- self.prepare_writing(docnames)
- logger.info(__('done'))
+ with progress_message(__('preparing documents')):
+ self.prepare_writing(docnames)
if self.parallel_ok:
# number of subprocesses is parallel-1 because the main process
diff --git a/sphinx/builders/_epub_base.py b/sphinx/builders/_epub_base.py
index 5516fdaf8..00fa7187d 100644
--- a/sphinx/builders/_epub_base.py
+++ b/sphinx/builders/_epub_base.py
@@ -134,8 +134,6 @@ class EpubBuilder(StandaloneHTMLBuilder):
html_scaled_image_link = False
# don't generate search index or include search page
search = False
- # use html5 translator by default
- default_html5_translator = True
coverpage_name = COVERPAGE_NAME
toctree_template = TOCTREE_TEMPLATE
@@ -655,7 +653,7 @@ class EpubBuilder(StandaloneHTMLBuilder):
if incr:
self.playorder += 1
self.tocid += 1
- return NavPoint(self.esc('navPoint%d' % self.tocid), self.playorder,
+ return NavPoint('navPoint%d' % self.tocid, self.playorder,
node['text'], node['refuri'], [])
def build_navpoints(self, nodes):
diff --git a/sphinx/builders/epub3.py b/sphinx/builders/epub3.py
index 83088bb45..f97d96396 100644
--- a/sphinx/builders/epub3.py
+++ b/sphinx/builders/epub3.py
@@ -269,7 +269,7 @@ def setup(app):
app.add_config_value('epub_version', 3.0, 'epub') # experimental
app.add_config_value('epub_theme', 'epub', 'epub')
app.add_config_value('epub_theme_options', {}, 'epub')
- app.add_config_value('epub_title', lambda self: self.html_title, 'epub')
+ app.add_config_value('epub_title', lambda self: self.project, 'epub')
app.add_config_value('epub_author', lambda self: self.author, 'epub')
app.add_config_value('epub_language', lambda self: self.language or 'en', 'epub')
app.add_config_value('epub_publisher', lambda self: self.author, 'epub')
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index 09ba8d677..2c5ebcd4d 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -9,16 +9,13 @@
"""
import html
-import pickle
import posixpath
import re
import sys
-import types
import warnings
from hashlib import md5
from os import path
-import docutils
from docutils import nodes
from docutils.core import publish_parts
from docutils.frontend import OptionParser
@@ -26,7 +23,6 @@ from docutils.io import DocTreeInput, StringOutput
from docutils.utils import relative_path
from sphinx import package_dir, __display_version__
-from sphinx.application import ENV_PICKLE_FILENAME
from sphinx.builders import Builder
from sphinx.deprecation import (
RemovedInSphinx30Warning, RemovedInSphinx40Warning, deprecated_alias
@@ -39,15 +35,14 @@ from sphinx.highlighting import PygmentsBridge
from sphinx.locale import _, __
from sphinx.search import js_index
from sphinx.theming import HTMLThemeFactory
-from sphinx.util import jsonimpl, logging, status_iterator
+from sphinx.util import logging, status_iterator
from sphinx.util.console import bold # type: ignore
from sphinx.util.docutils import is_html5_writer_available, new_document
from sphinx.util.fileutil import copy_asset
from sphinx.util.i18n import format_date
from sphinx.util.inventory import InventoryFile
from sphinx.util.matching import patmatch, Matcher, DOTFILES
-from sphinx.util.osutil import SEP, os_path, relative_uri, ensuredir, \
- movefile, copyfile
+from sphinx.util.osutil import os_path, relative_uri, ensuredir, movefile, copyfile
from sphinx.writers.html import HTMLWriter, HTMLTranslator
if False:
@@ -58,7 +53,7 @@ if False:
from sphinx.domains import Domain, Index, IndexEntry # NOQA
from sphinx.util.tags import Tags # NOQA
-# Experimental HTML5 Writer
+# HTML5 Writer is avialable or not
if is_html5_writer_available():
from sphinx.writers.html5 import HTML5Translator
html5_ready = True
@@ -67,8 +62,6 @@ else:
#: the filename for the inventory of objects
INVENTORY_FILENAME = 'objects.inv'
-#: the filename for the "last build" file (for serializing builders)
-LAST_BUILD_FILENAME = 'last_build'
logger = logging.getLogger(__name__)
return_codes_re = re.compile('[\r\n]+')
@@ -116,24 +109,24 @@ class JSContainer(list):
"""The container for JavaScript scripts."""
def insert(self, index, obj):
# type: (int, str) -> None
- warnings.warn('builder.script_files is deprecated. '
- 'Please use app.add_js_file() instead.',
- RemovedInSphinx30Warning, stacklevel=2)
+ warnings.warn('To modify script_files in the theme is deprecated. '
+ 'Please insert a