Initial commit
This commit is contained in:
@@ -0,0 +1,223 @@
|
||||
# .. coding: utf-8
|
||||
# $Id: __init__.py 8181 2017-09-22 10:29:55Z milde $
|
||||
# :Author: Günter Milde <milde@users.sf.net>
|
||||
# Based on the html4css1 writer by David Goodger.
|
||||
# :Maintainer: docutils-develop@lists.sourceforge.net
|
||||
# :Copyright: © 2005, 2009, 2015 Günter Milde,
|
||||
# portions from html4css1 © David Goodger.
|
||||
# :License: Released under the terms of the `2-Clause BSD license`_, in short:
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification,
|
||||
# are permitted in any medium without royalty provided the copyright
|
||||
# notice and this notice are preserved.
|
||||
# This file is offered as-is, without any warranty.
|
||||
#
|
||||
# .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause
|
||||
|
||||
# Use "best practice" as recommended by the W3C:
|
||||
# http://www.w3.org/2009/cheatsheet/
|
||||
|
||||
"""
|
||||
Plain HyperText Markup Language document tree Writer.
|
||||
|
||||
The output conforms to the `HTML5` specification.
|
||||
|
||||
The cascading style sheet "minimal.css" is required for proper viewing,
|
||||
the style sheet "plain.css" improves reading experience.
|
||||
"""
|
||||
__docformat__ = 'reStructuredText'
|
||||
|
||||
import os.path
|
||||
import docutils
|
||||
from docutils import frontend, nodes, writers, io
|
||||
from docutils.transforms import writer_aux
|
||||
from docutils.writers import _html_base
|
||||
|
||||
class Writer(writers._html_base.Writer):
|
||||
|
||||
supported = ('html', 'html5', 'html4', 'xhtml', 'xhtml10')
|
||||
"""Formats this writer supports."""
|
||||
|
||||
default_stylesheets = ['minimal.css','plain.css']
|
||||
default_stylesheet_dirs = ['.', os.path.abspath(os.path.dirname(__file__))]
|
||||
|
||||
default_template = 'template.txt'
|
||||
default_template_path = os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)), default_template)
|
||||
|
||||
settings_spec = (
|
||||
'HTML-Specific Options',
|
||||
None,
|
||||
(('Specify the template file (UTF-8 encoded). Default is "%s".'
|
||||
% default_template_path,
|
||||
['--template'],
|
||||
{'default': default_template_path, 'metavar': '<file>'}),
|
||||
('Comma separated list of stylesheet URLs. '
|
||||
'Overrides previous --stylesheet and --stylesheet-path settings.',
|
||||
['--stylesheet'],
|
||||
{'metavar': '<URL[,URL,...]>', 'overrides': 'stylesheet_path',
|
||||
'validator': frontend.validate_comma_separated_list}),
|
||||
('Comma separated list of stylesheet paths. '
|
||||
'Relative paths are expanded if a matching file is found in '
|
||||
'the --stylesheet-dirs. With --link-stylesheet, '
|
||||
'the path is rewritten relative to the output HTML file. '
|
||||
'Default: "%s"' % ','.join(default_stylesheets),
|
||||
['--stylesheet-path'],
|
||||
{'metavar': '<file[,file,...]>', 'overrides': 'stylesheet',
|
||||
'validator': frontend.validate_comma_separated_list,
|
||||
'default': default_stylesheets}),
|
||||
('Embed the stylesheet(s) in the output HTML file. The stylesheet '
|
||||
'files must be accessible during processing. This is the default.',
|
||||
['--embed-stylesheet'],
|
||||
{'default': 1, 'action': 'store_true',
|
||||
'validator': frontend.validate_boolean}),
|
||||
('Link to the stylesheet(s) in the output HTML file. '
|
||||
'Default: embed stylesheets.',
|
||||
['--link-stylesheet'],
|
||||
{'dest': 'embed_stylesheet', 'action': 'store_false'}),
|
||||
('Comma-separated list of directories where stylesheets are found. '
|
||||
'Used by --stylesheet-path when expanding relative path arguments. '
|
||||
'Default: "%s"' % default_stylesheet_dirs,
|
||||
['--stylesheet-dirs'],
|
||||
{'metavar': '<dir[,dir,...]>',
|
||||
'validator': frontend.validate_comma_separated_list,
|
||||
'default': default_stylesheet_dirs}),
|
||||
('Specify the initial header level. Default is 1 for "<h1>". '
|
||||
'Does not affect document title & subtitle (see --no-doc-title).',
|
||||
['--initial-header-level'],
|
||||
{'choices': '1 2 3 4 5 6'.split(), 'default': '1',
|
||||
'metavar': '<level>'}),
|
||||
('Format for footnote references: one of "superscript" or '
|
||||
'"brackets". Default is "brackets".',
|
||||
['--footnote-references'],
|
||||
{'choices': ['superscript', 'brackets'], 'default': 'brackets',
|
||||
'metavar': '<format>',
|
||||
'overrides': 'trim_footnote_reference_space'}),
|
||||
('Format for block quote attributions: one of "dash" (em-dash '
|
||||
'prefix), "parentheses"/"parens", or "none". Default is "dash".',
|
||||
['--attribution'],
|
||||
{'choices': ['dash', 'parentheses', 'parens', 'none'],
|
||||
'default': 'dash', 'metavar': '<format>'}),
|
||||
('Remove extra vertical whitespace between items of "simple" bullet '
|
||||
'lists and enumerated lists. Default: enabled.',
|
||||
['--compact-lists'],
|
||||
{'default': True, 'action': 'store_true',
|
||||
'validator': frontend.validate_boolean}),
|
||||
('Disable compact simple bullet and enumerated lists.',
|
||||
['--no-compact-lists'],
|
||||
{'dest': 'compact_lists', 'action': 'store_false'}),
|
||||
('Remove extra vertical whitespace between items of simple field '
|
||||
'lists. Default: enabled.',
|
||||
['--compact-field-lists'],
|
||||
{'default': True, 'action': 'store_true',
|
||||
'validator': frontend.validate_boolean}),
|
||||
('Disable compact simple field lists.',
|
||||
['--no-compact-field-lists'],
|
||||
{'dest': 'compact_field_lists', 'action': 'store_false'}),
|
||||
('Added to standard table classes. '
|
||||
'Defined styles: borderless, booktabs, '
|
||||
'align-left, align-center, align-right, colwidths-auto. '
|
||||
'Default: ""',
|
||||
['--table-style'],
|
||||
{'default': ''}),
|
||||
('Math output format (one of "MathML", "HTML", "MathJax", '
|
||||
'or "LaTeX") and option(s). '
|
||||
'Default: "HTML math.css"',
|
||||
['--math-output'],
|
||||
{'default': 'HTML math.css'}),
|
||||
('Prepend an XML declaration. (Thwarts HTML5 conformance.) '
|
||||
'Default: False',
|
||||
['--xml-declaration'],
|
||||
{'default': False, 'action': 'store_true',
|
||||
'validator': frontend.validate_boolean}),
|
||||
('Omit the XML declaration.',
|
||||
['--no-xml-declaration'],
|
||||
{'dest': 'xml_declaration', 'action': 'store_false'}),
|
||||
('Obfuscate email addresses to confuse harvesters while still '
|
||||
'keeping email links usable with standards-compliant browsers.',
|
||||
['--cloak-email-addresses'],
|
||||
{'action': 'store_true', 'validator': frontend.validate_boolean}),))
|
||||
|
||||
config_section = 'html5 writer'
|
||||
|
||||
def __init__(self):
|
||||
self.parts = {}
|
||||
self.translator_class = HTMLTranslator
|
||||
|
||||
|
||||
class HTMLTranslator(writers._html_base.HTMLTranslator):
|
||||
"""
|
||||
This writer generates `polyglot markup`: HTML5 that is also valid XML.
|
||||
|
||||
Safe subclassing: when overriding, treat ``visit_*`` and ``depart_*``
|
||||
methods as a unit to prevent breaks due to internal changes. See the
|
||||
docstring of docutils.writers._html_base.HTMLTranslator for details
|
||||
and examples.
|
||||
"""
|
||||
|
||||
# <acronym> tag not supported in HTML5. Use the <abbr> tag instead.
|
||||
def visit_acronym(self, node):
|
||||
# @@@ implementation incomplete ("title" attribute)
|
||||
self.body.append(self.starttag(node, 'abbr', ''))
|
||||
def depart_acronym(self, node):
|
||||
self.body.append('</abbr>')
|
||||
|
||||
# no standard meta tag name in HTML5, use separate "author" meta tags
|
||||
# https://www.w3.org/TR/html5/document-metadata.html#standard-metadata-names
|
||||
def visit_authors(self, node):
|
||||
self.visit_docinfo_item(node, 'authors', meta=False)
|
||||
for subnode in node:
|
||||
self.add_meta('<meta name="author" content="%s" />\n' %
|
||||
self.attval(subnode.astext()))
|
||||
def depart_authors(self, node):
|
||||
self.depart_docinfo_item()
|
||||
|
||||
# no standard meta tag name in HTML5, use dcterms.rights
|
||||
# see https://wiki.whatwg.org/wiki/MetaExtensions
|
||||
def visit_copyright(self, node):
|
||||
self.visit_docinfo_item(node, 'copyright', meta=False)
|
||||
self.add_meta('<meta name="dcterms.rights" content="%s" />\n'
|
||||
% self.attval(node.astext()))
|
||||
def depart_copyright(self, node):
|
||||
self.depart_docinfo_item()
|
||||
|
||||
# no standard meta tag name in HTML5, use dcterms.date
|
||||
def visit_date(self, node):
|
||||
self.visit_docinfo_item(node, 'date', meta=False)
|
||||
self.add_meta('<meta name="dcterms.date" content="%s" />\n'
|
||||
% self.attval(node.astext()))
|
||||
def depart_date(self, node):
|
||||
self.depart_docinfo_item()
|
||||
|
||||
# TODO: use HTML5 <footer> element?
|
||||
# def visit_footer(self, node):
|
||||
# def depart_footer(self, node):
|
||||
|
||||
# TODO: use the new HTML5 element <aside>? (Also for footnote text)
|
||||
# def visit_footnote(self, node):
|
||||
# def depart_footnote(self, node):
|
||||
|
||||
# Meta tags: 'lang' attribute replaced by 'xml:lang' in XHTML 1.1
|
||||
# HTML5/polyglot recommends using both
|
||||
def visit_meta(self, node):
|
||||
if node.hasattr('lang'):
|
||||
node['xml:lang'] = node['lang']
|
||||
# del(node['lang'])
|
||||
meta = self.emptytag(node, 'meta', **node.non_default_attributes())
|
||||
self.add_meta(meta)
|
||||
def depart_meta(self, node):
|
||||
pass
|
||||
|
||||
# no standard meta tag name in HTML5
|
||||
def visit_organization(self, node):
|
||||
self.visit_docinfo_item(node, 'organization', meta=False)
|
||||
def depart_organization(self, node):
|
||||
self.depart_docinfo_item()
|
||||
|
||||
# TODO: use the new HTML5 element <section>?
|
||||
# def visit_section(self, node):
|
||||
# def depart_section(self, node):
|
||||
|
||||
# TODO: use the new HTML5 element <aside>?
|
||||
# def visit_topic(self, node):
|
||||
# def depart_topic(self, node):
|
||||
Binary file not shown.
@@ -0,0 +1,276 @@
|
||||
/*
|
||||
* math2html: convert LaTeX equations to HTML output.
|
||||
*
|
||||
* Copyright (C) 2009,2010 Alex Fernández
|
||||
*
|
||||
* Released under the terms of the `2-Clause BSD license'_, in short:
|
||||
* Copying and distribution of this file, with or without modification,
|
||||
* are permitted in any medium without royalty provided the copyright
|
||||
* notice and this notice are preserved.
|
||||
* This file is offered as-is, without any warranty.
|
||||
*
|
||||
* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause
|
||||
*
|
||||
* Based on eLyXer: convert LyX source files to HTML output.
|
||||
* http://elyxer.nongnu.org/
|
||||
*/
|
||||
/* --end--
|
||||
* CSS file for LaTeX formulas.
|
||||
*/
|
||||
|
||||
/* Formulas */
|
||||
.formula {
|
||||
text-align: center;
|
||||
font-family: "Droid Serif", "DejaVu Serif", "STIX", serif;
|
||||
margin: 1.2em 0;
|
||||
}
|
||||
span.formula {
|
||||
white-space: nowrap;
|
||||
}
|
||||
div.formula {
|
||||
padding: 0.5ex;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* Basic features */
|
||||
a.eqnumber {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
clear: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.unknown {
|
||||
color: #800000;
|
||||
}
|
||||
span.ignored, span.arraydef {
|
||||
display: none;
|
||||
}
|
||||
.formula i {
|
||||
letter-spacing: 0.1ex;
|
||||
}
|
||||
|
||||
/* Alignment */
|
||||
.align-left, .align-l {
|
||||
text-align: left;
|
||||
}
|
||||
.align-right, .align-r {
|
||||
text-align: right;
|
||||
}
|
||||
.align-center, .align-c {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Structures */
|
||||
span.overline, span.bar {
|
||||
text-decoration: overline;
|
||||
}
|
||||
.fraction, .fullfraction {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
}
|
||||
.fraction .fraction {
|
||||
font-size: 80%;
|
||||
line-height: 100%;
|
||||
}
|
||||
span.numerator {
|
||||
display: block;
|
||||
}
|
||||
span.denominator {
|
||||
display: block;
|
||||
padding: 0ex;
|
||||
border-top: thin solid;
|
||||
}
|
||||
sup.numerator, sup.unit {
|
||||
font-size: 70%;
|
||||
vertical-align: 80%;
|
||||
}
|
||||
sub.denominator, sub.unit {
|
||||
font-size: 70%;
|
||||
vertical-align: -20%;
|
||||
}
|
||||
span.sqrt {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
padding: 0.1ex;
|
||||
}
|
||||
sup.root {
|
||||
font-size: 70%;
|
||||
position: relative;
|
||||
left: 1.4ex;
|
||||
}
|
||||
span.radical {
|
||||
display: inline-block;
|
||||
padding: 0ex;
|
||||
font-size: 150%;
|
||||
vertical-align: top;
|
||||
}
|
||||
span.root {
|
||||
display: inline-block;
|
||||
border-top: thin solid;
|
||||
padding: 0ex;
|
||||
vertical-align: middle;
|
||||
}
|
||||
span.symbol {
|
||||
line-height: 125%;
|
||||
font-size: 125%;
|
||||
}
|
||||
span.bigsymbol {
|
||||
line-height: 150%;
|
||||
font-size: 150%;
|
||||
}
|
||||
span.largesymbol {
|
||||
font-size: 175%;
|
||||
}
|
||||
span.hugesymbol {
|
||||
font-size: 200%;
|
||||
}
|
||||
span.scripts {
|
||||
display: inline-table;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.script {
|
||||
display: table-row;
|
||||
text-align: left;
|
||||
line-height: 150%;
|
||||
}
|
||||
span.limits {
|
||||
display: inline-table;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.limit {
|
||||
display: table-row;
|
||||
line-height: 99%;
|
||||
}
|
||||
sup.limit, sub.limit {
|
||||
line-height: 100%;
|
||||
}
|
||||
span.symbolover {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
float: right;
|
||||
right: 100%;
|
||||
bottom: 0.5em;
|
||||
width: 0px;
|
||||
}
|
||||
span.withsymbol {
|
||||
display: inline-block;
|
||||
}
|
||||
span.symbolunder {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
float: right;
|
||||
right: 80%;
|
||||
top: 0.3em;
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
/* Environments */
|
||||
span.array, span.bracketcases, span.binomial, span.environment {
|
||||
display: inline-table;
|
||||
text-align: center;
|
||||
border-collapse: collapse;
|
||||
margin: 0em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
span.arrayrow, span.binomrow {
|
||||
display: table-row;
|
||||
padding: 0ex;
|
||||
border: 0ex;
|
||||
}
|
||||
span.arraycell, span.bracket, span.case, span.binomcell, span.environmentcell {
|
||||
display: table-cell;
|
||||
padding: 0ex 0.2ex;
|
||||
line-height: 99%;
|
||||
border: 0ex;
|
||||
}
|
||||
/*
|
||||
* CSS file for LaTeX formulas, extra stuff:
|
||||
* binomials, vertical braces, stackrel, fonts and colors.
|
||||
*/
|
||||
|
||||
/* Inline binomials */
|
||||
span.binom {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
font-size: 80%;
|
||||
}
|
||||
span.binomstack {
|
||||
display: block;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
/* Over- and underbraces */
|
||||
span.overbrace {
|
||||
border-top: 2pt solid;
|
||||
}
|
||||
span.underbrace {
|
||||
border-bottom: 2pt solid;
|
||||
}
|
||||
|
||||
/* Stackrel */
|
||||
span.stackrel {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
}
|
||||
span.upstackrel {
|
||||
display: block;
|
||||
padding: 0em;
|
||||
font-size: 80%;
|
||||
line-height: 64%;
|
||||
position: relative;
|
||||
top: 0.15em;
|
||||
|
||||
}
|
||||
span.downstackrel {
|
||||
display: block;
|
||||
vertical-align: bottom;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
/* Fonts */
|
||||
span.mathsf, span.textsf {
|
||||
font-style: normal;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
span.mathrm, span.textrm {
|
||||
font-style: normal;
|
||||
font-family: serif;
|
||||
}
|
||||
span.text, span.textnormal {
|
||||
font-style: normal;
|
||||
}
|
||||
span.textipa {
|
||||
color: #008080;
|
||||
}
|
||||
span.fraktur {
|
||||
font-family: "Lucida Blackletter", eufm10, blackletter;
|
||||
}
|
||||
span.blackboard {
|
||||
font-family: Blackboard, msbm10, serif;
|
||||
}
|
||||
span.scriptfont {
|
||||
font-family: "Monotype Corsiva", "Apple Chancery", "URW Chancery L", cursive;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Colors */
|
||||
span.colorbox {
|
||||
display: inline-block;
|
||||
padding: 5px;
|
||||
}
|
||||
span.fbox {
|
||||
display: inline-block;
|
||||
border: thin solid black;
|
||||
padding: 2px;
|
||||
}
|
||||
span.boxed, span.framebox {
|
||||
display: inline-block;
|
||||
border: thin solid black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
/* Minimal style sheet for the HTML output of Docutils. */
|
||||
/* */
|
||||
/* :Author: Günter Milde, based on html4css1.css by David Goodger */
|
||||
/* :Id: $Id: minimal.css 8216 2018-06-05 13:37:44Z milde $ */
|
||||
/* :Copyright: © 2015 Günter Milde. */
|
||||
/* :License: Released under the terms of the `2-Clause BSD license`_, */
|
||||
/* in short: */
|
||||
/* */
|
||||
/* Copying and distribution of this file, with or without modification, */
|
||||
/* are permitted in any medium without royalty provided the copyright */
|
||||
/* notice and this notice are preserved. */
|
||||
/* */
|
||||
/* This file is offered as-is, without any warranty. */
|
||||
/* */
|
||||
/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
|
||||
|
||||
/* This CSS2.1_ stylesheet defines rules for Docutils elements without */
|
||||
/* HTML equivalent. It is required to make the document semantic visible. */
|
||||
/* */
|
||||
/* .. _CSS2.1: http://www.w3.org/TR/CSS2 */
|
||||
/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */
|
||||
|
||||
/* alignment of text and inline objects inside block objects*/
|
||||
.align-left { text-align: left; }
|
||||
.align-right { text-align: right; }
|
||||
.align-center { clear: both; text-align: center; }
|
||||
.align-top { vertical-align: top; }
|
||||
.align-middle { vertical-align: middle; }
|
||||
.align-bottom { vertical-align: bottom; }
|
||||
|
||||
/* titles */
|
||||
h1.title, p.subtitle {
|
||||
text-align: center;
|
||||
}
|
||||
p.admonition-title,
|
||||
p.topic-title,
|
||||
p.sidebar-title,
|
||||
p.rubric,
|
||||
p.system-message-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
h1 + p.subtitle,
|
||||
h1 + p.section-subtitle {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
h2 + p.section-subtitle { font-size: 1.28em; }
|
||||
p.subtitle,
|
||||
p.section-subtitle,
|
||||
p.sidebar-subtitle {
|
||||
font-weight: bold;
|
||||
margin-top: -0.5em;
|
||||
}
|
||||
p.sidebar-title,
|
||||
p.rubric {
|
||||
font-size: larger;
|
||||
}
|
||||
p.rubric { color: maroon; }
|
||||
a.toc-backref {
|
||||
color: black;
|
||||
text-decoration: none; }
|
||||
|
||||
/* Warnings, Errors */
|
||||
div.caution p.admonition-title,
|
||||
div.attention p.admonition-title,
|
||||
div.danger p.admonition-title,
|
||||
div.error p.admonition-title,
|
||||
div.warning p.admonition-title,
|
||||
div.system-messages h1,
|
||||
div.error,
|
||||
span.problematic,
|
||||
p.system-message-title {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* inline literals */
|
||||
span.docutils.literal {
|
||||
font-family: monospace;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
/* do not wraph at hyphens and similar: */
|
||||
.literal > span.pre { white-space: nowrap; }
|
||||
|
||||
/* Lists */
|
||||
|
||||
/* compact and simple lists: no margin between items */
|
||||
.simple li, .compact li,
|
||||
.simple ul, .compact ul,
|
||||
.simple ol, .compact ol,
|
||||
.simple > li p, .compact > li p,
|
||||
dl.simple > dd, dl.compact > dd {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* Table of Contents */
|
||||
div.topic.contents { margin: 0; }
|
||||
div.topic.contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
/* Enumerated Lists */
|
||||
ol.arabic { list-style: decimal }
|
||||
ol.loweralpha { list-style: lower-alpha }
|
||||
ol.upperalpha { list-style: upper-alpha }
|
||||
ol.lowerroman { list-style: lower-roman }
|
||||
ol.upperroman { list-style: upper-roman }
|
||||
|
||||
dt span.classifier { font-style: italic }
|
||||
dt span.classifier:before {
|
||||
font-style: normal;
|
||||
margin: 0.5em;
|
||||
content: ":";
|
||||
}
|
||||
|
||||
/* Field Lists and drivatives */
|
||||
/* bold field name, content starts on the same line */
|
||||
dl.field-list > dt,
|
||||
dl.option-list > dt,
|
||||
dl.docinfo > dt,
|
||||
dl.footnote > dt,
|
||||
dl.citation > dt {
|
||||
font-weight: bold;
|
||||
clear: left;
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
/* Offset for field content (corresponds to the --field-name-limit option) */
|
||||
dl.field-list > dd,
|
||||
dl.option-list > dd,
|
||||
dl.docinfo > dd {
|
||||
margin-left: 9em; /* ca. 14 chars in the test examples */
|
||||
}
|
||||
/* start field-body on a new line after long field names */
|
||||
dl.field-list > dd > *:first-child,
|
||||
dl.option-list > dd > *:first-child
|
||||
{
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
/* field names followed by a colon */
|
||||
dl.field-list > dt:after,
|
||||
dl.docinfo > dt:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
/* Bibliographic Fields (docinfo) */
|
||||
pre.address { font: inherit; }
|
||||
dd.authors > p { margin: 0; }
|
||||
|
||||
/* Option Lists */
|
||||
dl.option-list { margin-left: 40px; }
|
||||
dl.option-list > dt { font-weight: normal; }
|
||||
span.option { white-space: nowrap; }
|
||||
|
||||
/* Footnotes and Citations */
|
||||
dl.footnote.superscript > dd {margin-left: 1em; }
|
||||
dl.footnote.brackets > dd {margin-left: 2em; }
|
||||
dl > dt.label { font-weight: normal; }
|
||||
a.footnote-reference.brackets:before,
|
||||
dt.label > span.brackets:before { content: "["; }
|
||||
a.footnote-reference.brackets:after,
|
||||
dt.label > span.brackets:after { content: "]"; }
|
||||
a.footnote-reference.superscript,
|
||||
dl.footnote.superscript > dt.label {
|
||||
vertical-align: super;
|
||||
font-size: smaller;
|
||||
}
|
||||
dt.label > span.fn-backref { margin-left: 0.2em; }
|
||||
dt.label > span.fn-backref > a { font-style: italic; }
|
||||
|
||||
/* Line Blocks */
|
||||
div.line-block { display: block; }
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
/* Figures, Images, and Tables */
|
||||
.figure.align-left,
|
||||
img.align-left,
|
||||
object.align-left,
|
||||
table.align-left {
|
||||
margin-right: auto;
|
||||
}
|
||||
.figure.align-center,
|
||||
img.align-center,
|
||||
object.align-center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
display: block;
|
||||
}
|
||||
table.align-center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.figure.align-right,
|
||||
img.align-right,
|
||||
object.align-right,
|
||||
table.align-right {
|
||||
margin-left: auto;
|
||||
}
|
||||
/* reset inner alignment in figures and tables */
|
||||
/* div.align-left, div.align-center, div.align-right, */
|
||||
table.align-left, table.align-center, table.align-right
|
||||
{ text-align: inherit }
|
||||
|
||||
/* Admonitions and System Messages */
|
||||
div.admonition,
|
||||
div.system-message,
|
||||
div.sidebar{
|
||||
margin: 40px;
|
||||
border: medium outset;
|
||||
padding-right: 1em;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
div.sidebar {
|
||||
width: 30%;
|
||||
max-width: 26em;
|
||||
float: right;
|
||||
clear: right;
|
||||
}
|
||||
|
||||
/* Text Blocks */
|
||||
blockquote,
|
||||
div.topic,
|
||||
pre.literal-block,
|
||||
pre.doctest-block,
|
||||
pre.math,
|
||||
pre.code {
|
||||
margin-left: 1.5em;
|
||||
margin-right: 1.5em
|
||||
}
|
||||
pre.code .ln { color: gray; } /* line numbers */
|
||||
|
||||
/* Tables */
|
||||
table { border-collapse: collapse; }
|
||||
td, th {
|
||||
border-style: solid;
|
||||
border-color: silver;
|
||||
padding: 0 1ex;
|
||||
border-width: thin;
|
||||
}
|
||||
td > p:first-child, th > p:first-child { margin-top: 0; }
|
||||
td > p, th > p { margin-bottom: 0; }
|
||||
|
||||
table > caption {
|
||||
text-align: left;
|
||||
margin-bottom: 0.25em
|
||||
}
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.5em /* separate table cells */
|
||||
}
|
||||
@@ -0,0 +1,281 @@
|
||||
/* CSS31_ style sheet for the output of Docutils HTML writers. */
|
||||
/* Rules for easy reading and pre-defined style variants. */
|
||||
/* */
|
||||
/* :Author: Günter Milde, based on html4css1.css by David Goodger */
|
||||
/* :Id: $Id: plain.css 8229 2018-11-20 17:47:12Z milde $ */
|
||||
/* :Copyright: © 2015 Günter Milde. */
|
||||
/* :License: Released under the terms of the `2-Clause BSD license`_, */
|
||||
/* in short: */
|
||||
/* */
|
||||
/* Copying and distribution of this file, with or without modification, */
|
||||
/* are permitted in any medium without royalty provided the copyright */
|
||||
/* notice and this notice are preserved. */
|
||||
/* */
|
||||
/* This file is offered as-is, without any warranty. */
|
||||
/* */
|
||||
/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
|
||||
/* .. _CSS3: http://www.w3.org/TR/CSS3 */
|
||||
|
||||
|
||||
/* Document Structure */
|
||||
/* ****************** */
|
||||
|
||||
/* "page layout" */
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #dbdbdb;
|
||||
}
|
||||
div.document {
|
||||
line-height:1.3;
|
||||
counter-reset: table;
|
||||
/* counter-reset: figure; */
|
||||
/* avoid long lines --> better reading */
|
||||
/* OTOH: lines should not be too short because of missing hyphenation, */
|
||||
max-width: 50em;
|
||||
padding: 1px 2%; /* 1px on top avoids grey bar above title (mozilla) */
|
||||
margin: auto;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* Sections */
|
||||
|
||||
/* Transitions */
|
||||
|
||||
hr.docutils {
|
||||
width: 80%;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
/* ========== */
|
||||
|
||||
/* vertical space (parskip) */
|
||||
p, ol, ul, dl,
|
||||
div.line-block,
|
||||
table{
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
dl > dd {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
/* Lists */
|
||||
/* ========== */
|
||||
|
||||
/* Definition Lists */
|
||||
|
||||
dl > dd > p:first-child { margin-top: 0; }
|
||||
/* :last-child is not part of CSS 2.1 (introduced in CSS 3) */
|
||||
dl > dd > p:last-child { margin-bottom: 0; }
|
||||
|
||||
/* lists nested in definition lists */
|
||||
/* :only-child is not part of CSS 2.1 (introduced in CSS 3) */
|
||||
dd > ul:only-child, dd > ol:only-child { padding-left: 1em; }
|
||||
|
||||
/* Description Lists */
|
||||
/* styled like in most dictionaries, encyclopedias etc. */
|
||||
dl.description > dt {
|
||||
font-weight: bold;
|
||||
clear: left;
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
|
||||
/* Field Lists */
|
||||
|
||||
/* example for custom field-name width */
|
||||
dl.field-list.narrow > dd {
|
||||
margin-left: 5em;
|
||||
}
|
||||
/* run-in: start field-body on same line after long field names */
|
||||
dl.field-list.run-in > dd p {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Bibliographic Fields */
|
||||
|
||||
/* generally, bibliographic fields use special definition list dl.docinfo */
|
||||
/* but dedication and abstract are placed into "topic" divs */
|
||||
div.abstract p.topic-title {
|
||||
text-align: center;
|
||||
}
|
||||
div.dedication {
|
||||
margin: 2em 5em;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
div.dedication p.topic-title {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* Citations */
|
||||
dl.citation dt.label {
|
||||
font-weight: bold;
|
||||
}
|
||||
span.fn-backref {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* Text Blocks */
|
||||
/* ============ */
|
||||
|
||||
/* Literal Blocks */
|
||||
|
||||
/* Block Quotes */
|
||||
|
||||
blockquote > table,
|
||||
div.topic > table {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
blockquote p.attribution,
|
||||
div.topic p.attribution {
|
||||
text-align: right;
|
||||
margin-left: 20%;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
/* ====== */
|
||||
|
||||
/* th { vertical-align: bottom; } */
|
||||
|
||||
table tr { text-align: left; }
|
||||
|
||||
/* "booktabs" style (no vertical lines) */
|
||||
table.booktabs {
|
||||
border: 0;
|
||||
border-top: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
table.booktabs * {
|
||||
border: 0;
|
||||
}
|
||||
table.booktabs th {
|
||||
border-bottom: thin solid;
|
||||
}
|
||||
|
||||
/* numbered tables (counter defined in div.document) */
|
||||
table.numbered > caption:before {
|
||||
counter-increment: table;
|
||||
content: "Table " counter(table) ": ";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Explicit Markup Blocks */
|
||||
/* ====================== */
|
||||
|
||||
/* Footnotes and Citations */
|
||||
/* ----------------------- */
|
||||
|
||||
/* line on the left */
|
||||
dl.footnote {
|
||||
padding-left: 1ex;
|
||||
border-left: solid;
|
||||
border-left-width: thin;
|
||||
}
|
||||
|
||||
/* Directives */
|
||||
/* ---------- */
|
||||
|
||||
/* Body Elements */
|
||||
/* ~~~~~~~~~~~~~ */
|
||||
|
||||
/* Images and Figures */
|
||||
|
||||
/* let content flow to the side of aligned images and figures */
|
||||
.figure.align-left,
|
||||
img.align-left,
|
||||
object.align-left {
|
||||
display: block;
|
||||
clear: left;
|
||||
float: left;
|
||||
margin-right: 1em
|
||||
}
|
||||
.figure.align-right,
|
||||
img.align-right,
|
||||
object.align-right {
|
||||
display: block;
|
||||
clear: right;
|
||||
float: right;
|
||||
margin-left: 1em
|
||||
}
|
||||
/* Stop floating sidebars, images and figures at section level 1,2,3 */
|
||||
h1, h2, h3 { clear: both; }
|
||||
|
||||
/* Sidebar */
|
||||
|
||||
/* Move into the margin. In a layout with fixed margins, */
|
||||
/* it can be moved into the margin completely. */
|
||||
div.sidebar {
|
||||
width: 30%;
|
||||
max-width: 26em;
|
||||
margin-left: 1em;
|
||||
margin-right: -5.5%;
|
||||
background-color: #ffffee ;
|
||||
}
|
||||
|
||||
/* Code */
|
||||
|
||||
pre.code { padding: 0.7ex }
|
||||
pre.code, code { background-color: #eeeeee }
|
||||
pre.code .ln { color: gray; } /* line numbers */
|
||||
/* basic highlighting: for a complete scheme, see */
|
||||
/* http://docutils.sourceforge.net/sandbox/stylesheets/ */
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||||
|
||||
/* Math */
|
||||
/* styled separately (see math.css for math-output=HTML) */
|
||||
|
||||
/* Epigraph */
|
||||
/* Highlights */
|
||||
/* Pull-Quote */
|
||||
/* Compound Paragraph */
|
||||
/* Container */
|
||||
|
||||
/* can be styled in a custom stylesheet */
|
||||
|
||||
/* Document Header and Footer */
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
/* Inline Markup */
|
||||
/* ============= */
|
||||
|
||||
/* Emphasis */
|
||||
/* em */
|
||||
/* Strong Emphasis */
|
||||
/* strong */
|
||||
/* Interpreted Text */
|
||||
/* span.interpreted */
|
||||
/* Title Reference */
|
||||
/* cite */
|
||||
/* Inline Literals */
|
||||
/* possible values: normal, nowrap, pre, pre-wrap, pre-line */
|
||||
/* span.docutils.literal { white-space: pre-wrap; } */
|
||||
|
||||
/* Hyperlink References */
|
||||
a { text-decoration: none; }
|
||||
|
||||
/* External Targets */
|
||||
/* span.target.external */
|
||||
/* Internal Targets */
|
||||
/* span.target.internal */
|
||||
/* Footnote References */
|
||||
/* a.footnote-reference */
|
||||
/* Citation References */
|
||||
/* a.citation-reference */
|
||||
@@ -0,0 +1,8 @@
|
||||
%(head_prefix)s
|
||||
%(head)s
|
||||
%(stylesheet)s
|
||||
%(body_prefix)s
|
||||
%(body_pre_docinfo)s
|
||||
%(docinfo)s
|
||||
%(body)s
|
||||
%(body_suffix)s
|
||||
Reference in New Issue
Block a user