Index: docs/sphinx-docs/Makefile
===================================================================
--- docs/sphinx-docs/Makefile	(revision 92a8206036377493c9bc7a252dd22bbed04a5fc7)
+++ 	(revision )
@@ -1,181 +1,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         =
-BUILDDIR      = build
-
-# User-friendly check for sphinx-build
-ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
-$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
-endif
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html       to make standalone HTML files"
-	@echo "  dirhtml    to make HTML files named index.html in directories"
-	@echo "  singlehtml to make a single large HTML file"
-	@echo "  pickle     to make pickle files"
-	@echo "  json       to make JSON files"
-	@echo "  htmlhelp   to make HTML files and a HTML help project"
-	@echo "  qthelp     to make HTML files and a qthelp project"
-	@echo "  devhelp    to make HTML files and a Devhelp project"
-	@echo "  epub       to make an epub"
-	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
-	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
-	@echo "  text       to make text files"
-	@echo "  man        to make manual pages"
-	@echo "  texinfo    to make Texinfo files"
-	@echo "  info       to make Texinfo files and run them through makeinfo"
-	@echo "  gettext    to make PO message catalogs"
-	@echo "  changes    to make an overview of all changed/added/deprecated items"
-	@echo "  xml        to make Docutils-native XML files"
-	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
-	@echo "  linkcheck  to check all external links for integrity"
-	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
-
-clean:
-	rm -rf $(BUILDDIR)/*
-
-stubs:
-	rm -rf source/api
-	python call-sphinx-api.py
-	
-html: stubs
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
-	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
-	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
-	@echo
-	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files."
-
-json:
-	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
-	@echo
-	@echo "Build finished; now you can process the JSON files."
-
-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."
-
-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/SasView.qhcp"
-	@echo "To view the help file:"
-	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SasView.qhc"
-
-devhelp:
-	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
-	@echo
-	@echo "Build finished."
-	@echo "To view the help file:"
-	@echo "# mkdir -p $$HOME/.local/share/devhelp/SasView"
-	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SasView"
-	@echo "# devhelp"
-
-epub:
-	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
-	@echo
-	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-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)."
-
-latexpdf:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through pdflatex..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-latexpdfja:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through platex and dvipdfmx..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
-	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
-	@echo
-	@echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
-	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
-	@echo
-	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-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)."
-
-info:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo "Running Texinfo files through makeinfo..."
-	make -C $(BUILDDIR)/texinfo info
-	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-gettext:
-	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
-	@echo
-	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-changes:
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
-	@echo
-	@echo "The overview file is in $(BUILDDIR)/changes."
-
-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."
-
-doctest:
-	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
-	@echo "Testing of doctests in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/doctest/output.txt."
-
-xml:
-	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
-	@echo
-	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-pseudoxml:
-	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
-	@echo
-	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
Index: docs/sphinx-docs/build_sphinx.py
===================================================================
--- docs/sphinx-docs/build_sphinx.py	(revision a40a875e498ab359ff534604b269a95081034b59)
+++ docs/sphinx-docs/build_sphinx.py	(revision a40a875e498ab359ff534604b269a95081034b59)
@@ -0,0 +1,97 @@
+"""
+Functions for building sphinx docs.
+
+For more information on the invocation of sphinx see:
+http://sphinx-doc.org/invocation.html
+"""
+import subprocess
+import os
+import sys
+import fnmatch
+import shutil
+
+from distutils.dir_util import copy_tree
+from distutils.util import get_platform
+
+platform = '.%s-%s'%(get_platform(),sys.version[:3])
+
+CURRENT_SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+
+SASVIEW_SRC = os.path.join(CURRENT_SCRIPT_DIR, "..", "..", "src")
+SASVIEW_BUILD = os.path.abspath(os.path.join(CURRENT_SCRIPT_DIR, "..", "..", "build", "lib"+platform))
+
+SPHINX_BUILD = os.path.join(CURRENT_SCRIPT_DIR, "build")
+SPHINX_SOURCE = os.path.join(CURRENT_SCRIPT_DIR, "source")
+SPHINX_SOURCE_API = os.path.join(SPHINX_SOURCE, "dev","api")
+
+def _remove_dir(dir_path):
+    """Removes the given directory."""
+    if os.path.isdir(dir_path):
+        print "Removing \"%s\"... " % dir_path
+        shutil.rmtree(dir_path)
+
+def clean():
+    """
+    Clean the sphinx build directory.
+    """
+    print "=== Cleaning Sphinx Build ==="
+    _remove_dir(SPHINX_BUILD)
+
+def retrieve_user_docs():
+    """
+    Copies across the contents of any docs/ directories in src/, and puts them
+    in an appropriately named directory of docs/sphinx-docs/source/. For
+    example:
+
+    sans/../[MODULE]/docs/A.rst
+    sans/../[MODULE]/docs/B.rst
+
+    gets copied to a new location:
+
+    docs/sphinx-docs/source/user/[MODULE]/A.rst
+    docs/sphinx-docs/source/user/[MODULE]/B.rst
+
+    so that Sphinx may pick it up when generating the documentation.
+    """
+    print "=== Retrieve User Docs ==="
+
+    # Copy documentation files from their "source" to their "destination".
+    for root, dirnames, _ in os.walk(SASVIEW_SRC):
+        for dirname in fnmatch.filter(dirnames, 'docs'):
+
+            docs = os.path.abspath(os.path.join(root, dirname))
+            print "Found docs folder at \"%s\"." % docs
+
+            dest_dir_name = os.path.basename(os.path.dirname(docs))
+            dest_dir = os.path.join(SPHINX_SOURCE, "user", dest_dir_name)
+
+            copy_tree(docs, dest_dir, update=1)
+
+def apidoc():
+    """
+    Runs sphinx-apidoc to generate .rst files from the docstrings in .py files
+    in the SasView build directory.
+    """
+    print "=== Generate API Rest Files ==="
+
+    # Clean directory before generating a new version.
+    _remove_dir(SPHINX_SOURCE_API)
+
+    subprocess.call(["sphinx-apidoc",
+                     "-o", SPHINX_SOURCE_API, # Output dir.
+                     "-d", "8", # Max depth of TOC.
+                     SASVIEW_BUILD])
+
+def build():
+    """
+    Runs sphinx-build.  Reads in all .rst files and spits out the final html.
+    """
+    print "=== Build HTML from Rest Files ==="
+    subprocess.call(["sphinx-build",
+                     "-b", "html", # Builder name.
+                     "-d", os.path.join(SPHINX_BUILD, "doctrees"), # Cache directory (doctrees).
+                     SPHINX_SOURCE,
+                     os.path.join(SPHINX_BUILD, "html")])
+
+if __name__ == "__main__":
+    call()
Index: docs/sphinx-docs/call-sphinx-api.py
===================================================================
--- docs/sphinx-docs/call-sphinx-api.py	(revision 92a8206036377493c9bc7a252dd22bbed04a5fc7)
+++ 	(revision )
@@ -1,22 +1,0 @@
-"""
-Called by Makefile.  Invokes sphinx-apidoc so that we may build the
-developer documentation.
-
-Having a separate python program to do this is preferable to trying to
-work out what platform and python version we have (e.g. "lib/lib.win32-2.6")
-from inside the makefile.
-"""
-
-import subprocess
-import os
-import sys
-from distutils.util import get_platform
-
-platform = '.%s-%s'%(get_platform(),sys.version[:3])
-build_lib = os.path.abspath('../../build/lib'+platform)
-
-subprocess.call([
-	"sphinx-apidoc",
-	"-o", "source/api",
-	"-d", "8",
-	build_lib])
Index: docs/sphinx-docs/source/dev/dev.rst
===================================================================
--- docs/sphinx-docs/source/dev/dev.rst	(revision a40a875e498ab359ff534604b269a95081034b59)
+++ docs/sphinx-docs/source/dev/dev.rst	(revision a40a875e498ab359ff534604b269a95081034b59)
@@ -0,0 +1,17 @@
+Developer Documentation
+=======================
+
+Contents
+--------
+
+.. toctree::
+   :maxdepth: 1
+
+   SasView and Park API <api/modules>
+
+Indices and Search
+------------------
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
Index: docs/sphinx-docs/source/index.rst
===================================================================
--- docs/sphinx-docs/source/index.rst	(revision a90a963dd70d9f5d99ef0de2a583458ab8fe1341)
+++ docs/sphinx-docs/source/index.rst	(revision a40a875e498ab359ff534604b269a95081034b59)
@@ -4,19 +4,11 @@
    contain the root `toctree` directive.
 
-SasView documentation
+SasView Documentation
 =====================
 
-Contents:
+.. toctree::
+   :maxdepth: 1
 
-.. toctree::
-   :maxdepth: 2
+   User Documentation <user/user>
 
-
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
-
+   Developer Documentation <dev/dev>
Index: docs/sphinx-docs/source/user/user.rst
===================================================================
--- docs/sphinx-docs/source/user/user.rst	(revision a40a875e498ab359ff534604b269a95081034b59)
+++ docs/sphinx-docs/source/user/user.rst	(revision a40a875e498ab359ff534604b269a95081034b59)
@@ -0,0 +1,7 @@
+User Documentation
+==================
+
+.. toctree::
+   :maxdepth: 1
+
+   Models <models/model_functions>
