Sidebar has global table of contents.

Change-Id: I7fe9053868a4660b0db8d7607ee618fc30ddaefd
diff --git a/docs/source/_themes/armstrong/README.rst b/docs/source/_themes/armstrong/README.rst
deleted file mode 100644
index c548f9d..0000000
--- a/docs/source/_themes/armstrong/README.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-Armstrong Sphinx Theme
-======================
-Sphinx theme for Armstrong documentation
-
-
-Usage
------
-Symlink this repository into your documentation at ``docs/_themes/armstrong``
-then add the following two settings to your Sphinx ``conf.py`` file::
-
-    html_theme = "armstrong"
-    html_theme_path = ["_themes", ]
-
-You can also change colors and such by adjusting the ``html_theme_options``
-dictionary.  For a list of all settings, see ``theme.conf``.
-
-
-Defaults
---------
-This repository has been customized for Armstrong documentation, but you can
-use the original default color scheme on your project by copying the
-``rtd-theme.conf`` over the existing ``theme.conf``.
-
-
-Contributing
-------------
-
-* Create something awesome -- make the code better, add some functionality,
-  whatever (this is the hardest part).
-* `Fork it`_
-* Create a topic branch to house your changes
-* Get all of your commits in the new topic branch
-* Submit a `pull request`_
-
-.. _Fork it: http://help.github.com/forking/
-.. _pull request: http://help.github.com/pull-requests/
-
-
-State of Project
-----------------
-Armstrong is an open-source news platform that is freely available to any
-organization.  It is the result of a collaboration between the `Texas Tribune`_
-and `Bay Citizen`_, and a grant from the `John S. and James L. Knight
-Foundation`_.  The first stable release is scheduled for September, 2011.
-
-To follow development, be sure to join the `Google Group`_.
-
-``armstrong_sphinx`` is part of the `Armstrong`_ project.  Unless you're
-looking for a Sphinx theme, you're probably looking for the main project.
-
-.. _Armstrong: http://www.armstrongcms.org/
-.. _Bay Citizen: http://www.baycitizen.org/
-.. _John S. and James L. Knight Foundation: http://www.knightfoundation.org/
-.. _Texas Tribune: http://www.texastribune.org/
-.. _Google Group: http://groups.google.com/group/armstrongcms
-
-
-Credit
-------
-This theme is based on the the excellent `Read the Docs`_ theme.  The original
-can be found in the `readthedocs.org`_ repository on GitHub.
-
-.. _Read the Docs: http://readthedocs.org/
-.. _readthedocs.org: https://github.com/rtfd/readthedocs.org
-
-
-License
--------
-Like the original RTD code, this code is licensed under a BSD.  See the
-associated ``LICENSE`` file for more information.
diff --git a/docs/source/_themes/armstrong/globaltoc.html b/docs/source/_themes/armstrong/globaltoc.html
new file mode 100644
index 0000000..8fd1879
--- /dev/null
+++ b/docs/source/_themes/armstrong/globaltoc.html
@@ -0,0 +1,11 @@
+{#
+    basic/globaltoc.html
+    ~~~~~~~~~~~~~~~~~~~~
+
+    Sphinx sidebar template: global table of contents.
+
+    :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+#}
+<h3><a href="{{ pathto(master_doc) }}">{{ _('Contents') }}</a></h3>
+{{ toctree() }}
diff --git a/docs/source/_themes/armstrong/layout.html b/docs/source/_themes/armstrong/layout.html
index d7b8fbb..6e9a1f5 100644
--- a/docs/source/_themes/armstrong/layout.html
+++ b/docs/source/_themes/armstrong/layout.html
@@ -9,6 +9,44 @@
 
 {% endblock %}
 
+
+{%- macro sidebar() %}
+      {%- if render_sidebar %}
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+          {%- block sidebarlogo %}
+          {%- if logo %}
+            <p class="logo"><a href="{{ pathto(master_doc) }}">
+              <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
+            </a></p>
+          {%- endif %}
+          {%- endblock %}
+          {%- if sidebars != None %}
+            {#- new style sidebar: explicitly include/exclude templates #}
+            {%- for sidebartemplate in sidebars %}
+            {%- include sidebartemplate %}
+            {%- endfor %}
+          {%- else %}
+            {#- old style sidebars: using blocks -- should be deprecated #}
+            {%- block sidebartoc %}
+            {%- include "globaltoc.html" %}
+            {%- endblock %}
+            {%- block sidebarsourcelink %}
+            {%- include "sourcelink.html" %}
+            {%- endblock %}
+            {%- if customsidebar %}
+            {%- include customsidebar %}
+            {%- endif %}
+            {%- block sidebarsearch %}
+            {%- include "searchbox.html" %}
+            {%- endblock %}
+          {%- endif %}
+        </div>
+      </div>
+      {%- endif %}
+{%- endmacro %}
+
+
 {% block footer %}
 <div class="footer">
 {%- if show_copyright %}
diff --git a/docs/source/conf.py b/docs/source/conf.py
index ccd6ca0..174f272 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -147,7 +147,7 @@
 html_split_index = False
 
 # If true, links to the reST sources are added to the pages.
-html_show_sourcelink = True
+html_show_sourcelink = False
 
 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
 html_show_sphinx = False
diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst
index 5e0347e..8ebce10 100644
--- a/docs/source/contributing.rst
+++ b/docs/source/contributing.rst
@@ -23,6 +23,8 @@
 ===================
 
 TBD
+
+
 .. rubric:: Footnotes
 
 .. [#f1] http://groups.google.com/group/ceres-solver
diff --git a/docs/source/index.rst b/docs/source/index.rst
index eaf9c90..8aaeca6 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -3,64 +3,14 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-Introduction
-============
-
-Solving nonlinear least squares problems [#f1]_ comes up in a broad
-range of areas across science and engineering - from fitting curves in
-statistics, to constructing 3D models from photographs in computer
-vision. Ceres Solver [#f2]_ [#f3]_ is a portable C++ library for
-solving non-linear least squares problems. It is designed to solve
-small and large sparse problems accurately and efficiently.
-
-At Google, Ceres Solver has been used for solving a variety of
-problems in computer vision and machine learning. e.g., it is used to
-to estimate the pose of Street View cars, aircrafts, and satellites;
-to build 3D models for PhotoTours; to estimate satellite image sensor
-characteristics, and more.
-
-
-Features:
-
-#. A friendly :ref:`chapter-modeling`.
-
-#. Automatic and numeric differentiation.
-
-#. Robust loss functions and Local parameterizations.
-
-#. Multithreading.
-
-#. Trust-Region (Levenberg-Marquardt and Dogleg) and Line Search
-   (Nonlinear CG and L-BFGS) solvers.
-
-#. Variety of linear solvers.
-
-   a. Dense QR and Cholesky factorization (using `Eigen
-      <http://eigen.tuxfamily.org/index.php?title=Main_Page>`_) for
-      small problems.
-
-   b. Sparse Cholesky factorization (using `SuiteSparse
-      <http://www.cise.ufl.edu/research/sparse/SuiteSparse/>`_ and
-      `CXSparse <http://www.cise.ufl.edu/research/sparse/CSparse/>`_) for
-      large sparse problems.
-
-   c. Specialized solvers for bundle adjustment problems in computer
-      vision.
-
-   d. Iterative linear solvers with perconditioners for general sparse
-      and bundle adjustment problems.
-
-#. Portable: Runs on Linux, Windows, Mac OS X and Android. An iOS port is
-   underway.
-
-
-
+========
 Contents
 ========
 
 .. toctree::
    :maxdepth: 1
 
+   introduction
    building
    tutorial
    modeling
@@ -72,23 +22,4 @@
    bibliography
    license
 
-.. rubric:: Footnotes
-
-.. [#f1] For a gentle but brief introduction to non-linear least
-         squares problems, please start by reading the
-         :ref:`chapter-tutorial`.
-
-.. [#f2] While there is some debate as to who invented of the method
-         of Least Squares [Stigler]_. There is no debate that it was
-         Carl Friedrich Gauss's prediction of the orbit of the newly
-         discovered asteroid Ceres based on just 41 days of
-         observations that brought it to the attention of the world
-         [TenenbaumDirector]_. We named our solver after Ceres to
-         celebrate this seminal event in the history of astronomy,
-         statistics and optimization.
-
-.. [#f3] For brevity, in the rest of this document we will just use
-         the term Ceres.
-
-
 
diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst
new file mode 100644
index 0000000..33d847f
--- /dev/null
+++ b/docs/source/introduction.rst
@@ -0,0 +1,75 @@
+.. _chapter-introduction:
+
+============
+Introduction
+============
+
+Solving nonlinear least squares problems [#f1]_ comes up in a broad
+range of areas across science and engineering - from fitting curves in
+statistics, to constructing 3D models from photographs in computer
+vision. Ceres Solver [#f2]_ [#f3]_ is a portable C++ library for
+solving non-linear least squares problems. It is designed to solve
+small and large sparse problems accurately and efficiently.
+
+At Google, Ceres Solver has been used for solving a variety of
+problems in computer vision and machine learning. e.g., it is used to
+to estimate the pose of Street View cars, aircrafts, and satellites;
+to build 3D models for PhotoTours; to estimate satellite image sensor
+characteristics, and more.
+
+
+Features:
+
+#. A friendly :ref:`chapter-modeling`.
+
+#. Automatic and numeric differentiation.
+
+#. Robust loss functions and Local parameterizations.
+
+#. Multithreading.
+
+#. Trust-Region (Levenberg-Marquardt and Dogleg) and Line Search
+   (Nonlinear CG and L-BFGS) solvers.
+
+#. Variety of linear solvers.
+
+   a. Dense QR and Cholesky factorization (using `Eigen
+      <http://eigen.tuxfamily.org/index.php?title=Main_Page>`_) for
+      small problems.
+
+   b. Sparse Cholesky factorization (using `SuiteSparse
+      <http://www.cise.ufl.edu/research/sparse/SuiteSparse/>`_ and
+      `CXSparse <http://www.cise.ufl.edu/research/sparse/CSparse/>`_) for
+      large sparse problems.
+
+   c. Specialized solvers for bundle adjustment problems in computer
+      vision.
+
+   d. Iterative linear solvers with perconditioners for general sparse
+      and bundle adjustment problems.
+
+#. Portable: Runs on Linux, Windows, Mac OS X and Android. An iOS port is
+   underway.
+
+
+
+.. rubric:: Footnotes
+
+.. [#f1] For a gentle but brief introduction to non-linear least
+         squares problems, please start by reading the
+         :ref:`chapter-tutorial`.
+
+.. [#f2] While there is some debate as to who invented of the method
+         of Least Squares [Stigler]_. There is no debate that it was
+         Carl Friedrich Gauss's prediction of the orbit of the newly
+         discovered asteroid Ceres based on just 41 days of
+         observations that brought it to the attention of the world
+         [TenenbaumDirector]_. We named our solver after Ceres to
+         celebrate this seminal event in the history of astronomy,
+         statistics and optimization.
+
+.. [#f3] For brevity, in the rest of this document we will just use
+         the term Ceres.
+
+
+