Simplify documentation generation.

1. The MathJax font configuration is moved into conf.py and removed
from make_docs.py along with better font sizing.
2. Remove the bread crumb replacement as it is not working anymore.
3. Fix a parsing error in nnls_modeling.rst which the new version of
sphinx barfed on.

Change-Id: Ia3c2e732323a8b5cabafe851ac5ca0f0c82da071
diff --git a/docs/source/conf.py b/docs/source/conf.py
index c266746..c83468f 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -41,16 +41,16 @@
 
 # General information about the project.
 project = u'Ceres Solver'
-copyright = u'2018 Google Inc'
+copyright = u'2020 Google Inc'
 
 # 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 = '1.14'
+version = '2.0'
 # The full version, including alpha/beta/rc tags.
-release = '1.14.0'
+release = '2.0.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -240,3 +240,15 @@
 
 # How to display URL addresses: 'footnote', 'no', or 'inline'.
 #texinfo_show_urls = 'footnote'
+
+# Custom configuration for MathJax.
+#
+# By default MathJax does not use TeX fonts, which is a tragedy. Also
+# scaling the fonts down a bit makes them fit better with font sizing
+# in the "Read The Docs" theme.
+mathjax_config = {
+'HTML-CSS' : {
+        'availableFonts' : ["TeX"],
+        'scale' : 90
+   }
+}
diff --git a/docs/source/nnls_modeling.rst b/docs/source/nnls_modeling.rst
index 1b7287f..0e8645d 100644
--- a/docs/source/nnls_modeling.rst
+++ b/docs/source/nnls_modeling.rst
@@ -1560,7 +1560,7 @@
 
 .. class:: Problem::Options
 
-   Options struct that is used to control :class:`Problem::`.
+   Options struct that is used to control :class:`Problem`.
 
 .. member:: Ownership Problem::Options::cost_function_ownership
 
diff --git a/scripts/make_docs.py b/scripts/make_docs.py
index c1e711f..7d5c4cd 100644
--- a/scripts/make_docs.py
+++ b/scripts/make_docs.py
@@ -63,44 +63,11 @@
 os.system('%s -b html -d %s %s %s' %(sphinx_exe, cache_dir, src_dir, html_dir))
 
 replacements = [
-  # By default MathJax uses does not use TeX fonts. This simple search
-  # and replace fixes that.
-  ('''config=TeX-AMS-MML_HTMLorMML"></script>''',
-   '''config=TeX-AMS_HTML">
-      MathJax.Hub.Config({
-          "HTML-CSS": {
-            availableFonts: ["TeX"]
-          }
-        });
-      </script>'''),
-
   # The title for the homepage is not ideal, so change it.
   ('<title>Ceres Solver &mdash; Ceres Solver</title>',
    '<title>Ceres Solver &mdash; A Large Scale Non-linear Optimization Library</title>')
 ]
 
-# This is a nasty hack to strip the breadcrumb navigation. A better strategy is
-# to fork the upstream template, but that is no fun either. Whitespace matters!
-# This doesn't use regular expressions since the escaping makes it untenable.
-breadcrumb_start_other = \
-'''<div role="navigation" aria-label="breadcrumbs navigation">
-  <ul class="wy-breadcrumbs">
-    <li><a href="index.html">Docs</a> &raquo;</li>
-
-    <li>'''
-
-# The index page has a slightly different breadcrumb.
-breadcrumb_start_index = breadcrumb_start_other.replace('index.html', '#')
-
-breadcrumb_end = \
-'''</li>
-      <li class="wy-breadcrumbs-aside">
-
-      </li>
-  </ul>
-  <hr/>
-</div>'''
-
 for name in glob.glob('%s/*.html' % html_dir):
   print('Postprocessing: ', name)
   with io.open(name, encoding="utf-8") as fptr:
@@ -109,16 +76,5 @@
   for input_pattern, output_pattern in replacements:
     out = out.replace(input_pattern, output_pattern)
 
-  try:
-    breadcrumb_start = breadcrumb_start_index \
-                       if name.endswith('index.html') \
-                       else breadcrumb_start_other
-    pre_breadcrumb_start, post_breadcrumb_start = out.split(breadcrumb_start)
-    title, post_breadcrumb_end = post_breadcrumb_start.split(breadcrumb_end)
-    print('Stripping breadcrumb for -', title)
-    out = pre_breadcrumb_start + post_breadcrumb_end
-  except ValueError:
-    print('Skipping breadcrumb strip for', name)
-
   with io.open(name, 'w', encoding="utf-8") as fptr:
     fptr.write(out)