summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lord <davidism@gmail.com>2018-09-07 07:47:21 -0700
committerDavid Lord <davidism@gmail.com>2018-09-07 07:47:21 -0700
commit7062f1e6afeaa1307d4030f8d5d0f255d9be3cf5 (patch)
tree1a2b5c16e657698f3e17da25d6ec2dba74ef0df5
parente3f3fdc5969dc819c14bb2e3a25bdfaba61cdb0b (diff)
parent5ace642838605a94a88740a6a3ce620c7abddce9 (diff)
downloadclick-2.x.tar.gz
Merge branch '1.x' into 2.x2.x
-rw-r--r--docs/Makefile130
-rw-r--r--docs/_static/click-icon.pngbin0 -> 625 bytes
-rw-r--r--docs/_static/click-logo-sidebar.png (renamed from docs/_static/click-small@2x.png)bin4246 -> 4246 bytes
-rw-r--r--docs/_static/click-logo.png (renamed from docs/_static/click@2x.png)bin26081 -> 26081 bytes
-rw-r--r--docs/_static/click-small.pngbin1888 -> 0 bytes
-rw-r--r--docs/_static/click.pngbin8020 -> 0 bytes
-rw-r--r--docs/_templates/sidebarintro.html13
-rw-r--r--docs/_templates/sidebarlogo.html3
-rw-r--r--docs/_themes/LICENSE37
-rw-r--r--docs/_themes/README31
-rw-r--r--docs/_themes/click/layout.html20
-rw-r--r--docs/_themes/click/relations.html19
-rw-r--r--docs/_themes/click/static/click.css_t403
-rw-r--r--docs/_themes/click/theme.conf4
-rw-r--r--docs/clickdoctools.py255
-rw-r--r--docs/conf.py241
-rw-r--r--docs/index.rst15
-rw-r--r--docs/make.bat155
-rw-r--r--docs/requirements.txt2
19 files changed, 82 insertions, 1246 deletions
diff --git a/docs/Makefile b/docs/Makefile
index 9bca27f..6e3c9b9 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -1,130 +1,20 @@
-# Makefile for Sphinx documentation
+# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
-PAPER =
+SPHINXPROJ = Jinja
+SOURCEDIR = .
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) .
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
-
+# Put it first so that "make" without argument is like "make help".
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 " 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/Classy.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Classy.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/Classy"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Classy"
- @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 all-pdf' or \`make all-ps' in that directory to" \
- "run these through (pdf)latex."
-
-latexpdf: latex
- $(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."
-
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-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."
+.PHONY: help Makefile
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
+# 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)
diff --git a/docs/_static/click-icon.png b/docs/_static/click-icon.png
new file mode 100644
index 0000000..b883cfa
--- /dev/null
+++ b/docs/_static/click-icon.png
Binary files differ
diff --git a/docs/_static/click-small@2x.png b/docs/_static/click-logo-sidebar.png
index 4c2bc07..4c2bc07 100644
--- a/docs/_static/click-small@2x.png
+++ b/docs/_static/click-logo-sidebar.png
Binary files differ
diff --git a/docs/_static/click@2x.png b/docs/_static/click-logo.png
index a887450..a887450 100644
--- a/docs/_static/click@2x.png
+++ b/docs/_static/click-logo.png
Binary files differ
diff --git a/docs/_static/click-small.png b/docs/_static/click-small.png
deleted file mode 100644
index f101a8a..0000000
--- a/docs/_static/click-small.png
+++ /dev/null
Binary files differ
diff --git a/docs/_static/click.png b/docs/_static/click.png
deleted file mode 100644
index 64c62f1..0000000
--- a/docs/_static/click.png
+++ /dev/null
Binary files differ
diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html
deleted file mode 100644
index 0041190..0000000
--- a/docs/_templates/sidebarintro.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<h3>About</h3>
-<p>
- Click is a Python package for creating beautiful command line interfaces in a
- composable way with as little amount of code as necessary. It’s the “Command
- Line Interface Creation Kit”.
-</p>
-<h3>Useful Links</h3>
-<ul>
- <li><a href="http://click.pocoo.org/">The Click Website</a></li>
- <li><a href="http://pypi.python.org/pypi/click">click @ PyPI</a></li>
- <li><a href="http://github.com/mitsuhiko/click">click @ github</a></li>
- <li><a href="http://github.com/mitsuhiko/click/issues">Issue Tracker</a></li>
-</ul>
diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html
deleted file mode 100644
index 55c4629..0000000
--- a/docs/_templates/sidebarlogo.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<p class="logo"><a href="{{ pathto(master_doc) }}">
- <img class="logo" src="{{ pathto('_static/click-small@2x.png', 1) }}" width="120" height="50" alt="Logo">
-</a></p>
diff --git a/docs/_themes/LICENSE b/docs/_themes/LICENSE
deleted file mode 100644
index 8543fb8..0000000
--- a/docs/_themes/LICENSE
+++ /dev/null
@@ -1,37 +0,0 @@
-Copyright (c) 2014 by Armin Ronacher.
-
-Some rights reserved.
-
-Redistribution and use in source and binary forms of the theme, with or
-without modification, are permitted provided that the following conditions
-are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
-* The names of the contributors may not be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-
-We kindly ask you to only use these themes in an unmodified manner just
-for Click and Click-related products, not for unrelated projects. If you
-like the visual style and want to use it for your own projects, please
-consider making some larger changes to the themes (such as changing
-font faces, sizes, colors or margins).
-
-THIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/docs/_themes/README b/docs/_themes/README
deleted file mode 100644
index b3292bd..0000000
--- a/docs/_themes/README
+++ /dev/null
@@ -1,31 +0,0 @@
-Flask Sphinx Styles
-===================
-
-This repository contains sphinx styles for Flask and Flask related
-projects. To use this style in your Sphinx documentation, follow
-this guide:
-
-1. put this folder as _themes into your docs folder. Alternatively
- you can also use git submodules to check out the contents there.
-2. add this to your conf.py:
-
- sys.path.append(os.path.abspath('_themes'))
- html_theme_path = ['_themes']
- html_theme = 'flask'
-
-The following themes exist:
-
-- 'flask' - the standard flask documentation theme for large
- projects
-- 'flask_small' - small one-page theme. Intended to be used by
- very small addon libraries for flask.
-
-The following options exist for the flask_small theme:
-
- [options]
- index_logo = '' filename of a picture in _static
- to be used as replacement for the
- h1 in the index.rst file.
- index_logo_height = 120px height of the index logo
- github_fork = '' repository name on github for the
- "fork me" badge
diff --git a/docs/_themes/click/layout.html b/docs/_themes/click/layout.html
deleted file mode 100644
index 919e780..0000000
--- a/docs/_themes/click/layout.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{%- extends "basic/layout.html" %}
-{%- block extrahead %}
- {{ super() }}
-{% endblock %}
-{%- block relbar2 %}{% endblock %}
-{% block header %}
- {{ super() }}
- {% if pagename == 'index' %}
- <div class=indexwrapper>
- {% endif %}
-{% endblock %}
-{%- block footer %}
- <div class="footer">
- &copy; Copyright {{ copyright }}.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
- </div>
- {% if pagename == 'index' %}
- </div>
- {% endif %}
-{%- endblock %}
diff --git a/docs/_themes/click/relations.html b/docs/_themes/click/relations.html
deleted file mode 100644
index 3bbcde8..0000000
--- a/docs/_themes/click/relations.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<h3>Related Topics</h3>
-<ul>
- <li><a href="{{ pathto(master_doc) }}">Documentation overview</a><ul>
- {%- for parent in parents %}
- <li><a href="{{ parent.link|e }}">{{ parent.title }}</a><ul>
- {%- endfor %}
- {%- if prev %}
- <li>Previous: <a href="{{ prev.link|e }}" title="{{ _('previous chapter')
- }}">{{ prev.title }}</a></li>
- {%- endif %}
- {%- if next %}
- <li>Next: <a href="{{ next.link|e }}" title="{{ _('next chapter')
- }}">{{ next.title }}</a></li>
- {%- endif %}
- {%- for parent in parents %}
- </ul></li>
- {%- endfor %}
- </ul></li>
-</ul>
diff --git a/docs/_themes/click/static/click.css_t b/docs/_themes/click/static/click.css_t
deleted file mode 100644
index 452fb4f..0000000
--- a/docs/_themes/click/static/click.css_t
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * click.css_t
- * ~~~~~~~~~~~
- *
- * :copyright: Copyright 2014 by Armin Ronacher.
- * :license: Flask Design License, see LICENSE for details.
- */
-
-{% set page_width = '940px' %}
-{% set sidebar_width = '220px' %}
-
-@import url("basic.css");
-
-@import url(http://fonts.googleapis.com/css?family=Ubuntu+Mono:400,400italic,700,700italic);
-@import url(http://fonts.googleapis.com/css?family=Open+Sans:300,400);
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: 'Ubuntu Mono', 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono';
- font-size: 15px;
- background-color: white;
- color: #000;
- margin: 0;
- padding: 0;
-}
-
-div.document {
- width: {{ page_width }};
- margin: 30px auto 0 auto;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 {{ sidebar_width }};
-}
-
-div.sphinxsidebar {
- width: {{ sidebar_width }};
-}
-
-div.sphinxsidebar h3,
-div.sphinxsidebar h4 {
- font-family: 'Open Sans', 'Helvetica', 'Arial', sans-serif;
- font-weight: 300;
- margin: 20px 0px 10px 0px;
- padding: 0;
-}
-
-hr {
- border: 1px solid #B1B4B6;
-}
-
-div.body {
- background-color: #ffffff;
- color: #3E4349;
- padding: 0 30px 0 30px;
-}
-
-img.floatingflask {
- padding: 0 0 10px 10px;
- float: right;
-}
-
-div.footer {
- width: {{ page_width }};
- margin: 20px auto 30px auto;
- font-size: 14px;
- color: #888;
- text-align: right;
-}
-
-div.footer a {
- color: #888;
-}
-
-div.related {
- display: none;
-}
-
-div.sphinxsidebar a {
- color: #444;
- text-decoration: none;
- border-bottom: 1px dotted #999;
-}
-
-div.sphinxsidebar a:hover {
- border-bottom: 1px solid #999;
-}
-
-div.sphinxsidebar {
- font-size: 14px;
- line-height: 1.5;
-}
-
-div.sphinxsidebarwrapper {
- padding: 18px 10px;
-}
-
-div.sphinxsidebarwrapper p.logo {
- padding: 0 0 20px 0;
- margin: 0;
- text-align: left;
-}
-
-div.sphinxsidebar h3,
-div.sphinxsidebar h4 {
- color: #444;
- font-size: 18px;
- font-weight: normal;
- margin: 0 0 5px 0;
- padding: 0;
-}
-
-div.sphinxsidebar h4 {
- font-size: 15px;
-}
-
-div.sphinxsidebar h3 a {
- color: #444;
-}
-
-div.sphinxsidebar p.logo a,
-div.sphinxsidebar h3 a,
-div.sphinxsidebar p.logo a:hover,
-div.sphinxsidebar h3 a:hover {
- border: none;
-}
-
-div.sphinxsidebar p {
- color: #555;
- margin: 10px 0;
-}
-
-div.sphinxsidebar ul {
- margin: 10px 0;
- padding: 0;
- color: #000;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #ccc;
- font-family: 'Ubuntu Mono', 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono';
- font-size: 13px;
-}
-
-div.sphinxsidebar #searchbox input[type="text"] {
- width: 120px;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-a {
- color: #5D2CD1;
- text-decoration: underline;
-}
-
-a:hover {
- color: #7546E3;
- text-decoration: underline;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- font-family: 'Open Sans', 'Helvetica', 'Arial', sans-serif;
- font-weight: 400;
- margin: 30px 0px 10px 0px;
- padding: 0;
-}
-
-div.indexwrapper h1 {
- text-indent: -999999px;
- background: url(click.png) no-repeat center center;
- height: 200px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
- div.indexwrapper h1 {
- background: url(click@2x.png) no-repeat center center;
- background-size: 420px 175px;
- }
-}
-
-div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
-div.body h2 { font-size: 180%; }
-div.body h3 { font-size: 150%; }
-div.body h4 { font-size: 130%; }
-div.body h5 { font-size: 100%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
- color: #ddd;
- padding: 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- color: #444;
- background: #eaeaea;
-}
-
-div.body p, div.body dd, div.body li {
- line-height: 1.4em;
-}
-
-div.admonition {
- background: #fafafa;
- margin: 20px -30px;
- padding: 10px 30px;
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
-}
-
-div.admonition tt.xref, div.admonition a tt {
- border-bottom: 1px solid #fafafa;
-}
-
-dd div.admonition {
- margin-left: -60px;
- padding-left: 60px;
-}
-
-div.admonition p.admonition-title {
- font-family: 'Open Sans', 'Helvetica', 'Arial', sans-serif;
- font-weight: 400;
- font-size: 24px;
- margin: 0 0 10px 0;
- padding: 0;
- line-height: 1;
-}
-
-div.admonition p.last {
- margin-bottom: 0;
-}
-
-div.highlight {
- background-color: white;
-}
-
-dt:target, .highlight {
- background: #FAF3E8;
-}
-
-div.note {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #eee;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre, tt {
- font-family: 'Ubuntu Mono', 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono';
- font-size: 15px;
-}
-
-img.screenshot {
-}
-
-tt.descname, tt.descclassname {
- font-size: 0.95em;
-}
-
-tt.descname {
- padding-right: 0.08em;
-}
-
-img.screenshot {
- -moz-box-shadow: 2px 2px 4px #eee;
- -webkit-box-shadow: 2px 2px 4px #eee;
- box-shadow: 2px 2px 4px #eee;
-}
-
-table.docutils {
- border: 1px solid #888;
- -moz-box-shadow: 2px 2px 4px #eee;
- -webkit-box-shadow: 2px 2px 4px #eee;
- box-shadow: 2px 2px 4px #eee;
-}
-
-table.docutils td, table.docutils th {
- border: 1px solid #888;
- padding: 0.25em 0.7em;
-}
-
-table.field-list, table.footnote {
- border: none;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-table.footnote {
- margin: 15px 0;
- width: 100%;
- border: 1px solid #eee;
- background: #fdfdfd;
- font-size: 0.9em;
-}
-
-table.footnote + table.footnote {
- margin-top: -15px;
- border-top: none;
-}
-
-table.field-list th {
- padding: 0 0.8em 0 0;
-}
-
-table.field-list td {
- padding: 0;
-}
-
-table.footnote td.label {
- width: 0px;
- padding: 0.3em 0 0.3em 0.5em;
-}
-
-table.footnote td {
- padding: 0.3em 0.5em;
-}
-
-dl {
- margin: 0;
- padding: 0;
-}
-
-dl dd {
- margin-left: 30px;
-}
-
-blockquote {
- margin: 0 0 0 30px;
- padding: 0;
-}
-
-ul, ol {
- margin: 10px 0 10px 30px;
- padding: 0;
-}
-
-pre {
- padding: 7px 0 7px 30px;
- margin: 15px 0;
- line-height: 1.3em;
-}
-
-tt {
- background-color: #ecf0f3;
- color: #222;
- /* padding: 1px 2px; */
-}
-
-tt.xref, a tt {
- background-color: #FBFBFB;
- border-bottom: 1px solid white;
-}
-
-a.reference {
- text-decoration: none;
- border-bottom: 1px dotted #5D2CD1;
-}
-
-a.reference:hover {
- border-bottom: 1px solid #7546E3;
-}
-
-a.footnote-reference {
- text-decoration: none;
- font-size: 0.7em;
- vertical-align: top;
- border-bottom: 1px dotted #5D2CD1;
-}
-
-a.footnote-reference:hover {
- border-bottom: 1px solid #7546E3;
-}
-
-a:hover tt {
- background: #EEE;
-}
diff --git a/docs/_themes/click/theme.conf b/docs/_themes/click/theme.conf
deleted file mode 100644
index d1ab008..0000000
--- a/docs/_themes/click/theme.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = click.css
-pygments_style = tango
diff --git a/docs/clickdoctools.py b/docs/clickdoctools.py
deleted file mode 100644
index b46841e..0000000
--- a/docs/clickdoctools.py
+++ /dev/null
@@ -1,255 +0,0 @@
-import os
-import sys
-import click
-import shutil
-import tempfile
-import contextlib
-
-try:
- from StringIO import StringIO
-except ImportError:
- from io import StringIO
-
-from docutils import nodes
-from docutils.statemachine import ViewList
-
-from sphinx.domains import Domain
-from sphinx.util.compat import Directive
-
-
-class EchoingStdin(object):
-
- def __init__(self, input, output):
- self._input = input
- self._output = output
-
- def __getattr__(self, x):
- return getattr(self._input, x)
-
- def _echo(self, rv):
- mark = False
- if rv.endswith('\xff'):
- rv = rv[:-1]
- mark = True
- self._output.write(rv)
- if mark:
- self._output.write('^D\n')
- return rv
-
- def read(self, n=-1):
- return self._echo(self._input.read(n))
-
- def readline(self, n=-1):
- return self._echo(self._input.readline(n))
-
- def readlines(self):
- return [self._echo(x) for x in self._input.readlines()]
-
- def __iter__(self):
- return iter(self._echo(x) for x in self._input)
-
-
-@contextlib.contextmanager
-def isolation(input=None, env=None):
- if isinstance(input, unicode):
- input = input.encode('utf-8')
- input = StringIO(input or '')
- output = StringIO()
- sys.stdin = EchoingStdin(input, output)
- sys.stdin.encoding = 'utf-8'
-
- def visible_input(prompt=None):
- sys.stdout.write(prompt or '')
- val = input.readline().rstrip('\r\n')
- sys.stdout.write(val + '\n')
- sys.stdout.flush()
- return val
-
- def hidden_input(prompt=None):
- sys.stdout.write((prompt or '') + '\n')
- sys.stdout.flush()
- return input.readline().rstrip('\r\n')
-
- sys.stdout = output
- sys.stderr = output
- old_visible_prompt_func = click.termui.visible_prompt_func
- old_hidden_prompt_func = click.termui.hidden_prompt_func
- click.termui.visible_prompt_func = visible_input
- click.termui.hidden_prompt_func = hidden_input
-
- old_env = {}
- try:
- if env:
- for key, value in env.iteritems():
- old_env[key] = os.environ.get(value)
- os.environ[key] = value
- yield output
- finally:
- for key, value in old_env.iteritems():
- if value is None:
- try:
- del os.environ[key]
- except Exception:
- pass
- else:
- os.environ[key] = value
- sys.stdout = sys.__stdout__
- sys.stderr = sys.__stderr__
- click.termui.visible_prompt_func = old_visible_prompt_func
- click.termui.hidden_prompt_func = old_hidden_prompt_func
-
-
-@contextlib.contextmanager
-def isolated_filesystem():
- cwd = os.getcwd()
- t = tempfile.mkdtemp()
- os.chdir(t)
- try:
- yield
- finally:
- os.chdir(cwd)
- try:
- shutil.rmtree(t)
- except (OSError, IOError):
- pass
-
-
-class ExampleRunner(object):
-
- def __init__(self):
- self.namespace = {
- 'click': click,
- '__file__': 'dummy.py',
- }
-
- def declare(self, source):
- code = compile(source, '<docs>', 'exec')
- eval(code, self.namespace)
-
- def run(self, source):
- code = compile(source, '<docs>', 'exec')
- buffer = []
-
- def invoke(cmd, args=None, prog_name=None, prog_prefix='python ',
- input=None, terminate_input=False, env=None,
- **extra):
- if env:
- for key, value in sorted(env.items()):
- if ' ' in value:
- value = '"%s"' % value
- buffer.append('$ export %s=%s' % (key, value))
- args = args or []
- if prog_name is None:
- prog_name = cmd.name.replace('_', '-') + '.py'
- buffer.append(('$ %s%s %s' % (
- prog_prefix,
- prog_name,
- ' '.join(('"%s"' % x) if ' ' in x else x for x in args)
- )).rstrip())
- if isinstance(input, (tuple, list)):
- input = '\n'.join(input) + '\n'
- if terminate_input:
- input += '\xff'
- with isolation(input=input, env=env) as output:
- try:
- cmd.main(args=args, prog_name=prog_name, **extra)
- except SystemExit:
- pass
- buffer.extend(output.getvalue().splitlines())
-
- def println(text=''):
- buffer.append(text)
-
- eval(code, self.namespace, {
- 'invoke': invoke,
- 'println': println,
- 'isolated_filesystem': isolated_filesystem,
- })
- return buffer
-
- def close(self):
- pass
-
-
-def parse_rst(state, content_offset, doc):
- node = nodes.section()
- # hack around title style bookkeeping
- surrounding_title_styles = state.memo.title_styles
- surrounding_section_level = state.memo.section_level
- state.memo.title_styles = []
- state.memo.section_level = 0
- state.nested_parse(doc, content_offset, node, match_titles=1)
- state.memo.title_styles = surrounding_title_styles
- state.memo.section_level = surrounding_section_level
- return node.children
-
-
-def get_example_runner(document):
- runner = getattr(document, 'click_example_runner', None)
- if runner is None:
- runner = document.click_example_runner = ExampleRunner()
- return runner
-
-
-class ExampleDirective(Directive):
- has_content = True
- required_arguments = 0
- optional_arguments = 0
- final_argument_whitespace = False
-
- def run(self):
- doc = ViewList()
- runner = get_example_runner(self.state.document)
- try:
- runner.declare('\n'.join(self.content))
- except:
- runner.close()
- raise
- doc.append('.. sourcecode:: python', '')
- doc.append('', '')
- for line in self.content:
- doc.append(' ' + line, '')
- return parse_rst(self.state, self.content_offset, doc)
-
-
-class RunExampleDirective(Directive):
- has_content = True
- required_arguments = 0
- optional_arguments = 0
- final_argument_whitespace = False
-
- def run(self):
- doc = ViewList()
- runner = get_example_runner(self.state.document)
- try:
- rv = runner.run('\n'.join(self.content))
- except:
- runner.close()
- raise
- doc.append('.. sourcecode:: text', '')
- doc.append('', '')
- for line in rv:
- doc.append(' ' + line, '')
- return parse_rst(self.state, self.content_offset, doc)
-
-
-class ClickDomain(Domain):
- name = 'click'
- label = 'Click'
- directives = {
- 'example': ExampleDirective,
- 'run': RunExampleDirective,
- }
-
-
-def delete_example_runner_state(app, doctree):
- runner = getattr(doctree, 'click_example_runner', None)
- if runner is not None:
- runner.close()
- del doctree.click_example_runner
-
-
-def setup(app):
- app.add_domain(ClickDomain)
-
- app.connect('doctree-read', delete_example_runner_state)
diff --git a/docs/conf.py b/docs/conf.py
index 08c31b1..4ecc39f 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,219 +1,60 @@
-# -*- coding: utf-8 -*-
-#
-# click documentation build configuration file, created by
-# sphinx-quickstart on Mon Apr 26 19:53:01 2010.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
+from pallets_sphinx_themes import ProjectLink, get_version
-import sys, os
+# Project --------------------------------------------------------------
-# 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
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-sys.path.append(os.path.abspath('_themes'))
-sys.path.append(os.path.abspath('..'))
-sys.path.append(os.path.abspath('.'))
+project = "Click"
+copyright = "2014 Pallets Team"
+author = "Pallets Team"
+release, version = get_version("Click", version_length=1)
-# -- General configuration -----------------------------------------------------
+# General --------------------------------------------------------------
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
+master_doc = "index"
+extensions = ["sphinx.ext.autodoc", "sphinx.ext.intersphinx", "pallets_sphinx_themes"]
+intersphinx_mapping = {"python": ("https://docs.python.org/3/", None)}
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx',
- 'clickdoctools']
+# HTML -----------------------------------------------------------------
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'click'
-copyright = u'2014, Armin Ronacher'
-
-# 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.0'
-# The full version, including alpha/beta/rc tags.
-release = '1.0'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. Major themes that come with
-# Sphinx are currently 'default' and 'sphinxdoc'.
-html_theme = 'click'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-html_theme_options = {
+html_theme = "click"
+html_theme_options = {"index_sidebar_logo": False}
+html_context = {
+ "project_links": [
+ ProjectLink("Donate to Pallets", "https://palletsprojects.com/donate"),
+ ProjectLink("Click Website", "https://palletsprojects.com/p/click/"),
+ ProjectLink("PyPI releases", "https://pypi.org/project/Click/"),
+ ProjectLink("Source Code", "https://github.com/pallets/click/"),
+ ProjectLink("Issue Tracker", "https://github.com/pallets/click/issues/"),
+ ]
}
-
-# Add any paths that contain custom themes here, relative to this directory.
-html_theme_path = ['_themes']
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# "<project> v<release> documentation".
-html_title = 'click'
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# 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
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
html_sidebars = {
- 'index': ['sidebarintro.html', 'sourcelink.html', 'searchbox.html'],
- '**': ['sidebarlogo.html', 'localtoc.html', 'relations.html',
- 'sourcelink.html', 'searchbox.html']
+ "index": ["project.html", "versions.html", "searchbox.html"],
+ "**": ["localtoc.html", "relations.html", "versions.html", "searchbox.html"],
}
+singlehtml_sidebars = {"index": ["project.html", "versions.html", "localtoc.html"]}
+html_static_path = ["_static"]
+html_favicon = "_static/click-icon.png"
+html_logo = "_static/click-logo-sidebar.png"
+html_title = "{} Documentation ({})".format(project, version)
+html_show_sourcelink = False
+html_domain_indices = False
+html_experimental_html5_writer = True
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
+# LaTeX ----------------------------------------------------------------
-# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = ''
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'clickdoc'
-
-
-# -- Options for LaTeX output --------------------------------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
- ('index', 'click.tex', u'click documentation',
- u'Armin Ronacher', 'manual'),
+ (master_doc, "Click.tex", "Click Documentation", "Pallets Team", "manual")
]
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
+# theme compatibility --------------------------------------------------
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
+def setup(app):
+ from click.testing import CliRunner
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
+ orig_invoke = CliRunner.invoke
-# If false, no module index is generated.
-#latex_domain_indices = True
+ def invoke(self, *args, **kwargs):
+ kwargs.pop("prog_name", None)
+ return orig_invoke(self, *args, **kwargs)
-
-# -- Options for manual page output --------------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- ('index', 'click', u'click documentation',
- [u'Armin Ronacher'], 1)
-]
-
-intersphinx_mapping = {
- 'http://docs.python.org/dev': None
-}
+ CliRunner.invoke = invoke
diff --git a/docs/index.rst b/docs/index.rst
index e40178b..792b83b 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,5 +1,12 @@
-Welcome to the Click Documentation
-==================================
+.. rst-class:: hide-header
+
+Welcome to Click
+================
+
+.. image:: _static/click-logo.png
+ :align: center
+ :scale: 50%
+ :target: https://palletsprojects.com/p/click/
Click is a Python package for creating beautiful command line interfaces
in a composable way with as little code as necessary. It's the "Command
@@ -50,8 +57,8 @@ You can get the library directly from PyPI::
pip install click
-Documentation Contents
-----------------------
+Documentation
+-------------
This part of the documentation guides you through all of the library's
usage patterns.
diff --git a/docs/make.bat b/docs/make.bat
index 1e941d8..1479463 100644
--- a/docs/make.bat
+++ b/docs/make.bat
@@ -1,155 +1,36 @@
@ECHO OFF
+pushd %~dp0
+
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
+set SOURCEDIR=.
set BUILDDIR=_build
-set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
-if NOT "%PAPER%" == "" (
- set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
-)
+set SPHINXPROJ=Jinja
if "%1" == "" goto help
-if "%1" == "help" (
- :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. text to make text files
- echo. man to make manual pages
- echo. changes to make an overview over 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
- goto end
-)
-
-if "%1" == "clean" (
- for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
- del /q /s %BUILDDIR%\*
- goto end
-)
-
-if "%1" == "html" (
- %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/html.
- goto end
-)
-
-if "%1" == "dirhtml" (
- %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
- goto end
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
)
-if "%1" == "singlehtml" (
- %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
- echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
- goto end
-)
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+goto end
-if "%1" == "pickle" (
- %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
- echo.
- echo.Build finished; now you can process the pickle files.
- goto end
-)
-
-if "%1" == "json" (
- %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
- echo.
- echo.Build finished; now you can process the JSON files.
- goto end
-)
-
-if "%1" == "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.
- goto end
-)
-
-if "%1" == "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\Classy.qhcp
- echo.To view the help file:
- echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Classy.ghc
- goto end
-)
-
-if "%1" == "devhelp" (
- %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
- echo.
- echo.Build finished.
- goto end
-)
-
-if "%1" == "epub" (
- %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
- echo.
- echo.Build finished. The epub file is in %BUILDDIR%/epub.
- goto end
-)
-
-if "%1" == "latex" (
- %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
- echo.
- echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
- goto end
-)
-
-if "%1" == "text" (
- %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
- echo.
- echo.Build finished. The text files are in %BUILDDIR%/text.
- goto end
-)
-
-if "%1" == "man" (
- %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
- echo.
- echo.Build finished. The manual pages are in %BUILDDIR%/man.
- goto end
-)
-
-if "%1" == "changes" (
- %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
- echo.
- echo.The overview file is in %BUILDDIR%/changes.
- goto end
-)
-
-if "%1" == "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.
- goto end
-)
-
-if "%1" == "doctest" (
- %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
- echo.
- echo.Testing of doctests in the sources finished, look at the ^
-results in %BUILDDIR%/doctest/output.txt.
- goto end
-)
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
:end
+popd
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 0000000..dbd475f
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,2 @@
+Sphinx~=1.7.7
+Pallets-Sphinx-Themes~=1.1.0