Commits

Michel Albert committed 3ca7de8

Initial development environment laid out.

* Example Sphinx document added for testing
* makefiles added to compile all. Simply run ``make`` in the project root.
* default layout extended to load the JS files.

  • Participants
  • Parent commits b141755

Comments (0)

Files changed (9)

 env
+colorhead/static/colorhead.js
+example/_build
+#
+# Template Makefile. Running ``make`` will:
+#
+# * Compile the JS file
+# * Compile the example template
+#
+
+PLOVR=~/work/__libs__/plovr/build/plovr.jar
+
+all:
+	(cd js && PLOVR=${PLOVR} make)
+	(cd example && make html)

colorhead/layout.html

+{% extends "default/layout.html" %}
+
+{# {% if theme_collapsiblesidebar|tobool %} #}
+{% set script_files = script_files + ['_static/colorhead.js'] %}
+{% block footer %}
+    {{ super() }}
+    <script type="text/javascript">
+        var folder = new SphinxFolding();
+        folder.init();
+    </script>
+{% endblock%}
+{# {% endif %} #}
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = ../env/bin/sphinx-build
+PAPER         =
+BUILDDIR      = _build
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.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 "  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 "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+	-rm -rf $(BUILDDIR)/*
+
+html:
+	$(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/example.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/example.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/example"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/example"
+	@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."
+
+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."
+extensions = []
+templates_path = ['_templates']
+source_suffix = '.rst'
+master_doc = 'index'
+project = u'example'
+copyright = u'2013, me'
+version = '1.0'
+release = '1.0'
+exclude_patterns = ['_build']
+pygments_style = 'sphinx'
+html_theme = 'colorhead'
+html_theme_path = [".."]
+html_static_path = ['_static']
+htmlhelp_basename = 'exampledoc'
+latex_elements = {
+}
+latex_documents = [
+  ('index', 'example.tex', u'example Documentation',
+   u'me', 'manual'),
+]
+man_pages = [
+    ('index', 'example', u'example Documentation',
+     [u'me'], 1)
+]
+texinfo_documents = [
+  ('index', 'example', u'example Documentation',
+   u'me', 'example', 'One line description of project.',
+   'Miscellaneous'),
+]

example/index.rst

+Example Doc
+===========
+
+
+.. py:class:: ExampleClass
+
+    .. py:attribute:: CONST1
+
+    .. py:method:: example_method(param1, param2)
+
+       Example text
+
+
+.. py:class:: themodule.ExampleClass2
+
+    .. py:attribute:: CONST2
+
+    .. py:method:: example_method_2(param1, param2)
+
+       Example text
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
+#
+# To run this Makefile, the environment variable "PLOVR" must be set to the
+# plovr jar file
+#
+# The global Makefile in the project root takes care of this.
+#
+
+all:
+	java -jar ${PLOVR} build plovr-config.js

js/plovr-config.js

+{
+    "id": "dev",
+    "inputs": "sphinx-folding.js",
+    "mode": "SIMPLE",
+    "level": "VERBOSE",
+    "output-file": "../colorhead/static/colorhead.js"
+}

js/sphinx-folding.js

+goog.provide('SphinxFolding');
+
+goog.require('goog.array');
+goog.require('goog.debug');
+goog.require('goog.debug.Logger');
+goog.require('goog.dom');
+
+
+/**
+ * @constructor
+ */
+SphinxFolding = function() {
+  // empty constructor
+};
+
+
+SphinxFolding.prototype.init = function() {
+  goog.require('goog.debug.FancyWindow');
+  var debugWindow = new goog.debug.FancyWindow('main');
+  debugWindow.setEnabled(true);
+  debugWindow.init();
+
+  var classes = goog.dom.getElementsByTagNameAndClass('dl', 'class');
+  goog.array.forEach(classes, function(obj){
+    SphinxFolding.LOG.info(goog.debug.expose(obj));
+  });
+};
+
+
+/**
+ * The class logger
+ */
+SphinxFolding.LOG = goog.debug.Logger.getLogger('SphinxFolding');
+
+
+goog.exportSymbol('SphinxFolding', SphinxFolding);