diff --git a/.travis.yml b/.travis.yml index abdeb386..2ed49b7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,16 @@ python: - 3.4 - 3.5 - 3.6 +matrix: + include: + - python: 2.7 + env: TOXENV=docs sudo: false install: - pip install tox-travis script: - tox + +branches: + only: + - master diff --git a/README.rst b/README.rst index a080195c..9b3d30dc 100644 --- a/README.rst +++ b/README.rst @@ -6,7 +6,7 @@ .. _wyrm: http://www.github.com/snide/wyrm/ .. _grunt: http://www.gruntjs.com .. _node: http://www.nodejs.com -.. _demo: http://docs.readthedocs.org +.. _demo: https://sphinx-rtd-theme.readthedocs.io/en/latest/ .. _hidden: http://sphinx-doc.org/markup/toctree.html .. image:: https://img.shields.io/pypi/v/sphinx_rtd_theme.svg @@ -16,12 +16,16 @@ .. image:: https://img.shields.io/pypi/l/sphinx_rtd_theme.svg :target: https://pypi.python.org/pypi/sphinx_rtd_theme/ :alt: license +.. image:: https://readthedocs.org/projects/sphinx-rtd-theme/badge/?version=latest + :target: http://sphinx-rtd-theme.readthedocs.io/en/latest/?badge=latest + :alt: Documentation Status ************************** Read the Docs Sphinx Theme ************************** .. contents:: + :backlinks: none View a working demo_ over on readthedocs.org_. @@ -31,9 +35,6 @@ If you'd like to update the theme, please make your edits to the SASS files here, rather than the .css files on checked into the repo. -.. image:: demo_docs/source/static/screen_mobile.png - :width: 100% - Installation ============ diff --git a/demo_docs/Makefile b/demo_docs/Makefile deleted file mode 100644 index 8c907fd4..00000000 --- a/demo_docs/Makefile +++ /dev/null @@ -1,153 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = 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) 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 ' where 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/SphinxRTDthemedemo.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SphinxRTDthemedemo.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/SphinxRTDthemedemo" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SphinxRTDthemedemo" - @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." diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..1d570829 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = ReadtheDocsSphinxTheme +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/demo_docs/source/conf.py b/docs/conf.py similarity index 96% rename from demo_docs/source/conf.py rename to docs/conf.py index c4204e69..67824eee 100644 --- a/demo_docs/source/conf.py +++ b/docs/conf.py @@ -14,8 +14,11 @@ import sys import os -sys.path.append(os.path.abspath('.')) -sys.path.append(os.path.abspath('./test_py_module')) + +sys.path.append(os.path.abspath('..')) +sys.path.append(os.path.abspath('./demo/')) + +from sphinx_rtd_theme import __version__ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -52,17 +55,17 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'Sphinx RTD theme demo' -copyright = u'2013, Dave Snider' +project = u'Read the Docs Sphinx Theme' +copyright = u'Read the Docs, Inc & contributors' # 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 = '0.2.4' +version = __version__ # The full version, including alpha/beta/rc tags. -release = '0.2.4' +release = __version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -126,7 +129,7 @@ html_theme_path = ["../.."] # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "static/logo-wordmark-light.svg" +html_logo = "demo/static/logo-wordmark-light.svg" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 diff --git a/demo_docs/source/api.rst b/docs/demo/api.rst similarity index 100% rename from demo_docs/source/api.rst rename to docs/demo/api.rst diff --git a/demo_docs/source/demo.rst b/docs/demo/demo.rst similarity index 100% rename from demo_docs/source/demo.rst rename to docs/demo/demo.rst diff --git a/demo_docs/source/index.rst b/docs/demo/index.rst similarity index 81% rename from demo_docs/source/index.rst rename to docs/demo/index.rst index c439b2cf..1c85869f 100644 --- a/demo_docs/source/index.rst +++ b/docs/demo/index.rst @@ -1,7 +1,5 @@ - -***************************** -Read the Docs Theme Demo Docs -***************************** +Read the Docs Theme Demo +************************ These documents are used to test and stress test the Read the Docs Theme. diff --git a/demo_docs/source/lists_tables.rst b/docs/demo/lists_tables.rst similarity index 100% rename from demo_docs/source/lists_tables.rst rename to docs/demo/lists_tables.rst diff --git a/demo_docs/source/long.rst b/docs/demo/long.rst similarity index 100% rename from demo_docs/source/long.rst rename to docs/demo/long.rst diff --git a/demo_docs/source/static/logo-wordmark-light.svg b/docs/demo/static/logo-wordmark-light.svg similarity index 100% rename from demo_docs/source/static/logo-wordmark-light.svg rename to docs/demo/static/logo-wordmark-light.svg diff --git a/demo_docs/source/static/screen_desktop.png b/docs/demo/static/screen_desktop.png similarity index 100% rename from demo_docs/source/static/screen_desktop.png rename to docs/demo/static/screen_desktop.png diff --git a/demo_docs/source/static/screen_mobile.png b/docs/demo/static/screen_mobile.png similarity index 100% rename from demo_docs/source/static/screen_mobile.png rename to docs/demo/static/screen_mobile.png diff --git a/demo_docs/source/static/yi_jing_01_chien.jpg b/docs/demo/static/yi_jing_01_chien.jpg similarity index 100% rename from demo_docs/source/static/yi_jing_01_chien.jpg rename to docs/demo/static/yi_jing_01_chien.jpg diff --git a/demo_docs/source/structure.rst b/docs/demo/structure.rst similarity index 100% rename from demo_docs/source/structure.rst rename to docs/demo/structure.rst diff --git a/demo_docs/source/test_py_module/__init__.py b/docs/demo/test_py_module/__init__.py similarity index 100% rename from demo_docs/source/test_py_module/__init__.py rename to docs/demo/test_py_module/__init__.py diff --git a/demo_docs/source/test_py_module/test.py b/docs/demo/test_py_module/test.py similarity index 100% rename from demo_docs/source/test_py_module/test.py rename to docs/demo/test_py_module/test.py diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..27bfdb75 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,13 @@ + +.. include:: ../README.rst + +Content +======= + +.. toctree:: + :caption: Theme + +.. toctree:: + :caption: Demo + + demo/index diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..41afd03c --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,2 @@ +sphinxcontrib.httpdomain +sphinx diff --git a/js/theme.js b/js/theme.js index 9fb32829..c9158d19 100644 --- a/js/theme.js +++ b/js/theme.js @@ -15,17 +15,22 @@ function ThemeNav () { isRunning: false }; - nav.enable = function () { + nav.enable = function (withStickyNav) { var self = this; - if (!self.isRunning) { - self.isRunning = true; - jQuery(function ($) { - self.init($); + if (self.isRunning) { + // Only allow enabling nav logic once + return; + } - self.reset(); - self.win.on('hashchange', self.reset); + self.isRunning = true; + jQuery(function ($) { + self.init($); + self.reset(); + self.win.on('hashchange', self.reset); + + if (withStickyNav) { // Set scroll monitor self.win.on('scroll', function () { if (!self.linkScroll) { @@ -35,18 +40,23 @@ function ThemeNav () { } } }); + } - // Set resize monitor - self.win.on('resize', function () { - if (!self.winResize) { - self.winResize = true; - requestAnimationFrame(function() { self.onResize(); }); - } - }); - - self.onResize(); + // Set resize monitor + self.win.on('resize', function () { + if (!self.winResize) { + self.winResize = true; + requestAnimationFrame(function() { self.onResize(); }); + } }); - }; + + self.onResize(); + }); + + }; + + nav.enableSticky = function() { + this.enable(true); }; nav.init = function ($) { @@ -176,7 +186,7 @@ function ThemeNav () { module.exports.ThemeNav = ThemeNav(); if (typeof(window) != 'undefined') { - window.SphinxRtdTheme = { StickyNav: module.exports.ThemeNav }; + window.SphinxRtdTheme = { Navigation: module.exports.ThemeNav }; } diff --git a/sass/_theme_rst.sass b/sass/_theme_rst.sass index e3b374ed..a2035c51 100644 --- a/sass/_theme_rst.sass +++ b/sass/_theme_rst.sass @@ -161,7 +161,10 @@ // These are the little citation links [1] that show up within paragraphs. .footnote-reference, .citation-reference - vertical-align: super + vertical-align: baseline + position: relative + top: -0.4em + line-height: 0 font-size: 90% // Tables! Sphinx LOVES TABLES. Most of wyrm assumes you're only going to use a table as a table diff --git a/sphinx_rtd_theme/layout.html b/sphinx_rtd_theme/layout.html index 965cc45c..e647bddd 100644 --- a/sphinx_rtd_theme/layout.html +++ b/sphinx_rtd_theme/layout.html @@ -209,14 +209,15 @@ {% endif %} - {# STICKY NAVIGATION #} - {% if theme_sticky_navigation|tobool %} - {% endif %} {%- block footer %} {% endblock %} diff --git a/tox.ini b/tox.ini index 6052fc03..cf970daf 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{27,34,35,36}-sphinx{13,14,15} +envlist = py{27,34,35,36}-sphinx{13,14,15,16}, docs [tox:travis] 2.7 = py27-sphinx{13,14,15} @@ -17,5 +17,13 @@ deps = sphinx13: Sphinx < 1.4 sphinx14: Sphinx < 1.5 sphinx15: Sphinx < 1.6 + sphinx16: Sphinx < 1.7 commands = py.test {posargs} + +[testenv:docs] +changedir = {toxinidir}/docs +deps = + -r{toxinidir}/docs/requirements.txt +commands = + sphinx-build -b html -d {envtmpdir}/doctrees . {envtmpdir}/html