changeset 934:519b14c5260d

(issue89) Add sphinx better theme
author Andre Heinecke <andre.heinecke@intevation.de>
date Fri, 22 Aug 2014 17:16:53 +0200
parents af27328bea9d
children e977f7a0e8fd
files manuals/theme/better/__init__.py manuals/theme/better/layout.html manuals/theme/better/relbar.html manuals/theme/better/searchbox.html manuals/theme/better/static/better.css_t manuals/theme/better/static/better_basic.css_t manuals/theme/better/theme.conf
diffstat 7 files changed, 968 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/manuals/theme/better/__init__.py	Fri Aug 22 17:16:53 2014 +0200
@@ -0,0 +1,3 @@
+import os
+better_theme_path = os.path.split(os.path.dirname(__file__))[0]
+__version__ = '0.1.5'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/manuals/theme/better/layout.html	Fri Aug 22 17:16:53 2014 +0200
@@ -0,0 +1,95 @@
+{%- extends "basic/layout.html" %}
+{%- from "relbar.html" import relbar_top with context %}
+{%- from "relbar.html" import relbar_bottom with context %}
+
+{#- ### head ### -#}
+
+{%- block extrahead %}
+
+  {#- make mobile reasonable #}
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+
+  {%- for css_file in theme_cssfiles %}
+    {%- if css_file.startswith('http') %}
+      <link rel="stylesheet" href="{{ css_file }}" type="text/css" />
+    {%- else %}
+      <link rel="stylesheet" href="{{ pathto(css_file, 1) }}" type="text/css" />
+    {%- endif %}
+  {%- endfor %}
+
+  {%- for js_file in theme_scriptfiles %}
+    <script src="{{ pathto(js_file, 1) }}" type="text/javascript"></script>
+  {%- endfor %}
+
+  {%- if theme_inlinecss %}
+    <style type="text/css">{{ theme_inlinecss|safe }}</style>
+  {%- endif %}
+
+  {%- block userhead %}
+  {%- endblock %}
+{%- endblock %}
+
+{#- ### content ### -#}
+
+{%- block header %}
+  {%- if theme_showheader|tobool %}
+    <header id="pageheader"><h1><a href="{{ pathto(master_doc) }} ">
+        {{ docstitle }}
+    </a></h1></header>
+  {%- endif %}
+{%- endblock %}
+
+{%- block relbar1 -%}{{ relbar_top() }}{%- endblock -%}
+{%- block relbar2 -%}{{ relbar_bottom() }}{%- endblock -%}
+
+{%- block footer %}
+  <footer id="pagefooter">
+
+    {%- if show_copyright %}
+      {%- if hasdoc('copyright') %}
+        {% trans path=pathto('copyright'), copyright=copyright|e %}
+          <a href="{{ path }}">&copy; {{ copyright }} </a>.
+        {% endtrans %}
+      {%- else %}
+        {%- trans copyright=copyright|e -%}
+          &copy; {{ copyright }}.
+        {%- endtrans %}
+      {%- endif %}
+    {%- endif %}
+
+    {%- if last_updated %}
+      {%- trans last_updated=last_updated|e -%}
+        Last updated on {{ last_updated }}.
+      {%- endtrans %}
+    {%- endif %}
+
+    {%- if show_sphinx %}
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a>
+      {{ sphinx_version }}
+      {%- if theme_linktotheme|tobool %}
+        with the <a href="http://github.com/irskep/sphinx-better-theme">
+          better</a> theme
+      {%- endif %}.
+    {%- else %}
+      {%- if theme_linktotheme %}
+        This site uses the
+        <a href="http://github.com/irskep/sphinx-better-theme">
+        &ldquo;better&rdquo;</a>
+        theme for Sphinx.
+      {%- endif %}
+    {%- endif %}
+
+  </footer>
+
+  {% if theme_ga_ua %}
+    <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','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', '{{ theme_ga_ua }}', '{{ theme_ga_domain }}');
+      ga('send', 'pageview');
+    </script>
+  {% endif %}
+{%- endblock %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/manuals/theme/better/relbar.html	Fri Aug 22 17:16:53 2014 +0200
@@ -0,0 +1,52 @@
+{%- macro rellink_markup() %}
+  <nav id="rellinks">
+    <ul>
+      {%- if prev %}
+        <li>
+          &larr;
+          <a href="{{ prev.link|e }}" title="Previous document">{{ prev.title }}</a>
+        </li>
+      {%- endif %}
+      {%- if next %}
+        <li>
+          <a href="{{ next.link|e }}" title="Next document">{{ next.title }}</a>
+          &rarr;
+        </li>
+      {%- endif %}
+    </ul>
+  </nav>
+{%- endmacro %}
+
+{%- macro breadcrumbs_markup() %}
+  <nav id="breadcrumbs">
+    <ul>
+      {%- block rootrellink %}
+      <li><a href="{{ pathto(master_doc) }}">{{ shorttitle|e }}</a></li>
+      {%- endblock %}
+      {%- for parent in parents %}
+      <li>
+        <a href="{{ parent.link|e }}">{{ parent.title }}</a>
+      </li>
+      {%- endfor %}
+      {%- block relbaritems %} {% endblock %}
+    </ul>
+  </nav>
+{%- endmacro %}
+
+{%- macro relbar_top() %}
+  {%- if theme_showrelbartop|tobool %}
+  <div class="related top">
+    {{- rellink_markup () }}
+    {{- breadcrumbs_markup() }}
+  </div>
+  {%- endif %}
+{%- endmacro %}
+
+{%- macro relbar_bottom() %}
+  {%- if theme_showrelbarbottom|tobool %}
+  <div class="related bottom">
+    {{- rellink_markup () }}
+    {{- breadcrumbs_markup() }}
+  </div>
+  {%- endif %}
+{%- endmacro %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/manuals/theme/better/searchbox.html	Fri Aug 22 17:16:53 2014 +0200
@@ -0,0 +1,11 @@
+{%- if pagename != "search" %}
+<form class="search" action="{{ pathto('search') }}" method="get">
+  <input type="text" name="q"
+   placeholder="{{ _('type to search') }}" />
+  {#- I have not been able to make this look good. #}
+  {#- <input type="submit" value="{{ _('Search') }}" /> #}
+  <input type="hidden" name="check_keywords" value="yes" />
+  <input type="hidden" name="area" value="default" />
+</form>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+{%- endif %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/manuals/theme/better/static/better.css_t	Fri Aug 22 17:16:53 2014 +0200
@@ -0,0 +1,324 @@
+@import url("better_basic.css");
+
+{% set theme_headtextcolor = theme_headtextcolor or theme_textcolor %}
+{% set theme_footertextcolor = theme_footertextcolor or theme_textcolor %}
+
+/* main styles */
+
+body {
+    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+    font-size: 100%;
+    color: {{ theme_textcolor }};
+    margin: 0;
+    padding: 0;
+    line-height: 135%;
+}
+
+a {
+    color: #008;
+    text-decoration: none;
+}
+
+a:visited {
+    color: #208;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+a.toc-backref {
+    color: {{ theme_headtextcolor }};
+}
+
+p {
+    margin: 1rem 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    margin-top: 1em;
+    margin-bottom: 0.5em;
+    color: {{ theme_headtextcolor }};
+    line-height: 135%;
+}
+
+.body .section:first-child > :first-child,
+.sphinxsidebarwrapper > :first-child,
+.sphinxsidebar .search:first-child
+{
+    margin-top: 1rem;
+}
+
+h1 { font-size: 1.5rem; font-weight: bold; }
+h2 { font-size: 1.5rem; font-weight: normal; }
+h3 { font-size: 1.25rem; font-weight: bold; }
+h4 { font-size: 1.25rem; font-weight: normal; }
+h5 { font-size: 1rem; font-weight: bold; }
+h6 { font-size: 1rem; font-weight: normal; }
+
+/* page-level layout of containers */
+
+header#pageheader, footer#pagefooter, .related, .document {
+    width: 100%;
+    max-width: 60rem;
+    margin: auto;
+}
+
+.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+.bodywrapper {
+    {% if theme_rightsidebar|tobool -%}
+    margin: 0 {{ theme_sidebarwidth }} 0 0;
+    {%- else -%}
+    margin: 0 0 0 {{ theme_sidebarwidth }};
+    {%- endif %}
+}
+
+footer#pagefooter, footer#pagefooter a {
+    color: {{ theme_footertextcolor }};
+}
+
+
+footer#pagefooter {
+    padding-top: 2rem;
+    padding-bottom: 2rem;
+    text-align: center;
+}
+
+footer#pagefooter a {
+    text-decoration: underline;
+}
+
+/* header styles */
+
+body > header h1 a, body > header h1 a:visited {
+    color: {{ theme_headtextcolor }};
+}
+
+a.headerlink {
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+}
+
+/* code styles */
+
+pre, tt {
+    background-color: #eee;
+    color: #333;
+}
+
+pre {
+    font-family: Monaco, Consolas, "Lucida Console", monospace;
+    margin: 1rem -5px;
+    padding: 5px;
+    border-left: none;
+    border-right: none;
+    font-size: 0.8rem;
+    line-height: 1rem;
+}
+
+tt {
+    padding: 0 1px 0 1px;
+    font-family: Consolas, Monaco, monospace;
+}
+
+/* API doc styles */
+
+dl.function,
+dl.class,
+dl.method,
+dl.attribute,
+dl.data,
+dl.classmethod {
+    margin-bottom: 2rem;
+}
+
+/* relbar */
+
+.related {
+    line-height: 30px;
+    width: 100%;
+    font-size: 0.9rem;
+}
+
+.related.top {
+    border-bottom: 1px solid #aaa;
+}
+
+.related.bottom {
+    border-top: 1px solid #aaa;
+}
+
+.related ul {
+    padding: 0;
+    margin: 0;
+    list-style: none;
+}
+
+.related li {
+    display: inline;
+}
+
+nav#rellinks {
+    float: right;
+}
+
+nav#rellinks li+li:before {
+    content: "|";
+}
+
+nav#breadcrumbs li+li:before {
+    content: "\00BB";
+}
+
+/* sidebar */
+
+.sphinxsidebarwrapper {
+    padding: 0 1rem 0 0;
+}
+
+.sphinxsidebar {
+    width: {{ theme_sidebarwidth }};
+    margin-left: -100%;
+    font-size: 0.9rem;
+    {%- if theme_rightsidebar|tobool %}
+    float: right;
+    {%- else %}
+    float: left;
+    {%- endif %}
+}
+
+.sphinxsidebar h3 a {
+    color: {{ theme_headtextcolor }};
+}
+
+.sphinxsidebar p.topless {
+    margin: 5px 10px 10px 10px;
+}
+
+.sphinxsidebar ul {
+    margin: 0;
+    padding: 0;
+    margin-bottom: 1rem;
+    list-style: none;
+}
+
+.sphinxsidebar ul ul,
+.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+.sphinxsidebar input {
+    box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+    height: 1.5rem;
+    font-size: 0.9rem;
+    margin: 0;
+
+    background-color: white;
+    border: 1px solid #ccc;
+    color: #555;
+}
+
+.sphinxsidebar .search {
+    margin-top: 2rem;
+}
+
+.sphinxsidebar .search input[type=text] {
+    {#- width: calc({{ theme_sidebarwidth }} - 5rem); #}
+    {#- width: -webkit-calc({{ theme_sidebarwidth }} - 5rem); #}
+    width: 90%;
+    display: inline-block;
+}
+
+.sphinxsidebar .search input[type=submit] {
+    width: 4rem;
+    display: inline-block;
+}
+
+/* paragraph-level markup */
+
+.admonition p.admonition-title + p {
+    display: inline;
+}
+
+.admonition p {
+    margin-bottom: 5px;
+}
+
+.admonition pre {
+    margin-bottom: 5px;
+}
+
+.admonition ul, .admonition ol {
+    margin-bottom: 5px;
+}
+
+p.admonition-title {
+    display: inline;
+    margin-right: 0;
+}
+
+p.admonition-title:after {
+    content: ":";
+}
+
+.note {
+    background-color: #eee;
+    border: 1px solid #ccc;
+}
+
+.seealso {
+    background-color: #ffc;
+    border: 1px solid #ff6;
+}
+
+.topic {
+    background-color: #eee;
+}
+
+.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+
+.warning tt {
+    background: #efc2c2;
+}
+
+.note tt {
+    background: #d6d6d6;
+}
+
+.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
+}
+
+/* responsive styles */
+
+@media (max-width: 820px) {
+    /* kill the sidebar */
+    .bodywrapper { margin: 0; }
+    .sphinxsidebar {
+        display: none;
+    }
+    header#pageheader, footer#pagefooter, .related, .document {
+        margin: 0 1rem;
+        width: calc(100% - 2rem);
+        width: -webkit-calc(100% - 2rem);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/manuals/theme/better/static/better_basic.css_t	Fri Aug 22 17:16:53 2014 +0200
@@ -0,0 +1,455 @@
+/* basic.css_t from Sphinx project modified for sphinx-better-theme */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+    width: 100%;
+}
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+div.modindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.field-list ul {
+    padding-left: 1em;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+img.align-left, .figure.align-left, object.align-left {
+    clear: left;
+    float: left;
+    margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+    clear: right;
+    float: right;
+    margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.align-left {
+    text-align: left;
+}
+
+.align-center {
+    text-align: center;
+}
+
+.align-right {
+    text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 5px;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+table.citation {
+    border-left: solid 1px gray;
+    margin-left: 1px;
+}
+
+table.citation td {
+    border-bottom: none;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+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;
+}
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, .highlighted {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.refcount {
+    color: #060;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #ffa;
+}
+
+.line-block {
+    display: block;
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+
+.line-block .line-block {
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+    font-family: sans-serif;
+}
+
+.accelerator {
+    text-decoration: underline;
+}
+
+.classifier {
+    font-style: oblique;
+}
+
+abbr, acronym {
+    border-bottom: dotted 1px;
+    cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    overflow: auto;
+    overflow-y: hidden;  /* fixes display issues on Chrome browsers */
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+.viewcode-link {
+    float: right;
+}
+
+.viewcode-back {
+    float: right;
+    font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+    margin: -1px -10px;
+    padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+    div.document,
+    div.documentwrapper,
+    div.bodywrapper {
+        margin: 0 !important;
+        width: 100%;
+    }
+
+    div.sphinxsidebar,
+    div.related,
+    div.footer,
+    #top-link {
+        display: none;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/manuals/theme/better/theme.conf	Fri Aug 22 17:16:53 2014 +0200
@@ -0,0 +1,28 @@
+[theme]
+inherit = basic
+stylesheet = better.css
+pygments_style = sphinx
+
+[options]
+rightsidebar = false
+inlinecss =
+cssfiles =
+scriptfiles =
+ga_ua =
+ga_domain =
+
+showrelbartop = true
+showrelbarbottom = true
+showheader = true
+linktotheme = true
+
+# css shortcuts that should decrease as the markup improves
+
+## page width is determined by CSS
+sidebarwidth     = 15rem
+
+## headtextcolor (color of h* tags) and footertextcolor default to the value
+## of textcolor
+textcolor        = #000000
+headtextcolor    =
+footertextcolor  =

http://wald.intevation.org/projects/trustbridge/