diff options
Diffstat (limited to 'docs')
31 files changed, 3262 insertions, 0 deletions
diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..ea88050 --- /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) diff --git a/docs/_static/debug.js b/docs/_static/debug.js new file mode 100644 index 0000000..338b241 --- /dev/null +++ b/docs/_static/debug.js @@ -0,0 +1,7 @@ +// Add debug actions to flyout menu + +$(function () { + $("[data-toggle='rst-debug-badge']").on("click", function () { + $("[data-toggle='rst-versions']").toggleClass("rst-badge"); + }); +}) diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html new file mode 100644 index 0000000..843122f --- /dev/null +++ b/docs/_templates/layout.html @@ -0,0 +1,55 @@ +{%- extends "!layout.html" %} + +{#- + +This template exists as a way to implement a version menu without changing what +the theme normally renders the menu on local builds and on builds on Read the +Docs. This is for local testing purposes only. + +#} + +{%- block footer %} + {%- if not READTHEDOCS %} + <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="{{ _('Versions') }}"> + <span class="rst-current-version" data-toggle="rst-current-version"> + <span class="fa fa-book"> Read the Docs</span> + v: latest + <span class="fa fa-caret-down"></span> + </span> + <div class="rst-other-versions"> + <dl> + <dt>{{ _('Versions') }}</dt> + {%- if test_versions %} + {%- for version in test_versions %} + <dd><a href="#">{{ version }}</a></dd> + {%- endfor %} + {%- else %} + <dd><a href="#">latest</a></dd> + <dd><a href="#">1.0</a></dd> + <dd><a href="#">1.1</a></dd> + {%- endif %} + </dl> + <dl> + <dt>{{ _('Downloads') }}</dt> + <dd><a href="#">PDF</a></dd> + <dd><a href="#">ePub</a></dd> + <dd><a href="#">HTML</a></dd> + </dl> + <dl> + {#- Translators: The phrase "Read the Docs" is not translated #} + <dt>{{ _('On Read the Docs') }}</dt> + <dd> + <a href="#">{{ _('Project Home') }}</a> + </dd> + <dd> + <a href="#">{{ _('Builds') }}</a> + </dd> + </dl> + <dl> + <dt>Debug</dt> + <dd><a href="#" data-toggle="rst-debug-badge">Swap badge position</a></dd> + </dl> + </div> + </div> + {%- endif %} +{%- endblock %} diff --git a/docs/changelog.rst b/docs/changelog.rst new file mode 100644 index 0000000..bf26848 --- /dev/null +++ b/docs/changelog.rst @@ -0,0 +1,514 @@ +********* +Changelog +********* + +.. seealso:: :ref:`howto_upgrade` + +.. |theme_version| replace:: 2.0.0 + +.. _release-2.0.0: + +2.0.0 +===== + +Added +----- + +* Support for Sphinx versions ``6.x`` and ``7.x`` +* Support for docutils ``<=0.20`` + +Deprecations +------------ + +* The HTML4 writer is now officially deprecated. An error will be thrown if your + project configuration still uses the HTML4 writer. +* Support for Sphinx versions < 5.0 was removed. +* In addition, our supported dependencies will match the dependencies from our + lowest supported Sphinx release, version 5.0: Python >= 3.6 and docutils > 0.14 and < 0.19 + +.. _release-1.3.0: + +1.3.0 +===== + +Added +----- + +* Relaxed requirements to include Sphinx release ``7.0`` + +.. _release-1.2.2: + +1.2.2 +===== + +Fixes +----- + +* Require `sphinxcontrib-jquery>=4,<5` (#1446) + +Added +----- + +* Styling for `:menuselection:` (#1426) + + +.. _release-1.2.1: + +1.2.1 +===== + +Fixes +----- + +* Load jQuery correctly when using latest sphinxcontrib-jquery release (#1448) + + +.. _release-1.2.0: + +1.2.0 +===== + +Dependency changes +------------------ + +* docutils 0.18 is supported. (#1381) +* Sphinx 6 support added +* Added ``sphinxcontrib-jquery`` as a dependency (#1385 #1421) +* Python 3.11 is officially supported and tested. (#1395) +* Python 3.4 and 3.5 are officially not supported (#1395) + +Changes +------- + +* Automatically use ``sphinxcontrib-jquery`` in Sphinx 6+ (#1399) +* Use new context vars ``logo_url``, ``favicon_url`` and ``root_doc`` when available (#1405) +* Translations updated: French, Hungarian, Croatian +* Translations added: Danish, Chinese (Taiwan) + +Note for users of Sphinx<4 +-------------------------- + +If you cannot use a more recent Sphinx release, +you should at least ensure you are using the most recent release for your major version. +Currently, these are Sphinx `1.8.6` and `2.4.5`. +Older releases may install unsupported versions of several dependencies, including Jinja2 and docutils. + +Known issues +------------ + +In some cases, jQuery is not loaded with Sphinx 6 on Read the Docs. +Workaround: You need to add ``sphinx_rtd_theme`` to ``extensions`` in your ``conf.py``. +See `readthedocs.org issue #9654`_ for updates. + +.. _readthedocs.org issue #9654: https://github.com/readthedocs/readthedocs.org/pull/9654 + + +.. _release-1.1.1: + +1.1.1 +===== + +Fixes +----- + +* Fix wrapping bug on cross references (#1368) + +.. _release-1.1.0: + +1.1.0 +===== + +Dependency Changes +------------------ + +Many documentation projects depend on ``sphinx-rtd-theme`` without specifying a version of the theme (unpinned) while also depending on unpinned versions of Sphinx. The latest version of ``sphinx-rtd-theme`` ideally always supports the latest version of Sphinx, but this is now guaranteed. + +This release adds upper bounds to direct dependencies ``Sphinx`` and ``docutils`` which will safeguard from mixing with possibly incompatible future versions of Sphinx & docutils. + +* Sphinx versions supported: 1.6 to 5.2.x +* ``Sphinx<6`` (#1332) +* ``docutils<0.18`` (unchanged, but will be bumped in an upcoming release) + + +Features +-------- + +* Nicer styles for <kbd> (#967) +* New styling for breadcrumbs (#1073) + + +Fixes +----- + +* Suffixes in Sphinx version caused build errors (#1345) +* Table cells with multiple paragraphs gets wrong formatting (#289) +* Definition lists rendered wrongly in api docs (#1052) +* Citation not styled properly (#1078) +* Long URLs did not wrap (#1193) + + +Minor Changes +------------- + +* Sphinx 5.2 added to test matrix (#1348) +* Python 3.10 added to test matrix (#1334) +* Supplemental Docker setup for development (#1319) +* Most of setup.py migrated to setup.cfg (#1116) +* Jinja2 context variable ``sphinx_version_info`` is now ``(major, minor, -1)``, the patch component is always ``-1``. Reason: It's complicated. (#1345) + + +Incompatible Changes +-------------------- + +There are no known incompatible changes in this release. Support for ``docutils`` versions 0.18 and 0.19 are scheduled for our next release. + + +.. _release-1.0.0: + +1.0.0 +===== + +Incompatible Changes +-------------------- + +* The minimum supported python version is now 2.7 or 3.4 and greater (#1093) +* The minimum supported Sphinx version is now 1.6 (#1091) + +Deprecated +---------- + +* Support for Sphinx's HTML4 writer is deprecated and will be removed in version 2.0 (#1091) + +Features +-------- + +* Add support for Sphinx 4.x (#1123) +* Add support for Docutils 0.17 (#1185 and #1199) +* Fixed logo scaling on IE11 (#1183) +* Added support for logos as URLs (#1171) +* Align top and side navigation background colors on mobile (#1132) +* Added support for deep toc levels (#1089) +* Updated translations for Chinese, Dutch, Estonian, French, German, Italian, + Lithuanian, Persian, Polish, Portuguese, Russian, Spanish, Swedish, and + Turkish locales + +A number of accessibility features were added in this release: + +* Allow keyboard to toggle menu expansion (#1167) +* Allow keyboard to activate permalink (#1162) +* Show keyboard focus on buttons (#1161) +* Maintain aria-expanded along with .current in menu (#1151) +* Respect tab order for prev/next buttons (#1051) + +Fixes +----- + +* Updated Google analytics integration (#1129) +* Add classifier separation on Sphinx 2+ HTML4 writer (#1192) +* Added missing space char in footer (#1188) +* Fix navigation right padding on level2+ elements (#1068) +* Fix navigation expansion button sizes (#1067) +* Wrap inline literals (#1050) +* Fix aria labels (#1056) +* Don't toggle navigation terminal nodes (#1049) +* Fix ``<pre>`` overflow (#1220) +* Fix literal/ref style inside ``<dl>`` (#1088) + +Other Changes +------------- + +* Update npm development dependencies (#1096) +* Don't require npm to build from source (#1039) +* Use regular toctree instead of toc for singlehtml builder (#507) +* Cleanup whitespace in templates (#1060) + +.. _release-0.5.2: + +0.5.2 +===== + +:Date: April 5, 2021 + +.. note:: This commit will not be in ``master``, but was branched directly off ``0.5.1`` to minimize issues. + The next full release will contain all PR's previously merged. + +* Depend on docutils < 0.17 (#1113) + +.. _release-0.5.1: + +0.5.1 +===== + +:Date: January 4, 2021 + +Fixes +----- + +* Set ``url_root`` properly on index (#1025) +* Do not load ``language_data.js`` in non-search pages (#1021) +* Hide the search box on any ``singlehtml`` like builder (#975) +* Fix ``vcs_pageview_mode`` template parameter (#1010) +* Mark nex/prev icons as aria-hidden (#1007) +* Use well-formed XML syntax (#1006) +* Footer: show both ``commit`` and ``last_updated`` if available (#897) +* Search page: don't show "edit on" links (#935) + +New Features +------------ + +* New theme option to enable anonymous ip addresses when using Google Analytics (#889) + +Other Changes +------------- + +* The ``canonical_url`` option was deprecated in favor of Sphinx's ``html_baseurl`` (#1003) +* Add ``contentinfo`` block to ``footer.html`` template (#896) +* Make Copyright template match sphinx's basic (#933) +* Packaging: include ``bin/preinstall.js`` (#1005) + +.. _release-0.5.0: + +0.5.0 +===== + +:Date: Jun 17, 2020 + +Fixes +----- + +* Fix bullet list spacing to respect simple/complex list styles + +.. _release-0.5.0rc2: + +0.5.0rc2 +======== + +:Date: June 5, 2020 + +Fixes +----- + +* Fix issue with simple definition lists that was missed +* Change FOUT back to FOIT +* Fix several margin issues with lists, nested lists, and nested content +* Add colon back to field lists + +.. _release-0.5.0rc1: + +0.5.0rc1 +======== + +:Date: May 6, 2020 + +Fixes +----- + +* Fix many styling issues that look different when using the Sphinx HTML5 writer + +Other Changes +-------------- + +* Add the ``navigation`` template block around the navigation area. +* Added i18n support using Babel +* Added translations for 10 new languages +* Moved build system from Grunt and friends to Webpack +* Remove Modernizr, but keep html5shiv (#724, #525) + +.. _release-0.4.3: + +0.4.3 +===== + +:Date: Feb 12, 2019 + +New Features +------------- + +Fixes +----- + +* Fix scrolling to active item in sidebar on load (#214) +* Style caption link for code and literal blocks +* Fix inconsistent font size and line height for autodoc "raises" and "returns" (#267) +* Fix last_updated notice appearing in same line as copyright notice (#704) + + +Other Changes +-------------- + +.. _release-0.4.2: + +0.4.2 +===== + +:Date: Oct 5, 2018 + +New Features +------------- + +Fixes +----- + +* Set base font size on <html> (#668) +* Fix HTML search not working with Sphinx-1.8 (#672) + +Other Changes +-------------- + +* Upload signed packages to PyPI with twine (#651) +* Do not enforce period at the end of copyright statement (666) + +0.4.1 +===== + +:Date: July 27, 2018 + +New Features +------------- + +Fixes +----- + +* Line height adjustments for Liberation Mono (#656) + +Other Changes +-------------- + +* Add Sphinx as a dependency + +0.4.0 +===== + +This version made some changes to how JS and CSS were included +when the theme is used on Read the Docs. + + +New Features +------------- + +Fixes +----- + +* Do not rely on readthedocs.org for CSS/JS (#614) +* Color accessibility improvements on the left navigation + +Other Changes +--------------- + +* Write theme version and build date at top of JavaScript and CSS +* Changed code and literals to use a native font stack (#612) +* Fix small styling issues + +0.3.1 +===== + +Fixes +----- + +* Revert part of #576 causing display issues with version selector menu +* Backwards compatibility fixes for pre-0.3.0 releases (#623) +* Fix mkdocs version selector (#622) +* Add open list spacing (#591) +* Fix table centering (#599) + +0.3.0 +===== + +**Note**: this version resulted in some JavaScript incompatibilities when used on readthedocs.org + +New Features +------------- + +* Add html language attribute +* Allow setting 'rel' and 'title' attributes for stylesheets (#551) +* Add option to style external links +* Add github, gitlab, bitbucket page arguments option +* Add pygments support +* Add setuptools entry point allowing to use ``sphinx_rtd_theme`` as + Sphinx ``html_theme`` directly. +* Add language to the JS output variable + +Fixes +----- + +* Fix some HTML warnings and errors +* Fix many styling issues +* Fix many sidebar glitches +* Fix line number spacing to align with the code lines +* Hide Edit links on auto created pages +* Include missing font files with the theme + +Other Changes +-------------- + +* Significant improvement of our documentation +* Compress our Javascript files +* Updated dependencies + +0.2.4 +===== + +* Yet another patch to deal with extra builders outside Spinx, such as the + singlehtml builders from the Read the Docs Sphinx extension + +0.2.3 +===== + +* Temporarily patch Sphinx issue with ``singlehtml`` builder by inspecting the + builder in template. + +0.2.2 +===== + +* Roll back toctree fix in 0.2.1 (#367). This didn't fix the issue and + introduced another bug with toctrees display. + +0.2.1 +===== + +* Add the ``rel`` HTML attribute to the footer links which point to + the previous and next pages. +* Fix toctree issue caused by Sphinx singlehtml builder (#367) + +0.2.0 +===== + +* Adds the ``comments`` block after the ``body`` block in the template +* Added "Edit on GitLab" support +* Many bug fixes + +0.1.10-alpha +============ + +.. note:: This is a pre-release version + +* Removes Sphinx dependency +* Fixes hamburger on mobile display +* Adds a ``body_begin`` block to the template +* Added ``prev_next_buttons_location`` + +0.1.9 +===== + +* Intermittent scrollbar visibility bug fixed. This change introduces a + backwards incompatible change to the theme's layout HTML. This should only be + a problem for derivative themes that have overridden styling of nav elements + using direct descendant selectors. See `#215`_ for more information. +* Safari overscroll bug fixed +* Version added to the nav header +* Revision id was added to the documentation footer if you are using RTD +* An extra block, ``extrafooter`` was added to allow extra content in the + document footer block +* Fixed modernizr URL +* Small display style changes on code blocks, figure captions, and nav elements + +.. _#215: https://github.com/rtfd/sphinx_rtd_theme/pull/215 + +0.1.8 +===== + +* Start keeping changelog :) +* Support for third and fourth level headers in the sidebar +* Add support for Sphinx 1.3 +* Add sidebar headers for :caption: in Sphinx toctree +* Clean up sidebar scrolling behavior so it never scrolls out of view diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..25d002c --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- + +import sys +import os +import re + +# Prefer to use the version of the theme in this repo +# and not the installed version of the theme. +sys.path.insert(0, os.path.abspath('..')) +sys.path.append(os.path.abspath('./demo/')) + +from sphinx_rtd_theme import __version__ as theme_version +from sphinx_rtd_theme import __version_full__ as theme_version_full +from sphinx.locale import _ + +project = u'Read the Docs Sphinx Theme' +slug = re.sub(r'\W+', '-', project.lower()) +version = theme_version +release = theme_version_full +author = u'Dave Snider, Read the Docs, Inc. & contributors' +copyright = author +language = 'en' + +extensions = [ + 'sphinx.ext.intersphinx', + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.mathjax', + 'sphinx.ext.viewcode', + 'sphinx_rtd_theme', +] + +templates_path = ['_templates'] +source_suffix = '.rst' +exclude_patterns = [] +locale_dirs = ['locale/'] +gettext_compact = False + +master_doc = 'index' +suppress_warnings = ['image.nonlocal_uri'] +pygments_style = 'default' + +if sys.version_info < (3, 0): + tags.add("python2") +else: + tags.add("python3") + +intersphinx_mapping = { + 'rtd': ('https://docs.readthedocs.io/en/stable/', None), + 'rtd-dev': ('https://dev.readthedocs.io/en/stable/', None), + 'sphinx': ('https://www.sphinx-doc.org/en/master/', None), +} + +html_theme = 'sphinx_rtd_theme' +html_theme_options = { + 'logo_only': True, + 'navigation_depth': 5, +} +html_context = {} + +if not 'READTHEDOCS' in os.environ: + html_static_path = ['_static/'] + html_js_files = ['debug.js'] + + # Add fake versions for local QA of the menu + html_context['test_versions'] = list(map( + lambda x: str(x / 10), + range(1, 100) + )) + +html_logo = "demo/static/logo-wordmark-light.svg" +html_show_sourcelink = True +html_favicon = "demo/static/favicon.ico" + +htmlhelp_basename = slug + + +latex_documents = [ + ('index', '{0}.tex'.format(slug), project, author, 'manual'), +] + +man_pages = [ + ('index', slug, project, [author], 1) +] + +texinfo_documents = [ + ('index', slug, project, author, slug, project, 'Miscellaneous'), +] + + +# Extensions to theme docs +def setup(app): + from sphinx.domains.python import PyField + from sphinx.util.docfields import Field + + app.add_object_type( + 'confval', + 'confval', + objname='configuration value', + indextemplate='pair: %s; configuration value', + doc_field_types=[ + PyField( + 'type', + label=_('Type'), + has_arg=False, + names=('type',), + bodyrolename='class' + ), + Field( + 'default', + label=_('Default'), + has_arg=False, + names=('default',), + ), + ] + ) diff --git a/docs/configuring.rst b/docs/configuring.rst new file mode 100644 index 0000000..7e22c5b --- /dev/null +++ b/docs/configuring.rst @@ -0,0 +1,236 @@ +************* +Configuration +************* + +Theme options +============= + +The following options can be defined in your project's ``conf.py`` file, using +the :confval:`html_theme_options <sphinx:html_theme_options>` configuration option. + +For example: + +.. code:: python + + html_theme_options = { + 'analytics_id': 'G-XXXXXXXXXX', # Provided by Google in your dashboard + 'analytics_anonymize_ip': False, + 'logo_only': False, + 'display_version': True, + 'prev_next_buttons_location': 'bottom', + 'style_external_links': False, + 'vcs_pageview_mode': '', + 'style_nav_header_background': 'white', + # Toc options + 'collapse_navigation': True, + 'sticky_navigation': True, + 'navigation_depth': 4, + 'includehidden': True, + 'titles_only': False + } + +Table of contents options +------------------------- + +The following options change how :rst:dir:`sphinx:toctree` directives generate +documentation navigation. + +.. confval:: collapse_navigation + + With this enabled, navigation entries are not expandable -- the ``[+]`` + icons next to each entry are removed. + + :type: boolean + :default: ``True`` + + .. note:: + Setting :confval:`collapse_navigation` to ``False`` and using a high value + for :confval:`navigation_depth` on projects with many files and a deep file + structure can cause long compilation times and can result in HTML files that + are significantly larger in file size. + +.. confval:: sticky_navigation + + Scroll the navigation with the main page content as you scroll the page. + + :type: boolean + :default: ``True`` + +.. confval:: navigation_depth + + The maximum depth of the table of contents tree. Set + this to ``-1`` to allow unlimited depth. + + :type: integer + :default: ``4`` + +.. confval:: includehidden + + Specifies if the navigation includes hidden table(s) of contents -- that is, + any :rst:dir:`sphinx:toctree` directive that is marked with the ``:hidden:`` + option. + + :type: boolean + :default: ``True`` + +.. confval:: titles_only + + When enabled, page subheadings are not included in the + navigation. + + :type: boolean + :default: False + +.. _table of contents configuration options: http://www.sphinx-doc.org/en/stable/templating.html#toctree + + +.. + TODO + . + HTML context options + ~~~~~~~~~~~~~~~~~~~~ + + +Miscellaneous options +--------------------- + +.. confval:: analytics_id + + If specified, Google Analytics' `gtag.js`_ is included in your pages. + Set the value to the ID provided to you by google (like ``UA-XXXXXXX`` or ``G-XXXXXXXXXX``). + + :type: string + + .. _gtag.js: https://developers.google.com/gtagjs + +.. confval:: analytics_anonymize_ip + + Anonymize visitor IP addresses in Google Analytics. + + :type: boolean + :default: ``False`` + +.. confval:: canonical_url + + This will specify a `canonical URL`_ meta link element to tell search + engines which URL should be ranked as the primary URL for your + documentation. This is important if you have multiple URLs that your + documentation is available through. The URL points to the root path of the + documentation and requires a trailing slash. + + :type: URL + + .. deprecated:: 0.6.0 + + Use :confval:`sphinx:html_baseurl` instead. + + .. _canonical URL: https://en.wikipedia.org/wiki/Canonical_link_element + +.. confval:: display_version + + If ``True``, the version number is shown at the top of the sidebar. + + :type: boolean + :default: ``True`` + +.. confval:: logo_only + + Only display the logo image, do not display the project name at the top of + the sidebar + + :type: boolean + :default: ``False`` + +.. confval:: prev_next_buttons_location + + Location to display :guilabel:`Next` and :guilabel:`Previous` buttons. This + can be either ``bottom``, ``top``, ``both`` , or ``None``. + + :type: string + :default: ``bottom`` + +.. confval:: style_external_links + + Add an icon next to external links. + + :type: boolean + :default: ``False`` + +.. confval:: vcs_pageview_mode + + Changes how to view files when using ``display_github``, ``display_gitlab``, + etc. When using GitHub or GitLab this can be: ``blob`` (default), ``edit``, + or ``raw``. On Bitbucket, this can be either: ``view`` (default) or + ``edit``. + + :type: string + :default: ``blob`` or ``view`` + +.. confval:: style_nav_header_background + + Changes the background of the search area in the navigation bar. The value + can be anything valid in a CSS `background` property. + + :type: string + :default: ``#2980B9`` + + +File-wide metadata +================== + +The following options can be used as :ref:`file-wide metadata +<sphinx:metadata>`: + +.. confval:: github_url + + Force the :guilabel:`Edit on GitHub` button to use the configured URL. + +.. confval:: bitbucket_url + + Force the :guilabel:`Edit on Bitbucket` button to use the configured URL. + +.. confval:: gitlab_url + + Force the :guilabel:`Edit on GitLab` button to use the configured URL. + +Other configuration +=================== + +Adding a logo +------------- + +Using the Sphinx standard option :py:confval:`html_logo <sphinx:html_logo>`, +you can set an image file to be used as a logo at the top of the sidebar. The +theme option :py:confval:`logo_only` also allows for *only* the logo to be shown +at the top of the sidebar. + +Adding custom CSS or Javascript +------------------------------- + +Adding custom CSS or Javascript can help you alter the look and feel of this +theme without forking the theme for local use. + +In order to add custom CSS or Javascript without disrupting the existing theme +files, you can :doc:`add files to be included in your documentation output +<rtd:guides/adding-custom-css>`. + +How the table of contents displays +================================== + +Currently the left menu will build based upon any ``toctree`` directives defined +in your source files. It outputs 4 levels of depth by default, to allow for +quick navigation through topics. If no TOC trees are defined, Sphinx's default +behavior is to use the page headings instead. + +It's important to note that if you don't follow the same styling for your reST +headings across your documents, the TOC tree will build incorrectly, and the +resulting menu might not show the correct depth when it renders. + +Also note that by default the table of contents is set with +``includehidden=True``. This allows you to set a hidden TOC in your index file +with the :ref:`:hidden: <sphinx:toctree-directive>` property that will allow you +to build a TOC without it rendering in your index. + +By default, the navigation will "stick" to the screen as you scroll. However if +your TOC is not tall enough, it will revert to static positioning. To disable the +sticky navigation altogether, change the :confval:`sticky_navigation` theme option. diff --git a/docs/contributing.rst b/docs/contributing.rst new file mode 100644 index 0000000..dd2eac1 --- /dev/null +++ b/docs/contributing.rst @@ -0,0 +1,265 @@ +************ +Contributing +************ + +This project follows the Read the Docs :doc:`code of conduct +<rtd-dev:code-of-conduct>`. If you are not familiar with our code of conduct policy, +take a minute to read the policy before starting with your first contribution. + +.. tip:: + There is a new dockerized build environment, see :ref:`dockerized-build`. + +Modifying the theme +=================== + +The styles for this theme use SASS_ and a custom CSS framework called Wyrm_. We +use Webpack_ and node-sass_ to build the CSS. Webpack_ is used to watch for +changes, rebuild the static assets, and rebuild the Sphinx demo documentation. + +.. note:: + The installation of Node is outside the scope of this documentation. You + will need Node version 10+ in order to make changes to this theme. + +Set up your environment +----------------------- + +#. Install Sphinx_ and documentation build dependencies. + + .. code:: console + + $ pip install -e '.[dev]' + +#. Install Webpack_, node-sass_, and theme dependencies locally. + + .. code:: console + + $ npm install + +Making changes +-------------- + +Changes to the theme can be compiled and tested with Webpack_: + +.. code:: console + + $ npm run dev + +This script will do the following: + +#. Install and update any dependencies. +#. Build the static CSS from SASS source files. +#. Build the demo documentation. +#. Watch for changes to the SASS files and documentation and rebuild everything + on any detected changes. + +Alternatively, if you don't need to watch the files, the release build script +can be used to test built assets: + +.. code:: console + + $ npm run build + +.. _Webpack: https://webpack.js.org/ +.. _node-sass: https://github.com/sass/node-sass +.. _SASS: http://www.sass-lang.com +.. _Wyrm: http://www.github.com/snide/wyrm/ +.. _Sphinx: http://www.sphinx-doc.org/en/stable/ + + +.. _dockerized-build: + +Dockerized development +====================== + +If you have Docker available on your platform, you can get started building CSS and JS artifacts a bit faster and won't have to worry about any of the setup spilling over into your general environment. + +When building with Docker, we create an image containing the build dependencies. Some of these are quite outdated and therefore ideal to isolate a container. The image is tagged as ``sphinx_rtd_theme:latest``. + +Inside the running docker image, we mount the working copy of the repository, build the artifacts and finally observe that the artifacts have been built and left in your current git checkout. + +Use the following steps: + +.. code-block:: console + + # Builds an updated version of the docker image + $ docker-compose build + + # Runs the development webserver + $ docker-compose run sphinx_rtd_theme dev + + # If you want to copy stuff out of the Docker environment, run this make + # target or read the actual Makefile to see what is going on. + # We suggest running this command every time that you want to quickly build + # new CSS/JS assets + $ make docker-build-all + +Every time you change the Node or Python requirements, you will need to rebuild images with ``docker-compose run sphinx_rtd_theme build``. If you change SASS or JS, you will need to rebuild assets. + +Testing +======= + +QA testing theme changes and pull requests is complex, due to backwards +compatibility. + +The following cases need to be tested with changes to CSS or JavaScript: + +* Multiple, modern browsers should be tested. +* Multiple viewport sizes should be tested for changes. + We support large, tablet, and mobile viewport sizes +* We currently support only HTML5 writer. +* Multiple major versions of Sphinx should be tested. + We currently support Sphinx ``>=5.0`` + +It's easiest to test combinations of dependency versions using ``tox``: + +.. code:: console + + % tox -e py310-sphinx62 + +If the tests and build are successful, you can view the built documentation at +the directory noted by Sphinx: + +.. code:: console + + build succeeded, 10 warnings. + + The HTML pages are in .tox/py310-sphinx62/tmp/html. + ___________________________ summary ___________________________ + py310-sphinx62: commands succeeded + congratulations :) + +You can then open up this path with a series of browsers to test. + +The best way to spot UI issues is to compare two or more builds. You can build +multiple ``tox`` environments, and open both up for comparison: + +.. code:: console + + % tox -e py310-sphinx62 + ... + % tox -e py310-sphinx53 + ... + % firefox .tox/py310-sphinx62/tmp/html/index.html + % firefox .tox/py310-sphinx53/tmp/html/index.html + +You can also use a separate ``tox`` environment for building output to compare +against. All of the ``tox`` environments have an additional postfix, ``-qa``, to +allow building the same environment twice, without overwriting any files. In +this test scenario, you would build from a branch or tag before building the +same ``tox`` environment for the pull request branch you are testing. + +For example, to test against the tag ``0.5.2``: + +.. code:: console + + % git checkout 0.5.2 + % tox -e py310-sphinx53-qa + ... + % git checkout feature/example-pull-request + % tox -e py310-sphinx53 + ... + % firefox .tox/py310-sphinx53-qa/tmp/html/index.html + % firefox .tox/py310-sphinx53/tmp/html/index.html + +Currently, the most important environments to QA are: + +.. This list is purposely shorter than what we describe above. If we test all of + the cases above, we'll be here all day. Python 3, and latest + minor of each major Sphinx release should give us enough work. + +* ``py310-sphinx53`` +* ``py310-sphinx62`` +* ``py310-sphinx72`` +* ``py310-sphinxlatest`` +* ``py310-sphinxdev`` + +Translations +============ + +Translations are managed using `Transifex`_. You can join any of the existing +language teams or request a new language is added to the project. For more +information on our translation standards, see our docs on +:doc:`rtd-dev:i18n` + +Periodically, core team should update the translation files outside our normal +releases. Someone from the core team, with write access to Transifex, should run +the following: + +.. code:: console + + $ python setup.py update_translations + +This will extract new messages, upload the messages to Transifex, and will +update our local translation files. Changes can be checked in to a branch and +put up for review. + +.. _Transifex: https://www.transifex.com/readthedocs/sphinx-rtd-theme + +Versioning +========== + +.. + TODO make these instructions organization wide. We've talked about + standardizing packaging version and tooling here (bumpver instead of + bump2version). + +In between releases, the package version specified will always be a alpha +release, matching ``1.1.1alpha1``. + +As pull requests are merged and the release impact changes, this version will +incremented ahead of release. For example, if we merge a new feature pull +request, we'd run ``bump2version minor`` to increment ``1.1.1alpha1`` to +``1.2.0alpha1``. + +To put out a release for testing, we will upload a release candidate. We would +run ``bump2version release`` to increment ``1.2.0alpha1`` to ``1.2.0rc1``. + +After a testing period, the release candidate can become a full release. We +would run ``bump2version release`` again to increment ``1.2.0rc1`` to ``1.2.0``. + +After the release process below, we increment the version again, so that the +development version -- the version found in the repository -- is always greater +than the most recent release. We follow up with another pull request by running +``bump2version patch``, which increments ``1.2.0`` to ``1.2.1alpha1``. + +Releasing the theme +=================== + +To release a new version of the theme, core team will take the following steps: + +#. Bump the version by running ``bump2version [major|minor|patch|dev]``. + This will automatically increase the correct part(s) of the version number, + you do not need to specify the exact version number. + We follow `semantic versioning`_ and `PEP440`_ + (with regards to alpha release and development versions). The version + increment should reflect these releases and any potentially breaking changes. +#. New versions are by default ``alpha`` releases. If this is a release candidate, + run ``bump2version --allow-dirty release`` to update the release to an ``rc`` + release. If this is a final release, run the command again. +#. Update the changelog (``docs/changelog.rst``) with the version information. +#. Run ``python setup.py update_translations`` to compile new translation files + and update Transifex. +#. Run ``npm install && npm run build`` to rebuild all the theme assets, + notice that ``package-lock.json`` will be updated with a new package + version. But take care that it isn't also bumping versions of dependencies + in ways that are risky to the release. *If* ``package-lock.json`` changes, you + need to commit it to git and tag it together with your release. +#. Commit these changes to a pull request. +#. Merge the pull request after review. +#. Check out ``master`` branch locally for tagging. **Remember to pull from remote**. +#. Tag the release in git: ``git tag -s $NEW_VERSION``. +#. Push the tag to GitHub: ``git push --tags origin``. +#. Upload the package to PyPI: + + .. code:: console + + $ rm -rf dist/ + $ python setup.py sdist bdist_wheel + $ twine upload --sign --identity security@readthedocs.org dist/* + +#. Finally, open a new pull request updating the development release version to + the next patch by running ``bump2version patch``. Open a pull request with + this change. See `Versioning`_ above for more details. + +.. _PEP440: https://www.python.org/dev/peps/pep-0440/ +.. _semantic versioning: http://semver.org/ diff --git a/docs/demo/api.rst b/docs/demo/api.rst new file mode 100644 index 0000000..6c3163d --- /dev/null +++ b/docs/demo/api.rst @@ -0,0 +1,152 @@ +*************************************** +API documentation and generated content +*************************************** + +.. contents:: Table of Contents + +:mod:`test_py_module` +===================== + +.. automodule:: test_py_module.test + :members: + :private-members: + :special-members: + + +C++ API +======= + +.. cpp:type:: MyType + + Some type + +.. cpp:function:: const MyType Foo(const MyType bar) + + Some function type thing + +.. cpp:class:: template<typename T, std::size_t N> std::array + + Some cpp class + +.. cpp:member:: float Sphinx::version + + The description of Sphinx::version. + +.. cpp:var:: int version + + The description of version. + +.. cpp:type:: std::vector<int> List + + The description of List type. + +.. cpp:enum:: MyEnum + + An unscoped enum. + + .. cpp:enumerator:: A + +.. cpp:enum-class:: MyScopedEnum + + A scoped enum. + + .. cpp:enumerator:: B + +.. cpp:enum-struct:: protected MyScopedVisibilityEnum : std::underlying_type<MySpecificEnum>::type + + A scoped enum with non-default visibility, and with a specified underlying type. + + .. cpp:enumerator:: B + + +JavaScript API +============== + +.. Copied from sphinx-doc/sphinx/tests/roots + +.. js:module:: module_a.submodule + +* Link to :js:class:`ModTopLevel` + +.. js:class:: ModTopLevel + + * Link to :js:meth:`mod_child_1` + * Link to :js:meth:`ModTopLevel.mod_child_1` + +.. js:method:: ModTopLevel.mod_child_1 + + * Link to :js:meth:`mod_child_2` + +.. js:method:: ModTopLevel.mod_child_2 + + * Link to :js:meth:`module_a.submodule.ModTopLevel.mod_child_1` + +.. js:module:: module_b.submodule + +* Link to :js:class:`ModTopLevel` + +.. js:class:: ModNested + + .. js:method:: nested_child_1 + + * Link to :js:meth:`nested_child_2` + + .. js:method:: nested_child_2 + + * Link to :js:meth:`nested_child_1` + + +Generated Index +=============== + +Part of the sphinx build process is to generate an index file: :ref:`genindex`. + + +Optional parameter args +======================= + +At this point optional parameters `cannot be generated from code`_. +However, some projects will manually do it, like so: + +This example comes from `django-payments module docs`_. + +.. class:: payments.dotpay.DotpayProvider(seller_id, pin[, channel=0[, lock=False], lang='pl']) + + This backend implements payments using a popular Polish gateway, `Dotpay.pl <http://www.dotpay.pl>`_. + + Due to API limitations there is no support for transferring purchased items. + + + :param seller_id: Seller ID assigned by Dotpay + :param pin: PIN assigned by Dotpay + :param channel: Default payment channel (consult reference guide) + :param lang: UI language + :param lock: Whether to disable channels other than the default selected above + +.. _cannot be generated from code: https://groups.google.com/forum/#!topic/sphinx-users/_qfsVT5Vxpw +.. _django-payments module docs: http://django-payments.readthedocs.org/en/latest/modules.html#payments.authorizenet.AuthorizeNetProvide + + +Data +==== + +.. data:: Data_item_1 + Data_item_2 + Data_item_3 + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce congue elit eu hendrerit mattis. + +Some data link :data:`Data_item_1`. + + +Sphinx Extensions +================= + +sphinx.ext.autosummary +---------------------- + +.. autosummary:: + + test_py_module.test.add_numbers + test_py_module.test.subtract_numbers + test_py_module.test.Foo diff --git a/docs/demo/demo.rst b/docs/demo/demo.rst new file mode 100644 index 0000000..e9f470d --- /dev/null +++ b/docs/demo/demo.rst @@ -0,0 +1,477 @@ +.. This is a comment. Note how any initial comments are moved by + transforms to after the document title, subtitle, and docinfo. + +.. demo.rst from: http://docutils.sourceforge.net/docs/user/rst/demo.txt + +.. |EXAMPLE| image:: static/yi_jing_01_chien.jpg + :width: 1em + +********************** +Paragraph Level Markup +********************** + +.. contents:: Table of Contents + +Inline Markup +============= + +Paragraphs contain text and may contain inline markup: *emphasis*, **strong emphasis**, ``inline literals``, +standalone hyperlinks (http://www.python.org), external hyperlinks (Python_), internal cross-references (example_), +external hyperlinks with embedded URIs (`Python web site <http://www.python.org>`__), footnote references +(manually numbered [1]_, anonymous auto-numbered [#]_, labeled auto-numbered [#label]_, or symbolic [*]_), +citation references ([12]_), substitution references (|example|), and _`inline hyperlink targets` +(see Targets_ below for a reference back to here). Character-level inline markup is also possible +(although exceedingly ugly!) in *re*\ ``Structured``\ *Text*. Problems are indicated by |problematic| +text (generated by processing errors; this one is intentional). + +Also with ``sphinx.ext.autodoc``, which I use in the demo, I can link to :class:`test_py_module.test.Foo`. +It will link you right to my code documentation for it. + +The default role for [1]_ interpreted text is `Title Reference`. Here are some explicit interpreted text roles: +a PEP reference (:PEP:`287`); an RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`; +and explicit roles for :emphasis:`standard` :strong:`inline` :literal:`markup`. + +GUI labels are a useful way to indicate that :guilabel:`Some action` is to be taken by the user. +The GUI label should not run over ``line-height`` so as not to :guilabel:`interfere` with text from adjacent lines. + +Key-bindings indicate that [1]_ the read is to press a button on the keyboard or mouse, +for example :kbd:`MMB` and :kbd:`Shift-MMB`. Another useful markup to indicate a user action +is to use ``menuselection`` this [1]_ can [1]_ be [1]_ used [1]_ to [1]_ show [1]_ short [1]_ and long menus in software. +For example, and ``menuselection`` can be seen here that breaks is too long to fit on this line. +:menuselection:`My --> Software --> Some menu --> Some sub menu 1 --> sub menu 2`. + +.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH! + +Let's test wrapping and whitespace significance in inline literals: +``This is an example of --inline-literal --text, --including some-- +strangely--hyphenated-words. Adjust-the-width-of-your-browser-window +to see how the text is wrapped. -- ---- -------- Now note the +spacing between the words of this sentence (words +should be grouped in pairs).`` + +If the ``--pep-references`` option was supplied, there should be a live link to PEP 258 here. + +.. regression test for https://github.com/readthedocs/sphinx_rtd_theme/pull/1193 + +Very long URLs should be wrapped so lines do not overflow and cause horizontal scrolling: https://www.google.com/search?hl=en&q=very%20long%20url%20example%20of%20a%20url%20that%20is%20extremely%20long%20you%20probably%20want%20to%20avoid%20it%20but%20here%20we%20are + +Math +==== + +This is a test. Here is an equation: +:math:`X_{0:5} = (X_0, X_1, X_2, X_3, X_4)`. +Here is another: + +.. math:: + :label: This is a label + + \nabla^2 f = + \frac{1}{r^2} \frac{\partial}{\partial r} + \left( r^2 \frac{\partial f}{\partial r} \right) + + \frac{1}{r^2 \sin \theta} \frac{\partial f}{\partial \theta} + \left( \sin \theta \, \frac{\partial f}{\partial \theta} \right) + + \frac{1}{r^2 \sin^2\theta} \frac{\partial^2 f}{\partial \phi^2} + +You can add a link to equations like the one above :eq:`This is a label` by using ``:eq:``. + +Meta +==== + +.. meta:: + :keywords: reStructuredText, demonstration, demo, parser + :description lang=en: A demonstration of the reStructuredText + markup language, containing examples of all basic + constructs and many advanced constructs. + +Blocks +====== + +Literal Blocks +-------------- + +Literal blocks are indicated with a double-colon ("::") at the end of +the preceding paragraph (over there ``-->``). They can be indented:: + + if literal_block: + text = 'is left as-is' + spaces_and_linebreaks = 'are preserved' + markup_processing = None + +Or they can be quoted without indentation:: + +>> Great idea! +> +> Why didn't I think of that? + +Line Blocks +----------- + +| This is a line block. It ends with a blank line. +| Each new line begins with a vertical bar ("|"). +| Line breaks and initial indents are preserved. +| Continuation lines are wrapped portions of long lines; + they begin with a space in place of the vertical bar. +| The left edge of a continuation line need not be aligned with + the left edge of the text above it. + +| This is a second line block. +| +| Blank lines are permitted internally, but they must begin with a "|". + +Take it away, Eric the Orchestra Leader! + + | A one, two, a one two three four + | + | Half a bee, philosophically, + | must, *ipso facto*, half not be. + | But half the bee has got to be, + | *vis a vis* its entity. D'you see? + | + | But can a bee be said to be + | or not to be an entire bee, + | when half the bee is not a bee, + | due to some ancient injury? + | + | Singing... + +Block Quotes +------------ + +Block quotes consist of indented body elements: + + My theory by A. Elk. Brackets Miss, brackets. This theory goes + as follows and begins now. All brontosauruses are thin at one + end, much much thicker in the middle and then thin again at the + far end. That is my theory, it is mine, and belongs to me and I + own it, and what it is too. + + -- Anne Elk (Miss) + +Doctest Blocks +-------------- + +>>> print 'Python-specific usage examples; begun with ">>>"' +Python-specific usage examples; begun with ">>>" +>>> print '(cut and pasted from interactive Python sessions)' +(cut and pasted from interactive Python sessions) + +Code Blocks +----------- + +.. parsed-literal:: + + # parsed-literal test + curl -O http://someurl/release-|version|.tar-gz + + +.. code-block:: json + :caption: Code Blocks can have captions. + + { + "windows": [ + { + "panes": [ + { + "shell_command": [ + "echo 'did you know'", + "echo 'you can inline'" + ] + }, + { + "shell_command": "echo 'single commands'" + }, + "echo 'for panes'" + ], + "window_name": "long form" + } + ], + "session_name": "shorthands" + } + +Emphasized lines with line numbers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: python + :linenos: + :emphasize-lines: 3,5 + + def some_function(): + interesting = False + print 'This line is highlighted.' + print 'This one is not...' + print '...but this one is.' + +Sidebar +======= + +.. sidebar:: Ch'ien / The Creative + + .. image:: static/yi_jing_01_chien.jpg + + *Above* CH'IEN THE CREATIVE, HEAVEN + + *Below* CH'IEN THE CREATIVE, HEAVEN + +The first hexagram is made up of six unbroken lines. These unbroken lines stand for the primal power, +which is light-giving, active, strong, and of the spirit. The hexagram is consistently strong in character, +and since it is without weakness, its essence is power or energy. Its image is heaven. +Its energy is represented as unrestricted by any fixed conditions in space and is therefore conceived of as motion. +Time is regarded as the basis of this motion. +Thus the hexagram includes also the power of time and the power of persisting in time, that is, duration. + +The power represented by the hexagram is to be interpreted in a dual sense in terms of its action +on the universe and of its action on the world of men. In relation to the universe, the hexagram expresses the strong, +creative action of the Deity. In relation to the human world, it denotes the creative action of the holy man or sage, +of the ruler or leader of men, who through his power awakens and develops their higher nature. + +Code with Sidebar +----------------- + +.. sidebar:: A code example + + With a sidebar on the right. + +.. literalinclude:: test_py_module/test.py + :language: python + :caption: Literal includes can also have captions. + :linenos: + :lines: 1-40 + +References +========== + +Footnotes +--------- + +.. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + This is the footnote's second paragraph. + +.. [#label] Footnotes may be numbered, either manually (as in [1]_) or + automatically using a "#"-prefixed label. This footnote has a + label so it can be referred to from multiple places, both as a + footnote reference ([#label]_) and as a hyperlink reference + (label_). + +.. [#] This footnote is numbered automatically and anonymously using a + label of "#" only. + +.. [*] Footnotes may also use symbols, specified with a "*" label. + Here's a reference to the next footnote: [*]_. + +.. [*] This footnote shows the next symbol in the sequence. + +.. [4] Here's an unreferenced footnote, with a reference to a + nonexistent footnote: [5]_. + +Citations +--------- + +.. [Citation] This is the citation I made, let's make this extremely long so that we can tell that it doesn't follow the normal responsive table stuff. + +.. [12] This citation has some ``code blocks`` in it, maybe some **bold** and + *italics* too. Heck, lets put a link to a meta citation [13]_ too. + +.. [13] This citation will have two backlinks. + + +Here's a reference to the above, [Citation]_, and a [nonexistent]_ citation. + +Glossary +-------- + +This is a glossary with definition terms for thing like :term:`Writing`: + +.. glossary:: + + Documentation + Provides users with the knowledge they need to use something. + + Reading + The process of taking information into ones mind through the use of eyes. + + Writing + The process of putting thoughts into a medium for other people to :term:`read <Reading>`. + +Targets +------- + +.. _example: + +This paragraph is pointed to by the explicit "example" target. +A reference can be found under `Inline Markup`_, above. `Inline +hyperlink targets`_ are also possible. + +Section headers are implicit targets, referred to by name. See +Targets_, which is a subsection of `References`_. + +Explicit external targets are interpolated into references such as "Python_". + +.. _Python: http://www.python.org/ + +Targets may be indirect and anonymous. Thus `this phrase`__ may also +refer to the Targets_ section. + +__ Targets_ + +Here's a `hyperlink reference without a target`_, which generates an error. + + +Directives +========== + +Contents +-------- + +.. contents:: :local: + +These are just a sample of the many reStructuredText Directives. For others, please see: +http://docutils.sourceforge.net/docs/ref/rst/directives.html. + + +Centered text +------------- + +You can create a statement with centered text with ``.. centered::`` + +.. centered:: This is centered text! + +Images & Figures +---------------- + +Images +^^^^^^ + +An image directive (also clickable -- a hyperlink reference): + +.. image:: static/yi_jing_01_chien.jpg + :target: directives_ + +Figures +^^^^^^^ + +.. figure:: static/yi_jing_01_chien.jpg + :alt: reStructuredText, the markup syntax + + A figure is an image with a caption and/or a legend: + + +------------+-----------------------------------------------+ + | re | Revised, revisited, based on 're' module. | + +------------+-----------------------------------------------+ + | Structured | Structure-enhanced text, structuredtext. | + +------------+-----------------------------------------------+ + | Text | Well it is, isn't it? | + +------------+-----------------------------------------------+ + + This paragraph is also part of the legend. + +A figure directive with center alignment + +.. figure:: static/yi_jing_01_chien.jpg + :align: center + + This caption should be centered. + +Admonitions +----------- + +.. Attention:: Directives at large. + +.. Caution:: Don't take any wooden nickels. + +.. DANGER:: Mad scientist at work! + +.. Error:: Does not compute. + +.. Hint:: It's bigger than a bread box. + +.. Important:: + - Wash behind your ears. + - Clean up your room. + + - Including the closet. + - The bathroom too. + + - Take the trash out of the bathroom. + - Clean the sink. + - Call your mother. + - Back up your data. + +.. Note:: This is a note. + Equations within a note: + :math:`G_{\mu\nu} = 8 \pi G (T_{\mu\nu} + \rho_\Lambda g_{\mu\nu})`. + +.. Tip:: 15% if the service is good. + + +---------+ + | Example | + +=========+ + | Thing1 | + +---------+ + | Thing2 | + +---------+ + | Thing3 | + +---------+ + +.. WARNING:: Strong prose may provoke extreme mental exertion. + Reader discretion is strongly advised. + +.. admonition:: And, by the way... + + You can make up your own admonition too. + +Topics, Sidebars, and Rubrics +----------------------------- + +.. sidebar:: Sidebar Title + :subtitle: Optional Subtitle + + This is a sidebar. It is for text outside the flow of the main + text. + + .. rubric:: This is a rubric inside a sidebar + + Sidebars often appears beside the main text with a border and + background color. + +.. topic:: Topic Title + + This is a topic. + +.. rubric:: This is a rubric + +Target Footnotes +---------------- + +.. target-notes:: + +Replacement Text +---------------- + +I recommend you try |Python|_. + +.. |Python| replace:: Python, *the* best language around + +Compound Paragraph +------------------ + +.. compound:: + + This paragraph contains a literal block:: + + Connecting... OK + Transmitting data... OK + Disconnecting... OK + + and thus consists of a simple paragraph, a literal block, and + another simple paragraph. Nonetheless it is semantically *one* + paragraph. + +This construct is called a *compound paragraph* and can be produced +with the "compound" directive. + +Download Links +============== + +:download:`This long long long long long long long long long long long long long long long download link should be blue, normal weight text with a leading icon, and should wrap white-spaces <static/yi_jing_01_chien.jpg>` diff --git a/docs/demo/level1/index.rst b/docs/demo/level1/index.rst new file mode 100644 index 0000000..e210638 --- /dev/null +++ b/docs/demo/level1/index.rst @@ -0,0 +1,9 @@ + +****************** +Breadcrumb Level 1 +****************** + + .. toctree:: + :maxdepth: 3 + + level2/index.rst diff --git a/docs/demo/level1/level2/index.rst b/docs/demo/level1/level2/index.rst new file mode 100644 index 0000000..26931c7 --- /dev/null +++ b/docs/demo/level1/level2/index.rst @@ -0,0 +1,9 @@ + +****************************************** +:mod:`Breadcrumb Level 2 <test_py_module>` +****************************************** + + .. toctree:: + :maxdepth: 3 + + level3/index.rst diff --git a/docs/demo/level1/level2/level3/index.rst b/docs/demo/level1/level2/level3/index.rst new file mode 100644 index 0000000..bc3c195 --- /dev/null +++ b/docs/demo/level1/level2/level3/index.rst @@ -0,0 +1,9 @@ + +****************** +Breadcrumb Level 3 +****************** + + .. toctree:: + :maxdepth: 3 + + level4/index.rst diff --git a/docs/demo/level1/level2/level3/level4/index.rst b/docs/demo/level1/level2/level3/level4/index.rst new file mode 100644 index 0000000..9a8c0fa --- /dev/null +++ b/docs/demo/level1/level2/level3/level4/index.rst @@ -0,0 +1,9 @@ + +****************** +Breadcrumb Level 4 +****************** + + .. toctree:: + :maxdepth: 3 + + level5/index.rst diff --git a/docs/demo/level1/level2/level3/level4/level5/index.rst b/docs/demo/level1/level2/level3/level4/level5/index.rst new file mode 100644 index 0000000..ca590c9 --- /dev/null +++ b/docs/demo/level1/level2/level3/level4/level5/index.rst @@ -0,0 +1,9 @@ + +****************** +Breadcrumb Level 5 +****************** + + .. toctree:: + :maxdepth: 3 + + level6/index.rst diff --git a/docs/demo/level1/level2/level3/level4/level5/level6/index.rst b/docs/demo/level1/level2/level3/level4/level5/level6/index.rst new file mode 100644 index 0000000..c9419dd --- /dev/null +++ b/docs/demo/level1/level2/level3/level4/level5/level6/index.rst @@ -0,0 +1,4 @@ + +****************** +Breadcrumb Level 6 +****************** diff --git a/docs/demo/lists_tables.rst b/docs/demo/lists_tables.rst new file mode 100644 index 0000000..d63cf47 --- /dev/null +++ b/docs/demo/lists_tables.rst @@ -0,0 +1,371 @@ + +************** +Lists & Tables +************** + +.. contents:: Table of Contents + +Lists +===== + +Enumerated Lists +---------------- + +1. Arabic numerals. + + a) lower alpha) + + (i) (lower roman) + + A. upper alpha. + + I) upper roman) + +2. Lists that don't start at 1: + + 3. Three + + 4. Four + + C. C + + D. D + + iii. iii + + iv. iv + +#. List items may also be auto-enumerated. + +Definition Lists +---------------- + +Term + Definition +Term : classifier + Definition paragraph 1. + + Definition paragraph 2. +Term + Definition + +I have no clue why the definition list below is classified as a different style +of definition list than the one above. + +Is it the spaces in the term? + Maybe it was the multiple line paragraph + in the line below that caused this? + +Is it the paragraph above the list maybe? + I guess a lot of these lists don't have leading paragraphs? + +Is it everything all at once? + Who knows?! + +Option Lists +------------ + +For listing command-line options: + +-a command-line option "a" +-b file options can have arguments + and long descriptions +--long options can be long also +--input=file long options can also have + arguments + +--very-long-option + The description can also start on the next line. + + The description may contain multiple body elements, + regardless of where it starts. + +-x, -y, -z Multiple options are an "option group". +-v, --verbose Commonly-seen: short & long options. +-1 file, --one=file, --two file + Multiple options with arguments. +/V DOS/VMS-style options too + +There must be at least two spaces between the option and the description. + +Field list +---------- + +.. bibliographic fields (which also require a transform): + +:Author: David Goodger +:Address: 123 Example Street + Example, EX Canada + A1B 2C3 +:Contact: docutils-develop@lists.sourceforge.net +:Authors: Me; Myself; I +:organization: humankind +:date: $Date: 2012-01-03 19:23:53 +0000 (Tue, 03 Jan 2012) $ +:status: This is a "work in progress" +:revision: $Revision: 7302 $ +:version: 1 +:copyright: This document has been placed in the public domain. You + may do with it as you wish. You may copy, modify, + redistribute, reattribute, sell, buy, rent, lease, + destroy, or improve it, quote it at length, excerpt, + incorporate, collate, fold, staple, or mutilate it, or do + anything else to it that your or anyone else's heart + desires. +:field name: This is a generic bibliographic field. +:field name 2: + Generic bibliographic fields may contain multiple body elements. + + Like this. + +:Dedication: + + For Docutils users & co-developers. + +:abstract: + + This document is a demonstration of the reStructuredText markup + language, containing examples of all basic reStructuredText + constructs and many advanced constructs. + +Bullet Lists +------------ + +.. + Docutils supports two types of lists, "simple" and "complex". Complex lists + have item margins, simple lists do not. + https://docutils.sourceforge.io/sandbox/html4strict/data/simple-lists.html + +Simple +^^^^^^ + +- A simple list. +- There are no margins between list items. +- Simple lists do not contain multiple paragraphs. That's a complex list. +- In the case of a nested list + + - There are no margins between elements + + - Still no margins + + - Still no margins + +Complex +^^^^^^^ + +- A bullet list + + + Nested bullet list. + + Nested item 2. + +- Item 2. + + Paragraph 2 of item 2. + + * Nested bullet list. + * Nested item 2. + + - Third level. + - Item 2. + + * Nested item 3. + +- ``inline literall`` +- ``inline literall`` +- ``inline literall`` +- This item has multiple paragraphs. + + This item has multiple paragraphs. +- This item has multiple paragraphs. + + This item has multiple paragraphs. + + +Second list level +^^^^^^^^^^^^^^^^^ + +- here is a list in a second-level section. +- `yahoo <http://www.yahoo.com>`_ +- `yahoo <http://www.yahoo.com>`_ + + - `yahoo <http://www.yahoo.com>`_ + - here is an inner bullet ``oh`` + + - one more ``with an inline literally``. `yahoo <http://www.yahoo.com>`_ + + heh heh. child. try to beat this embed: + + .. literalinclude:: test_py_module/test.py + :language: python + :linenos: + :lines: 1-10 + - and another. `yahoo <http://www.yahoo.com>`_ + - `yahoo <http://www.yahoo.com>`_ + - ``hi`` +- how about an admonition? + + .. note:: + This is a note nested in a list. + +- and hehe + +But deeper down the rabbit hole +""""""""""""""""""""""""""""""" + +- I kept saying that, "deeper down the rabbit hole". `yahoo <http://www.yahoo.com>`_ + + - I cackle at night `yahoo <http://www.yahoo.com>`_. +- I'm so lonely here in GZ ``guangzhou`` +- A man of python destiny, hopes and dreams. `yahoo <http://www.yahoo.com>`_ + + - `yahoo <http://www.yahoo.com>`_ + + - `yahoo <http://www.yahoo.com>`_ ``hi`` + - ``destiny`` + +Hlists +------ + +.. hlist:: + :columns: 2 + + - First item + - Second item + - Third item + - Forth item + - Fifth item + - Sixths item + +.. rubric:: Hlist with images + +.. hlist:: + :columns: 2 + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a short caption for a figure. + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. + +Numbered List +------------- + +#. One, +#. Two. +#. Three with long text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Sed feugiat sagittis neque quis eleifend. Duis rutrum lectus sit amet mattis suscipit. + +- A) Using bullets and letters. (A) +- B) Using bullets and letters. (B) +- C) Using bullets and letters. (C) + +Tables +====== + +Grid Tables +----------- + +Here's a grid table followed by a simple table: + ++------------------------+------------+----------+----------+ +| Header row, column 1 | Header 2 | Header 3 | Header 4 | +| (header rows optional) | | | | ++========================+============+==========+==========+ +| body row 1, column 1 | column 2 | column 3 | column 4 | ++------------------------+------------+----------+----------+ +| body row 2 | Cells may span columns. | ++------------------------+------------+---------------------+ +| body row 3 | Cells may | - Table cells | ++------------------------+ span rows. | - contain | +| body row 4 | | - body elements. | ++------------------------+------------+----------+----------+ +| body row 5 | Cells may also be | | +| | empty: ``-->`` | | ++------------------------+-----------------------+----------+ + +===== ===== ====== + Inputs Output +------------ ------ + A B A or B +===== ===== ====== +False False False +True False True +False True True +True True True +===== ===== ====== + +Giant Tables +^^^^^^^^^^^^ + ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | ++============+============+===========+============+============+===========+============+============+===========+============+============+===========+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ +| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | ++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+ + +List Tables +----------- + +.. list-table:: List tables can have captions like this one. + :widths: 10 5 10 50 + :header-rows: 1 + :stub-columns: 1 + + * - List table + - Header 1 + - Header 2 + - Header 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 1 + - Row 1 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 2 + - Row 2 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + * - Stub Row 3 + - Row 3 + - Column 2 + - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu. + +.. list-table:: This is a list table with images in it. + + * - .. figure:: static/yi_jing_01_chien.jpg + + This is a short caption for a figure. + + - .. figure:: static/yi_jing_01_chien.jpg + + This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non. + + +Tables with paragraphs +---------------------- + +.. regression test for https://github.com/readthedocs/sphinx_rtd_theme/issues/289 + +Test to see that tables behave well with nested paragraphs. + ++------------+----------+-------------------------+ +| Precedence | Operator | Description | ++============+==========+=========================+ +| 1 | \:: | Scope resolution | ++------------+----------+-------------------------+ +| 2 | ( ) | Function call | +| | | | +| | [ ] | Subscript | +| | | | +| | . | Member access | +| | | | +| | .{ } | Bit-field concatenation | ++------------+----------+-------------------------+ + diff --git a/docs/demo/long.rst b/docs/demo/long.rst new file mode 100644 index 0000000..26b1add --- /dev/null +++ b/docs/demo/long.rst @@ -0,0 +1,214 @@ + +*************** +Long Sticky Nav +*************** + +.. contents:: Table of Contents + +This section demonstrates how the 'sticky_navigation' setting behaves when the menu is very long. +When this section is selected, it will make the menu and the main area scroll when you are at the top of the page. + + +Example Menu 1 +============== + +Just a place holder... + + +Example Menu 2 +============== + +Just a place holder... + + +Example Menu 3 +============== + +Just a place holder... + + +Example Menu 4 +============== + +Just a place holder... + + +Example Menu 5 +============== + +Just a place holder... + + +Example Menu 6 +============== + +Just a place holder... + + +Example Menu 7 +============== + +Just a place holder... + + +Example Menu 8 +============== + +Just a place holder... + + +Example Menu 9 +============== + +Just a place holder... + + +Example Menu 10 +=============== + +Just a place holder... + + +Example Menu 11 +=============== + +Just a place holder... + + +Example Menu 12 +=============== + +Just a place holder... + + +Example Menu 13 +=============== + +Just a place holder... + + +Example Menu 14 +=============== + +Just a place holder... + + +Example Menu 15 +=============== + +Just a place holder... + + +Example Menu 16 +=============== + +Just a place holder... + + +Example Menu 17 +=============== + +Just a place holder... + + +Example Menu 18 +=============== + +Just a place holder... + + +Example Menu 19 +=============== + +Just a place holder... + + +Example Menu 20 +=============== + +Just a place holder... + +Example Submenu 1 +================= + +Just a place holder... + +Submenu 1 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Subsubmenu 2 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 2 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 3 +--------- + +Just a place holder... + +Submenu 4 +--------- + +Just a place holder... + +Submenu 5 +--------- + +Just a place holder... + +Example Submenu 2 +================= + +Just a place holder... + +Submenu 1 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 2 +--------- + +Just a place holder... + +Subsubmenu 1 +^^^^^^^^^^^^ + +Just a place holder... + +Submenu 3 +--------- + +Just a place holder... + +Submenu 4 +--------- + +Just a place holder... + +Submenu 5 +--------- + +Just a place holder... diff --git a/docs/demo/static/favicon.ico b/docs/demo/static/favicon.ico Binary files differnew file mode 100644 index 0000000..42e8969 --- /dev/null +++ b/docs/demo/static/favicon.ico diff --git a/docs/demo/static/logo-wordmark-light.svg b/docs/demo/static/logo-wordmark-light.svg new file mode 100644 index 0000000..d0cbb66 --- /dev/null +++ b/docs/demo/static/logo-wordmark-light.svg @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="2000" + height="400" + id="svg5241" + version="1.1" + inkscape:version="0.48.5 r10040" + sodipodi:docname="logo-wordmark-light.svg" + inkscape:export-filename="/Users/anthony/dev/readthedocs/guidelines/assets/logo-wordmark-light.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs5243" /> + <sodipodi:namedview + id="base" + pagecolor="#32322a" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="1" + inkscape:pageshadow="2" + inkscape:zoom="0.70710678" + inkscape:cx="774.9861" + inkscape:cy="86.360425" + inkscape:document-units="px" + inkscape:current-layer="text5298" + showgrid="false" + inkscape:window-width="1366" + inkscape:window-height="723" + inkscape:window-x="0" + inkscape:window-y="26" + inkscape:window-maximized="0" /> + <metadata + id="metadata5246"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-652.3622)"> + <g + id="g5310" + transform="translate(-7.2877533,-6.3546821e-5)" + style="fill:#fafafa;fill-opacity:1"> + <g + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/anthony/secure/docs/rtd/assets/rtd-logo-2.png" + transform="matrix(0.55753644,0,0,0.55753644,62.308135,1038.8762)" + id="g3990" + style="fill:#fafafa;fill-opacity:1" /> + <g + id="g3878" + transform="matrix(8.4462802,0,0,8.4462802,-93.469267,-7827.1593)" + style="fill:#fafafa;fill-opacity:1"> + <g + transform="matrix(0.55753644,0,0,0.55753644,68.308135,1050.1262)" + id="g3857" + style="fill:#fafafa;fill-opacity:1"> + <path + id="path3929-8" + style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#fafafa;fill-opacity:1;stroke:none;stroke-width:3.22848844999999995;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" + d="M -67.28125,-41.59375 A 1.6144056,1.6144056 0 0 0 -67.5,-38.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-40.330461 -66.5,-41.5 -66.5,-41.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m 0,-8 A 1.6144056,1.6144056 0 0 0 -67.5,-46.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-48.330461 -66.5,-49.5 -66.5,-49.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m 0,-8 A 1.6144056,1.6144056 0 0 0 -67.5,-54.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-56.330461 -66.5,-57.5 -66.5,-57.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m 0,-8 A 1.6144056,1.6144056 0 0 0 -67.5,-62.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-64.330461 -66.5,-65.5 -66.5,-65.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m -11.207892,-8.437005 c -8.407221,0.05606 -11.539425,2.645057 -11.539425,2.645057 l 0,62.7837755 c 0,0 3.05858,-2.6415165 12.905554,-2.2381255 9.846974,0.403391 11.878255,3.8552765 23.979914,4.0983855 12.101659,0.243109 15.143679,-1.86026 15.143679,-1.86026 l 0.174399,-64.0045705 c 0,0 -5.446133,1.541392 -16.044742,1.627727 -10.598609,0.08634 -13.146074,-2.696144 -22.875385,-3.022922 -0.608082,-0.02042 -1.183512,-0.0328 -1.743994,-0.02907 z m 7.034109,4.098386 c 0,0 5.094376,1.68402 14.504214,2.150925 7.953019,0.39462 15.928477,-0.784797 15.928477,-0.784797 l 0,56.883263 c 0,0 -4.036665,2.1158549 -14.12635,1.395195 -7.819331,-0.558499 -16.422608,-3.517054 -16.422608,-3.517054 l 0.116267,-56.127532 z m -4.912249,1.482394 a 1.6277275,1.6277275 0 0 1 0,3.255455 c 0,0 -2.634985,0.01353 -4.243719,0.1744 -2.701025,0.270103 -4.534383,1.249862 -4.534383,1.249862 a 1.6251955,1.6251955 0 1 1 -1.511462,-2.87759 c 0,0 2.391605,-1.26521 5.726113,-1.598661 1.926801,-0.192699 4.563451,-0.203466 4.563451,-0.203466 z m -1.569595,8.022372 c 0.899775,-0.02279 1.569595,0 1.569595,0 a 1.625,1.625 0 0 1 0,3.226388 c 0,0 -2.634985,0.01352 -4.243719,0.174399 -2.701025,0.270104 -4.534383,1.249863 -4.534383,1.249863 a 1.6251955,1.6251955 0 0 1 -1.511462,-2.87759 c 0,0 2.391605,-1.26521 5.726113,-1.598661 0.963401,-0.09635 2.094081,-0.151612 2.993856,-0.174399 z m 1.569595,7.993304 a 1.6277275,1.6277275 0 0 1 0,3.255455 c 0,0 -2.634985,-0.01554 -4.243719,0.145333 -2.701025,0.270103 -4.534383,1.249862 -4.534383,1.249862 a 1.6251952,1.6251952 0 0 1 -1.511462,-2.877589 c 0,0 2.391605,-1.265211 5.726113,-1.598661 1.926801,-0.1927 4.563451,-0.1744 4.563451,-0.1744 z" + inkscape:connector-curvature="0" /> + </g> + <g + style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:-1.99000001px;word-spacing:0px;fill:#fafafa;stroke:none;font-family:Bitter;-inkscape-font-specification:Bitter" + id="text5298"> + <path + d="m 63.380232,1038.8522 0,-2.592 1.056,-0.096 c 0.618664,-0.064 0.927997,-0.3627 0.928,-0.896 l 0,-14.88 -1.824,-0.096 0,-2.72 8.736,0 c 2.474654,0 4.373319,0.4587 5.696,1.376 1.322649,0.9173 1.983982,2.4213 1.984,4.512 -1.8e-5,1.4507 -0.384018,2.6453 -1.152,3.584 -0.746683,0.9387 -1.642682,1.6213 -2.688,2.048 0.767985,0.2773 1.375985,0.928 1.824,1.952 l 2.304,5.024 1.824,0.064 0,2.72 -7.904,0 0,-2.592 0.928,-0.096 c 0.490653,-0.064 0.735986,-0.256 0.736,-0.576 -1.4e-5,-0.128 -0.04268,-0.2774 -0.128,-0.448 l -1.504,-3.2 c -0.234679,-0.5334 -0.501345,-0.9067 -0.8,-1.12 -0.277344,-0.2347 -0.682677,-0.352 -1.216,-0.352 l -2.912,0 0,5.568 2.08,0.096 0,2.72 -7.968,0 m 5.888,-11.424 2.784,0 c 2.623987,0 3.935986,-1.1733 3.936,-3.52 -1.4e-5,-1.344 -0.352014,-2.2187 -1.056,-2.624 -0.682679,-0.4053 -1.792011,-0.608 -3.328,-0.608 l -2.336,0 0,6.752" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3068" /> + <path + d="m 90.310094,1022.2762 c 1.599989,0 2.869321,0.3947 3.808,1.184 0.938652,0.768 1.407985,1.856 1.408,3.264 -1.5e-5,0.9387 -0.202681,1.7706 -0.608,2.496 -0.405347,0.704 -0.90668,1.2586 -1.504,1.664 -0.597345,0.4053 -1.322678,0.736 -2.176,0.992 -1.429342,0.4266 -3.040007,0.64 -4.832,0.64 0.06399,1.1306 0.415994,2.048 1.056,2.752 0.639993,0.6826 1.621325,1.024 2.944,1.024 1.322656,0 2.645321,-0.4694 3.968,-1.408 l 1.216,2.592 c -0.426681,0.384 -1.152014,0.7786 -2.176,1.184 -1.002678,0.4053 -2.154677,0.608 -3.456,0.608 -2.602673,0 -4.512005,-0.7147 -5.728,-2.144 -1.216002,-1.4507 -1.824002,-3.4347 -1.824,-5.952 -2e-6,-2.5174 0.693331,-4.6293 2.08,-6.336 1.386662,-1.7067 3.327993,-2.56 5.824,-2.56 m -1.472,7.328 c 0.789325,-0.1494 1.514657,-0.4587 2.176,-0.928 0.661322,-0.4907 0.991989,-1.0667 0.992,-1.728 -1.1e-5,-1.3013 -0.640011,-1.952 -1.92,-1.952 -1.194675,0 -2.112007,0.48 -2.752,1.44 -0.640006,0.9387 -0.992006,2.0693 -1.056,3.392 0.93866,-0.021 1.791993,-0.096 2.56,-0.224" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3070" /> + <path + d="m 110.8632,1023.3962 0,11.904 c -1e-5,0.3413 0.0533,0.576 0.16,0.704 0.12799,0.128 0.34132,0.2026 0.64,0.224 l 1.024,0.064 0,2.56 -5.088,0 0,-1.856 -0.096,-0.032 c -1.06668,1.536 -2.52801,2.304 -4.384,2.304 -2.176,0 -3.786669,-0.6934 -4.831999,-2.08 -1.045335,-1.3867 -1.568001,-3.2854 -1.568,-5.696 -10e-7,-2.9014 0.703998,-5.1627 2.112,-6.784 1.407999,-1.6213 3.519989,-2.432 6.335999,-2.432 1.81332,0 3.71199,0.3733 5.696,1.12 m -3.712,10.368 0,-8.288 c -0.59734,-0.2773 -1.41868,-0.416 -2.464,-0.416 -1.42934,0 -2.46401,0.576 -3.104,1.728 -0.64,1.152 -0.96,2.6773 -0.96,4.576 0,3.456 1.10933,5.184 3.328,5.184 0.93866,0 1.70666,-0.2774 2.304,-0.832 0.59732,-0.576 0.89599,-1.2267 0.896,-1.952" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3072" /> + <path + d="m 121.12069,1022.2762 c 0.91733,0 1.79199,0.128 2.624,0.384 l 0,-3.232 c -1e-5,-0.4693 -0.27734,-0.7253 -0.832,-0.768 l -1.376,-0.096 0,-2.528 5.952,0 0,19.456 c 0.0213,0.4906 0.28799,0.736 0.8,0.736 l 1.12,0.064 0,2.56 -5.184,0 0,-1.888 -0.096,-0.032 c -0.96001,1.5573 -2.41067,2.336 -4.352,2.336 -2.432,0 -4.13867,-0.8107 -5.12,-2.432 -0.896,-1.472 -1.344,-3.2747 -1.344,-5.408 0,-2.7734 0.68267,-4.992 2.048,-6.656 1.38666,-1.664 3.30666,-2.496 5.76,-2.496 m 2.624,11.584 0,-8.288 c -0.76801,-0.3413 -1.57867,-0.512 -2.432,-0.512 -1.40801,0 -2.44267,0.5653 -3.104,1.696 -0.64,1.1307 -0.96,2.5706 -0.96,4.32 0,3.584 1.152,5.376 3.456,5.376 0.87466,0 1.59999,-0.2454 2.176,-0.736 0.57599,-0.512 0.86399,-1.1307 0.864,-1.856" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3074" /> + <path + d="m 141.89219,1036.3322 c 0,0 -1.484,0.56 -2.268,0.56 -0.784,0 -1.092,-0.392 -1.092,-1.4 0,-0.448 0.056,-1.036 0.168,-1.764 l 1.204,-7.476 3.864,0 0.336,-2.1 -3.864,0 0.672,-4.088 -2.772,0.56 -0.56,3.528 -2.8,0.28 -0.308,1.82 2.772,0 -1.232,7.756 c -0.112,0.644 -0.168,1.26 -0.168,1.792 0,2.212 0.924,3.332 2.828,3.332 1.568,0 3.668,-1.288 3.668,-1.288 l -0.448,-1.512" + style="font-size:28px;font-style:italic;font-weight:normal;fill:#fafafa;font-family:Bitter;-inkscape-font-specification:Bitter Italic" + id="path3076" /> + <path + d="m 150.57225,1017.2922 -5.124,0.14 -0.252,1.54 2.352,0.56 -3.08,19.32 2.66,0 0.924,-5.04 c 0,0 2.212,-7.7 5.852,-7.7 1.11999,0 1.456,0.812 1.456,1.848 0,0.392 -0.056,0.812 -0.112,1.232 l -1.596,9.66 5.124,-0.28 0.252,-1.54 -2.352,-0.42 1.26,-7.84 c 0.084,-0.588 0.14,-1.148 0.14,-1.652 0,-2.016 -0.81201,-3.388 -3.052,-3.388 -4.256,0 -6.496,5.404 -6.608,5.712 l 2.156,-12.152" + style="font-size:28px;font-style:italic;font-weight:normal;fill:#fafafa;font-family:Bitter;-inkscape-font-specification:Bitter Italic" + id="path3078" /> + <path + d="m 170.69755,1035.6322 c 0,0 -2.548,1.26 -4.592,1.26 -2.1,0 -3.08,-0.924 -3.08,-2.912 0,-0.364 0.028,-0.784 0.084,-1.204 5.796,0 9.828,-2.184 9.828,-5.404 0,-2.212 -1.792,-3.64 -4.62,-3.64 -4.45199,0 -8.092,4.564 -8.092,10.36 0,3.08 1.96,5.04 5.04,5.04 3.304,0 6.272,-2.072 6.272,-2.072 l -0.84,-1.428 m -7.336,-4.816 c 0.728,-2.94 2.772,-4.984 4.816,-4.984 1.428,0 2.1,0.588 2.1,1.82 0,1.848 -2.94,3.164 -6.916,3.164" + style="font-size:28px;font-style:italic;font-weight:normal;fill:#fafafa;font-family:Bitter;-inkscape-font-specification:Bitter Italic" + id="path3080" /> + <path + d="m 177.64305,1038.8522 0,-2.592 1.056,-0.096 c 0.61867,-0.064 0.928,-0.3627 0.928,-0.896 l 0,-14.88 -1.824,-0.096 0,-2.72 8.768,0 c 3.13599,0 5.57865,0.832 7.328,2.496 1.77065,1.664 2.65598,4.128 2.656,7.392 -2e-5,2.0266 -0.26668,3.7973 -0.8,5.312 -0.53335,1.4933 -1.25868,2.6666 -2.176,3.52 -1.83468,1.7066 -4.11734,2.56 -6.848,2.56 l -9.088,0 m 5.888,-18.176 0,15.104 3.264,0 c 1.83466,0 3.26399,-0.6614 4.288,-1.984 1.02399,-1.3227 1.53599,-3.2427 1.536,-5.76 -10e-6,-4.9067 -2.08001,-7.36 -6.24,-7.36 l -2.848,0" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3082" /> + <path + d="m 205.62659,1036.5162 c 2.32532,0 3.48798,-1.8774 3.488,-5.632 -2e-5,-1.8987 -0.26668,-3.3387 -0.8,-4.32 -0.51201,-0.9813 -1.38668,-1.472 -2.624,-1.472 -1.21601,0 -2.11201,0.4693 -2.688,1.408 -0.57601,0.9387 -0.86401,2.2186 -0.864,3.84 -1e-5,3.008 0.55466,4.896 1.664,5.664 0.49066,0.3413 1.09866,0.512 1.824,0.512 m -7.36,-5.728 c 0,-1.5787 0.23466,-2.944 0.704,-4.096 0.46933,-1.1733 1.09866,-2.0693 1.888,-2.688 1.51466,-1.152 3.18932,-1.728 5.024,-1.728 1.27999,0 2.35732,0.2133 3.232,0.64 0.89598,0.4053 1.58932,0.8853 2.08,1.44 0.51198,0.5333 0.93865,1.3227 1.28,2.368 0.36265,1.024 0.54398,2.24 0.544,3.648 -2e-5,2.944 -0.71469,5.1733 -2.144,6.688 -1.42935,1.5146 -3.26401,2.272 -5.504,2.272 -2.21868,0 -3.95734,-0.7147 -5.216,-2.144 -1.25867,-1.4507 -1.888,-3.584 -1.888,-6.4" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3084" /> + <path + d="m 218.42846,1030.6282 c -1e-5,1.8133 0.34133,3.2213 1.024,4.224 0.68266,1.0026 1.66399,1.504 2.944,1.504 1.30132,0 2.58132,-0.4587 3.84,-1.376 l 1.376,2.464 c -1.51468,1.2373 -3.41335,1.856 -5.696,1.856 -2.28268,0 -4.08534,-0.7147 -5.408,-2.144 -1.30134,-1.4507 -1.952,-3.584 -1.952,-6.4 0,-2.816 0.74666,-4.928 2.24,-6.336 1.51466,-1.4293 3.21066,-2.144 5.088,-2.144 1.89865,0 3.65865,0.4373 5.28,1.312 l 0,4.16 -2.944,0.224 0,-1.536 c -1e-5,-0.576 -0.21335,-0.928 -0.64,-1.056 -0.40535,-0.1493 -0.83201,-0.224 -1.28,-0.224 -2.58134,0 -3.87201,1.824 -3.872,5.472" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3086" /> + <path + d="m 236.74521,1025.1882 c -0.51201,-0.192 -1.13068,-0.288 -1.856,-0.288 -0.72534,0 -1.31201,0.1707 -1.76,0.512 -0.42668,0.32 -0.64001,0.7253 -0.64,1.216 -1e-5,0.4693 0.0747,0.8427 0.224,1.12 0.17066,0.256 0.42666,0.48 0.768,0.672 0.53332,0.2773 1.17332,0.5226 1.92,0.736 0.74665,0.192 1.30132,0.352 1.664,0.48 0.36265,0.1066 0.81065,0.2986 1.344,0.576 0.55465,0.2773 0.97065,0.576 1.248,0.896 0.74665,0.7893 1.11998,1.8026 1.12,3.04 -2e-5,1.6 -0.58668,2.8586 -1.76,3.776 -1.15201,0.896 -2.62401,1.344 -4.416,1.344 -2.60268,0 -4.56534,-0.3307 -5.888,-0.992 l 0,-4.448 2.88,-0.224 0,1.536 c -1e-5,0.9386 0.89599,1.408 2.688,1.408 1.79199,0 2.68799,-0.6507 2.688,-1.952 -1e-5,-0.4694 -0.16001,-0.8534 -0.48,-1.152 -0.29868,-0.2987 -0.59735,-0.5014 -0.896,-0.608 -0.29868,-0.1067 -0.66134,-0.2134 -1.088,-0.32 -0.40534,-0.1067 -0.81068,-0.2134 -1.216,-0.32 -0.38401,-0.1067 -0.81068,-0.2454 -1.28,-0.416 -0.44801,-0.192 -0.94934,-0.4587 -1.504,-0.8 -1.08801,-0.704 -1.63201,-1.8774 -1.632,-3.52 -1e-5,-1.664 0.58666,-2.944 1.76,-3.84 1.17333,-0.896 2.64532,-1.344 4.416,-1.344 1.79199,0 3.56265,0.4267 5.312,1.28 l 0,3.84 -2.88,0.224 0,-1.344 c -1e-5,-0.5333 -0.24535,-0.896 -0.736,-1.088" + style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold" + id="path3088" /> + </g> + </g> + </g> + </g> +</svg> diff --git a/docs/demo/static/screen_desktop.png b/docs/demo/static/screen_desktop.png Binary files differnew file mode 100644 index 0000000..dae4585 --- /dev/null +++ b/docs/demo/static/screen_desktop.png diff --git a/docs/demo/static/screen_mobile.png b/docs/demo/static/screen_mobile.png Binary files differnew file mode 100644 index 0000000..2383b7c --- /dev/null +++ b/docs/demo/static/screen_mobile.png diff --git a/docs/demo/static/yi_jing_01_chien.jpg b/docs/demo/static/yi_jing_01_chien.jpg Binary files differnew file mode 100644 index 0000000..523dc2b --- /dev/null +++ b/docs/demo/static/yi_jing_01_chien.jpg diff --git a/docs/demo/structure.rst b/docs/demo/structure.rst new file mode 100644 index 0000000..178ed63 --- /dev/null +++ b/docs/demo/structure.rst @@ -0,0 +1,101 @@ + +******************* +Structural Elements +******************* + +.. contents:: Table of Contents + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lorem neque, interdum in ipsum nec, +finibus dictum velit. Ut eu efficitur arcu, id aliquam erat. In sit amet diam gravida, imperdiet tellus eu, +gravida nisl. Praesent aliquet odio eget libero elementum, quis rhoncus tellus tincidunt. +Suspendisse quis volutpat ipsum. Sed lobortis scelerisque tristique. Aenean condimentum risus tellus, +quis accumsan ipsum laoreet ut. Integer porttitor maximus suscipit. Mauris in posuere sapien. +Aliquam accumsan feugiat ligula, nec fringilla libero commodo sed. Proin et erat pharetra. + +--------- + +Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. + +Document Section +================ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. + +Document Subsection +------------------- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. + +Document Subsubsection +^^^^^^^^^^^^^^^^^^^^^^ + +Donec non rutrum lorem. Aenean sagittis metus at pharetra fringilla. Nunc sapien dolor, cursus sed nisi at, +pretium tristique lectus. Sed pellentesque leo lectus, et convallis ipsum euismod a. +Integer at leo vitae felis pretium aliquam fringilla quis odio. Sed pharetra enim accumsan feugiat pretium. +Maecenas at pharetra tortor. Morbi semper eget mi vel finibus. Cras rutrum nulla eros, id feugiat arcu pellentesque ut. +Sed finibus tortor ac nisi ultrices viverra. Duis feugiat malesuada sapien, at commodo ante porttitor ac. +Curabitur posuere mauris mi, vel ornare orci scelerisque sit amet. Suspendisse nec fringilla dui. + +Document Paragraph +"""""""""""""""""" + +Pellentesque nec est in odio ultrices elementum. Vestibulum et hendrerit sapien, quis vulputate turpis. +Suspendisse potenti. Curabitur tristique sit amet lectus non viverra. Phasellus rutrum dapibus turpis sed imperdiet. +Mauris maximus viverra ante. Donec eu egestas mauris. Morbi vulputate tincidunt euismod. Integer vel porttitor neque. +Donec at lacus suscipit, lacinia lectus vel, sagittis lectus. + +********************* +Structural Elements 2 +********************* + +Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada. +Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis. + +Document Section +================ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis, +nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla. +Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor. +Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet. +Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed, +luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec. + +Document Subsection +------------------- + +.. figure:: static/yi_jing_01_chien.jpg + :align: right + :figwidth: 200px + + This is a caption for a figure. Text should wrap around the caption. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus, +nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl. +Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac, +hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor. +Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius. +Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum. +Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum. +Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. Praesent congue sagittis nisl et suscipit. +Vivamus sagittis risus et egestas commodo.Cras venenatis arcu in pharetra interdum. +Donec quis metus porttitor tellus cursus lobortis. Quisque et orci magna. Fusce rhoncus mi mi, +at vehicula massa rhoncus quis. Mauris augue leo, pretium eget molestie vitae, efficitur nec nulla. +In hac habitasse platea dictumst. Sed sit amet imperdiet purus. diff --git a/docs/demo/test_py_module/__init__.py b/docs/demo/test_py_module/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/demo/test_py_module/__init__.py diff --git a/docs/demo/test_py_module/test.py b/docs/demo/test_py_module/test.py new file mode 100644 index 0000000..426ec61 --- /dev/null +++ b/docs/demo/test_py_module/test.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +"""Test Module for sphinx_rtd_theme.""" + + +class Foo: + + """Docstring for class Foo. + + This text tests for the formatting of docstrings generated from output + ``sphinx.ext.autodoc``. Which contain reST, but sphinx nests it in the + ``<dl>``, and ``<dt>`` tags. Also, ``<tt>`` is used for class, method names + and etc, but those will *always* have the ``.descname`` or + ``.descclassname`` class. + + Term + It is also possible to include definitions inside docstrings. + They should be styled as a normal definition list. + + :Field List: + It is also possible to include definitions inside docstrings. + They should be styled as a normal definition list. + + .. [1] A footnote contains body elements, consistently indented by at + least 3 spaces. + + .. [Citation] A citation contains body elements, consistently indented by at + least 3 spaces. + + Normal ``<tt>`` (like the <tt> I just wrote here) needs to be shown with + the same style as anything else with ````this type of markup````. + + It's common for programmers to give a code example inside of their + docstring:: + + from test_py_module import Foo + + myclass = Foo() + myclass.dothismethod('with this argument') + myclass.flush() + + print(myclass) + + + Here is a link to :py:meth:`capitalize`. + Here is a link to :py:meth:`__init__`. + + """ + + #: Doc comment for class attribute Foo.bar. + #: It can have multiple lines. + bar = 1 + + flox = 1.5 #: Doc comment for Foo.flox. One line only. + + baz = 2 + """Docstring for class attribute Foo.baz.""" + + def __init__(self, qux, spam=False): + """Start the Foo. + + :param qux: The first argument to initialize class. + :type qux: string + :param spam: Spam me yes or no... + :type spam: bool + + """ + #: Doc comment for instance attribute qux. + self.qux = 3 + + self.spam = 4 + """Docstring for instance attribute spam.""" + + def add(self, val1, val2): + """Return the added values. + + :param val1: First number to add. + :type val1: int + :param val2: Second number to add. + :type val2: int + :rtype: int + + The parameters of this method are described in the parameter list. + """ + + return val1 + val2 + + def capitalize(self, myvalue): + """Return a string as uppercase. + + :param myvalue: String to change + :type myvalue: string + :rtype: string + + """ + + return myvalue.upper() + + def another_function(self, a, b, **kwargs): + """ + Here is another function. + + :param a: The number of green hats you own. + :type a: int + + :param b: The number of non-green hats you own. + :type b: int + + :param kwargs: Additional keyword arguments. Each keyword parameter + should specify the name of your favorite cuisine. + The values should be floats, specifying the mean price + of your favorite dish in that cooking style. + :type kwargs: float + + :returns: A 2-tuple. The first element is the mean price of all dishes + across cuisines. The second element is the total number of + hats you own: :math:`a + b`. + :rtype: tuple + + :raises ValueError: When ``a`` is not an integer. + + .. versionadded:: 1.0 + This was added in 1.0 + .. versionchanged:: 2.0 + This was changed in 2.0 + .. deprecated:: 3.0 + This is deprecated since 3.0 + """ + return sum(kwargs.values()) / len(kwargs), a + b + + +def add_numbers(a: int, b: int = 0) -> int: + """Add two numbers together + + :param a: The first number + :param b: The second number + + Here is some more text. + """ + return a + b + + +def subtract_numbers(a: int, b: int = 0) -> int: + """Subtract two numbers + + :param a: The first number + :param b: The second number + """ + return a - b diff --git a/docs/development.rst b/docs/development.rst new file mode 100644 index 0000000..c4ee9a4 --- /dev/null +++ b/docs/development.rst @@ -0,0 +1,209 @@ +Development +=========== + +The theme developers follow the guidelines below for development and release +planning. Documentation authors can decide which theme release works best for +their project based on required browser/operating system combinations or +dependency support. + +.. _supported-browsers: + +Supported browsers +------------------ + +Official browser support is determined by the most popular browser/operating +system combinations in our pageview analytics. Officially supported combinations +are commonly tested during development, and are always tested before final +release of a new version of the theme. + +Older releases of supported combinations, and some less common combinations, are +considered partially supported. This means that we do not consistently test +these combinations, however we do expect user experience to be comparable with +supported combinations. + +.. csv-table:: Supported browser combinations + :widths: 6, 12, 4 + :header-rows: 1 + :file: supported-browsers.csv + +.. versionadded:: 1.0 + Supported browser and operating system combinations added + +There are several browser/operating system combinations that are not supported +by the theme developers at all. Unsupported combinations do not receive testing +or development, and we likely won't accept major contributions for these +combinations. + +Unsupported browser/operating system combinations include: + +Internet Explorer (any OS, versions <=10) + **Unsupported.** IE11 is the last partially supported version. We do no + testing on prior versions. + +Internet Explorer (any OS, version 11) + We currently only partially support IE11, and only test for major bugs. + Support will be removed in the :ref:`roadmap-release-3.0.0` release. + +Opera (any OS, any version) + **Community support only.** We do not receive enough traffic with this + browser to officially support it in testing and development. + +.. _supported-dependencies: + +Supported dependencies +---------------------- + +The theme officially supports the following dependencies in your Sphinx project: + +.. list-table:: Supported dependencies + :header-rows: 1 + :widths: 10, 10 + + * - Dependency + - Versions + * - Python + - 3.6 or greater + * - Sphinx + - 5 or greater + * - docutils + - >= 0.14, < 0.19 + +.. deprecated:: 2.0 + Sphinx < 5 support removed + +.. deprecated:: 2.0 + Python < 3.6 support removed + +.. deprecated:: 2.0 + docutils < 0.14 support removed + +.. versionadded:: 1.0 + Sphinx 4.0 support added + +.. deprecated:: 1.0 + Sphinx 1.6 support removed + +.. versionadded:: 1.0 + docutils 0.17 support added + +Roadmap +------- + +We currently have several releases planned on our development roadmap. Backward +incompatible changes, deprecations, and major features are noted for each of +these releases. + +Releases follow `semantic versioning`_, and so it is generally recommended that +authors pin dependency on ``sphinx_rtd_theme`` to a version below the next major +version: + +.. code:: console + + $ pip install "sphinx_rtd_theme<2.0.0" + +.. _semantic versioning: http://semver.org/ + +.. _roadmap-release-1.0.0: + +1.0.0 +~~~~~ + +:Planned release date: August 2021 + +This release will be a slightly backwards incompatible release to follow the +:ref:`release-0.5.2` release. It will drop support for Sphinx 1.6, which is a rather old +release at this point. + +This version will add official support for the Sphinx 4.x release series and +it resolves bugs with the latest release of Docutils, version 0.17. + +Starting with this release, several deprecation warnings will be emitted at +build time: + +Direct installation is deprecated + Support for direct installation through GitHub is no longer a suggested + installation method. In an effort to ease maintenance, compiled assets will + eventually be removed from the theme repository. These files will only be + included in the built packages/releases available on PyPI. + + We plan to start putting development releases up on PyPI more frequently, so + that installation from the theme source repository is no longer necessary. + + Built assets are tentatively planned to be removed in version :ref:`roadmap-release-3.0.0`:. + +HTML4 support is deprecated + Support for the Sphinx HTML4 writer will be removed in the :ref:`roadmap-release-2.0.0` + release. + +.. _roadmap-release-1.1.0: + +1.1.0 +~~~~~ + +:Planned release date: 2021 Q3 + +We aim to follow up release :ref:`release-1.0.0` with at least one bug fix release in +the 1.x release series. The 1.1 release will not be adding any major features +and will instead mark the last release targeting projects with old dependencies +like Sphinx 1.8, HTML4, or required support for IE11. + +.. _roadmap-release-2.0.0: + +2.0.0 +~~~~~ + +:Planned release date: 2023 Q3 + +This release will drop support for old Python and Sphinx versions. + +Note the following backwards incompatible changes are planned for this +release: + +Python < 3.6, Sphinx < 5 and Docutils < 0.14 will not be tested + Official support will drop for these version, though they may still continue + to work. Theme developers will not be testing these versions any longer. + +HTML4 support will be removed + Starting with this release, we will only support the HTML5 writer output, + and builds attempting to use the HTML4 writer will fail. If you are still + using the HTML4 writer, or have the ``html4_writer = True`` option in your + Sphinx configuration file, you will need to either remove this option or pin + your dependency to ``sphinx_rtd_theme<=3`` until you can. + + This option was suggested in the past to work around issues with HTML5 + support and should no longer be required to use a modern combination of this + theme and Sphinx. + +.. _roadmap-release-3.0.0: + +3.0.0 +~~~~~ + +:Planned release date: 2024 Q1 + +This release is not yet fully planned. +However, we already know that we will be dropping support for older version of different dependencies and browsers. + +Sphinx 5, Python < 3.8 and docutils < 0.18 support will be removed + Sphinx 5 is the latest version that supports Python 3.6 and 3.7, + and docutils < 0.18. + +Internet Explorer 11 support will be dropped + `IE11 reached end of life on 14 June 20222 <https://endoflife.date/internet-explorer>`_, + so we are not supporting it on newer versions, + starting on 3.0.0. + +.. _roadmap-release-4.0.0: + +4.0.0 +~~~~~ + +:Planned release date: 2024 Q2 + +This release is not yet planned. +There are plans to potentially replace Wyrm with Bootstrap in a release after 3.0. + +Also tentatively planned for this release is finally removing built CSS and +JavaScript assets from our repository. This will remove the ability to install +the package directly from GitHub, and instead users will be advised to install +development releases from PyPI. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..7296d5f --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,90 @@ +Read the Docs Sphinx Theme +========================== + +This Sphinx_ theme was designed to provide a great reader experience for +documentation users on both desktop and mobile devices. This theme is commonly +used with projects on `Read the Docs`_ but can work with any Sphinx project. + +.. _Sphinx: http://www.sphinx-doc.org +.. _Read the Docs: http://www.readthedocs.org + +Using this theme +---------------- + +:doc:`installing` + How to install this theme on your Sphinx project. + +:doc:`configuring` + Theme configuration and customization options. + +:ref:`supported-browsers` + Supported browser/operating system combinations. + +:ref:`supported-dependencies` + Supported project dependencies, like Python and Sphinx. + +Development +----------- + +:doc:`contributing` + How to contribute changes to the theme. + +:doc:`Development guidelines <development>` + Guidelines the theme developers use for developing and testing changes. + +`Read the Docs contributor guide`_ + Our contribution guidelines extend to all projects maintained by Read the + Docs core team. + +:doc:`changelog` + The theme development changelog. + +:doc:`Demo documentation <demo/structure>` + The theme's styleguide test environment, where new changes are tested. + + +.. _Read the Docs contributor guide: https://docs.readthedocs.io/en/stable/contribute.html + + +.. Hidden TOCs + +.. toctree:: + :caption: Theme Documentation + :maxdepth: 2 + :hidden: + + installing + configuring + development + contributing + +.. toctree:: + :maxdepth: 1 + :hidden: + + changelog + +.. toctree:: + :maxdepth: 2 + :numbered: + :caption: Demo Documentation + :hidden: + + demo/structure + demo/demo + demo/lists_tables + demo/api + +.. toctree:: + :maxdepth: 3 + :numbered: + :caption: This is an incredibly long caption for a long menu + :hidden: + + demo/long + +.. toctree:: + :maxdepth: 3 + :caption: Breadcrumbs + + demo/level1/index.rst diff --git a/docs/installing.rst b/docs/installing.rst new file mode 100644 index 0000000..87c0c66 --- /dev/null +++ b/docs/installing.rst @@ -0,0 +1,60 @@ +Installation +============ + +How to install and use the theme +-------------------------------- + +Install the ``sphinx_rtd_theme`` package (or add it to your ``requirements.txt`` file): + +.. code:: console + + $ pip install sphinx_rtd_theme + +In your Sphinx project's ``conf.py`` file, add ``sphinx_rtd_theme`` to the list of enabled extensions and as the active theme: + +.. code:: python + + extensions = [ + ... + 'sphinx_rtd_theme', + ] + + html_theme = "sphinx_rtd_theme" + +.. seealso:: + :ref:`supported-browsers` + Officially supported and tested browser/operating system combinations + + :ref:`supported-dependencies` + Officially Supported versions of Python, Sphinx, and other dependencies. + + +.. note:: + + Adding this theme as an extension is what enables localization of theme + strings in your translated output. If these strings are not translated in + your output, either we lack the localized strings for your locale, or you + are using an old version of the theme. + + .. + comment about this note: it's possibly not necessary to add the theme as an extension. + Rather, this is an issue caused by setting html_theme_path. + See: https://github.com/readthedocs/readthedocs.org/pull/9654 + + +.. _howto_upgrade: + +How to upgrade +-------------- + +Adding ``sphinx-rtd-theme`` to your project's dependencies will make pip install the latest compatible version of the theme. + +If you want to test a **pre-release**, you need to be explicit about the version you specify. +Otherwise, pip will ignore pre-releases. Add for instance ``sphinx-rtd-theme==1.1.0b3`` to test a pre-release. + +.. tip:: + We recommend that you pin the version of Sphinx that your project is built with. + We won't release sphinx-rtd-theme without marking its compatibility with Sphinx. So if you do not pin ``sphinx-rtd-theme`` itself, you will always get the *latest compatible* release. + + More information is available in Read the Docs' documentation on :doc:`rtd:guides/reproducible-builds`. + diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..bc934aa --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,38 @@ +@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=python -msphinx
+)
+set SPHINXOPTS=
+set SPHINXBUILD=sphinx-build
+set SOURCEDIR=.
+set BUILDDIR=build
+set SPHINXPROJ=ReadtheDocsSphinxTheme
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The Sphinx module was not found. Make sure you have Sphinx installed,
+ echo.then set the SPHINXBUILD environment variable to point to the full
+ echo.path of the 'sphinx-build' executable. Alternatively you may add the
+ echo.Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+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..a6760f7 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1 @@ +sphinx>=7.1,<7.2 diff --git a/docs/supported-browsers.csv b/docs/supported-browsers.csv new file mode 100644 index 0000000..7e446d9 --- /dev/null +++ b/docs/supported-browsers.csv @@ -0,0 +1,5 @@ +Browser,Operating System,Versions +Chrome,"Windows, MacOS, Linux, Android",>=90 +Firefox,"Linux, Windows",>=90 +Edge,Windows,>=90 +Safari,"MacOS, iOS",>=13 |