Import Upstream version 0.4.3+dfsg
This commit is contained in:
commit
4ea00248ed
|
@ -0,0 +1,16 @@
|
|||
# Document global line endings settings
|
||||
# https://help.github.com/articles/dealing-with-line-endings/
|
||||
* text eol=lf
|
||||
*.bat text eol=crlf
|
||||
|
||||
|
||||
# Denote all files that are truly binary and should not be modified.
|
||||
*.ai binary
|
||||
*.jpg binary
|
||||
*.otf binary
|
||||
*.png binary
|
||||
*.eot binary
|
||||
*.ttf binary
|
||||
*.whl binary
|
||||
*.woff binary
|
||||
*.woff2 binary
|
|
@ -0,0 +1,5 @@
|
|||
# Code of Conduct
|
||||
|
||||
A copy of our code of conduct can be found on Read the Docs as seen below.
|
||||
|
||||
http://docs.readthedocs.io/en/latest/code-of-conduct.html
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
### Problem
|
||||
|
||||
Give details on your issue.
|
||||
|
||||
### Reproducible Project
|
||||
|
||||
Please give a link to a public reproducible project or provide an example of the Restructured Text that gives an issue.
|
||||
|
||||
```rst
|
||||
Place RST code here (if any).
|
||||
```
|
||||
|
||||
#### Error Logs/Results
|
||||
|
||||
Place any images or error logs that might be able to help solve the issue here.
|
||||
|
||||
#### Expected Results
|
||||
|
||||
Please describe how this should work properly.
|
||||
|
||||
### Environment Info
|
||||
|
||||
- Python Version:
|
||||
- Sphinx Version:
|
||||
- RTD Theme Version:
|
|
@ -0,0 +1,18 @@
|
|||
*.pyc
|
||||
*.egg-info
|
||||
*.egg
|
||||
*build/
|
||||
.tox
|
||||
.coverage
|
||||
*.DS_Store
|
||||
*.sass-cache
|
||||
*.map
|
||||
.ropeproject/
|
||||
.ruby-version
|
||||
dist/
|
||||
bower_components/
|
||||
node_modules
|
||||
npm-debug.log
|
||||
package-lock.json
|
||||
sphinx_rtd_theme/static/fonts/Lato/
|
||||
sphinx_rtd_theme/static/fonts/RobotoSlab/
|
|
@ -0,0 +1,5 @@
|
|||
build:
|
||||
image: latest
|
||||
python:
|
||||
version: 3.6
|
||||
requirements_file: docs/requirements.txt
|
|
@ -0,0 +1,18 @@
|
|||
language: python
|
||||
python:
|
||||
- 2.7
|
||||
- 3.4
|
||||
- 3.5
|
||||
- 3.6
|
||||
matrix:
|
||||
include:
|
||||
- python: 2.7
|
||||
env: TOXENV=docs
|
||||
install:
|
||||
- pip install tox-travis
|
||||
script:
|
||||
- tox
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
|
@ -0,0 +1,204 @@
|
|||
/fonts/RobotoSlab/*
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -0,0 +1,189 @@
|
|||
module.exports = function(grunt) {
|
||||
|
||||
// load all grunt tasks
|
||||
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
|
||||
|
||||
grunt.initConfig({
|
||||
// Read package.json
|
||||
pkg: grunt.file.readJSON("package.json"),
|
||||
|
||||
open : {
|
||||
dev: {
|
||||
path: 'http://localhost:1919'
|
||||
}
|
||||
},
|
||||
|
||||
connect: {
|
||||
server: {
|
||||
options: {
|
||||
port: 1919,
|
||||
base: 'docs/build',
|
||||
livereload: true
|
||||
}
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
fonts: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: ['bower_components/font-awesome/fonts/*'],
|
||||
dest: 'sphinx_rtd_theme/static/fonts/',
|
||||
filter: 'isFile'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: ['fonts/Lato/*'],
|
||||
dest: 'sphinx_rtd_theme/static/fonts/Lato',
|
||||
filter: 'isFile'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: ['fonts/RobotoSlab/*'],
|
||||
dest: 'sphinx_rtd_theme/static/fonts/RobotoSlab/',
|
||||
filter: 'isFile'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
sass: {
|
||||
dev: {
|
||||
options: {
|
||||
style: 'expanded',
|
||||
loadPath: ['bower_components/bourbon/dist', 'bower_components/neat/app/assets/stylesheets', 'bower_components/font-awesome/scss', 'bower_components/wyrm/sass']
|
||||
},
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: 'sass',
|
||||
src: ['*.sass'],
|
||||
dest: 'sphinx_rtd_theme/static/css',
|
||||
ext: '.css'
|
||||
}]
|
||||
},
|
||||
build: {
|
||||
options: {
|
||||
style: 'compressed',
|
||||
sourcemap: 'none',
|
||||
loadPath: ['bower_components/bourbon/dist', 'bower_components/neat/app/assets/stylesheets', 'bower_components/font-awesome/scss', 'bower_components/wyrm/sass']
|
||||
},
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: 'sass',
|
||||
src: ['*.sass'],
|
||||
dest: 'sphinx_rtd_theme/static/css',
|
||||
ext: '.css'
|
||||
}]
|
||||
}
|
||||
},
|
||||
|
||||
browserify: {
|
||||
dev: {
|
||||
options: {
|
||||
external: ['jquery'],
|
||||
alias: {
|
||||
'sphinx-rtd-theme': './js/theme.js'
|
||||
}
|
||||
},
|
||||
src: ['js/*.js'],
|
||||
dest: 'sphinx_rtd_theme/static/js/theme.js'
|
||||
},
|
||||
build: {
|
||||
options: {
|
||||
external: ['jquery'],
|
||||
alias: {
|
||||
'sphinx-rtd-theme': './js/theme.js'
|
||||
}
|
||||
},
|
||||
src: ['js/*.js'],
|
||||
dest: 'sphinx_rtd_theme/static/js/theme.js'
|
||||
}
|
||||
},
|
||||
uglify: {
|
||||
dist: {
|
||||
options: {
|
||||
sourceMap: false,
|
||||
mangle: {
|
||||
reserved: ['jQuery'] // Leave 'jQuery' identifier unchanged
|
||||
},
|
||||
ie8: true // compliance with IE 6-8 quirks
|
||||
},
|
||||
files: [{
|
||||
expand: true,
|
||||
src: ['sphinx_rtd_theme/static/js/*.js', '!sphinx_rtd_theme/static/js/*.min.js'],
|
||||
dest: 'sphinx_rtd_theme/static/js/',
|
||||
rename: function (dst, src) {
|
||||
// Use unminified file name for minified file
|
||||
return src;
|
||||
}
|
||||
}]
|
||||
}
|
||||
},
|
||||
usebanner: {
|
||||
dist: {
|
||||
options: {
|
||||
position: 'top',
|
||||
banner: '/* <%= pkg.name %> version <%= pkg.version %> | MIT license */\n' +
|
||||
'/* Built <%= grunt.template.today("yyyymmdd HH:mm") %> */',
|
||||
linebreak: true
|
||||
},
|
||||
files: {
|
||||
src: [ 'sphinx_rtd_theme/static/js/theme.js', 'sphinx_rtd_theme/static/css/theme.css' ]
|
||||
}
|
||||
}
|
||||
},
|
||||
exec: {
|
||||
bower_update: {
|
||||
cmd: 'bower update'
|
||||
},
|
||||
build_sphinx: {
|
||||
cmd: 'sphinx-build docs/ docs/build'
|
||||
}
|
||||
},
|
||||
clean: {
|
||||
build: ["docs/build"],
|
||||
fonts: ["sphinx_rtd_theme/static/fonts"],
|
||||
css: ["sphinx_rtd_theme/static/css"],
|
||||
js: ["sphinx_rtd_theme/static/js/*", "!sphinx_rtd_theme/static/js/modernizr.min.js"]
|
||||
},
|
||||
|
||||
watch: {
|
||||
/* Compile sass changes into theme directory */
|
||||
sass: {
|
||||
files: ['sass/*.sass', 'bower_components/**/*.sass'],
|
||||
tasks: ['sass:dev']
|
||||
},
|
||||
/* Changes in theme dir rebuild sphinx */
|
||||
sphinx: {
|
||||
files: ['sphinx_rtd_theme/**/*', 'README.rst', 'docs/**/*.rst', 'docs/**/*.py'],
|
||||
tasks: ['clean:build','exec:build_sphinx']
|
||||
},
|
||||
/* JavaScript */
|
||||
browserify: {
|
||||
files: ['js/*.js'],
|
||||
tasks: ['browserify:dev']
|
||||
},
|
||||
/* live-reload the docs if sphinx re-builds */
|
||||
livereload: {
|
||||
files: ['docs/build/**/*'],
|
||||
options: { livereload: true }
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks('grunt-exec');
|
||||
grunt.loadNpmTasks('grunt-contrib-connect');
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
grunt.loadNpmTasks('grunt-contrib-sass');
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
grunt.loadNpmTasks('grunt-open');
|
||||
grunt.loadNpmTasks('grunt-browserify');
|
||||
|
||||
grunt.registerTask('default', ['exec:bower_update','clean','copy:fonts','sass:dev','browserify:dev','usebanner','exec:build_sphinx','connect','open','watch']);
|
||||
grunt.registerTask('build', ['exec:bower_update','clean','copy:fonts','sass:build','browserify:build','uglify','usebanner','exec:build_sphinx']);
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-2018 Dave Snider, Read the Docs, Inc. & contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,13 @@
|
|||
include *.txt
|
||||
include LICENSE
|
||||
recursive-include sphinx_rtd_theme *.conf
|
||||
recursive-include sphinx_rtd_theme *.css
|
||||
recursive-include sphinx_rtd_theme *.eot
|
||||
recursive-include sphinx_rtd_theme *.html
|
||||
recursive-include sphinx_rtd_theme *.js
|
||||
recursive-include sphinx_rtd_theme *.svg
|
||||
recursive-include sphinx_rtd_theme *.ttf
|
||||
recursive-include sphinx_rtd_theme *.woff
|
||||
recursive-include sphinx_rtd_theme *.woff2
|
||||
recursive-include tests *.py
|
||||
recursive-include tests *.rst
|
|
@ -0,0 +1,96 @@
|
|||
sphinx_rtd_theme/static/fonts/Lato/*
|
||||
|
||||
Copyright (c) 2010-2015, Łukasz Dziedzic (dziedzic@typoland.com),
|
||||
with Reserved Font Name Lato.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
**************************
|
||||
Read the Docs Sphinx Theme
|
||||
**************************
|
||||
|
||||
.. image:: https://img.shields.io/pypi/v/sphinx_rtd_theme.svg
|
||||
:target: https://pypi.python.org/pypi/sphinx_rtd_theme
|
||||
:alt: Pypi Version
|
||||
.. image:: https://travis-ci.org/rtfd/sphinx_rtd_theme.svg?branch=master
|
||||
:target: https://travis-ci.org/rtfd/sphinx_rtd_theme
|
||||
:alt: Build Status
|
||||
.. image:: https://img.shields.io/pypi/l/sphinx_rtd_theme.svg
|
||||
:target: https://pypi.python.org/pypi/sphinx_rtd_theme/
|
||||
:alt: License
|
||||
.. image:: https://readthedocs.org/projects/sphinx-rtd-theme/badge/?version=latest
|
||||
:target: http://sphinx-rtd-theme.readthedocs.io/en/latest/?badge=latest
|
||||
:alt: Documentation Status
|
||||
|
||||
The ``sphinx_rtd_theme`` is a sphinx_ theme designed to look modern and be mobile-friendly.
|
||||
This theme is primarily focused to be used on readthedocs.org_ but can work with your
|
||||
own sphinx projects. To read more and see a working demo_ head over to readthedocs.org_.
|
||||
|
||||
.. _sphinx: http://www.sphinx-doc.org
|
||||
.. _readthedocs.org: http://www.readthedocs.org
|
||||
.. _demo: https://sphinx-rtd-theme.readthedocs.io/en/latest/
|
||||
|
||||
|
||||
Installing
|
||||
==========
|
||||
|
||||
The theme is distributed on PyPI_ and can be installed with pip::
|
||||
|
||||
pip install sphinx_rtd_theme
|
||||
|
||||
For more information read the full installing docs
|
||||
`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/installing.html>`__.
|
||||
|
||||
.. _PyPI: https://pypi.python.org/pypi/sphinx_rtd_theme
|
||||
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
The ``sphinx_rtd_theme`` is highly customizable on both the page level and on a global level.
|
||||
To see all the possible configuration options read the configuring docs
|
||||
`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/configuring.html>`__.
|
||||
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
||||
If you would like to help improve the theme or have more control
|
||||
over the theme in case of a fork please read our contributing guide
|
||||
`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/contributing.html>`__.
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"name": "sphinx-rtd-theme",
|
||||
"version": "0.4.3",
|
||||
"homepage": "https://github.com/rtfd/sphinx_rtd_theme",
|
||||
"authors": [
|
||||
"Dave Snider, Read the Docs, Inc. & contributors <dev@readthedocs.org>"
|
||||
],
|
||||
"description": "Sphinx theme for readthedocs.org.",
|
||||
"license": "MIT",
|
||||
"main": [
|
||||
"js/theme.js"
|
||||
],
|
||||
"ignore": [
|
||||
"docs",
|
||||
".gitignore",
|
||||
".DS_Store",
|
||||
".sass-cache*",
|
||||
".bowerrc",
|
||||
"bower.json",
|
||||
"package.json",
|
||||
"Gruntfile.js",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"tests",
|
||||
"src"
|
||||
],
|
||||
"devDependencies": {
|
||||
"wyrm": "~1.0.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"font-awesome": "~4.7"
|
||||
},
|
||||
"resolutions": {
|
||||
"font-awesome": "~4.7"
|
||||
}
|
||||
}
|
|
@ -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)
|
|
@ -0,0 +1,210 @@
|
|||
*********
|
||||
Changelog
|
||||
*********
|
||||
|
||||
master
|
||||
======
|
||||
|
||||
New Features
|
||||
-------------
|
||||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
Other Changes
|
||||
--------------
|
||||
|
||||
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
|
||||
--------------
|
||||
|
||||
v0.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)
|
||||
|
||||
v0.4.1
|
||||
======
|
||||
|
||||
:Date: July 27, 2018
|
||||
|
||||
New Features
|
||||
-------------
|
||||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Line height adjustments for Liberation Mono (#656)
|
||||
|
||||
Other Changes
|
||||
--------------
|
||||
|
||||
* Add Sphinx as a dependency
|
||||
|
||||
v0.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
|
||||
|
||||
v0.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)
|
||||
|
||||
v0.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
|
||||
|
||||
v0.2.4
|
||||
======
|
||||
|
||||
* Yet another patch to deal with extra builders outside Spinx, such as the
|
||||
singlehtml builders from the Read the Docs Sphinx extension
|
||||
|
||||
v0.2.3
|
||||
======
|
||||
|
||||
* Temporarily patch Sphinx issue with ``singlehtml`` builder by inspecting the
|
||||
builder in template.
|
||||
|
||||
v0.2.2
|
||||
======
|
||||
|
||||
* Roll back toctree fix in 0.2.1 (#367). This didn't fix the issue and
|
||||
introduced another bug with toctrees display.
|
||||
|
||||
v0.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)
|
||||
|
||||
v0.2.0
|
||||
======
|
||||
|
||||
* Adds the ``comments`` block after the ``body`` block in the template
|
||||
* Added "Edit on GitLab" support
|
||||
* Many bug fixes
|
||||
|
||||
v0.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``
|
||||
|
||||
v0.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
|
||||
|
||||
v0.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
|
|
@ -0,0 +1,92 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
|
||||
sys.path.append(os.path.abspath('..'))
|
||||
sys.path.append(os.path.abspath('./demo/'))
|
||||
|
||||
from sphinx.locale import _
|
||||
|
||||
from sphinx_rtd_theme import __version__
|
||||
|
||||
|
||||
project = u'Read the Docs Sphinx Theme'
|
||||
slug = re.sub(r'\W+', '-', project.lower())
|
||||
version = __version__
|
||||
release = __version__
|
||||
author = u'Dave Snider, Read the Docs, Inc. & contributors'
|
||||
copyright = author
|
||||
language = 'en'
|
||||
|
||||
extensions = [
|
||||
'sphinx.ext.intersphinx',
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.mathjax',
|
||||
'sphinx.ext.viewcode',
|
||||
'sphinxcontrib.httpdomain',
|
||||
]
|
||||
|
||||
templates_path = ['_templates']
|
||||
source_suffix = '.rst'
|
||||
exclude_patterns = []
|
||||
|
||||
master_doc = 'index'
|
||||
suppress_warnings = ['image.nonlocal_uri']
|
||||
pygments_style = 'default'
|
||||
|
||||
intersphinx_mapping = {
|
||||
'rtd': ('https://docs.readthedocs.io/en/latest/', None),
|
||||
'sphinx': ('http://www.sphinx-doc.org/en/stable/', None),
|
||||
}
|
||||
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
html_theme_options = {
|
||||
'logo_only': True
|
||||
}
|
||||
html_theme_path = ["../.."]
|
||||
html_logo = "demo/static/logo-wordmark-light.svg"
|
||||
html_show_sourcelink = True
|
||||
|
||||
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',),
|
||||
),
|
||||
]
|
||||
)
|
|
@ -0,0 +1,226 @@
|
|||
*************
|
||||
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 = {
|
||||
'canonical_url': '',
|
||||
'analytics_id': 'UA-XXXXXXX-1', # Provided by Google in your dashboard
|
||||
'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
|
||||
|
||||
:type: boolean
|
||||
:default: ``True``
|
||||
|
||||
With this enabled, navigation entries are not expandable -- the ``[+]``
|
||||
icons next to each entry are removed.
|
||||
|
||||
.. confval:: sticky_navigation
|
||||
|
||||
:type: boolean
|
||||
:default: ``True``
|
||||
|
||||
Scroll the navigation with the main page content as you scroll the page.
|
||||
|
||||
.. confval:: navigation_depth
|
||||
|
||||
:type: integer
|
||||
:default: ``4``
|
||||
|
||||
The maximum depth of the table of contents tree. Set
|
||||
this to ``-1`` to allow unlimited depth.
|
||||
|
||||
.. confval:: includehidden
|
||||
|
||||
:type: boolean
|
||||
:default: ``True``
|
||||
|
||||
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.
|
||||
|
||||
.. confval:: titles_only
|
||||
|
||||
:type: boolean
|
||||
:default: False
|
||||
|
||||
When enabled, page subheadings are not included in the
|
||||
navigation.
|
||||
|
||||
.. 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.
|
||||
|
||||
.. _table of contents configuration options: http://www.sphinx-doc.org/en/stable/templating.html#toctree
|
||||
|
||||
|
||||
..
|
||||
TODO
|
||||
.
|
||||
HTML context options
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
Miscellaneous options
|
||||
---------------------
|
||||
|
||||
.. confval:: analytics_id
|
||||
|
||||
:type: string
|
||||
|
||||
Change the Google Analytics ID that is included on pages.
|
||||
|
||||
.. warning::
|
||||
This configuration option is not yet used.
|
||||
|
||||
.. confval:: canonical_url
|
||||
|
||||
:type: 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.
|
||||
|
||||
.. confval:: display_version
|
||||
|
||||
:type: boolean
|
||||
:default: ``True``
|
||||
|
||||
If ``True``, the version number is shown at the top of the sidebar.
|
||||
|
||||
.. confval:: logo_only
|
||||
|
||||
:type: boolean
|
||||
:default: ``False``
|
||||
|
||||
Only display the logo image, do not display the project name at the top of
|
||||
the sidebar
|
||||
|
||||
.. confval:: prev_next_buttons_location
|
||||
|
||||
:type: string
|
||||
:default: ``bottom``
|
||||
|
||||
Location to display :guilabel:`Next` and :guilabel:`Previous` buttons. This
|
||||
can be either ``bottom``, ``top``, ``both`` , or ``None``.
|
||||
|
||||
.. confval:: style_external_links
|
||||
|
||||
:type: boolean
|
||||
:default: ``False``
|
||||
|
||||
Add an icon next to external links.
|
||||
|
||||
.. confval:: vcs_pageview_mode
|
||||
|
||||
:type: string
|
||||
:default: ``blob`` or ``view``
|
||||
|
||||
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``.
|
||||
|
||||
.. confval:: style_nav_header_background
|
||||
|
||||
:type: string
|
||||
:default: ``#2980B9``
|
||||
|
||||
Changes the background of the search area in the navigation bar. The value
|
||||
can be anything valid in a CSS `background` property.
|
||||
|
||||
.. _canonical URL: https://en.wikipedia.org/wiki/Canonical_link_element
|
||||
|
||||
|
||||
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.
|
|
@ -0,0 +1,89 @@
|
|||
|
||||
***********************************
|
||||
Contributing or modifying the theme
|
||||
***********************************
|
||||
|
||||
The sphinx_rtd_theme is primarily a sass_ project that requires a few other sass libraries. I'm
|
||||
using bower_ to manage these dependencies and sass_ to build the css. The good news is
|
||||
I have a very nice set of grunt_ operations that will not only load these dependencies, but watch
|
||||
for changes, rebuild the sphinx demo docs and build a distributable version of the theme.
|
||||
The bad news is this means you'll need to set up your environment similar to that
|
||||
of a front-end developer (vs. that of a python developer). That means installing node and ruby.
|
||||
|
||||
.. seealso::
|
||||
|
||||
If you are unsure of appropriate actions to take while interacting with our
|
||||
community please read our :doc:`Code of Conduct <rtd:code-of-conduct>`.
|
||||
|
||||
|
||||
Set up your environment
|
||||
=======================
|
||||
|
||||
#. Install sphinx_ into a virtual environment.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
pip install sphinx sphinxcontrib-httpdomain
|
||||
|
||||
#. Install sass.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
gem install sass
|
||||
|
||||
#. Install node, bower, grunt, and theme dependencies.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
# Install node
|
||||
brew install node
|
||||
|
||||
# Install bower and grunt
|
||||
npm install -g bower grunt-cli
|
||||
|
||||
# Now that everything is installed, let's install the theme dependencies.
|
||||
npm install
|
||||
|
||||
Now that our environment is set up, make sure you're in your virtual environment, go to
|
||||
this repository in your terminal and run grunt:
|
||||
|
||||
.. code::
|
||||
|
||||
grunt
|
||||
|
||||
This default task will do the following **very cool things that make it worth the trouble**:
|
||||
|
||||
#. Install and update any bower dependencies.
|
||||
#. Run sphinx and build new docs.
|
||||
#. Watch for changes to the sass files and build css from the changes.
|
||||
#. Rebuild the sphinx docs anytime it notices a change to ``.rst``, ``.html``, ``.js``
|
||||
or ``.css`` files.
|
||||
|
||||
.. _bower: http://www.bower.io
|
||||
.. _sass: http://www.sass-lang.com
|
||||
.. _wyrm: http://www.github.com/snide/wyrm/
|
||||
.. _grunt: http://www.gruntjs.com
|
||||
.. _node: http://www.nodejs.com
|
||||
.. _sphinx: http://www.sphinx-doc.org/en/stable/
|
||||
|
||||
|
||||
Releasing the Theme
|
||||
===================
|
||||
|
||||
When you release a new version,
|
||||
you should do the following:
|
||||
|
||||
#. Bump the version in ``sphinx_rtd_theme/__init__.py``, ``bower.json`` and ``package.json`` --
|
||||
we try to follow `semver <http://semver.org/>`_, so be careful with breaking changes.
|
||||
#. Update the changelog (``docs/changelog.rst``) with the version information.
|
||||
#. Run a ``grunt build`` to rebuild all the theme assets.
|
||||
#. Commit that change.
|
||||
#. Tag the release in git: ``git tag $NEW_VERSION``.
|
||||
#. Push the tag to GitHub: ``git push --tags origin``.
|
||||
#. Upload the package to PyPI:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
$ rm -rf dist/
|
||||
$ python setup.py sdist bdist_wheel
|
||||
$ twine upload --sign --identity security@readthedocs.org dist/*
|
|
@ -0,0 +1,53 @@
|
|||
|
||||
*********************
|
||||
:mod:`test_py_module`
|
||||
*********************
|
||||
|
||||
.. contents:: Table of Contents
|
||||
|
||||
.. automodule:: test_py_module.test
|
||||
:members:
|
||||
:private-members:
|
||||
:special-members:
|
||||
|
||||
Generated Index
|
||||
===============
|
||||
|
||||
Part of the sphinx build process in generate and 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`.
|
|
@ -0,0 +1,475 @@
|
|||
.. 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 my code documentation for it.
|
||||
|
||||
The default role for 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 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 can be used to show short 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.
|
||||
|
||||
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
|
||||
---------
|
||||
|
||||
.. [11] 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, [12]_, and a [nonexistent]_ citation.
|
||||
|
||||
Here is another type of citation: `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 `Body Elements`_.
|
||||
|
||||
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>`
|
|
@ -0,0 +1,302 @@
|
|||
|
||||
**************
|
||||
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
|
||||
|
||||
|
||||
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
|
||||
------------
|
||||
|
||||
- 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``
|
||||
|
||||
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``
|
||||
- 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.
|
|
@ -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...
|
|
@ -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>
|
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
After Width: | Height: | Size: 137 KiB |
Binary file not shown.
After Width: | Height: | Size: 84 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
|
@ -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.
|
|
@ -0,0 +1,113 @@
|
|||
# -*- 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.
|
||||
|
||||
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
|
||||
|
||||
"""
|
||||
|
||||
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
|
|
@ -0,0 +1,28 @@
|
|||
.. include:: ../README.rst
|
||||
|
||||
.. toctree::
|
||||
:caption: Theme Documentation
|
||||
:maxdepth: 2
|
||||
|
||||
installing
|
||||
configuring
|
||||
changelog
|
||||
contributing
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:numbered:
|
||||
:caption: Demo Documents
|
||||
|
||||
demo/structure
|
||||
demo/demo
|
||||
demo/lists_tables
|
||||
demo/api
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:numbered:
|
||||
:caption: This is an incredibly long caption for a long menu
|
||||
|
||||
demo/long
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
************
|
||||
Installation
|
||||
************
|
||||
|
||||
Via Python Package
|
||||
==================
|
||||
|
||||
Install the package (or add it to your ``requirements.txt`` file):
|
||||
|
||||
.. code:: bash
|
||||
|
||||
pip install sphinx_rtd_theme
|
||||
|
||||
In your ``conf.py`` file:
|
||||
|
||||
.. code:: python
|
||||
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
|
||||
Via Git or Download
|
||||
===================
|
||||
|
||||
Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into your documentation at
|
||||
``docs/_themes/sphinx_rtd_theme`` then add the following two settings to your Sphinx
|
||||
``conf.py`` file:
|
||||
|
||||
.. code:: python
|
||||
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
html_theme_path = ["_themes", ]
|
||||
|
|
@ -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
|
|
@ -0,0 +1,2 @@
|
|||
sphinxcontrib-httpdomain
|
||||
sphinx
|
|
@ -0,0 +1,241 @@
|
|||
var jQuery = (typeof(window) != 'undefined') ? window.jQuery : require('jquery');
|
||||
|
||||
// Sphinx theme nav state
|
||||
function ThemeNav () {
|
||||
|
||||
var nav = {
|
||||
navBar: null,
|
||||
win: null,
|
||||
winScroll: false,
|
||||
winResize: false,
|
||||
linkScroll: false,
|
||||
winPosition: 0,
|
||||
winHeight: null,
|
||||
docHeight: null,
|
||||
isRunning: false
|
||||
};
|
||||
|
||||
nav.enable = function (withStickyNav) {
|
||||
var self = this;
|
||||
|
||||
// TODO this can likely be removed once the theme javascript is broken
|
||||
// out from the RTD assets. This just ensures old projects that are
|
||||
// calling `enable()` get the sticky menu on by default. All other cals
|
||||
// to `enable` should include an argument for enabling the sticky menu.
|
||||
if (typeof(withStickyNav) == 'undefined') {
|
||||
withStickyNav = true;
|
||||
}
|
||||
|
||||
if (self.isRunning) {
|
||||
// Only allow enabling nav logic once
|
||||
return;
|
||||
}
|
||||
|
||||
self.isRunning = true;
|
||||
jQuery(function ($) {
|
||||
self.init($);
|
||||
|
||||
self.reset();
|
||||
self.win.on('hashchange', self.reset);
|
||||
|
||||
if (withStickyNav) {
|
||||
// Set scroll monitor
|
||||
self.win.on('scroll', function () {
|
||||
if (!self.linkScroll) {
|
||||
if (!self.winScroll) {
|
||||
self.winScroll = true;
|
||||
requestAnimationFrame(function() { self.onScroll(); });
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Set resize monitor
|
||||
self.win.on('resize', function () {
|
||||
if (!self.winResize) {
|
||||
self.winResize = true;
|
||||
requestAnimationFrame(function() { self.onResize(); });
|
||||
}
|
||||
});
|
||||
|
||||
self.onResize();
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
// TODO remove this with a split in theme and Read the Docs JS logic as
|
||||
// well, it's only here to support 0.3.0 installs of our theme.
|
||||
nav.enableSticky = function() {
|
||||
this.enable(true);
|
||||
};
|
||||
|
||||
nav.init = function ($) {
|
||||
var doc = $(document),
|
||||
self = this;
|
||||
|
||||
this.navBar = $('div.wy-side-scroll:first');
|
||||
this.win = $(window);
|
||||
|
||||
// Set up javascript UX bits
|
||||
$(document)
|
||||
// Shift nav in mobile when clicking the menu.
|
||||
.on('click', "[data-toggle='wy-nav-top']", function() {
|
||||
$("[data-toggle='wy-nav-shift']").toggleClass("shift");
|
||||
$("[data-toggle='rst-versions']").toggleClass("shift");
|
||||
})
|
||||
|
||||
// Nav menu link click operations
|
||||
.on('click', ".wy-menu-vertical .current ul li a", function() {
|
||||
var target = $(this);
|
||||
// Close menu when you click a link.
|
||||
$("[data-toggle='wy-nav-shift']").removeClass("shift");
|
||||
$("[data-toggle='rst-versions']").toggleClass("shift");
|
||||
// Handle dynamic display of l3 and l4 nav lists
|
||||
self.toggleCurrent(target);
|
||||
self.hashChange();
|
||||
})
|
||||
.on('click', "[data-toggle='rst-current-version']", function() {
|
||||
$("[data-toggle='rst-versions']").toggleClass("shift-up");
|
||||
})
|
||||
|
||||
// Make tables responsive
|
||||
$("table.docutils:not(.field-list,.footnote,.citation)")
|
||||
.wrap("<div class='wy-table-responsive'></div>");
|
||||
|
||||
// Add extra class to responsive tables that contain
|
||||
// footnotes or citations so that we can target them for styling
|
||||
$("table.docutils.footnote")
|
||||
.wrap("<div class='wy-table-responsive footnote'></div>");
|
||||
$("table.docutils.citation")
|
||||
.wrap("<div class='wy-table-responsive citation'></div>");
|
||||
|
||||
// Add expand links to all parents of nested ul
|
||||
$('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () {
|
||||
var link = $(this);
|
||||
expand = $('<span class="toctree-expand"></span>');
|
||||
expand.on('click', function (ev) {
|
||||
self.toggleCurrent(link);
|
||||
ev.stopPropagation();
|
||||
return false;
|
||||
});
|
||||
link.prepend(expand);
|
||||
});
|
||||
};
|
||||
|
||||
nav.reset = function () {
|
||||
// Get anchor from URL and open up nested nav
|
||||
var anchor = encodeURI(window.location.hash) || '#';
|
||||
|
||||
try {
|
||||
var vmenu = $('.wy-menu-vertical');
|
||||
var link = vmenu.find('[href="' + anchor + '"]');
|
||||
if (link.length === 0) {
|
||||
// this link was not found in the sidebar.
|
||||
// Find associated id element, then its closest section
|
||||
// in the document and try with that one.
|
||||
var id_elt = $('.document [id="' + anchor.substring(1) + '"]');
|
||||
var closest_section = id_elt.closest('div.section');
|
||||
link = vmenu.find('[href="#' + closest_section.attr("id") + '"]');
|
||||
if (link.length === 0) {
|
||||
// still not found in the sidebar. fall back to main section
|
||||
link = vmenu.find('[href="#"]');
|
||||
}
|
||||
}
|
||||
// If we found a matching link then reset current and re-apply
|
||||
// otherwise retain the existing match
|
||||
if (link.length > 0) {
|
||||
$('.wy-menu-vertical .current').removeClass('current');
|
||||
link.addClass('current');
|
||||
link.closest('li.toctree-l1').addClass('current');
|
||||
link.closest('li.toctree-l1').parent().addClass('current');
|
||||
link.closest('li.toctree-l1').addClass('current');
|
||||
link.closest('li.toctree-l2').addClass('current');
|
||||
link.closest('li.toctree-l3').addClass('current');
|
||||
link.closest('li.toctree-l4').addClass('current');
|
||||
link[0].scrollIntoView();
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
console.log("Error expanding nav for anchor", err);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
nav.onScroll = function () {
|
||||
this.winScroll = false;
|
||||
var newWinPosition = this.win.scrollTop(),
|
||||
winBottom = newWinPosition + this.winHeight,
|
||||
navPosition = this.navBar.scrollTop(),
|
||||
newNavPosition = navPosition + (newWinPosition - this.winPosition);
|
||||
if (newWinPosition < 0 || winBottom > this.docHeight) {
|
||||
return;
|
||||
}
|
||||
this.navBar.scrollTop(newNavPosition);
|
||||
this.winPosition = newWinPosition;
|
||||
};
|
||||
|
||||
nav.onResize = function () {
|
||||
this.winResize = false;
|
||||
this.winHeight = this.win.height();
|
||||
this.docHeight = $(document).height();
|
||||
};
|
||||
|
||||
nav.hashChange = function () {
|
||||
this.linkScroll = true;
|
||||
this.win.one('hashchange', function () {
|
||||
this.linkScroll = false;
|
||||
});
|
||||
};
|
||||
|
||||
nav.toggleCurrent = function (elem) {
|
||||
var parent_li = elem.closest('li');
|
||||
parent_li.siblings('li.current').removeClass('current');
|
||||
parent_li.siblings().find('li.current').removeClass('current');
|
||||
parent_li.find('> ul li.current').removeClass('current');
|
||||
parent_li.toggleClass('current');
|
||||
}
|
||||
|
||||
return nav;
|
||||
};
|
||||
|
||||
module.exports.ThemeNav = ThemeNav();
|
||||
|
||||
if (typeof(window) != 'undefined') {
|
||||
window.SphinxRtdTheme = {
|
||||
Navigation: module.exports.ThemeNav,
|
||||
// TODO remove this once static assets are split up between the theme
|
||||
// and Read the Docs. For now, this patches 0.3.0 to be backwards
|
||||
// compatible with a pre-0.3.0 layout.html
|
||||
StickyNav: module.exports.ThemeNav,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel
|
||||
// https://gist.github.com/paulirish/1579671
|
||||
// MIT license
|
||||
|
||||
(function() {
|
||||
var lastTime = 0;
|
||||
var vendors = ['ms', 'moz', 'webkit', 'o'];
|
||||
for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
|
||||
window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
|
||||
window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
|
||||
|| window[vendors[x]+'CancelRequestAnimationFrame'];
|
||||
}
|
||||
|
||||
if (!window.requestAnimationFrame)
|
||||
window.requestAnimationFrame = function(callback, element) {
|
||||
var currTime = new Date().getTime();
|
||||
var timeToCall = Math.max(0, 16 - (currTime - lastTime));
|
||||
var id = window.setTimeout(function() { callback(currTime + timeToCall); },
|
||||
timeToCall);
|
||||
lastTime = currTime + timeToCall;
|
||||
return id;
|
||||
};
|
||||
|
||||
if (!window.cancelAnimationFrame)
|
||||
window.cancelAnimationFrame = function(id) {
|
||||
clearTimeout(id);
|
||||
};
|
||||
}());
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "sphinx_rtd_theme",
|
||||
"main": "js/theme.js",
|
||||
"version": "0.4.3",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"bower": "^1.8.4",
|
||||
"browserify": "^13.0.0",
|
||||
"connect-livereload": "~0.6.0",
|
||||
"grunt": "~1.0.1",
|
||||
"grunt-banner": "^0.6.0",
|
||||
"grunt-browserify": "^5.0.0",
|
||||
"grunt-contrib-clean": "^1.0.0",
|
||||
"grunt-contrib-connect": "^1.0.2",
|
||||
"grunt-contrib-copy": "~1.0.0",
|
||||
"grunt-contrib-sass": "~1.0.0",
|
||||
"grunt-contrib-uglify": "~3.3.0",
|
||||
"grunt-contrib-watch": "~1.0.0",
|
||||
"grunt-exec": "~1.0.1",
|
||||
"grunt-open": "0.2.3",
|
||||
"matchdep": "~1.0.1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
.rst-versions
|
||||
position: fixed
|
||||
bottom: 0
|
||||
left: 0
|
||||
width: $nav-desktop-width
|
||||
color: $section-background-color
|
||||
background: darken($menu-background-color, 8%)
|
||||
font-family: $base-font-family
|
||||
z-index: $z-index-tray
|
||||
a
|
||||
color: $link_color
|
||||
text-decoration: none
|
||||
.rst-badge-small
|
||||
display: none
|
||||
.rst-current-version
|
||||
padding: $base-line-height / 2
|
||||
background-color: darken($menu-background-color, 5%)
|
||||
display: block
|
||||
text-align: right
|
||||
font-size: 90%
|
||||
cursor: pointer
|
||||
color: $green
|
||||
+clearfix
|
||||
.fa
|
||||
color: $section-background-color
|
||||
.fa-book
|
||||
float: left
|
||||
.icon-book
|
||||
float: left
|
||||
&.rst-out-of-date
|
||||
background-color: $red
|
||||
color: $white
|
||||
&.rst-active-old-version
|
||||
background-color: $yellow
|
||||
color: $black
|
||||
&.shift-up
|
||||
height: auto
|
||||
max-height: 100%
|
||||
overflow-y: scroll
|
||||
&.shift-up .rst-other-versions
|
||||
display: block
|
||||
.rst-other-versions
|
||||
font-size: 90%
|
||||
padding: $base-line-height / 2
|
||||
color: $text-medium
|
||||
display: none
|
||||
hr
|
||||
display: block
|
||||
height: 1px
|
||||
border: 0
|
||||
margin: 20px 0
|
||||
padding: 0
|
||||
border-top: solid 1px lighten($menu-background-color, 5%)
|
||||
dd
|
||||
display: inline-block
|
||||
margin: 0
|
||||
a
|
||||
display: inline-block
|
||||
padding: $base-line-height / 4
|
||||
color: $section-background-color
|
||||
&.rst-badge
|
||||
width: auto
|
||||
bottom: 20px
|
||||
right: 20px
|
||||
left: auto
|
||||
border: none
|
||||
max-width: $nav-desktop-width
|
||||
max-height: 90%
|
||||
.icon-book
|
||||
float: none
|
||||
.fa-book
|
||||
float: none
|
||||
&.shift-up .rst-current-version
|
||||
text-align: right
|
||||
.fa-book
|
||||
float: left
|
||||
.icon-book
|
||||
float: left
|
||||
.rst-current-version
|
||||
width: auto
|
||||
height: 30px
|
||||
line-height: 30px
|
||||
padding: 0 $base-line-height / 4
|
||||
display: block
|
||||
text-align: center
|
||||
|
||||
+media($tablet)
|
||||
.rst-versions
|
||||
width: 85%
|
||||
display: none
|
||||
&.shift
|
||||
display: block
|
|
@ -0,0 +1,68 @@
|
|||
// Slimmer version of FA for use on the badge_only.sass file.
|
||||
|
||||
+font-face(FontAwesome, '#{$font-awesome-dir}fontawesome-webfont')
|
||||
|
||||
.fa:before
|
||||
display: inline-block
|
||||
font-family: FontAwesome
|
||||
font-style: normal
|
||||
font-weight: normal
|
||||
line-height: 1
|
||||
text-decoration: inherit
|
||||
+font-smooth
|
||||
|
||||
a .fa
|
||||
display: inline-block
|
||||
text-decoration: inherit
|
||||
|
||||
|
||||
li
|
||||
.fa
|
||||
display: inline-block
|
||||
.fa-large:before,
|
||||
.fa-large:before
|
||||
/* 1.5 increased font size for fa-large * 1.25 width
|
||||
width: 1.5 * 1.25em
|
||||
|
||||
ul.fas
|
||||
list-style-type: none
|
||||
margin-left: 2em
|
||||
text-indent: -0.8em
|
||||
li
|
||||
.fa
|
||||
width: .8em
|
||||
.fa-large:before,
|
||||
.fa-large:before
|
||||
/* 1.5 increased font size for fa-large * 1.25 width
|
||||
vertical-align: baseline
|
||||
// width: 1.5*1.25em
|
||||
|
||||
.fa-book:before
|
||||
content: "\f02d"
|
||||
|
||||
.icon-book:before
|
||||
content: "\f02d"
|
||||
|
||||
.fa-caret-down:before
|
||||
content: "\f0d7"
|
||||
|
||||
.icon-caret-down:before
|
||||
content: "\f0d7"
|
||||
|
||||
.fa-caret-up:before
|
||||
content: "\f0d8"
|
||||
|
||||
.icon-caret-up:before
|
||||
content: "\f0d8"
|
||||
|
||||
.fa-caret-left:before
|
||||
content: "\f0d9"
|
||||
|
||||
.icon-caret-left:before
|
||||
content: "\f0d9"
|
||||
|
||||
.fa-caret-right:before
|
||||
content: "\f0da"
|
||||
|
||||
.icon-caret-right:before
|
||||
content: "\f0da"
|
|
@ -0,0 +1,34 @@
|
|||
.wy-breadcrumbs
|
||||
+clearfix
|
||||
|
||||
.wy-breadcrumbs li
|
||||
display: inline-block
|
||||
&.wy-breadcrumbs-aside
|
||||
float: right
|
||||
a
|
||||
display: inline-block
|
||||
padding: 5px
|
||||
&:first-child
|
||||
padding-left: 0
|
||||
code
|
||||
padding: 5px
|
||||
border: none
|
||||
background: none
|
||||
&.literal
|
||||
color: $text-color
|
||||
.wy-breadcrumbs-extra
|
||||
margin-bottom: 0
|
||||
color: $text-light
|
||||
font-size: 80%
|
||||
display: inline-block
|
||||
|
||||
|
||||
+media($mobile)
|
||||
.wy-breadcrumbs-extra
|
||||
display: none
|
||||
.wy-breadcrumbs li.wy-breadcrumbs-aside
|
||||
display: none
|
||||
|
||||
@media print
|
||||
.wy-breadcrumbs li.wy-breadcrumbs-aside
|
||||
display: none
|
|
@ -0,0 +1,24 @@
|
|||
.icon
|
||||
@extend .fa
|
||||
.icon-home
|
||||
@extend .fa-home
|
||||
.icon-search
|
||||
@extend .fa-search
|
||||
.icon-book
|
||||
@extend .fa-book
|
||||
.icon-caret-down
|
||||
@extend .fa-caret-down
|
||||
.icon-github
|
||||
@extend .fa-github
|
||||
.icon-bitbucket
|
||||
@extend .fa-bitbucket
|
||||
.icon-gitlab
|
||||
@extend .fa-gitlab
|
||||
.icon-fire
|
||||
@extend .fa-fire
|
||||
.icon-circle-arrow-right
|
||||
@extend .fa-arrow-circle-right
|
||||
.icon-circle-arrow-left
|
||||
@extend .fa-arrow-circle-left
|
||||
.icon-link
|
||||
@extend .fa-link
|
|
@ -0,0 +1,42 @@
|
|||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('../fonts/Lato/lato-regular.eot')
|
||||
src: url('../fonts/Lato/lato-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/Lato/lato-regular.woff2') format('woff2'), url('../fonts/Lato/lato-regular.woff') format('woff'), url('../fonts/Lato/lato-regular.ttf') format('truetype')
|
||||
font-weight: 400
|
||||
font-style: normal
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('../fonts/Lato/lato-bold.eot')
|
||||
src: url('../fonts/Lato/lato-bold.eot?#iefix') format('embedded-opentype'), url('../fonts/Lato/lato-bold.woff2') format('woff2'), url('../fonts/Lato/lato-bold.woff') format('woff'), url('../fonts/Lato/lato-bold.ttf') format('truetype')
|
||||
font-weight: 700
|
||||
font-style: normal
|
||||
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('../fonts/Lato/lato-bolditalic.eot')
|
||||
src: url('../fonts/Lato/lato-bolditalic.eot?#iefix') format('embedded-opentype'), url('../fonts/Lato/lato-bolditalic.woff2') format('woff2'), url('../fonts/Lato/lato-bolditalic.woff') format('woff'), url('../fonts/Lato/lato-bolditalic.ttf') format('truetype')
|
||||
font-weight: 700
|
||||
font-style: italic
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('../fonts/Lato/lato-italic.eot')
|
||||
src: url('../fonts/Lato/lato-italic.eot?#iefix') format('embedded-opentype'), url('../fonts/Lato/lato-italic.woff2') format('woff2'), url('../fonts/Lato/lato-italic.woff') format('woff'), url('../fonts/Lato/lato-italic.ttf') format('truetype')
|
||||
font-weight: 400
|
||||
font-style: italic
|
||||
|
||||
@font-face
|
||||
font-family: 'Roboto Slab'
|
||||
font-style: normal
|
||||
font-weight: 400
|
||||
src: url('../fonts/RobotoSlab/roboto-slab.eot')
|
||||
src: url('../fonts/RobotoSlab/roboto-slab-v7-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab/roboto-slab-v7-regular.woff2') format('woff2'), url('../fonts/RobotoSlab/roboto-slab-v7-regular.woff') format('woff'), url('../fonts/RobotoSlab/roboto-slab-v7-regular.ttf') format('truetype')
|
||||
|
||||
@font-face
|
||||
font-family: 'Roboto Slab'
|
||||
font-style: normal
|
||||
font-weight: 700
|
||||
src: url('../fonts/RobotoSlab/roboto-slab-v7-bold.eot')
|
||||
src: url('../fonts/RobotoSlab/roboto-slab-v7-bold.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab/roboto-slab-v7-bold.woff2') format('woff2'), url('../fonts/RobotoSlab/roboto-slab-v7-bold.woff') format('woff'), url('../fonts/RobotoSlab/roboto-slab-v7-bold.ttf') format('truetype')
|
|
@ -0,0 +1,411 @@
|
|||
// Set uniform (but not relative) base font size
|
||||
html
|
||||
font-size: $base-font-size
|
||||
|
||||
.wy-affix
|
||||
position: fixed
|
||||
top: $gutter
|
||||
|
||||
.wy-menu
|
||||
a:hover
|
||||
text-decoration: none
|
||||
|
||||
.wy-menu-horiz
|
||||
+clearfix
|
||||
ul, li
|
||||
display: inline-block
|
||||
li:hover
|
||||
background: rgba(255,255,255,.1)
|
||||
li
|
||||
&.divide-left
|
||||
border-left: solid 1px hsl(0, 0%, 25%)
|
||||
&.divide-right
|
||||
border-right: solid 1px hsl(0, 0%, 25%)
|
||||
a
|
||||
height: $base-font-size * 2
|
||||
display: inline-block
|
||||
line-height: $base-font-size * 2
|
||||
padding: 0 $base-font-size
|
||||
|
||||
.wy-menu-vertical
|
||||
width: $nav-desktop-width
|
||||
|
||||
header, p.caption
|
||||
color: $nav-caption
|
||||
height: $base-font-size * 2
|
||||
display: inline-block
|
||||
line-height: $base-font-size * 2
|
||||
padding: 0 $gutter
|
||||
margin: $base-line-height / 2 0 0 0
|
||||
display: block
|
||||
font-weight: bold
|
||||
text-transform: uppercase
|
||||
font-size: 85%
|
||||
white-space: nowrap
|
||||
|
||||
ul
|
||||
margin-bottom: 0
|
||||
li
|
||||
&.divide-top
|
||||
border-top: solid 1px hsl(0, 0%, 25%)
|
||||
&.divide-bottom
|
||||
border-bottom: solid 1px hsl(0, 0%, 25%)
|
||||
&.current
|
||||
background: darken($menu-vertical-background-color, 10%)
|
||||
a
|
||||
color: $menu-link-medium
|
||||
border-right: solid 1px darken($menu-vertical-background-color, 20%)
|
||||
padding: $gutter / 4 $gutter * 1.5
|
||||
&:hover
|
||||
background: darken($menu-vertical-background-color, 15%)
|
||||
code
|
||||
border: none
|
||||
background: inherit
|
||||
color: inherit
|
||||
padding-left: 0
|
||||
padding-right: 0
|
||||
// Expand links
|
||||
span.toctree-expand
|
||||
display: block
|
||||
float: left
|
||||
margin-left: -1.2em
|
||||
@extend .fa
|
||||
@extend .fa-plus-square-o
|
||||
font-size: .8em
|
||||
line-height: 1.6em
|
||||
color: darken($menu-link-medium, 20%)
|
||||
|
||||
// On state for the first level
|
||||
li.on a, li.current > a
|
||||
color: $menu-link-color
|
||||
padding: $gutter / 4 $gutter
|
||||
font-weight: bold
|
||||
position: relative
|
||||
background: $menu-vertical-background-color
|
||||
border: none
|
||||
padding-left: $gutter -4px
|
||||
+font-smooth
|
||||
&:hover
|
||||
background: $menu-vertical-background-color
|
||||
span.toctree-expand
|
||||
color: $menu-link-medium
|
||||
span.toctree-expand
|
||||
@extend .fa
|
||||
@extend .fa-minus-square-o
|
||||
display: block
|
||||
font-size: .8em
|
||||
line-height: 1.6em
|
||||
color: darken($menu-link-medium, 30%)
|
||||
|
||||
li.toctree-l1.current > a
|
||||
border-bottom: solid 1px darken($menu-vertical-background-color, 20%)
|
||||
border-top: solid 1px darken($menu-vertical-background-color, 20%)
|
||||
|
||||
// This is the on state for pages beyond second level
|
||||
li.toctree-l2 a, li.toctree-l3 a, li.toctree-l4 a
|
||||
color: $menu-link-color
|
||||
li.toctree-l1.current li.toctree-l2, li.toctree-l2.current li.toctree-l3
|
||||
> ul
|
||||
display: none
|
||||
&.current > ul
|
||||
display: block
|
||||
li.toctree-l2
|
||||
&.current
|
||||
> a
|
||||
background: darken($menu-vertical-background-color, 20%)
|
||||
padding: $gutter / 4 $gutter * 1.5
|
||||
li.toctree-l3 > a
|
||||
display: block
|
||||
background: darken($menu-vertical-background-color, 20%)
|
||||
padding: $gutter / 4 $gutter * 2.5
|
||||
a:hover span.toctree-expand
|
||||
color: $menu-link-medium
|
||||
span.toctree-expand
|
||||
color: darken($menu-vertical-background-color, 35%)
|
||||
li.toctree-l3
|
||||
font-size: .9em
|
||||
&.current
|
||||
> a
|
||||
background: darken($menu-vertical-background-color, 25%)
|
||||
padding: $gutter / 4 $gutter * 2.5
|
||||
li.toctree-l4 > a
|
||||
display: block
|
||||
background: darken($menu-vertical-background-color, 25%)
|
||||
padding: $gutter / 4 $gutter * 3.5
|
||||
a:hover span.toctree-expand
|
||||
color: $menu-link-medium
|
||||
span.toctree-expand
|
||||
color: darken($menu-vertical-background-color, 40%)
|
||||
li.toctree-l4
|
||||
font-size: .9em
|
||||
|
||||
li.current ul
|
||||
display: block
|
||||
li ul
|
||||
margin-bottom: 0
|
||||
display: none
|
||||
li ul li a
|
||||
margin-bottom: 0
|
||||
color: $menu-link-light
|
||||
font-weight: normal
|
||||
a
|
||||
display: inline-block
|
||||
line-height: 18px
|
||||
padding: $gutter / 4 $gutter
|
||||
display: block
|
||||
position: relative
|
||||
font-size: 90%
|
||||
color: $menu-link-light
|
||||
&:hover
|
||||
background-color: lighten($menu-background-color, 10%)
|
||||
cursor: pointer
|
||||
span.toctree-expand
|
||||
color: $menu-link-light
|
||||
&:active
|
||||
background-color: $menu-logo-color
|
||||
cursor: pointer
|
||||
color: $menu-link-active
|
||||
span.toctree-expand
|
||||
color: $menu-link-active
|
||||
|
||||
.wy-side-nav-search
|
||||
display: block
|
||||
width: $nav-desktop-width
|
||||
padding: $gutter / 2
|
||||
margin-bottom: $gutter / 2
|
||||
z-index: $z-index-popover
|
||||
background-color: $nav-search-background-color
|
||||
text-align: center
|
||||
padding: $gutter / 2
|
||||
display: block
|
||||
color: $nav-search-color
|
||||
margin-bottom: $gutter / 2
|
||||
input[type=text]
|
||||
width: 100%
|
||||
border-radius: 50px
|
||||
padding: 6px 12px
|
||||
border-color: darken($link-color, 5%)
|
||||
img
|
||||
display: block
|
||||
margin: auto auto $gutter / 2 auto
|
||||
height: 45px
|
||||
width: 45px
|
||||
background-color: $menu-logo-color
|
||||
padding: 5px
|
||||
border-radius: 100%
|
||||
> a, .wy-dropdown > a
|
||||
color: $nav-search-color
|
||||
font-size: 100%
|
||||
font-weight: bold
|
||||
display: inline-block
|
||||
padding: $base-line-height / 6 $base-line-height / 4
|
||||
margin-bottom: $gutter / 2
|
||||
+font-smooth
|
||||
&:hover
|
||||
background: rgba(255,255,255,.1)
|
||||
img.logo
|
||||
display: block // display on its own line all the time
|
||||
margin: 0 auto
|
||||
height: auto // undo badge styling above
|
||||
width: auto
|
||||
border-radius: 0
|
||||
max-width: 100% // shrink on mobile, if appropriate
|
||||
background: rgba(0,0,0,0) // make hover background of parent show up properly
|
||||
&.icon
|
||||
img.logo
|
||||
margin-top: 0.85em // space it away from the title text
|
||||
> div.version
|
||||
margin-top: -1 * ($gutter / 4)
|
||||
margin-bottom: $gutter / 2
|
||||
font-weight: normal
|
||||
color: rgba(255,255,255,.3)
|
||||
|
||||
|
||||
.wy-nav .wy-menu-vertical
|
||||
header
|
||||
color: $link-color
|
||||
a
|
||||
color: $text-light
|
||||
&:hover
|
||||
background-color: $link-color
|
||||
color: $white
|
||||
|
||||
[data-menu-wrap]
|
||||
+transition(all .2s ease-in)
|
||||
position: absolute
|
||||
opacity: 1
|
||||
width: 100%
|
||||
opacity: 0
|
||||
&.move-center
|
||||
left: 0
|
||||
right: auto
|
||||
opacity: 1
|
||||
&.move-left
|
||||
right: auto
|
||||
left: -100%
|
||||
opacity: 0
|
||||
&.move-right
|
||||
right: -100%
|
||||
left: auto
|
||||
opacity: 0
|
||||
|
||||
|
||||
.wy-body-for-nav
|
||||
background: $section-background-color
|
||||
|
||||
.wy-grid-for-nav
|
||||
position: absolute
|
||||
width: 100%
|
||||
height: 100%
|
||||
|
||||
.wy-nav-side
|
||||
position: fixed
|
||||
top: 0
|
||||
bottom: 0
|
||||
left: 0
|
||||
padding-bottom: 2em
|
||||
width: $nav-desktop-width
|
||||
overflow-x: hidden
|
||||
overflow-y: hidden
|
||||
min-height: 100%
|
||||
color: $menu-medium
|
||||
background: $nav-background-color
|
||||
z-index: $z-index-popover
|
||||
|
||||
.wy-side-scroll
|
||||
width: $nav-desktop-width + 20px
|
||||
position: relative
|
||||
overflow-x: hidden
|
||||
overflow-y: scroll
|
||||
height: 100%
|
||||
|
||||
.wy-nav-top
|
||||
display: none
|
||||
background: $link-color
|
||||
color: $white
|
||||
padding: $gutter / 4 $gutter / 2
|
||||
position: relative
|
||||
line-height: 50px
|
||||
text-align: center
|
||||
font-size: 100%
|
||||
+clearfix
|
||||
a
|
||||
color: $white
|
||||
font-weight: bold
|
||||
+font-smooth
|
||||
img
|
||||
margin-right: $base-line-height / 2
|
||||
height: 45px
|
||||
width: 45px
|
||||
background-color: $menu-logo-color
|
||||
padding: 5px
|
||||
border-radius: 100%
|
||||
i
|
||||
font-size: 30px
|
||||
float: left
|
||||
cursor: pointer
|
||||
padding-top: inherit
|
||||
|
||||
.wy-nav-content-wrap
|
||||
margin-left: $nav-desktop-width
|
||||
background: $section-background-color
|
||||
min-height: 100%
|
||||
|
||||
.wy-nav-content
|
||||
padding: $gutter $gutter * 2
|
||||
height: 100%
|
||||
max-width: $nav-content-width
|
||||
margin: auto
|
||||
|
||||
.wy-body-mask
|
||||
position: fixed
|
||||
width: 100%
|
||||
height: 100%
|
||||
background: rgba(0,0,0,.2)
|
||||
display: none
|
||||
z-index: $z-index-modal - 1
|
||||
&.on
|
||||
display: block
|
||||
footer
|
||||
color: $footer-color
|
||||
p
|
||||
margin-bottom: $base-line-height / 2
|
||||
span.commit code
|
||||
padding: 0px
|
||||
font-family: $code-font-family
|
||||
font-size: 1em
|
||||
background: none
|
||||
border: none
|
||||
color: $footer-color
|
||||
|
||||
.rst-footer-buttons
|
||||
&:before, &:after
|
||||
width: 100%
|
||||
+clearfix
|
||||
|
||||
.rst-breadcrumbs-buttons
|
||||
margin-top: 12px
|
||||
+clearfix
|
||||
|
||||
#search-results
|
||||
.search li
|
||||
margin-bottom: $base-line-height
|
||||
border-bottom: solid 1px $table_border_color
|
||||
padding-bottom: $base-line-height
|
||||
.search li:first-child
|
||||
border-top: solid 1px $table_border_color
|
||||
padding-top: $base-line-height
|
||||
.search li a
|
||||
font-size: 120%
|
||||
margin-bottom: $base-line-height / 2
|
||||
display: inline-block
|
||||
.context
|
||||
color: $text-medium
|
||||
font-size: 90%
|
||||
|
||||
.genindextable li > ul
|
||||
margin-left: $base-line-height
|
||||
|
||||
+media($tablet)
|
||||
.wy-body-for-nav
|
||||
background: $section-background-color
|
||||
.wy-nav-top
|
||||
display: block
|
||||
.wy-nav-side
|
||||
@if $nav-desktop-position == left
|
||||
left: -$nav-desktop-width
|
||||
@else
|
||||
right: -$nav-desktop-width
|
||||
&.shift
|
||||
width: 85%
|
||||
left: 0
|
||||
.wy-side-scroll
|
||||
width: auto
|
||||
.wy-side-nav-search
|
||||
width: auto
|
||||
.wy-menu.wy-menu-vertical
|
||||
width: auto
|
||||
.wy-nav-content-wrap
|
||||
margin-left: 0
|
||||
.wy-nav-content
|
||||
padding: $gutter
|
||||
&.shift
|
||||
position: fixed
|
||||
min-width: 100%
|
||||
left: 85%
|
||||
top: 0
|
||||
height: 100%
|
||||
overflow: hidden
|
||||
|
||||
@media screen and (min-width: $nav-media-query)
|
||||
.wy-nav-content-wrap
|
||||
background: rgba(0,0,0,.05)
|
||||
.wy-nav-content
|
||||
margin: 0
|
||||
background: $section-background-color
|
||||
|
||||
@media print
|
||||
.rst-versions, footer, .wy-nav-side
|
||||
display: none
|
||||
.wy-nav-content-wrap
|
||||
margin-left: 0
|
|
@ -0,0 +1,5 @@
|
|||
span[id*='MathJax-Span']
|
||||
color: $mathjax-color
|
||||
|
||||
.math
|
||||
text-align: center
|
|
@ -0,0 +1,415 @@
|
|||
// -------------------------------------------------------------------------------------------------------------------
|
||||
// CONTRIBUTORS, PLEASE READ THIS!
|
||||
// -------------------------------------------------------------------------------------------------------------------
|
||||
// Couple things...
|
||||
// 1. Lots of this @extends from wyrm_core/_type.sass (http://www.github.com/snide/wyrm/.
|
||||
// * Try not to replace any @extends code. It's pretty generic stuff meant to work together.
|
||||
// * That said, know that I'm very unlikely to accept PRs from wyrm just to change style here.
|
||||
// 2. I plan to remove the !importants in here. Part of it is due to lazyness, part to sphinx's fondness for nesting.
|
||||
// 3. Try to use variables from wyrm_core/wy_variables.sass. Notable are...
|
||||
// * $base-line-height // All margins, padding and line-height should use this in .25 increments.
|
||||
// * $text-color, $text-light, $text-dark...etc
|
||||
// * $base-font-family, $custom-font-family, $code-font-family
|
||||
// 4. If you have changes for mobile/tablet, put them at the bottom of the sass file.
|
||||
// --------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.rst-content
|
||||
// Sphinx by default applies HxW style attributes to images. This fixes that oversite.
|
||||
img
|
||||
max-width: 100%
|
||||
height: auto
|
||||
|
||||
div.figure
|
||||
margin-bottom: $base-line-height
|
||||
p.caption
|
||||
font-style: italic
|
||||
p:last-child.caption
|
||||
margin-bottom: 0px
|
||||
|
||||
div.figure.align-center
|
||||
text-align: center
|
||||
|
||||
// Usually it's a good idea to give images some space.
|
||||
.section > img, .section > a > img
|
||||
margin-bottom: $base-line-height
|
||||
|
||||
// normalize browser styling
|
||||
abbr[title]
|
||||
text-decoration: none
|
||||
|
||||
// Style external links
|
||||
&.style-external-links a.reference.external:after
|
||||
font-family: FontAwesome
|
||||
content: "\f08e"
|
||||
color: $text-light
|
||||
vertical-align: super
|
||||
font-size: 60%
|
||||
margin: 0 0.2em
|
||||
|
||||
// For the most part, its safe to assume that sphinx wants you to use a blockquote as an indent. It gets
|
||||
// used in many different ways, so don't assume you can apply some fancy style, just leave it be.
|
||||
blockquote
|
||||
margin-left: $base-line-height
|
||||
line-height: $base-line-height
|
||||
margin-bottom: $base-line-height
|
||||
|
||||
pre.literal-block
|
||||
white-space: pre
|
||||
margin: 0
|
||||
padding: $base-line-height / 2 $base-line-height / 2
|
||||
font-family: $code-font-family
|
||||
display: block
|
||||
overflow: auto
|
||||
pre.literal-block, div[class^='highlight']
|
||||
border: 1px solid $table-border-color
|
||||
overflow-x: auto
|
||||
// 1px hack otherwise border won't show. lame
|
||||
margin: 1px 0 $base-line-height 0
|
||||
div[class^='highlight']
|
||||
padding: 0px
|
||||
border: none
|
||||
margin: 0
|
||||
// Needs 100% width for line highlighting to work properly
|
||||
div[class^='highlight'] td.code
|
||||
width: 100%
|
||||
.linenodiv pre
|
||||
border-right: solid 1px lighten($table-border-color, 2%)
|
||||
margin: 0
|
||||
padding: $base-line-height / 2 $base-line-height / 2
|
||||
font-family: $code-font-family
|
||||
user-select: none
|
||||
pointer-events: none
|
||||
div[class^='highlight'] pre
|
||||
white-space: pre
|
||||
margin: 0
|
||||
padding: $base-line-height / 2 $base-line-height / 2
|
||||
display: block
|
||||
overflow: auto
|
||||
& .hll
|
||||
// Line emphasis spans full width
|
||||
display: block
|
||||
margin: 0 -1 * $base-line-height / 2
|
||||
padding: 0 $base-line-height / 2
|
||||
pre.literal-block, div[class^='highlight'] pre, .linenodiv pre
|
||||
font-family: $code-font-family
|
||||
font-size: 12px
|
||||
line-height: 1.4
|
||||
|
||||
.code-block-caption
|
||||
font-style: italic
|
||||
font-size: 85%
|
||||
line-height: 1
|
||||
padding: 1em 0
|
||||
text-align: center
|
||||
|
||||
@media print
|
||||
.codeblock, div[class^='highlight'], div[class^='highlight'] pre
|
||||
white-space: pre-wrap
|
||||
|
||||
// These are the various note pullouts that sphinx applies
|
||||
.note, .attention, .caution, .danger, .error, .hint, .important, .tip, .warning, .seealso, .admonition-todo, .admonition
|
||||
@extend .wy-alert
|
||||
.last
|
||||
margin-bottom: 0
|
||||
.admonition-title
|
||||
@extend .wy-alert-title
|
||||
@extend .fa
|
||||
@extend .fa-exclamation-circle
|
||||
&:before
|
||||
margin-right: 4px
|
||||
.note, .seealso
|
||||
@extend .wy-alert.wy-alert-info
|
||||
.hint, .tip, .important
|
||||
@extend .wy-alert.wy-alert-success
|
||||
.error, .danger
|
||||
@extend .wy-alert.wy-alert-danger
|
||||
.warning, .caution, .attention, .admonition-todo
|
||||
@extend .wy-alert.wy-alert-warning
|
||||
// Some people put tables in notes. Let's give them very basic support.
|
||||
.admonition table
|
||||
border-color: rgba(0,0,0,.1)
|
||||
td, th
|
||||
background: transparent !important
|
||||
border-color: rgba(0,0,0,.1) !important
|
||||
.section ul, .toctree-wrapper ul
|
||||
@extend .wy-plain-list-disc
|
||||
.section ol.loweralpha, .section ol.loweralpha li
|
||||
list-style: lower-alpha
|
||||
.section ol.upperalpha, .section ol.upperalpha li
|
||||
list-style: upper-alpha
|
||||
.section ol, ol.arabic
|
||||
@extend .wy-plain-list-decimal
|
||||
.section ol p, .section ul p
|
||||
margin-bottom: $base-line-height / 2
|
||||
&:last-child
|
||||
margin-bottom: $base-line-height
|
||||
.line-block
|
||||
margin-left: 0px
|
||||
margin-bottom: $base-line-height
|
||||
line-height: $base-line-height
|
||||
.line-block .line-block
|
||||
margin-left: $base-line-height
|
||||
margin-bottom: 0px
|
||||
|
||||
// Generics handling of headings and toc stuff.
|
||||
.topic-title
|
||||
font-weight: bold
|
||||
margin-bottom: $base-line-height / 2
|
||||
.toc-backref
|
||||
color: $text-color
|
||||
.align-right
|
||||
float: right
|
||||
margin: 0px 0px $base-line-height $base-line-height
|
||||
.align-left
|
||||
float: left
|
||||
margin: 0px $base-line-height $base-line-height 0px
|
||||
.align-center
|
||||
margin: auto
|
||||
// Do not override display:table for tables
|
||||
&:not(table)
|
||||
display: block
|
||||
.toctree-wrapper p.caption
|
||||
@extend h2
|
||||
|
||||
// This is the #href that shows up on hover. Sphinx's is terrible so I hack it away.
|
||||
h1, h2, h3, h4, h5, h6, dl dt, p.caption, table > caption, .code-block-caption
|
||||
.headerlink
|
||||
visibility: hidden
|
||||
font-size: 14px
|
||||
@extend .fa
|
||||
&:after
|
||||
content: "\f0c1"
|
||||
font-family: FontAwesome
|
||||
&:hover .headerlink:after
|
||||
visibility: visible
|
||||
|
||||
table > caption .headerlink:after
|
||||
font-size: 12px
|
||||
|
||||
.centered
|
||||
text-align: center
|
||||
|
||||
// Sidebar content. You'll see at the bottom of this file I change it in mobile.
|
||||
.sidebar
|
||||
float: right
|
||||
width: 40%
|
||||
display: block
|
||||
margin: 0 0 $base-line-height $base-line-height
|
||||
padding: $base-line-height
|
||||
background: $sidebar-background-color
|
||||
border: solid 1px $sidebar-border-color
|
||||
// Sidebar content is usually less relevant, so adjust the margins and sizes.
|
||||
p, ul, dl
|
||||
font-size: 90%
|
||||
.last
|
||||
margin-bottom: 0
|
||||
.sidebar-title
|
||||
display: block
|
||||
font-family: $custom-font-family
|
||||
font-weight: bold
|
||||
background: $table-border-color
|
||||
padding: $base-line-height / 4 $base-line-height / 2
|
||||
margin: -$base-line-height
|
||||
margin-bottom: $base-line-height
|
||||
font-size: 100%
|
||||
// Sphinx can highlight searched text with ?highlighted=searchterm
|
||||
.highlighted
|
||||
background: $highlight-color
|
||||
display: inline-block
|
||||
font-weight: bold
|
||||
padding: 0 $base-line-height / 4
|
||||
|
||||
// These are the little citation links [1] that show up within paragraphs.
|
||||
.footnote-reference, .citation-reference
|
||||
vertical-align: baseline
|
||||
position: relative
|
||||
top: -0.4em
|
||||
line-height: 0
|
||||
font-size: 90%
|
||||
|
||||
// Tables! Sphinx LOVES TABLES. Most of wyrm assumes you're only going to use a table as a table
|
||||
// so I have to write a bunch of unique stuff for Sphinx to style them up differently like it's 2003.
|
||||
table.docutils.citation, table.docutils.footnote
|
||||
background: none
|
||||
border: none
|
||||
color: $text-medium
|
||||
td, tr
|
||||
border: none
|
||||
background-color: transparent !important
|
||||
white-space: normal
|
||||
td.label
|
||||
padding-left: 0
|
||||
padding-right: 0
|
||||
vertical-align: top
|
||||
code
|
||||
color: $gray
|
||||
// Remove the large vertical space between citations and footnotes
|
||||
.wy-table-responsive.citation, .wy-table-responsive.footnote
|
||||
margin-bottom: 0
|
||||
// Re-add vertical space to element directly following citation and footnotes,
|
||||
// if the following element is of a different type
|
||||
.wy-table-responsive.citation + :not(.citation),
|
||||
.wy-table-responsive.footnote + :not(.footnote)
|
||||
margin-top: $base-line-height
|
||||
// Re-add vertical space after citation and footnotes if it is the last child of a parent
|
||||
.wy-table-responsive.citation:last-child, .wy-table-responsive.footnote:last-child
|
||||
margin-bottom: $base-line-height
|
||||
table.docutils
|
||||
@extend .wy-table
|
||||
@extend .wy-table-bordered-all
|
||||
th
|
||||
border-color: $table-border-color
|
||||
&:not(.field-list)
|
||||
@extend .wy-table-striped
|
||||
// Remove bottom margin for the last element (and it's last child)
|
||||
td .last, td .last :last-child
|
||||
margin-bottom: 0
|
||||
// This table is what gets spit out for auto-generated API stuff. I style it smaller bits of padding.
|
||||
table.field-list
|
||||
@extend .wy-table
|
||||
border: none
|
||||
td
|
||||
border: none
|
||||
p
|
||||
font-size: inherit
|
||||
line-height: inherit
|
||||
td > strong
|
||||
display: inline-block
|
||||
.field-name
|
||||
padding-right: 10px
|
||||
text-align: left
|
||||
white-space: nowrap
|
||||
.field-body
|
||||
text-align: left
|
||||
|
||||
// These are the "literals" that get spit out when you mark stuff as ``code`` as your write.
|
||||
tt, code
|
||||
@extend code
|
||||
color: $black
|
||||
font-family: $code-font-family
|
||||
padding: 2px 5px
|
||||
big, em
|
||||
font-size: 100% !important
|
||||
line-height: normal
|
||||
|
||||
&.literal
|
||||
color: $text-code-color
|
||||
&.xref, a &
|
||||
font-weight: bold
|
||||
color: $text-codexref-color
|
||||
pre, kbd, samp
|
||||
font-family: $code-font-family
|
||||
// If the literal is inside an a tag, let's color it like a link
|
||||
a tt, a code
|
||||
color: $link-color
|
||||
dl
|
||||
margin-bottom: $base-line-height
|
||||
dt
|
||||
font-weight: bold
|
||||
margin-bottom: $base-line-height / 2
|
||||
// Most of the content within these dls are one liners, so I halve the normal margins.
|
||||
p, table, ul, ol
|
||||
margin-bottom: $base-line-height / 2 !important
|
||||
// rST seems to want dds to be treated as the browser would, indented.
|
||||
dd
|
||||
margin: 0 0 $base-line-height / 2 $base-line-height
|
||||
line-height: $base-line-height
|
||||
// This is what Sphinx spits out for it's autodocs. Depending upon what language the person is referencing
|
||||
// these things usually have a class of "method" or "class" or something similar, but really who knows.
|
||||
// Sphinx doesn't give me a generic class on these, so unfortunately I have to apply it to the root dl.
|
||||
// This makes me terribly unhappy and makes this code very nesty. Unfortunately I've seen hand-written docs
|
||||
// that output similar, but not quite the same nesting so this is really the best we can do.
|
||||
dl:not(.docutils)
|
||||
margin-bottom: $base-line-height
|
||||
// This would be the equivilant of a .. class::
|
||||
dt
|
||||
display: table
|
||||
margin: $base-line-height / 4 0
|
||||
font-size: 90%
|
||||
line-height: normal
|
||||
background: lighten($class-color, 50%)
|
||||
color: $class-color
|
||||
border-top: solid 3px lighten($class-color, 20%)
|
||||
padding: $base-line-height / 4
|
||||
position: relative
|
||||
&:before
|
||||
color: lighten($class-color, 20%)
|
||||
.headerlink
|
||||
color: $text-color
|
||||
font-size: 100% !important
|
||||
// And this would be the .. method::
|
||||
dl dt
|
||||
margin-bottom: $base-line-height / 4
|
||||
border: none
|
||||
border-left: solid 3px hsl(0,0%,80%)
|
||||
background: hsl(0,0%,94%)
|
||||
color: $method-color
|
||||
.headerlink
|
||||
color: $headerlink-color
|
||||
font-size: 100% !important
|
||||
dt:first-child
|
||||
margin-top: 0
|
||||
// Since dts get the callout style, we treat this less as callouts.
|
||||
tt, code
|
||||
font-weight: bold
|
||||
&.descname, &.descclassname
|
||||
background-color: transparent
|
||||
border: none
|
||||
padding: 0
|
||||
font-size: 100% !important
|
||||
&.descname
|
||||
font-weight: bold
|
||||
// This is for more advanced parameter control
|
||||
.optional
|
||||
display: inline-block
|
||||
padding: 0 4px
|
||||
color: $black
|
||||
font-weight: bold
|
||||
.property
|
||||
display: inline-block
|
||||
padding-right: 8px
|
||||
// Doc links to sourcecode
|
||||
.viewcode-link, .viewcode-back
|
||||
display: inline-block
|
||||
color: $text-viewcode-color
|
||||
font-size: 80%
|
||||
padding-left: $base-line-height
|
||||
.viewcode-back
|
||||
display: block
|
||||
float: right
|
||||
p.rubric
|
||||
margin-bottom: 12px
|
||||
font-weight: bold
|
||||
//Download link
|
||||
code.download
|
||||
background: inherit
|
||||
padding: inherit
|
||||
font-weight: normal
|
||||
font-family: inherit
|
||||
font-size: inherit
|
||||
color: inherit
|
||||
border: inherit
|
||||
white-space: inherit
|
||||
span:first-child
|
||||
-webkit-font-smoothing: subpixel-antialiased
|
||||
@extend .fa
|
||||
@extend .fa-download
|
||||
&:before
|
||||
margin-right: 4px
|
||||
.guilabel
|
||||
border: 1px solid lighten($guilabel-color, 25%)
|
||||
background: lighten($guilabel-color, 50%)
|
||||
font-size: 80%
|
||||
font-weight: 700
|
||||
border-radius: $base-line-height / 6
|
||||
padding: $base-line-height / 10 $base-line-height / 4
|
||||
margin: auto $base-line-height / 12
|
||||
.versionmodified
|
||||
font-style: italic
|
||||
|
||||
|
||||
// Mobile specific
|
||||
+media($mobile)
|
||||
.rst-content
|
||||
.sidebar
|
||||
width: 100%
|
|
@ -0,0 +1,67 @@
|
|||
// In here are varibles used for sphinx_rtd_theme, they either add to or overwrite the default ones
|
||||
// that are set in wyrm_core/wy_variables.sass. You'll find wyrm in bower_components if you're looking
|
||||
// for a reference.
|
||||
|
||||
$font-awesome-dir: "../fonts/"
|
||||
$static-img: "../img/"
|
||||
|
||||
$nav-content-width: 800px
|
||||
$nav-media-query: (($nav-desktop-width) + ($nav-content-width))
|
||||
|
||||
$mathjax-color: $text-color
|
||||
|
||||
$headerlink-color: $text-color
|
||||
|
||||
// Code colors
|
||||
$text-viewcode-color: $green
|
||||
$text-codexref-color: $text-color
|
||||
|
||||
// Definition list colors
|
||||
$class-color: $blue
|
||||
$method-color: $gray
|
||||
|
||||
// GUI label color
|
||||
$guilabel-color: $blue
|
||||
|
||||
// Footer colors
|
||||
$footer-color: $text-medium
|
||||
|
||||
// Menu colors
|
||||
$menu-vertical-background-color: $section-background-color
|
||||
|
||||
// Menu text colors
|
||||
$menu-color: $gray
|
||||
$menu-dark: lighten($menu-color,10%) !default
|
||||
$menu-medium: lighten($menu-color,27.5%) !default
|
||||
$menu-light: lighten($menu-color,45%) !default
|
||||
$menu-lighter: lighten($menu-color,60%) !default
|
||||
|
||||
// Menu link colors
|
||||
$menu-link-color: $text-color
|
||||
$menu-link-dark: $text-dark
|
||||
$menu-link-medium: $text-medium
|
||||
$menu-link-light: $text-lighter
|
||||
$menu-link-active: $white
|
||||
|
||||
// Navigation colors
|
||||
$nav-background-color: $menu-background-color
|
||||
$nav-search-background-color: $blue
|
||||
$nav-search-color: $section-background-color
|
||||
$nav-link-color: $blue
|
||||
$nav-link-color-visited: $purple
|
||||
$nav-link-color-hover: lighten($nav-link-color, 6%) !default
|
||||
$nav-link-color-alt: hsl(33, 100%, 51%)
|
||||
$nav-caption: desaturate($blue, 15%)
|
||||
|
||||
// Sidebar colors
|
||||
$sidebar-background-color: $table-stripe-color
|
||||
$sidebar-border-color: $table-border-color
|
||||
$sidebar-title-background-color: $table-border-color
|
||||
|
||||
// Sphinx highlight color
|
||||
$highlight-color: $yellow
|
||||
|
||||
$base-font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif
|
||||
$custom-font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif
|
||||
$custom-font-family2: Georgia, serif
|
||||
$code-font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace
|
|
@ -0,0 +1,16 @@
|
|||
// ------------------------------------------------------------
|
||||
// CONTRIBUTORS, PLEASE READ THIS!
|
||||
// ------------------------------------------------------------
|
||||
// This generates the RTD sticky badge for non RTD themes. As
|
||||
// always, only files labeled "theme_*.sass should be edited".
|
||||
// ------------------------------------------------------------
|
||||
$border-box-sizing: false !default
|
||||
|
||||
@import wyrm_core/wy_variables
|
||||
@import theme_variables
|
||||
@import bourbon
|
||||
@import neat
|
||||
@import wyrm_core/mixin
|
||||
@import wyrm_core/grid_settings
|
||||
@import _theme_badge_fa
|
||||
@import _theme_badge
|
|
@ -0,0 +1,50 @@
|
|||
// ------------------------------------------------------------
|
||||
// CONTRIBUTORS, PLEASE READ THIS!
|
||||
// ------------------------------------------------------------
|
||||
// This theme pulls from other frontend projects. The only
|
||||
// things you should edit are the sass files that start with
|
||||
// "theme_*.sass". All other files are loaded through bower.
|
||||
// ------------------------------------------------------------
|
||||
|
||||
// Variable defaults set by Wyrm
|
||||
@import wyrm_core/wy_variables
|
||||
|
||||
// Variable overrides that change coloring and fonts for this theme.
|
||||
@import theme_variables
|
||||
|
||||
// bourbon.io framework
|
||||
@import bourbon
|
||||
|
||||
// Bourbon.io/neat framework, with some default media queries
|
||||
@import wyrm_core/grid_settings
|
||||
@import neat
|
||||
// Some corrections for neat
|
||||
@import wyrm_core/neat_extra
|
||||
|
||||
// Custom reset
|
||||
@import wyrm_core/reset
|
||||
|
||||
// Wyrm mixins
|
||||
@import wyrm_core/mixin
|
||||
|
||||
// Font Awesome 4.0 with wyrm extras
|
||||
@import font-awesome
|
||||
@import wyrm_core/font_icon_defaults
|
||||
|
||||
// Wyrm core styles used in this theme
|
||||
@import wyrm_core/alert
|
||||
@import wyrm_core/button
|
||||
@import wyrm_core/dropdown
|
||||
@import wyrm_core/form
|
||||
@import wyrm_core/generic
|
||||
@import wyrm_core/table
|
||||
@import wyrm_core/type
|
||||
|
||||
// Theme specific styles. These are likely the files you want to edit.
|
||||
@import theme_breadcrumbs
|
||||
@import theme_layout
|
||||
@import theme_badge
|
||||
@import theme_rst
|
||||
@import theme_mathjax
|
||||
@import theme_font_awesome_compatibility
|
||||
@import theme_font_local
|
|
@ -0,0 +1,58 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""`sphinx_rtd_theme` lives on `Github`_.
|
||||
|
||||
.. _github: https://github.com/rtfd/sphinx_rtd_theme
|
||||
|
||||
"""
|
||||
from io import open
|
||||
from setuptools import setup
|
||||
from sphinx_rtd_theme import __version__
|
||||
|
||||
|
||||
setup(
|
||||
name='sphinx_rtd_theme',
|
||||
version=__version__,
|
||||
url='https://github.com/rtfd/sphinx_rtd_theme/',
|
||||
license='MIT',
|
||||
author='Dave Snider, Read the Docs, Inc. & contributors',
|
||||
author_email='dev@readthedocs.org',
|
||||
description='Read the Docs theme for Sphinx',
|
||||
long_description=open('README.rst', encoding='utf-8').read(),
|
||||
zip_safe=False,
|
||||
packages=['sphinx_rtd_theme'],
|
||||
package_data={'sphinx_rtd_theme': [
|
||||
'theme.conf',
|
||||
'*.html',
|
||||
'static/css/*.css',
|
||||
'static/js/*.js',
|
||||
'static/font/*.*'
|
||||
]},
|
||||
include_package_data=True,
|
||||
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
|
||||
entry_points = {
|
||||
'sphinx.html_themes': [
|
||||
'sphinx_rtd_theme = sphinx_rtd_theme',
|
||||
]
|
||||
},
|
||||
install_requires=[
|
||||
'sphinx'
|
||||
],
|
||||
classifiers=[
|
||||
'Framework :: Sphinx',
|
||||
'Framework :: Sphinx :: Theme',
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'License :: OSI Approved :: MIT License',
|
||||
'Environment :: Console',
|
||||
'Environment :: Web Environment',
|
||||
'Intended Audience :: Developers',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Operating System :: OS Independent',
|
||||
'Topic :: Documentation',
|
||||
'Topic :: Software Development :: Documentation',
|
||||
],
|
||||
)
|
|
@ -0,0 +1,20 @@
|
|||
"""Sphinx ReadTheDocs theme.
|
||||
|
||||
From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
|
||||
|
||||
"""
|
||||
from os import path
|
||||
|
||||
__version__ = '0.4.3'
|
||||
__version_full__ = __version__
|
||||
|
||||
|
||||
def get_html_theme_path():
|
||||
"""Return list of HTML theme paths."""
|
||||
cur_dir = path.abspath(path.dirname(path.dirname(__file__)))
|
||||
return cur_dir
|
||||
|
||||
|
||||
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
|
||||
def setup(app):
|
||||
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
|
|
@ -0,0 +1,82 @@
|
|||
{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
|
||||
|
||||
{% if page_source_suffix %}
|
||||
{% set suffix = page_source_suffix %}
|
||||
{% else %}
|
||||
{% set suffix = source_suffix %}
|
||||
{% endif %}
|
||||
|
||||
{% if meta is defined and meta is not none %}
|
||||
{% set check_meta = True %}
|
||||
{% else %}
|
||||
{% set check_meta = False %}
|
||||
{% endif %}
|
||||
|
||||
{% if check_meta and 'github_url' in meta %}
|
||||
{% set display_github = True %}
|
||||
{% endif %}
|
||||
|
||||
{% if check_meta and 'bitbucket_url' in meta %}
|
||||
{% set display_bitbucket = True %}
|
||||
{% endif %}
|
||||
|
||||
{% if check_meta and 'gitlab_url' in meta %}
|
||||
{% set display_gitlab = True %}
|
||||
{% endif %}
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
{% block breadcrumbs %}
|
||||
<li><a href="{{ pathto(master_doc) }}">{{ _('Docs') }}</a> »</li>
|
||||
{% for doc in parents %}
|
||||
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> »</li>
|
||||
{% endfor %}
|
||||
<li>{{ title }}</li>
|
||||
{% endblock %}
|
||||
{% block breadcrumbs_aside %}
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
{% if hasdoc(pagename) %}
|
||||
{% if display_github %}
|
||||
{% if check_meta and 'github_url' in meta %}
|
||||
<!-- User defined GitHub URL -->
|
||||
<a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% else %}
|
||||
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% endif %}
|
||||
{% elif display_bitbucket %}
|
||||
{% if check_meta and 'bitbucket_url' in meta %}
|
||||
<!-- User defined Bitbucket URL -->
|
||||
<a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||
{% else %}
|
||||
<a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ suffix }}?mode={{ theme_vcs_pageview_mode|default("view") }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||
{% endif %}
|
||||
{% elif display_gitlab %}
|
||||
{% if check_meta and 'gitlab_url' in meta %}
|
||||
<!-- User defined GitLab URL -->
|
||||
<a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{% else %}
|
||||
<a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{% endif %}
|
||||
{% elif show_source and source_url_prefix %}
|
||||
<a href="{{ source_url_prefix }}{{ pagename }}{{ suffix }}">{{ _('View page source') }}</a>
|
||||
{% elif show_source and has_source and sourcename %}
|
||||
<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endblock %}
|
||||
</ul>
|
||||
|
||||
{% if (theme_prev_next_buttons_location == 'top' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
|
||||
<div class="rst-breadcrumbs-buttons" role="navigation" aria-label="breadcrumb navigation">
|
||||
{% if next %}
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
{% endif %}
|
||||
{% if prev %}
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<hr/>
|
||||
</div>
|
|
@ -0,0 +1,54 @@
|
|||
<footer>
|
||||
{% if (theme_prev_next_buttons_location == 'bottom' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
{% if next %}
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n" rel="next">{{ _('Next') }} <span class="fa fa-arrow-circle-right"></span></a>
|
||||
{% endif %}
|
||||
{% if prev %}
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> {{ _('Previous') }}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
{%- if show_copyright %}
|
||||
{%- if hasdoc('copyright') %}
|
||||
{% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}{% endtrans %}
|
||||
{%- else %}
|
||||
{% trans copyright=copyright|e %}© Copyright {{ copyright }}{% endtrans %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{%- if build_id and build_url %}
|
||||
{% trans build_url=build_url, build_id=build_id %}
|
||||
<span class="build">
|
||||
Build
|
||||
<a href="{{ build_url }}">{{ build_id }}</a>.
|
||||
</span>
|
||||
{% endtrans %}
|
||||
{%- elif commit %}
|
||||
{% trans commit=commit %}
|
||||
<span class="commit">
|
||||
Revision <code>{{ commit }}</code>.
|
||||
</span>
|
||||
{% endtrans %}
|
||||
{%- elif last_updated %}
|
||||
<span class="lastupdated">
|
||||
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
|
||||
</span>
|
||||
{%- endif %}
|
||||
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{%- if show_sphinx %}
|
||||
{% trans %}Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>{% endtrans %}.
|
||||
{%- endif %}
|
||||
|
||||
{%- block extrafooter %} {% endblock %}
|
||||
|
||||
</footer>
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
{# TEMPLATE VAR SETTINGS #}
|
||||
{%- set url_root = pathto('', 1) %}
|
||||
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
|
||||
{%- if not embedded and docstitle %}
|
||||
{%- set titlesuffix = " — "|safe + docstitle|e %}
|
||||
{%- else %}
|
||||
{%- set titlesuffix = "" %}
|
||||
{%- endif %}
|
||||
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="{{ lang_attr }}" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="{{ lang_attr }}" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
{{ metatags }}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{% block htmltitle %}
|
||||
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
|
||||
{% endblock %}
|
||||
|
||||
{# FAVICON #}
|
||||
{% if favicon %}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||
{% endif %}
|
||||
{# CANONICAL URL #}
|
||||
{% if theme_canonical_url %}
|
||||
<link rel="canonical" href="{{ theme_canonical_url }}{{ pagename }}.html"/>
|
||||
{% endif %}
|
||||
|
||||
{# JAVASCRIPTS #}
|
||||
<script type="text/javascript" src="{{ pathto('_static/js/modernizr.min.js', 1) }}"></script>
|
||||
{%- if not embedded %}
|
||||
{# XXX Sphinx 1.8.0 made this an external js-file, quick fix until we refactor the template to inherert more blocks directly from sphinx #}
|
||||
{% if sphinx_version >= "1.8.0" %}
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="{{ pathto('', 1) }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
|
||||
{%- for scriptfile in script_files %}
|
||||
{{ js_tag(scriptfile) }}
|
||||
{%- endfor %}
|
||||
{% else %}
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'{{ url_root }}',
|
||||
VERSION:'{{ release|e }}',
|
||||
LANGUAGE:'{{ language }}',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
|
||||
HAS_SOURCE: {{ has_source|lower }},
|
||||
SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
|
||||
};
|
||||
</script>
|
||||
{%- for scriptfile in script_files %}
|
||||
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
<script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
|
||||
|
||||
{# OPENSEARCH #}
|
||||
{%- if use_opensearch %}
|
||||
<link rel="search" type="application/opensearchdescription+xml"
|
||||
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
|
||||
href="{{ pathto('_static/opensearch.xml', 1) }}"/>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{# CSS #}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
|
||||
{%- for css in css_files %}
|
||||
{%- if css|attr("rel") %}
|
||||
<link rel="{{ css.rel }}" href="{{ pathto(css.filename, 1) }}" type="text/css"{% if css.title is not none %} title="{{ css.title }}"{% endif %} />
|
||||
{%- else %}
|
||||
<link rel="stylesheet" href="{{ pathto(css, 1) }}" type="text/css" />
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
|
||||
{%- for cssfile in extra_css_files %}
|
||||
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
||||
{%- endfor %}
|
||||
|
||||
{%- block linktags %}
|
||||
{%- if hasdoc('about') %}
|
||||
<link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('genindex') %}
|
||||
<link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('search') %}
|
||||
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('copyright') %}
|
||||
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
|
||||
{%- endif %}
|
||||
{%- if next %}
|
||||
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
|
||||
{%- endif %}
|
||||
{%- if prev %}
|
||||
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
{%- block extrahead %} {% endblock %}
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
{% block extrabody %} {% endblock %}
|
||||
<div class="wy-grid-for-nav">
|
||||
{# SIDE NAV, TOGGLES ON MOBILE #}
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
|
||||
{% block sidebartitle %}
|
||||
|
||||
{% if logo and theme_logo_only %}
|
||||
<a href="{{ pathto(master_doc) }}">
|
||||
{% else %}
|
||||
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
|
||||
{% endif %}
|
||||
|
||||
{% if logo %}
|
||||
{# Not strictly valid HTML, but it's the only way to display/scale
|
||||
it properly, without weird scripting or heaps of work
|
||||
#}
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="Logo"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
|
||||
{% if theme_display_version %}
|
||||
{%- set nav_version = version %}
|
||||
{% if READTHEDOCS and current_version %}
|
||||
{%- set nav_version = current_version %}
|
||||
{% endif %}
|
||||
{% if nav_version %}
|
||||
<div class="version">
|
||||
{{ nav_version }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% include "searchbox.html" %}
|
||||
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
{% block menu %}
|
||||
{#
|
||||
The singlehtml builder doesn't handle this toctree call when the
|
||||
toctree is empty. Skip building this for now.
|
||||
#}
|
||||
{% if 'singlehtml' not in builder %}
|
||||
{% set global_toc = toctree(maxdepth=theme_navigation_depth|int,
|
||||
collapse=theme_collapse_navigation|tobool,
|
||||
includehidden=theme_includehidden|tobool,
|
||||
titles_only=theme_titles_only|tobool) %}
|
||||
{% endif %}
|
||||
{% if global_toc %}
|
||||
{{ global_toc }}
|
||||
{% else %}
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc">{{ toc }}</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
{# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
{% block mobile_nav %}
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="{{ pathto(master_doc) }}">{{ project }}</a>
|
||||
{% endblock %}
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
{%- block content %}
|
||||
{% if theme_style_external_links|tobool %}
|
||||
<div class="rst-content style-external-links">
|
||||
{% else %}
|
||||
<div class="rst-content">
|
||||
{% endif %}
|
||||
{% include "breadcrumbs.html" %}
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
{%- block document %}
|
||||
<div itemprop="articleBody">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
{% if self.comments()|trim %}
|
||||
<div class="articleComments">
|
||||
{% block comments %}{% endblock %}
|
||||
</div>
|
||||
{% endif%}
|
||||
</div>
|
||||
{%- endblock %}
|
||||
{% include "footer.html" %}
|
||||
</div>
|
||||
{%- endblock %}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
{% include "versions.html" %}
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable({{ 'true' if theme_sticky_navigation|tobool else 'false' }});
|
||||
});
|
||||
</script>
|
||||
|
||||
{# Do not conflict with RTD insertion of analytics script #}
|
||||
{% if not READTHEDOCS %}
|
||||
{% if theme_analytics_id %}
|
||||
<!-- Theme Analytics -->
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{ theme_analytics_id }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{%- block footer %} {% endblock %}
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,50 @@
|
|||
{#
|
||||
basic/search.html
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Template for the search page.
|
||||
|
||||
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
#}
|
||||
{%- extends "layout.html" %}
|
||||
{% set title = _('Search') %}
|
||||
{% set script_files = script_files + ['_static/searchtools.js'] %}
|
||||
{% block footer %}
|
||||
<script type="text/javascript">
|
||||
jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });
|
||||
</script>
|
||||
{# this is used when loading the search index using $.ajax fails,
|
||||
such as on Chrome for documents on localhost #}
|
||||
<script type="text/javascript" id="searchindexloader"></script>
|
||||
{{ super() }}
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
<noscript>
|
||||
<div id="fallback" class="admonition warning">
|
||||
<p class="last">
|
||||
{% trans %}Please activate JavaScript to enable the search
|
||||
functionality.{% endtrans %}
|
||||
</p>
|
||||
</div>
|
||||
</noscript>
|
||||
|
||||
{% if search_performed %}
|
||||
<h2>{{ _('Search Results') }}</h2>
|
||||
{% if not search_results %}
|
||||
<p>{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div id="search-results">
|
||||
{% if search_results %}
|
||||
<ul>
|
||||
{% for href, caption, context in search_results %}
|
||||
<li>
|
||||
<a href="{{ pathto(item.href) }}">{{ caption }}</a>
|
||||
<p class="context">{{ context|e }}</p>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -0,0 +1,9 @@
|
|||
{%- if builder != 'singlehtml' %}
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" method="get">
|
||||
<input type="text" name="q" placeholder="{{ _('Search docs') }}" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
{%- endif %}
|
|
@ -0,0 +1,18 @@
|
|||
[theme]
|
||||
inherit = basic
|
||||
stylesheet = css/theme.css
|
||||
pygments_style = default
|
||||
|
||||
[options]
|
||||
canonical_url =
|
||||
analytics_id =
|
||||
collapse_navigation = True
|
||||
sticky_navigation = True
|
||||
navigation_depth = 4
|
||||
includehidden = True
|
||||
titles_only =
|
||||
logo_only =
|
||||
display_version = True
|
||||
prev_next_buttons_location = bottom
|
||||
style_external_links = False
|
||||
style_nav_header_background =
|
|
@ -0,0 +1,37 @@
|
|||
{% if READTHEDOCS %}
|
||||
{# Add rst-badge after rst-versions for small badge style. #}
|
||||
<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: {{ current_version }}
|
||||
<span class="fa fa-caret-down"></span>
|
||||
</span>
|
||||
<div class="rst-other-versions">
|
||||
<dl>
|
||||
<dt>{{ _('Versions') }}</dt>
|
||||
{% for slug, url in versions %}
|
||||
<dd><a href="{{ url }}">{{ slug }}</a></dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{{ _('Downloads') }}</dt>
|
||||
{% for type, url in downloads %}
|
||||
<dd><a href="{{ url }}">{{ type }}</a></dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{{ _('On Read the Docs') }}</dt>
|
||||
<dd>
|
||||
<a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">{{ _('Builds') }}</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<hr/>
|
||||
{% trans %}Free document hosting provided by <a href="http://www.readthedocs.org">Read the Docs</a>.{% endtrans %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
bar
|
||||
===
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
master_doc = 'index'
|
||||
exclude_patterns = ['_build']
|
|
@ -0,0 +1,6 @@
|
|||
foo
|
||||
===
|
||||
|
||||
.. toctree::
|
||||
|
||||
bar
|
|
@ -0,0 +1,12 @@
|
|||
test-basic
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
|
||||
foo
|
||||
|
||||
Heading
|
||||
-------
|
||||
|
||||
Subheading
|
||||
~~~~~~~~~~
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
master_doc = 'index'
|
||||
exclude_patterns = ['_build']
|
|
@ -0,0 +1,10 @@
|
|||
test-empty
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
|
||||
Heading
|
||||
-------
|
||||
|
||||
Subheading
|
||||
~~~~~~~~~~
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
master_doc = 'index'
|
||||
exclude_patterns = ['_build']
|
|
@ -0,0 +1,2 @@
|
|||
test-missing-toctree
|
||||
====================
|
|
@ -0,0 +1,99 @@
|
|||
import os
|
||||
|
||||
import pytest
|
||||
import sphinx
|
||||
from sphinx import addnodes
|
||||
from sphinx.builders.html import SingleFileHTMLBuilder, DirectoryHTMLBuilder
|
||||
|
||||
from .util import build_all
|
||||
|
||||
|
||||
def test_basic():
|
||||
for (app, status, warning) in build_all('test-basic'):
|
||||
assert app.env.get_doctree('index').traverse(addnodes.toctree)
|
||||
content = open(os.path.join(app.outdir, 'index.html')).read()
|
||||
|
||||
if isinstance(app.builder, DirectoryHTMLBuilder):
|
||||
search = (
|
||||
'<div class="toctree-wrapper compound">\n'
|
||||
'<ul>\n'
|
||||
'<li class="toctree-l1">'
|
||||
'<a class="reference internal" href="foo/">foo</a>'
|
||||
'<ul>\n'
|
||||
'<li class="toctree-l2">'
|
||||
'<a class="reference internal" href="bar/">bar</a></li>\n'
|
||||
'</ul>\n'
|
||||
'</li>\n'
|
||||
'</ul>\n'
|
||||
'</div>'
|
||||
)
|
||||
assert search in content
|
||||
elif isinstance(app.builder, SingleFileHTMLBuilder):
|
||||
search = (
|
||||
'<div class="local-toc"><ul>\n'
|
||||
'<li class="toctree-l1">'
|
||||
'<a class="reference internal" href="index.html#document-foo">foo</a>'
|
||||
'<ul>\n'
|
||||
'<li class="toctree-l2">'
|
||||
'<a class="reference internal" href="index.html#document-bar">bar</a>'
|
||||
'</li>\n'
|
||||
'</ul>'
|
||||
)
|
||||
assert search in content
|
||||
else:
|
||||
search = (
|
||||
'<div class="toctree-wrapper compound">\n'
|
||||
'<ul>\n'
|
||||
'<li class="toctree-l1">'
|
||||
'<a class="reference internal" href="foo.html">foo</a>'
|
||||
'<ul>\n'
|
||||
'<li class="toctree-l2">'
|
||||
'<a class="reference internal" href="bar.html">bar</a></li>\n'
|
||||
'</ul>\n'
|
||||
'</li>\n'
|
||||
'</ul>\n'
|
||||
'</div>'
|
||||
)
|
||||
assert search in content, ('Missing search with builder {0}'
|
||||
.format(app.builder.name))
|
||||
|
||||
|
||||
def test_empty():
|
||||
"""Local TOC is showing, as toctree was empty"""
|
||||
for (app, status, warning) in build_all('test-empty'):
|
||||
assert app.env.get_doctree('index').traverse(addnodes.toctree)
|
||||
content = open(os.path.join(app.outdir, 'index.html')).read()
|
||||
if sphinx.version_info < (1, 4):
|
||||
if isinstance(app.builder, SingleFileHTMLBuilder):
|
||||
assert '<div class="toctree-wrapper compound">\n</div>' in content
|
||||
assert '<div class="local-toc">' in content
|
||||
else:
|
||||
global_toc = (
|
||||
'<div class="toctree-wrapper compound">\n'
|
||||
'<ul class="simple">\n</ul>\n'
|
||||
'</div>'
|
||||
)
|
||||
local_toc = (
|
||||
'<div class="local-toc"><ul class="simple">'
|
||||
'</ul>\n</div>'
|
||||
)
|
||||
assert global_toc in content
|
||||
assert local_toc not in content
|
||||
else:
|
||||
global_toc = '<div class="toctree-wrapper compound">\n</div>'
|
||||
local_toc = (
|
||||
'<div class="local-toc"><ul>\n'
|
||||
'<li><a class="reference internal" href="#">test-empty</a></li>'
|
||||
'</ul>\n</div>'
|
||||
)
|
||||
assert global_toc in content
|
||||
assert local_toc not in content
|
||||
|
||||
|
||||
def test_missing_toctree():
|
||||
"""Local TOC is showing, as toctree was missing"""
|
||||
for (app, status, warning) in build_all('test-missing-toctree'):
|
||||
assert app.env.get_doctree('index').traverse(addnodes.toctree) == []
|
||||
content = open(os.path.join(app.outdir, 'index.html')).read()
|
||||
assert '<div class="toctree' not in content
|
||||
assert '<div class="local-toc">' in content
|
|
@ -0,0 +1,60 @@
|
|||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
import shutil
|
||||
from contextlib import contextmanager
|
||||
|
||||
import pytest
|
||||
from sphinx.application import Sphinx
|
||||
|
||||
try:
|
||||
from StringIO import StringIO
|
||||
except ImportError:
|
||||
from io import StringIO
|
||||
|
||||
|
||||
@contextmanager
|
||||
def build(root, builder='html', **kwargs):
|
||||
tmpdir = tempfile.mkdtemp()
|
||||
|
||||
srcdir = os.path.join(os.path.dirname(__file__), 'roots', root)
|
||||
destdir = os.path.join(tmpdir, builder)
|
||||
doctreedir = os.path.join(tmpdir, 'doctree/')
|
||||
|
||||
status = StringIO()
|
||||
warning = StringIO()
|
||||
|
||||
kwargs.update({
|
||||
'status': status,
|
||||
'warning': warning,
|
||||
})
|
||||
|
||||
confoverrides = kwargs.pop('confoverrides', {})
|
||||
confoverrides['html_theme'] = 'sphinx_rtd_theme'
|
||||
extensions = confoverrides.get('extensions', [])
|
||||
extensions.append('readthedocs_ext.readthedocs')
|
||||
confoverrides['extensions'] = extensions
|
||||
kwargs['confoverrides'] = confoverrides
|
||||
|
||||
try:
|
||||
app = Sphinx(srcdir, srcdir, destdir, doctreedir, builder, **kwargs)
|
||||
app.builder.build_all()
|
||||
yield (app, status.getvalue(), warning.getvalue())
|
||||
except Exception as e:
|
||||
print('# root:', root)
|
||||
print('# builder:', builder)
|
||||
print('# source:', srcdir)
|
||||
print('# destination:', destdir)
|
||||
print('# status:', '\n' + status.getvalue())
|
||||
print('# warning:', '\n' + warning.getvalue())
|
||||
raise
|
||||
finally:
|
||||
shutil.rmtree(tmpdir)
|
||||
|
||||
|
||||
def build_all(root, **kwargs):
|
||||
for builder in ['html', 'singlehtml', 'readthedocs', 'readthedocsdirhtml',
|
||||
'readthedocssinglehtml', 'readthedocssinglehtmllocalmedia']:
|
||||
with build(root, builder, **kwargs) as ret:
|
||||
yield ret
|
|
@ -0,0 +1,32 @@
|
|||
[tox]
|
||||
envlist = py{27,34,35,36,37}-sphinx{13,14,15,16,17,18}, docs
|
||||
|
||||
[tox:travis]
|
||||
2.7 = py27-sphinx{13,14,15,16,17,18}
|
||||
3.4 = py34-sphinx{13,14,15,16,17,18}
|
||||
3.5 = py35-sphinx{13,14,15,16,17,18}
|
||||
3.6 = py36-sphinx{13,14,15,16,17,18}
|
||||
3.7 = py37-sphinx{13,14,15,16,17,18}
|
||||
|
||||
[testenv]
|
||||
setev =
|
||||
LANG=C
|
||||
deps =
|
||||
.
|
||||
readthedocs-sphinx-ext
|
||||
pytest
|
||||
sphinx13: Sphinx < 1.4
|
||||
sphinx14: Sphinx < 1.5
|
||||
sphinx15: Sphinx < 1.6
|
||||
sphinx16: Sphinx < 1.7
|
||||
sphinx17: Sphinx < 1.8
|
||||
sphinx18: Sphinx < 1.9
|
||||
commands =
|
||||
py.test {posargs}
|
||||
|
||||
[testenv:docs]
|
||||
changedir = {toxinidir}/docs
|
||||
deps =
|
||||
-r{toxinidir}/docs/requirements.txt
|
||||
commands =
|
||||
sphinx-build -b html -d {envtmpdir}/doctrees . {envtmpdir}/html
|
Loading…
Reference in New Issue