Bootstrap based theme for Fuel docs

Change-Id: I56f01b2320c08b9fe7734f4e9568ce34d6b7e1e9
This commit is contained in:
Jim Phillips 2015-02-25 16:36:07 -05:00
parent 951cd4d5df
commit 14c1482f9f
42 changed files with 1732 additions and 1082 deletions

View File

@ -31,7 +31,7 @@ To get started, you need to install all necesasary tools.
On Debian/Ubuntu:
sudo apt-get install git python-pip python-dev make imagemagick libjpeg-dev inkscape aspell
sudo apt-get install git python-pip python-dev make imagemagick libjpeg-dev inkscape aspell python-pillow
On Fedora:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

135
_templates/layout.html Normal file
View File

@ -0,0 +1,135 @@
{# Import the theme's layout. #}
{% extends "!layout.html" %}
{# Custom CSS overrides #}
{% set bootswatch_css_custom = ['_static/styles.css'] %}
{% block footer %}
<footer>
<div id="text-5" class="widget widget_text">
<div class="textwidget">
<div class="container">
<div class="row">
<div class="col-md-4 col-sm-4">
<div class="row">
<div class="col-md-6 leftplz">
<ul>
<li><a itemprop="url name" class="fmenu_section" title="Mirantis OpenStack" href="http://software.mirantis.com">Software</a></li>
<li><a itemprop="url name" title="Download Mirantis OpenStack" href="http://software.mirantis.com">Downloads</a></li>
<li><a itemprop="url name" title="Mirantis OpenStack - Core" href="http://software.mirantis.com/core-openstack/">Core OpenStack</a></li>
<li><a itemprop="url name" title="Mirantis OpenStack - Projects" href="http://software.mirantis.com/key-related-openstack-projects/">Key Related Projects</a></li>
<li><a itemprop="url name" title="Mirantis OpenStack Plug-ins & Drivers" href="http://software.mirantis.com/plugins-and-drivers/">Plug-ins & Drivers</a></li>
</ul>
</div>
<div class="col-md-6 leftplz">
<ul>
<li><a itemprop="url name" class="fmenu_section" title="OpenStack Services" href="http://www.mirantis.com/openstack-services/">Services</a></li>
<li><a itemprop="url name" title="OpenStack Solutions Engineering" href="http://www.mirantis.com/openstack-services/solutions-engineering/">Solutions Engineering</a></li>
<li><a itemprop="url name" title="OpenStack Custom Deployment" href="http://www.mirantis.com/openstack-services/custom-deployment/">Custom Deployment</a></li>
<li><a itemprop="url name" title="OpenStack Custom Support" href="http://www.mirantis.com/openstack-services/custom-support/">Custom Support</a></li>
<li><a itemprop="url name" title="OpenStack Drivers" href="http://www.mirantis.com/openstack-services/driver-development/">Drivers</a></li>
</ul>
</div>
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="row">
<div class="col-md-6 leftplz">
<ul>
<li><a itemprop="url name" title="OpenStack Training" class="fmenu_section" href="http://training.mirantis.com">Training</a></li>
<li><a itemprop="url name" title="OpenStack Certification" href="http://training.mirantis.com/certification">OpenStack Certification</a></li>
<li><a itemprop="url name" title="Mirantis OpenStack Administration" href="http://training.mirantis.com/course/openstack-bootcamp">OpenStack Bootcamp</a></li>
<li><a itemprop="url name" title="OpenStack Onsite Training" href="http://training.mirantis.com/training/onsite.html">Onsite Training</a></li>
<li><a itemprop="url name" title="OpenStack Instructors" href="http://training.mirantis.com/meet-our-instructors">Our Instructors</a></li>
<li><a itemprop="url name" title="Online Resources" href="http://training.mirantis.com/online-resources">Online Resources</a></li>
</ul>
</div>
<div class="col-md-6 leftplz">
<ul>
<li><a itemprop="url name" class="fmenu_section" href="http://www.mirantis.com/openstack/">OpenStack:Now</a></li>
<li><a itemprop="url name" title="OpenStack Blog" href="http://www.mirantis.com/blog/">Blog</a></li>
<li><a itemprop="url name" title="OpenStack News" href="http://www.mirantis.com/openstack/news/">News</a></li>
<li><a itemprop="url name" title="OpenStack Tutorials" href="http://www.mirantis.com/openstack/tutorials/">Tutorials</a></li>
</ul>
</div>
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="row">
<div class="col-md-6 leftplz">
<ul>
<li><a itemprop="url name" class="fmenu_section" href="http://www.mirantis.com/openstack-use-cases/">Use Cases</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/openstack-use-cases/saas-web/">SaaS/Web Vendors</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/openstack-use-cases/service-providers/">Service Providers</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/openstack-use-cases/enterprise-private-cloud/">Enterprise Cloud</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/openstack-use-cases/infrastructure-technology/">Infrastructure Vendors</a></li>
</ul>
</div>
<div class="col-md-6 leftplz">
<ul><!-- www.mirantis.com -->
<li><a itemprop="url name" class="fmenu_section" href="http://www.mirantis.com/company/about-pure-play-openstack/">Company</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/our-philosophy/">Our Philosophy</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/customer-successes/">Customer Successes</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/careers/">Careers</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/contact/">CONTACT/LOCATIONS</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/leadership/">Leadership</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/investors/">Investors</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/leadership/board-of-directors/">Board of Directors</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/partners/">Partners</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/press-center/info/">Press Center</a></li>
<li><a itemprop="url name" href="http://www.mirantis.com/company/privacy-policy/">Privacy Policy</a></li>
</ul>
</div>
</div>
</div>
</div></div>
<div class="clear"></div>
<div class="footer_copy">
<div class="container">
<div class="row">
<div class="col-md-3 col-sm-3 col-logo">
<span class="mira_btm">Mirantis Inc.</span> <br>
<span class="pureplay_btm"><em>Pure Play OpenStack.</em></span>
</div>
<div class="col-md-4 col-sm-4 col-copy">
<span class="copy_btm">&copy; 2005 - 2015 All Rights Reserved</span>
<span class="copy_btm_text">All rights reserved. "Mirantis" and "FUEL" are are registered trademarks of Mirantis, Inc. All other trademarks are the property of their respective owners.</span>
</div>
<div class="col-md-5 col-sm-5 col-address">
<span class="mira_btm">615 National Avenue, Suite 100 Mountain View, CA 94043<br>+1-650-963-9828</span>
</div>
</div>
<div class="row">
<div class="col-md-3 col-sm-3 col-logo">
</div>
<div class="col-md-4 col-sm-4 cc">
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.
</div>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
</footer>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id={{ theme_googletag }}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','{{ theme_googletag }}');</script>
<!-- End Google Tag Manager -->
{% endblock %}

View File

@ -98,4 +98,3 @@ styles:
# alignment: TA_JUSTIFY
# hyphenation: true

View File

@ -1,13 +0,0 @@
<div class="doc-license">
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US">
<img alt="Creative Commons License" style="border-width:0"
src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" />
</a><br />
Mirantis Fuel for OpenStack Documentation by
<a href="http://www.mirantis.com">Mirantis Inc.</a>
is licensed under a
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US">
Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.<br />
Based on a work at
<a href="https://github.com/Mirantis/fuel-docs">http://github.com/Mirantis/fuel-docs</a>
</div>

View File

@ -1,13 +1,10 @@
{#
mirantis/globaltoc.html
~~~~~~~~~~~~~~~~~~~~~~~
Sphinx sidebar template: global table of contents.
:copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
<div class="sphinxglobaltoc">
<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
{{ toctree(collapse = False) }}
</div>
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="{{ pathto(master_doc) }}">{{ theme_navbar_site_name }} <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc">{{ toctree(maxdepth=theme_globaltoc_depth|toint, collapse=False, includehidden=theme_globaltoc_includehidden|tobool) }}</ul>
</li>

View File

@ -1,135 +1,142 @@
{#
cloud/layout.html
~~~~~~~~~~~~~~~~~
Sphinx layout template for the cloud theme.
:copyright: Copyright 2009-2011 Assurance Technologies LLC
:license: BSD
roottarget - optional target for root link (default to toc)
logotarget - optional target for logo link (defaults to root target)
collapsiblesidebar - enable collapsible sidebar support
googletag - if set, enable Google Tag analytics support
#}
{% extends "basic/layout.html" %}
{% set reldelim2 = reldim2 is not defined and ' &nbsp; &nbsp;' or reldelim2 %}
{% set theme_css_files = [] %}
{% if theme_bootstrap_version == "3" %}
{% set bootstrap_version, bootstrap_additional_css, navbar_version = "3.2.0", "theme", "" %}
{% set bs_span_prefix = "col-md-" %}
{% else %}
{% set bootstrap_version, bootstrap_additional_css, navbar_version = "2.3.2", "responsive", "-2" %}
{% set bs_span_prefix = "span" %}
{% endif %}
{% if theme_bootswatch_theme and theme_bootswatch_theme != "\"\"" %}
{# BS2 needs "bootstrap-responsive.css". BS3 doesn't. #}
{% if theme_bootstrap_version == "3" %}
{% set theme_css_files = theme_css_files + [
'//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css',
'_static/bootstrap-sphinx.css'
]
%}
{% else %}
{% set theme_css_files = theme_css_files + [
'_static/bootswatch-' + bootstrap_version + '/' + theme_bootswatch_theme + '/bootstrap.min.css',
'_static/bootstrap-' + bootstrap_version + '/css/bootstrap-' + bootstrap_additional_css + '.min.css',
'_static/bootstrap-sphinx.css'
]
%}
{% endif %}
{% else %}
{% set theme_css_files = theme_css_files + [
'//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css',
'_static/bootstrap-' + bootstrap_version + '/css/bootstrap-' + bootstrap_additional_css + '.min.css',
'_static/bootstrap-sphinx.css',
'_static/styles.css'
]
%}
{% endif %}
{% if not bootswatch_css_custom %}
{% set bootswatch_css_custom = [] %}
{% endif %}
{% set css_files = css_files + theme_css_files + bootswatch_css_custom %}
{# add script file to instrument collapsable sections and other features #}
{% set script_files = script_files + [
'_static/jquery.cookie.js',
'_static/cloud.js',
'_static/menu.js',
'_static/toc.js',
'_static/abtest.js'
]
'_static/bootstrap-dropdown.js',
'_static/bootstrap-sphinx.js',
'_static/abtest.js'
]
%}
{# add font stylesheets #}
{% set css_files = css_files + [theme_fontcssurl] %}
{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and sidebars %}
{# make root link redirectable #}
{%- set theme_roottarget = (theme_roottarget == "<toc>" and master_doc or theme_roottarget) %}
{% block rootrellink %}
<li><a href="{{ pathto(theme_roottarget) }}">{{shorttitle|e}}</a>{{reldelim1}}</li>
{%- set bs_content_width = render_sidebar and "9" or "12"%}
{%- block doctype -%}
<!DOCTYPE html>
{%- endblock %}
{# Sidebar: Rework into our Bootstrap nav section. #}
{% macro navBar() %}
{% include "navbar" + navbar_version + ".html" %}
{% endmacro %}
{% if theme_bootstrap_version == "3" %}
{%- macro bsidebar() %}
{%- if render_sidebar %}
<div class="{{ bs_span_prefix }}3">
<div id="sidebar" class="bs-sidenav" role="complementary">
{%- for sidebartemplate in sidebars %}
{%- include sidebartemplate %}
{%- endfor %}
</div>
</div>
{%- endif %}
{%- endmacro %}
{% else %}
{%- macro bsidebar() %}
{%- if render_sidebar %}
<div class="{{ bs_span_prefix }}3">
<div id="sidebar" class="bs-sidenav well" data-spy="affix">
{%- for sidebartemplate in sidebars %}
{%- include sidebartemplate %}
{%- endfor %}
</div>
</div>
{%- endif %}
{%- endmacro %}
{% endif %}
{%- block extrahead %}
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
{% endblock %}
{# make logo link redirectable #}
{%- set theme_logotarget = (theme_logotarget == "<root>" and theme_roottarget or (theme_logotarget == "<toc>" and master_doc or theme_logotarget)) %}
{%- block sidebarlogo %}
{%- if logo %}
<p class="logo"><a href="{{ pathto(theme_logotarget) }}" title="{{ theme_logotarget }}">
<img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
</a></p>
{# Silence the sidebar's, relbar's #}
{% block header %}{% endblock %}
{% block relbar1 %}{% endblock %}
{% block relbar2 %}{% endblock %}
{% block sidebarsourcelink %}{% endblock %}
{%- block content %}
{{ navBar() }}
<div class="container">
<div class="row">
{%- block sidebar1 %}{{ bsidebar() }}{% endblock %}
<div class="{{ bs_span_prefix }}{{ bs_content_width }}">
{% block body %}{% endblock %}
</div>
{% block sidebar2 %} {# possible location for sidebar #} {% endblock %}
</div>
</div>
{%- endblock %}
{%- block footer %}
<footer class="footer">
<div class="container">
<p class="pull-right">
<a href="#">Back to top</a>
{% if theme_source_link_position == "footer" %}
<br/>
{% include "sourcelink.html" %}
{% endif %}
</p>
<p>
{%- if show_copyright %}
{%- if hasdoc('copyright') %}
{% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}<br/>
{%- else %}
{% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}<br/>
{%- endif %}
{%- endif %}
{%- endblock %}
{# wrap relbars in distinct classes to make themeing easier #}
{%- block relbar1 %}
<div class="relbar-top">
{{ super() }}
</div>
{% endblock %}
{%- block relbar2 %}
<div class="relbar-bottom">
{{ super() }}
</div>
{% endblock %}
{% block extrahead -%}
{{ super() }}
<meta name="viewport" content="width=device-width, initial-scale=1">
{%- endblock %}
{% block header %}
{%- if theme_googletag -%}
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id={{ theme_googletag }}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','{{ theme_googletag }}');</script>
<!-- End Google Tag Manager -->
{%- endif %}
<div id="masthead">
<div id="globalNav">
<div id="globalLink">
<a href="http://software.mirantis.com/" id="gl1" class="glink active" name="gl1">Software</a>
<a href="http://www.mirantis.com/openstack-services/" id="gl2" class="glink" name="gl2">Services</a>
<a href="http://training.mirantis.com" id="gl3" class="glink" name="gl3">Training</a>
<a href="http://www.mirantis.com/openstack/" id="gl4" class="glink" name="gl4">OpenStack</a>
<a href="http://www.mirantis.com/openstack-use-cases/" id="gl5" class="glink" name="gl5">Use Cases</a>
<a href="http://www.mirantis.com/company/" id="gl6" class="glink" name="gl6">Company</a>
</div>
</div>
<div id="subglobal1" class="subglobalNav" style="visibility: hidden;">
<div class="subglobal_vis">
<a href="http://software.mirantis.com/">Downloads</a>
<a href="http://software.mirantis.com/core-openstack/">Core OpenStack</a>
<a href="http://software.mirantis.com/key-related-openstack-projects/">Key Related Projects</a>
<a href="http://software.mirantis.com/plugins-and-drivers/">Plugins & Drivers</a>
</div>
</div>
<div id="subglobal2" class="subglobalNav" style="visibility: hidden;">
<div class="subglobal_vis">
<a href="http://www.mirantis.com/openstack-services/solutions-engineering/">Solutions Engineering</a>
<a href="http://www.mirantis.com/openstack-services/custom-deployment/">Custom Deployment</a>
<a href="http://www.mirantis.com/openstack-services/custom-support/">Custom Support</a>
<a href="http://www.mirantis.com/openstack-services/driver-development/">Drivers</a>
</div>
</div>
<div id="subglobal5" class="subglobalNav" style="visibility: hidden;">
<div class="subglobal_vis">
<a href="http://www.mirantis.com/openstack-use-cases/saas-web/">SaaS/Web Vendors</a>
<a href="http://www.mirantis.com/openstack-use-cases/service-providers/">Service Providers</a>
<a href="http://www.mirantis.com/openstack-use-cases/enterprise-private-cloud/">Enterprise Cloud</a>
<a href="http://www.mirantis.com/openstack-use-cases/infrastructure-technology/">Infrastructure Vendors</a>
</div>
</div>
<div id="subglobal6" class="subglobalNav" style="visibility: hidden;">
<div class="subglobal_vis">
<a href="http://www.mirantis.com/company/about/">About</a>
<a href="http://www.mirantis.com/company/our-philosophy/">Our Philosophy</a>
<a href="http://www.mirantis.com/company/customer-successes/">Customer Successes</a>
<a href="http://www.mirantis.com/company/leadership/">Leadership</a>
<a href="http://www.mirantis.com/company/investors/">Investors</a>
<a href="http://www.mirantis.com/company/press-center/info/">Press Center</a>
</div>
</div>
</div>
{% endblock %}
{% block footer -%}
{{ super() }}
<!-- cloud_sptheme 1.4 -->
{%- if last_updated %}
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}<br/>
{%- endif %}
{%- if show_sphinx %}
{% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx-doc.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}<br/>
{%- endif %}
</p>
</div>
</footer>
{%- endblock %}

View File

@ -1,17 +1 @@
{#
mirantis/localtoc.html
~~~~~~~~~~~~~~~~~~~~~~
Sphinx sidebar template: local table of contents.
* Modified for cloud_sptheme: added #sphinxlocaltoc to h3 tag
:copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if display_toc %}
<div class="sphinxlocaltoc">
<h3><a href="{{ pathto(master_doc) }}">{{ _('Documentation') }}</a></h3>
{{ toc }}
</div>
{%- endif %}
{{ toc }}

View File

@ -0,0 +1,51 @@
<div id="navbar" class="{{ theme_navbar_class }} {% if theme_navbar_fixed_top|tobool -%} navbar-fixed-top{%- endif -%}">
<div class="navbar-inner">
<div class="container">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="brand" href="{{ pathto(master_doc) }}">
{%- block sidebarlogo %}
{%- if logo %}<img src="{{ pathto('_static/' + logo, 1) }}">{%- endif %}
{%- endblock %}
{% if theme_navbar_title -%}{{ theme_navbar_title|e }}{%- else -%}{{ project|e }}{%- endif -%}
</a>
<span class="navbar-text pull-left"><b>{{ version|e }}</b></span>
<div class="nav-collapse">
<ul class="nav">
<li class="divider-vertical"></li>
{% if theme_navbar_links %}
{%- for link in theme_navbar_links %}
<li><a href="{{ pathto(*link[1:]) }}">{{ link[0] }}</a></li>
{%- endfor %}
{% endif %}
{% block navbartoc %}
{% include "globaltoc.html" %}
{% if theme_navbar_pagenav %}
{% include "navbartoc.html" %}
{% endif %}
{% endblock %}
{% if theme_navbar_sidebarrel %}
{% block sidebarrel %}
{% include "relations.html" %}
{% endblock %}
{% endif %}
{% block navbarextra %}
{% endblock %}
{% if theme_source_link_position == "nav" %}
<li>{% include "sourcelink.html" %}</li>
{% endif %}
</ul>
{% block navbarsearch %}
{% include "navbarsearchbox.html" %}
{% endblock %}
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,49 @@
<div id="navbar" class="{{ theme_navbar_class }} navbar-default">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{%- block sidebarlogo %}
<a class="navbar-brand" href="{{ pathto(theme_roottarget) }}" title="{{ project|e }}">
{%- if logo %}<img src="{{ pathto('_static/' + logo, 1) }}">{%- endif %}
{% if theme_navbar_title -%}{{ theme_navbar_title|e }}{%- else -%}{{ project|e }}{%- endif -%}
</a>
{%- endblock %}
<span class="navbar-text navbar-version pull-left"><b>{{ version|e }}</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
{% if theme_navbar_links %}
{%- for link in theme_navbar_links %}
<li><a href="{{ pathto(*link[1:]) }}">{{ link[0] }}</a></li>
{%- endfor %}
{% endif %}
{% block navbartoc %}
{% include "globaltoc.html" %}
{% if theme_navbar_pagenav %}
{% include "navbartoc.html" %}
{% endif %}
{% endblock %}
{% if theme_navbar_sidebarrel %}
{% block sidebarrel %}
{% include "relations.html" %}
{% endblock %}
{% endif %}
{% block navbarextra %}
{% endblock %}
{% if theme_source_link_position == "nav" %}
<li class="hidden-sm">{% include "sourcelink.html" %}</li>
{% endif %}
</ul>
{% block navbarsearch %}
{% include "navbarsearchbox.html" %}
{% endblock %}
</div>
</div>
</div>

View File

@ -0,0 +1,9 @@
{%- if pagename != "search" %}
<form class="navbar-form navbar-right" action="{{ pathto('search') }}" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
{%- endif %}

View File

@ -0,0 +1,10 @@
<li class="dropdown">
<a role="button"
id="dLabelLocalToc"
data-toggle="dropdown"
data-target="#"
href="#">{{ _(theme_navbar_pagenav_name) }} <b class="caret"></b></a>
<ul class="dropdown-menu localtoc"
role="menu"
aria-labelledby="dLabelLocalToc">{{ toc }}</ul>
</li>

View File

@ -0,0 +1,19 @@
{# Switch to icon instead of text in `sm` view size for BS3 only. #}
{%- if prev %}
<li>
<a href="{{ prev.link|e }}" title="{{ _('Previous Chapter: ') + prev.title|striptags }}">
{%- if theme_bootstrap_version == "2" -%}<span class="icon-chevron-left visible-tablet"></span>{%- endif -%}
{%- if theme_bootstrap_version == "3" -%}<span class="glyphicon glyphicon-chevron-left visible-sm"></span>{%- endif -%}
<span class="hidden-sm hidden-tablet">{{ "&laquo;"|safe }} {{ prev.title|striptags|truncate(length=16, killwords=True) }}</span>
</a>
</li>
{%- endif %}
{%- if next %}
<li>
<a href="{{ next.link|e }}" title="{{ _('Next Chapter: ') + next.title|striptags }}">
{%- if theme_bootstrap_version == "2" -%}<span class="icon-chevron-right visible-tablet"></span>{%- endif -%}
{%- if theme_bootstrap_version == "3" -%}<span class="glyphicon glyphicon-chevron-right visible-sm"></span>{%- endif -%}
<span class="hidden-sm hidden-tablet">{{ next.title|striptags|truncate(length=16, killwords=True) }} {{ "&raquo;"|safe }}</span>
</a>
</li>
{%- endif %}

View File

@ -0,0 +1,71 @@
{#
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 extrahead %}
<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 %}
<h1 id="search-documentation">{{ _('Search') }}</h1>
<div id="fallback" class="admonition warning">
<script type="text/javascript">$('#fallback').hide();</script>
<p>
{% trans %}Please activate JavaScript to enable the search
functionality.{% endtrans %}
</p>
</div>
<p>
{% trans %}From here you can search these documents. Enter your search
words into the box below and click "search". Note that the search
function will automatically search for all of the words. Pages
containing fewer words won't appear in the result list.{% endtrans %}
</p>
{% if theme_bootstrap_version == "3" %}
<form class="form-inline" action="" method="get">
<div class="form-group">
<input type="text" class="form-control" name="q" value="" />
</div>
<input type="submit" class="btn btn-default" value="{{ _('search') }}" />
<span id="search-progress" style="padding-left: 10px"></span>
</form>
{% else %}
<form class="form-search">
<input type="text" class="input-medium search-query" name="q" value="" />
<input type="submit" class="btn btn-default" value="{{ _('search') }}" />
<span id="search-progress" style="padding-left: 10px"></span>
</form>
{% endif %}
{% 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>
<div class="context">{{ context|e }}</div>
</li>
{% endfor %}
</ul>
{% endif %}
</div>
{% endblock %}

View File

@ -0,0 +1,9 @@
{%- if pagename != "search" %}
<form action="{{ pathto('search') }}" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
{%- endif %}

View File

@ -0,0 +1,38 @@
{#
basic/searchresults.html
~~~~~~~~~~~~~~~~~~~~~~~~
Template for the body of the search results page.
:copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
<h1 id="search-documentation">Search</h1>
<p>
From here you can search these documents. Enter your search
words into the box below and click "search".
</p>
<form class="form-search" action="" method="get">
<input type="text" name="q" class="input-medium search-query">
<button type="submit" class="btn">{{ _('search') }}</button>
<span id="search-progress" style="padding-left: 10px"></span>
</form>
{%- if search_performed %}
<h2>Search Results</h2>
{%- if not search_results %}
<p>Your search did not match any results.</p>
{%- endif %}
{%- endif %}
<div id="search-results">
{%- if search_results %}
<ul class="search">
{% for href, caption, context in search_results %}
<li><a href="{{ docroot }}{{ href }}/?highlight={{ q }}">{{ caption }}</a>
<div class="context">{{ context|e }}</div>
</li>
{% endfor %}
</ul>
{%- endif %}
</div>

View File

@ -0,0 +1,6 @@
{%- if show_source and has_source and sourcename %}
<div id="sourcelink">
<a href="{{ pathto('_sources/' + sourcename, true)|e }}"
rel="nofollow">{{ _('Source') }}</a>
</div>
{%- endif %}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -1 +1,10 @@
<!-- begin Convert Experiments code--><script type="text/javascript">var _conv_host = (("https:" == document.location.protocol) ? "https://d9jmv9u00p0mv.cloudfront.net" : "http://cdn-1.convertexperiments.com");document.write(unescape("%3Cscript src='" + _conv_host + "/js/10012224-10012014.js' type='text/javascript'%3E%3C/script%3E"));</script><!-- end Convert Experiments code -->
$(document).ready(function(){
var url = window.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);
if(filename == 'index.html' || filename == '') {
$('ul.nav.navbar-nav li.dropdown').not('.globaltoc-container').hide();
}
});

View File

@ -0,0 +1,373 @@
/* ========================================================================
* Bootstrap: dropdown.js v3.3.2
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
+function ($) {
'use strict';
// DROPDOWN CLASS DEFINITION
// =========================
var backdrop = '.dropdown-backdrop'
var toggle = '[data-toggle="dropdown"]'
var Dropdown = function (element) {
$(element).on('click.bs.dropdown', this.toggle)
}
Dropdown.VERSION = '3.3.2'
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
if ($this.is('.disabled, :disabled')) return
var $parent = getParent($this)
var isActive = $parent.hasClass('open')
clearMenus()
if (!isActive) {
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
// if mobile we use a backdrop because click events don't delegate
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
}
var relatedTarget = { relatedTarget: this }
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
if (e.isDefaultPrevented()) return
$this
.trigger('focus')
.attr('aria-expanded', 'true')
$parent
.toggleClass('open')
.trigger('shown.bs.dropdown', relatedTarget)
}
return false
}
Dropdown.prototype.keydown = function (e) {
if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
var $this = $(this)
e.preventDefault()
e.stopPropagation()
if ($this.is('.disabled, :disabled')) return
var $parent = getParent($this)
var isActive = $parent.hasClass('open')
if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
if (e.which == 27) $parent.find(toggle).trigger('focus')
return $this.trigger('click')
}
var desc = ' li:not(.disabled):visible a'
var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
if (!$items.length) return
var index = $items.index(e.target)
if (e.which == 38 && index > 0) index-- // up
if (e.which == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
$items.eq(index).trigger('focus')
}
function clearMenus(e) {
if (e && e.which === 3) return
$(backdrop).remove()
$(toggle).each(function () {
var $this = $(this)
var $parent = getParent($this)
var relatedTarget = { relatedTarget: this }
if (!$parent.hasClass('open')) return
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
if (e.isDefaultPrevented()) return
$this.attr('aria-expanded', 'false')
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
})
}
function getParent($this) {
var selector = $this.attr('data-target')
if (!selector) {
selector = $this.attr('href')
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
var $parent = selector && $(selector)
return $parent && $parent.length ? $parent : $this.parent()
}
// DROPDOWN PLUGIN DEFINITION
// ==========================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.dropdown')
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
if (typeof option == 'string') data[option].call($this)
})
}
var old = $.fn.dropdown
$.fn.dropdown = Plugin
$.fn.dropdown.Constructor = Dropdown
// DROPDOWN NO CONFLICT
// ====================
$.fn.dropdown.noConflict = function () {
$.fn.dropdown = old
return this
}
// APPLY TO STANDARD DROPDOWN ELEMENTS
// ===================================
$(document)
.on('click.bs.dropdown.data-api', clearMenus)
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
.on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
.on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
}(jQuery);
/* ========================================================================
* Bootstrap: collapse.js v3.3.2
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
+function ($) {
'use strict';
// COLLAPSE PUBLIC CLASS DEFINITION
// ================================
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, Collapse.DEFAULTS, options)
this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
'[data-toggle="collapse"][data-target="#' + element.id + '"]')
this.transitioning = null
if (this.options.parent) {
this.$parent = this.getParent()
} else {
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
}
if (this.options.toggle) this.toggle()
}
Collapse.VERSION = '3.3.2'
Collapse.TRANSITION_DURATION = 350
Collapse.DEFAULTS = {
toggle: true
}
Collapse.prototype.dimension = function () {
var hasWidth = this.$element.hasClass('width')
return hasWidth ? 'width' : 'height'
}
Collapse.prototype.show = function () {
if (this.transitioning || this.$element.hasClass('in')) return
var activesData
var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
if (actives && actives.length) {
activesData = actives.data('bs.collapse')
if (activesData && activesData.transitioning) return
}
var startEvent = $.Event('show.bs.collapse')
this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return
if (actives && actives.length) {
Plugin.call(actives, 'hide')
activesData || actives.data('bs.collapse', null)
}
var dimension = this.dimension()
this.$element
.removeClass('collapse')
.addClass('collapsing')[dimension](0)
.attr('aria-expanded', true)
this.$trigger
.removeClass('collapsed')
.attr('aria-expanded', true)
this.transitioning = 1
var complete = function () {
this.$element
.removeClass('collapsing')
.addClass('collapse in')[dimension]('')
this.transitioning = 0
this.$element
.trigger('shown.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
this.$element
.one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
}
Collapse.prototype.hide = function () {
if (this.transitioning || !this.$element.hasClass('in')) return
var startEvent = $.Event('hide.bs.collapse')
this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return
var dimension = this.dimension()
this.$element[dimension](this.$element[dimension]())[0].offsetHeight
this.$element
.addClass('collapsing')
.removeClass('collapse in')
.attr('aria-expanded', false)
this.$trigger
.addClass('collapsed')
.attr('aria-expanded', false)
this.transitioning = 1
var complete = function () {
this.transitioning = 0
this.$element
.removeClass('collapsing')
.addClass('collapse')
.trigger('hidden.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
this.$element
[dimension](0)
.one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)
}
Collapse.prototype.toggle = function () {
this[this.$element.hasClass('in') ? 'hide' : 'show']()
}
Collapse.prototype.getParent = function () {
return $(this.options.parent)
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
.each($.proxy(function (i, element) {
var $element = $(element)
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
}, this))
.end()
}
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
var isOpen = $element.hasClass('in')
$element.attr('aria-expanded', isOpen)
$trigger
.toggleClass('collapsed', !isOpen)
.attr('aria-expanded', isOpen)
}
function getTargetFromTrigger($trigger) {
var href
var target = $trigger.attr('data-target')
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
return $(target)
}
// COLLAPSE PLUGIN DEFINITION
// ==========================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.collapse')
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
if (!data && options.toggle && option == 'show') options.toggle = false
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
}
var old = $.fn.collapse
$.fn.collapse = Plugin
$.fn.collapse.Constructor = Collapse
// COLLAPSE NO CONFLICT
// ====================
$.fn.collapse.noConflict = function () {
$.fn.collapse = old
return this
}
// COLLAPSE DATA-API
// =================
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
var $this = $(this)
if (!$this.attr('data-target')) e.preventDefault()
var $target = getTargetFromTrigger($this)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $this.data()
Plugin.call($target, option)
})
}(jQuery);

View File

@ -0,0 +1,258 @@
/*
* bootstrap-sphinx.css
* ~~~~~~~~~~~~~~~~~~~~
*
* Sphinx stylesheet -- Bootstrap theme.
*/
.navbar-inverse .brand {
color: #FFF;
}
/*
* Reset navbar styles from overrides in:
* https://bitbucket.org/birkenfeld/sphinx/commits/78d8ebf76b630ab4073a7328af9d91e8123b8d96
*/
.navbar .container {
padding-top: 0;
}
.page-top {
top: 0px;
}
{% if theme_navbar_fixed_top|tobool %}
{% if theme_bootstrap_version == "2" %}
@media (min-width: 980px) {
{% endif %}
body {
{% if theme_bootswatch_theme and theme_bootswatch_theme != "\"\"" %}
padding-top: 60px;
{% else %}
padding-top: 40px;
{% endif %}
}
.page-top {
{% if theme_bootswatch_theme and theme_bootswatch_theme != "\"\"" %}
top: 60px;
{% else %}
top: 40px;
{% endif %}
}
{% if theme_bootstrap_version == "2" %}
}
{% endif %}
.navbar-inner {
padding-left: 12px !important;
padding-right: 12px !important;
}
{% else %}
{% if theme_bootstrap_version == "2" %}
@media (min-width: 980px) {
.navbar .container {
width: 940px;
}
}
{% endif %}
{% endif %}
table {
border: 0;
}
.highlighttable .code pre {
font-size: 12px;
}
.highlighttable .linenos pre {
word-break: normal;
font-size: 12px;
}
div.highlight {
background: none;
}
a.footnote-reference {
vertical-align: super;
font-size: 75%;
}
table.footnote td.label {
font-size: 100%;
display: block;
line-height: normal;
background: inherit;
}
table.footnote {
width: auto;
margin-bottom: 0px;
}
table.field-list {
width: auto;
}
.footer {
width: 100%;
border-top: 1px solid #ccc;
padding-top: 10px;
}
.bs-sidenav form, .bs-sidenav #sourcelink {
padding: 5px 20px;
}
{% if theme_bootstrap_version == "3" %}
/* The code below is based on the bootstrap website sidebar */
.bs-sidenav.affix {
position: static;
}
/* First level of nav */
.bs-sidenav {
margin-top: 30px;
margin-bottom: 30px;
padding-top: 10px;
padding-bottom: 10px;
text-shadow: 0 1px 0 #fff;
background-color: #f7f5fa;
border-radius: 5px;
}
/* All levels of nav */
.bs-sidenav .nav > li > a {
display: block;
color: #716b7a;
padding: 5px 20px;
}
.bs-sidenav .nav > li > a:hover,
.bs-sidenav .nav > li > a:focus {
text-decoration: none;
background-color: #e5e3e9;
border-right: 1px solid #dbd8e0;
}
.bs-sidenav .nav > .active > a,
.bs-sidenav .nav > .active:hover > a,
.bs-sidenav .nav > .active:focus > a {
font-weight: bold;
color: #563d7c;
background-color: transparent;
border-right: 1px solid #563d7c;
}
.bs-sidenav .nav .nav > li > a {
padding-top: 3px;
padding-bottom: 3px;
padding-left: 30px;
font-size: 90%;
}
.bs-sidenav .nav .nav .nav > li > a {
padding-top: 3px;
padding-bottom: 3px;
padding-left: 40px;
font-size: 90%;
}
.bs-sidenav .nav .nav .nav .nav > li > a {
padding-top: 3px;
padding-bottom: 3px;
padding-left: 50px;
font-size: 90%;
}
/* Show and affix the side nav when space allows it */
@media screen and (min-width: 992px) {
.bs-sidenav .nav > .active > ul {
display: block;
}
/* Widen the fixed sidenav */
.bs-sidenav.affix,
.bs-sidenav.affix-bottom {
width: 213px;
}
.bs-sidenav.affix {
position: fixed; /* Undo the static from mobile first approach */
top: 80px;
}
.bs-sidenav.affix-bottom {
position: absolute; /* Undo the static from mobile first approach */
}
.bs-sidenav.affix-bottom .bs-sidenav,
.bs-sidenav.affix .bs-sidenav {
margin-top: 0;
margin-bottom: 0;
}
}
@media screen and (min-width: 1200px) {
/* Widen the fixed sidenav again */
.bs-sidenav.affix-bottom,
.bs-sidenav.affix {
width: 263px;
}
}
{% else %}
.bs-sidenav {
width: 228px;
margin: 30px 0 0;
padding: 10px 0 0 5px;
}
.bs-sidenav ul{
list-style-type: none;
padding-left: 25px;
margin-left: 0; /* bootstrap 2 compatability. */
}
@media (min-width: 1200px) {
.bs-sidenav {
width: 258px;
}
}
/* Desktop
------------------------- */
@media (max-width: 980px) {
.bs-sidenav {
width: 218px;
margin-top: 30px;
margin-right: 0;
}
}
/* Tablet to desktop
------------------------- */
@media (min-width: 768px) and (max-width: 979px) {
.bs-sidenav {
width: 166px;
margin-top: 20px;
}
}
/* Tablet
------------------------- */
@media (max-width: 767px) {
.navbar-version {
padding-left: 5px;
}
.bs-sidenav {
width: auto;
margin-bottom: 20px;
}
.bs-sidenav.affix {
position: static;
top: 0;
}
}
{% endif %}

View File

@ -0,0 +1,150 @@
(function ($) {
/**
* Patch TOC list.
*
* Will mutate the underlying span to have a correct ul for nav.
*
* @param $span: Span containing nested UL's to mutate.
* @param minLevel: Starting level for nested lists. (1: global, 2: local).
*/
var patchToc = function ($ul, minLevel) {
var findA,
patchTables,
$localLi;
// Find all a "internal" tags, traversing recursively.
findA = function ($elem, level) {
level = level || 0;
var $items = $elem.find("> li > a.internal, > ul, > li > ul");
// Iterate everything in order.
$items.each(function (index, item) {
var $item = $(item),
tag = item.tagName.toLowerCase(),
$childrenLi = $item.children('li'),
$parentLi = $($item.parent('li'), $item.parent().parent('li'));
// Add dropdowns if more children and above minimum level.
if (tag === 'ul' && level >= minLevel && $childrenLi.length > 0) {
$parentLi
.addClass('dropdown-submenu')
.children('a').first().attr('tabindex', -1);
$item.addClass('dropdown-menu');
}
findA($item, level + 1);
});
};
findA($ul);
};
/**
* Patch all tables to remove ``docutils`` class and add Bootstrap base
* ``table`` class.
*/
patchTables = function () {
$("table.docutils")
.removeClass("docutils")
.addClass("table")
.attr("border", 0);
};
$(window).load(function () {
/*
* Scroll the window to avoid the topnav bar
* https://github.com/twbs/bootstrap/issues/1768
*/
if ($("#navbar.navbar-fixed-top").length > 0) {
var navHeight = $("#navbar").height(),
shiftWindow = function() { scrollBy(0, -navHeight - 20); };
if (location.hash) {
setTimeout(shiftWindow, 1);
}
window.addEventListener("hashchange", shiftWindow);
}
});
$(document).ready(function () {
// Add styling, structure to TOC's.
$(".dropdown-menu").each(function () {
$(this).find("ul").each(function (index, item){
var $item = $(item);
$item.addClass('unstyled');
});
});
// Global TOC.
if ($("ul.globaltoc li").length) {
patchToc($("ul.globaltoc"), 1);
} else {
// Remove Global TOC.
$(".globaltoc-container").remove();
}
// Local TOC.
$(".bs-sidenav ul").addClass("nav nav-list");
$(".bs-sidenav > ul > li > a").addClass("nav-header");
// Local TOC.
patchToc($("ul.localtoc"), 2);
// Mutate sub-lists (for bs-2.3.0).
$(".dropdown-menu ul").not(".dropdown-menu").each(function () {
var $ul = $(this),
$parent = $ul.parent(),
tag = $parent[0].tagName.toLowerCase(),
$kids = $ul.children().detach();
// Replace list with items if submenu header.
if (tag === "ul") {
$ul.replaceWith($kids);
} else if (tag === "li") {
// Insert into previous list.
$parent.after($kids);
$ul.remove();
}
});
// Add divider in page TOC.
$localLi = $("ul.localtoc li");
if ($localLi.length > 2) {
$localLi.first().after('<li class="divider"></li>');
}
// Manually add dropdown.
// Appears unnecessary as of:
// https://github.com/ryan-roemer/sphinx-bootstrap-theme/pull/90
// Remove next time around...
// a.dropdown-toggle class needed in globaltoc.html
//$('.dropdown-toggle').dropdown();
// Patch tables.
patchTables();
// Add Note, Warning styles. (BS v2,3 compatible).
$('.admonition').addClass('alert alert-info')
.filter('.warning, .caution')
.removeClass('alert-info')
.addClass('alert-warning').end()
.filter('.error, .danger')
.removeClass('alert-info')
.addClass('alert-danger alert-error').end();
// Inline code styles to Bootstrap style.
$('tt.docutils.literal').not(".xref").each(function (i, e) {
// ignore references
if (!$(e).parent().hasClass("reference")) {
$(e).replaceWith(function () {
return $("<code />").html($(this).html());
});
}});
// Update sourcelink to remove outerdiv (fixes appearance in navbar).
var $srcLink = $(".nav #sourcelink");
$srcLink.parent().html($srcLink.html());
});
}(window.$jqTheme || window.jQuery));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,74 +0,0 @@
/* For the MAIN MENU */
#main-menu {
height:47px;
margin-top:20px;
text-align: right;
position:relative;
margin-right: -7px;
}
a.glink, a.glinksm {
color: black;
font-family: 'PT Sans Narrow','Arial Narrow',arial,sans-serif;
font-size: 19px;
padding: 5px 9px 9px 9px;
white-space: nowrap;
text-decoration:none;
background-color: #ffffff;
}
a.glink:hover {
color:#d3301a;
background-color: #eaeff3; border-radius: 3px;
}
a.glinksm:hover {
background: #e74c3c;
color: white;
box-shadow: 0px 2px 0px #cb4335;
text-shadow: none;
}
.subglobalNav {
color: black;
position:absolute;
font-family: 'PT Sans Narrow','Arial Narrow',arial,sans-serif;
font-size: 14px;
white-space: nowrap;
text-decoration:none;
//left:0px;
padding-top: 5px;
line-height: 30px;
min-height: 65px;
z-index: 1;
}
.subglobal_vis {background: #f4f7fa; border-radius: 3px;}
.subglobalNav a{
color: black;
text-decoration:none;
padding: 3px 7px 3px 7px;
margin:0 6px 0 6px;
}
.subglobalNav a:hover {
color: #fff;
background: #CB2E19;
-moz-border-radius: 2px;
border-radius: 2px;
margin:0 6px 0 6px;
box-shadow: inset 1px 1px 1px #b12716;
/*text-shadow: -1px -1px 0px #7F2114;*/
}
a.act {
color:#d3301a !important;
}
a.act:hover {
color: #fff !important;
background: #CB2E19;
}
a.active {
color:#d3301a;
}
/* End of MAIN MENU */

View File

@ -1,70 +0,0 @@
jQuery(document).ready(function(){
/*Start DocumentReady*/
// Set "act" classes for subnavigation
var url=document.location.href;
jQuery.each(jQuery(".subglobalNav a"),function(){
if(this.href==url){
jQuery(this).addClass('act');
};
});
//Menu Initalization on start
jQuery(".currentSubNav").css({'visibility': 'visible', opacity: 0.0});
//Menu subitems showing "ommousehover"
jQuery(".glink").mouseover(function(){
var id = jQuery(this).attr('name').substr(2,1);
jQuery("#gl"+id).css({ "background-color": "#f4f7fa"});
if(jQuery(".currentSubNav").attr('id') == "subglobal"+id) {
jQuery(".subglobalNav").each(function(){
if(!jQuery(this).hasClass("currentSubNav")) jQuery(this).css('visibility', 'hidden');
});
} else {
jQuery(".subglobalNav").css('visibility', 'hidden');
jQuery("#subglobal"+id).css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0}, 100);
}
}).mouseout(function(){
var id = jQuery(this).attr('name').substr(2,1);
jQuery(".glink").css({ "background-color": "#FFFFFF"});
if(jQuery(".currentSubNav").attr('id') == "subglobal"+id) {
jQuery("#gl"+id).css({ "background-color": "#f4f7fa"});
} else {
jQuery("#subglobal"+id).css({visibility: "hidden"});
jQuery(".currentSubNav").css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0}, 100);
jQuery("#subglobal"+id).mouseover(function(){
jQuery("#subglobal"+id).css({visibility: "visible"});
jQuery("#gl"+id).css({ "background-color": "#f4f7fa"});
jQuery(".currentSubNav").css({visibility: "hidden"});
}).mouseout(function(){
jQuery("#subglobal"+id).css({visibility: "hidden"});
jQuery("#gl"+id).css({ "background-color": "#ffffff"});
jQuery(".currentSubNav").css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0}, 100);
});
}
});
/*End DocumentReady*/
});
jQuery(window).load(function(){
// Set menu margins
var headerWidth = jQuery("#masthead").width();
var navWidth = 0;
jQuery(".glink").each(function(){
navWidth += jQuery(this).outerWidth();
});
jQuery(".subglobalNav").each(function(index){
var id = parseInt(jQuery(this).attr('id').substr(9,1));
var width = jQuery(this).width();
var centerPosition = headerWidth - (jQuery("#gl" + id).position().left + jQuery("#gl" + id).outerWidth()/2);
var margin = parseInt(centerPosition - width/2);
var margin = jQuery("#gl" + id).position().left - 5;
if (margin < 0) margin = 0;
jQuery(this).css({marginLeft: margin,opacity: 1.0})
});
});

View File

@ -1,115 +0,0 @@
/*****************************************************
* mirantis.css_t
* ~~~~~~~~~~~
*
* stylesheet for "Mirantis" theme for Sphinx.
*
* :copyright: Copyright 2012 by Assurance Technologies
* :license: BSD
*
*****************************************************/
@import url("cloud.css");
@import url("mirantis_style.css");
@import url("menu.css");
.highlight .hll {
background-color: #C0FF7C !important;
}
div.highlight pre,
div.highlight-python pre
{
border-width: 0px 3px;
background-color: #F7FFE8;
border-radius: 6px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
}
div.documentwrapper
{
border-top: 1px solid {{ theme_table_trim_color }};
border-bottom: 1px solid {{ theme_table_trim_color }};
}
div.document, div.related, div.related_hf
{
max-width: 100%;
}
div.related_hf
{
margin: 0 auto;
background: {{ theme_relbarbgcolor }};
line-height: 1.5em;
padding: .5em 0;
color: {{ theme_relbartextcolor }};
}
div.doc-license
{
font-size: 70%;
line-height: 100%;
}
div.sidebartoggle button
{
border-top: 1px solid {{ theme_sidebartrimcolor }};
}
div.body h1 {
text-align: left;
font-size: 200%;
}
div.body h2 {
font-size: 180%;
margin: 1em 0 0 0;
}
div.body h3 {
font-size: 160%;
margin: 1em 0 .25em 0;
}
div.body h4 {
font-size: 140%;
margin: 1em 0 .25em 0;
}
div.body h5 {
font-size: 130%;
margin: 1em 0 .25em 0;
}
div.body h6 {
font-size: 120%;
margin: 1em 0 .25em 0;
}
div.body h2,
div.body p.rubric,
div.section.emphasized > h3, /* deprecated in favor of below: */
div.section.emphasize-children > div.section > h3
{
border-width: 1px 1px 1px 1px;
font-style: normal;
}
div.sphinxsidebar
{
line-height: 100%;
}
div.sphinxsidebar #searchbox input[type="text"] {
width: {{ theme_sidebarwidth|replace('px','')|int - 50 }}px;
}
div.sphinxsidebar .searchtip
{
color: rgba(0,0,0,.5);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -1,528 +0,0 @@
div.sphinxsidebar p.logo
{
margin: 1em 10px 0 -10px;
text-align: right;
}
div.sphinxsidebar img.logo
{
margin: auto;
display: block;
}
.sphinxglobaltoc li
{
padding: 2px;
font-size: 100%;
}
.sphinxglobaltoc li.current a
{
font-weight: bold;
}
li.toctree-l1, li.toctree-l2
{
margin-top: 4px;
}
div#disqus_thread
{
background: #FFFFFF;
padding: 10px;
border-top: 1px solid rgba(0,0,0,.15);
border-bottom: 1px solid rgba(0,0,0,.15);
}
div.relbar-bottom div.related_hf
{
background: #FFFFFF;
border-radius: 0 0 .7em .7em;
-moz-border-radius: 0 0 .7em .7em;
-webkit-border-radius: 0 0 .7em .7em;
}
div.relbar-top div.related_hf
{
border-radius: .7em .7em 0 0;
-moz-border-radius: .7em .7em 0 0;
-webkit-border-radius: .7em .7em 0 0;
}
div.relbar-top div.related, div.relbar-bottom div.related
{
border-radius: 0 0 0 0;
-moz-border-radius: 0 0 0 0;
-webkit-border-radius: 0 0 0 0;
}
html, body {
font-family: 'PT Sans', arial, sans-serif;
font-size: 14px;
color: #41454d;
}
body.inner {background: url(inner_body_tile.jpg) repeat-x;}
table.pageheader {
width: 100%;
}
a {
color: #D32F1A;
text-decoration: none;
}
a:hover {
color: #F00;
}
p {
font-size: 15px;
color: #41454D;
font-style: normal;
margin: 6px 0px 15px 0px;
}
div.page {
width: 960px;
margin: 0 auto;
}
div.page h2 {
font-family: 'PT Sans Narrow', 'Arial Narrow', arial, sans-serif;
font-size: 23px;
font-weight: normal;
font-style: normal;
padding-top: 10px;
margin-bottom: 10px;
padding-left: 10px;
text-shadow: 1px 1px 0 #fff;
}
input[type="text"],
input[type="password"] {
background: #f8f9f9;
padding: 0 5px 0 5px;
min-height: 24px;
border: none;
border-bottom: 1px solid white;
border-right: 1px solid white;
-moz-border-radius: 3px;
border-radius: 3px;
text-shadow: 1px 1px 0 white;
-moz-box-shadow: inset 2px 2px 7px #D3D8DD;
-webkit-box-shadow: inset 2px 2px 7px #D3D8DD;
box-shadow: inset 2px 2px 7px #D3D8DD;
}
input[type="submit"] {
background: #f8f9f9;
padding: 0 5px 0 5px;
min-height: 24px;
border: none;
border-bottom: 1px solid white;
border-right: 1px solid white;
-moz-border-radius: 2px;
border-radius: 2px;
text-shadow: 1px 1px 0 white;
-moz-box-shadow: inset 2px 2px 7px #D3D8DD;
-webkit-box-shadow: inset 2px 2px 7px #D3D8DD;
box-shadow: inset 2px 2px 7px #D3D8DD;
}
div.drops {
font-size: 15px;
height: 60px;
}
div.drops label {
color: #909cb5;
}
span.drop_release {
margin-top: 6px;
display: block;
height: 30px;
float: right;
}
span.drop_metric {
margin-top: 6px;
margin-right: 1em;
display: block;
height: 30px;
float: right;
}
select {
background: #f8f9f9;
padding: 0 5px 0 5px;
min-height: 24px;
border: none;
border-bottom: 1px solid white;
border-right: 1px solid white;
-moz-border-radius: 2px;
border-radius: 2px;
text-shadow: 1px 1px 0 white;
-moz-box-shadow: inset 2px 2px 7px #D3D8DD;
-webkit-box-shadow: inset 2px 2px 7px #D3D8DD;
box-shadow: inset 2px 2px 7px #D3D8DD;
}
div.aheader {
margin-top: 23px;
text-shadow: 1px 1px 0 #fff;
}
div.aheader h1 {
font-size: 36px;
color: #a8b3bd;
text-shadow: 1px 1px 0 #fff;
}
div.aheader h1 a {
font-weight: bold;
color: #637f99;
text-decoration: none;
text-shadow: 1px 1px 0 #fff;
}
div.page div.navigation {
text-shadow: 1px 1px 0 #fff;
padding: 4px 10px;
border-top: 1px dashed #e9eaef;
border-bottom: 1px dashed #e9eaef;
color: #909cb5;
font-size: 10pt;
}
div.page div.navigation a {
color: #444;
font-weight: bold;
}
div.page h2 {
margin: 10px 0 0 10px;
color: #a41200;
}
div.page div.body {
padding: 10px;
}
div.page div.footer {
background: #eee;
color: #888;
padding: 1em 1em;
font-size: 9pt;
}
div.page ul.messages {
list-style: none;
margin: 0;
padding: 0;
}
div.page ul.messages li {
margin: 10px 0;
padding: 5px;
background: #F0FAF9;
border: 1px solid #DBF3F1;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
min-height: 48px;
}
div.page ul.messages p {
margin: 0;
}
div.page ul.messages li img {
float: left;
padding: 0 10px 0 0;
}
div.page ul.messages li small {
font-size: 0.9em;
color: #888;
}
div.page div.twitbox {
margin: 10px 0;
padding: 5px;
background: #F0FAF9;
border: 1px solid #94E2DA;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
div.page div.twitbox h3 {
margin: 0;
font-size: 1em;
color: #2C7E76;
}
div.page div.twitbox p {
margin: 0;
}
div.page div.twitbox input[type="text"] {
width: 585px;
}
div.page div.twitbox input[type="submit"] {
width: 70px;
margin-left: 5px;
}
ul.flashes {
list-style: none;
margin: 10px 10px 0 10px;
padding: 0;
}
ul.flashes li {
background: #B9F3ED;
border: 1px solid #81CEC6;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
padding: 4px;
font-size: 13px;
}
div.error {
margin: 10px 0;
background: #FAE4E4;
border: 1px solid #DD6F6F;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
padding: 4px;
font-size: 13px;
}
.spacer {
height: 20px;
clear: both;
}
table#left_list td {
font-size: 15px;
}
table#right_list td {
font-size: 15px;
}
div#left_list_wrapper {
margin-top: 20px;
}
div#right_list_wrapper {
margin-top: 20px;
}
.message {
white-space: pre-wrap;
}
a[href^="https://blueprints"]:after {
content: "↗";
opacity: 0.3;
}
a[href^="https://review"]:after {
content: "↗";
opacity: 0.3;
}
a[href^="https://bugs"]:after {
content: "↗";
opacity: 0.3;
}
a[href^="https://launchpad"]:after {
content: "↗";
opacity: 0.3;
}
#analytics_header {
float: left;
}
#analytics_header h3 {
font-family: 'PT Sans Narrow', 'Arial Narrow', arial, sans-serif;
font-weight: normal;
font-style: normal;
font-size: 24px;
color: black;
text-shadow: 1px 1px 0 #fff;
margin: 0;
}
#analytics_header p {
font-family: georgia, serif;
font-weight: normal;
font-style: italic;
font-size: 16px;
margin: 0;
padding: 0;
color: #647280;
line-height: 1.1em;
text-shadow: 1px 1px 0 #fff;
}
.paging_full_numbers {
font-size: 9pt;
}
/* MIRANTIS CSS*/
#miraheader {
margin: 0 auto;
width: 960px;
}
#top-menu {
height: 30px;
}
#ttopmenu {
float: right;
height: 20px;
overflow: hidden;
margin-top: 10px;
}
#ttopmenu a {
font-size: 13px;
font-style: italic;
color: #A7B6C3;
}
#ttopmenu a:hover {
color: #6e8598;
}
#main-menu {
height: 47px;
margin-top: 30px;
text-align: right;
position: relative;
}
a.glink {
color: black;
font-family: 'PT Sans Narrow', 'Arial Narrow', arial, sans-serif;
font-size: 19px;
padding: 5px 5px 5px 12px;
white-space: nowrap;
text-decoration: none;
}
a.glink:hover {
color: #d3301a;
}
.subglobalNav {
color: black;
position: absolute;
font-family: 'PT Sans Narrow', 'Arial Narrow', arial, sans-serif;
font-size: 14px;
white-space: nowrap;
text-decoration: none;
left: 0px;
padding-top: 10px;
}
.subglobalNav a {
color: black;
text-decoration: none;
padding: 2px 7px 2px 7px;
margin-left: 12px;
}
.subglobalNav a:hover {
color: #fff;
background: #CB2E19;
-moz-border-radius: 2px;
border-radius: 2px;
margin-left: 12px;
text-shadow: -1px -1px 0px #7F2114;
}
a.act {
color: #d3301a !important;
}
a.act:hover {
color: #fff !important;
background: #CB2E19;
}
a.active {
color: #d3301a;
}
#dummy {
height: 115px;
margin-top: 20px;
width: 100%;
}
#footer, #header {
/*
height: 115px;
margin-top: -120px;
background: url(../images/footer_tile.jpg) repeat-x;
*/
font-family: 'PT Sans Narrow', 'Arial Narrow', arial, sans-serif;
font-size: 17px;
line-height: 21px;
text-shadow: 1px 1px 0px white;
}
#foottable td {
padding-top: 20px;
}
#footer_content, #header_content {
max-width: 960px;
margin: 4px auto auto auto;
/*
height: 110px;
*/
}
.fgeneral {
color: black;
}
.fgeneralblue {
color: #43678a;
}
.fslogan {
font-family: 'PT Sans', arial, sans-serif;
font-style: italic;
color: #43678a;
font-size: 13px;
}
#fbox {
padding-left: 10px;
border-left: 1px solid #d5dbe1;
}
a.external:before {
content: "";
padding-right: 0.1em;
}
/* MIRANTIS CSS*/
tt.literal
{
border: none;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,274 @@
@import url(http://fonts.googleapis.com/css?family=PT+Sans|PT+Sans+Narrow|PT+Sans+Caption);
html, body {
font-family: 'PT Sans', arial, sans-serif;
font-size: 15px;
color: #41454d;
line-height: 1.428571429;
margin: 0;
}
body {
padding-top: 0;
}
.navbar {
margin-bottom: 0;
border: none;
}
h3, .h3 {
font-style: italic;
}
h2, h3, h4 {
font-family: 'PT Sans Caption', 'PT Sans', arial, sans-serif;
}
h4, h5 {
font-weight: bold;
}
a.toc-backref {
color: #41454D;
text-decoration: none;
}
a.toc-backref:hover {
color: #D3301A;
text-decoration: underline;
}
a.navbar-brand {
padding: 0;
line-height: 45px;
font-family: 'PT Sans Caption', 'PT Sans', arial, sans-serif;
font-size: 17px;
font-weight: bold;
}
.navbar>.container .navbar-brand {
line-height: 48px;
}
.navbar-default .navbar-brand {
color: #FFF;
}
.navbar-default .navbar-text {
color: #FFF;
}
a.navbar-brand img {
height: auto;
max-height: 42px;
float: left;
transition: all 0.2s ease;
display: block;
max-width: 100%;
margin-right: 15px;
}
body a {
color: #D3301A;
}
body a:hover {
color: #41454D;
}
.navbar-default {
height: 80px;
background: #000;
padding-top: 20px;
}
ul.navbar-nav li {
font-family: 'PT Sans Narrow', 'Arial-narrow', arial, sans-serif;
font-size: 18px;
}
.navbar-default .navbar-nav>li>a {
color: #AAA;
}
.navbar-default .navbar-nav>li>a:hover, .navbar-default .navbar-nav>li>a:focus {
color: #C0200C;
background-color: #fff;
}
.navbar-text {
margin-top: 14px;
}
#sidebar li.dropdown.globaltoc-container {
list-style: none;
margin: 0 20px;
}
#sidebar a#dLabelGlobalToc {
display: block;
padding: 5px 10px;
color: #FFF;
background: #D3301A;
text-shadow: 0 1px 0 #3D3D3D;
border: 1px solid #B60000;
}
#sidebar a#dLabelGlobalToc:hover {
text-decoration: none;
}
footer {
padding: 20px 0 0 0;
background: #161B24 url(gearcloud_dark_footer.jpg) no-repeat top center;
background-size: cover;
margin-top: 50px;
}
.footer_copy {
margin-top: 30px;
background: rgba(0, 0, 0, 0.5);
padding: 10px 0;
}
footer a {
color: #AAA;
font-family: 'PT Sans Caption', 'PT Sans', arial, sans-serif;
font-size: 11px;
text-transform: uppercase;
}
footer a:hover {
color: #0bcaff;
}
footer ul {
list-style-type: none;
list-style-image: none;
}
footer ul li {
line-height: 16px;
margin-bottom: 0;
}
span.mira_btm {
color: #FFF;
}
span.pureplay_btm {
color: #D63327;
font-size: 12px;
}
div.col-copy {
text-align: center;
}
div.col-address {
text-align: right;
}
a.fmenu_section {
font-size: 1.2em;
padding-bottom: 12px;
display: inline-block;
color: #FFF;
}
.section > .section {
padding-bottom: 30px;
margin-bottom: 30px;
border-bottom: 1px solid #EFEFEF;
}
.section > .section > .section {
padding-bottom: 0;
margin-bottom: 0;
border-bottom: none;
}
#planning-guide-pdf, #user-guide-pdf, #operations-guide-pdf, #virtualbox-pdf, #ref-arch-pdf, #plugin-dev-pdf, #terminology-ref-pdf, #file-ref-pdf, #release-notes-pdf, #download-mirantis-openstack, #demos-and-tutorials, #style-guide {
padding-bottom: 0;
margin-bottom: 0;
}
span.copy_btm {
color: #929AA2;
display: block;
}
span.copy_btm_text {
color: #929AA2;
font-size: 9px;
line-height: 10px;
display: block;
opacity: 0.7;
margin-bottom: 15px;
}
form.navbar-form input {
border-radius: 3px;
}
.navbar-header {
min-height: 60px;
}
a.headerlink {
line-height: 60px;
margin-left: 15px;
}
a.image-reference img {
margin-bottom: 15px;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
font-size: 14px;
font-family: 'PT Sans Caption', 'PT Sans', arial, sans-serif;
}
div.admonition {
font-size: 13px;
}
.cc {
color: #AAA;
font-family: 'PT Sans Caption', 'PT Sans', arial, sans-serif;
font-size: 11px;
text-transform: uppercase;
text-align: center;
}
.cc img {
margin-bottom: 10px;
}
@media (max-width: 767px) and (min-width: 0px) {
.navbar-default .navbar-text {
margin-left: 15px;
}
.navbar-default .navbar-collapse {
background: #222;
}
.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus, .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover {
color: #ADADAD;
background-color: rgba(0, 0, 0, 0);
}
}
@media (max-width: 991px) and (min-width: 768px) {
.navbar-form .form-control {
width: 170px;
}
}
@media (max-width: 1199px) and (min-width: 992px) {
.navbar-form .form-control {
width: 170px;
}
}

View File

@ -1,34 +0,0 @@
jQuery(window).load(function() {
var toc_open_timer;
var toc_close_timer;
var open_time = 500;
var close_time = 1000;
$('.sphinxglobaltoc ul ul').hide();
$('.sphinxglobaltoc li').on({
'click': function (event) {
var children = $(this).children('ul');
if ((children.length > 0) && !children.first().is(":visible")) {
event.preventDefault();
children.show();
}
}
});
$('.sphinxglobaltoc').on({
'mouseout' :function() {
var that = this;
toc_close_timer = setTimeout(function() {
$('.sphinxglobaltoc ul ul').hide();
},
close_time);
},
'mouseover' : function() {
if (typeof toc_close_timer != undefined) {
clearTimeout(toc_close_timer);
}
}
});
});

View File

@ -1,93 +1,69 @@
# Bootstrap Theme
[theme]
inherit = cloud
stylesheet = mirantis.css
inherit = basic
stylesheet = basic.css
pygments_style = tango
# Configurable options.
[options]
# configuration options
collapsiblesidebar = true
defaultcollapsed = false
stickysidebar = true
highlighttoc = true
externalrefs = true
externalicon = "\21D7"
issueicon =
#issueicon = "\2727"
# Navigation bar title. (Default: ``project`` value)
navbar_title =
# Tab name for entire site. (Default: "Site")
navbar_site_name = Site
# A list of tuples containting pages to link to. The value should be
# in the form [(name, page), ..]
navbar_links =
# Render the next and previous page links in navbar. (Default: true)
navbar_sidebarrel = true
# Render the current pages TOC in the navbar. (Default: true)
navbar_pagenav = true
# Tab name for the current pages TOC. (Default: "Page")
navbar_pagenav_name = Page
# Global TOC depth for "site" navbar tab. (Default: 1)
# Switching to -1 shows all levels.
globaltoc_depth = 1
# Include hidden TOCs in Site navbar?
#
# Note: If this is "false", you cannot have mixed ``:hidden:`` and
# non-hidden ``toctree`` directives in the same page, or else the build
# will break.
#
# Values: "true" (default) or "false"
globaltoc_includehidden = true
# HTML navbar class (Default: "navbar") to attach to <div> element.
# For black navbar, do "navbar navbar-inverse"
navbar_class = navbar
# Fix navigation bar to top of page?
# Values: "true" (default) or "false"
navbar_fixed_top = false
# Location of link to source.
# Options are "nav" (default), "footer" or anything else to exclude.
source_link_position = nav
# Bootswatch (http://bootswatch.com/) theme.
#
# Options are nothing (default) or the name of a valid theme such as
# "amelia" or "cosmo".
bootswatch_theme =
# Switch Bootstrap version?
# Values: "3" (default) or "2"
bootstrap_version = 3
# link targets
# NOTE: roottarget can be name of document (eg: 'index', or "<toc>")
# logotarget is same, or can be "<root>" to reflect root value
roottarget = <toc>
roottarget = index
logotarget = <root>
# document dimensions
max_width = 11in ; max width document will expand to.
compact_width = 960px ; max width of "compact" mode (hides extra padding).
minimal_width = 700px ; max width of "minimal" mode (hides sidebar and other extras).
min_height = 6in ; min height of document
# styling for document body
bodyfont = "PT Sans", arial, sans-serif
bodytrimcolor = #D0D0D0
bgcolor = #ffffff
textcolor = #000000
linkcolor = #D32F1A
highlightcolor = rgba(0,0,0,.125)
quotebgcolor = rgba(0,0,0,.075)
quotetrimcolor = rgba(0,0,0,.05)
codebgcolor = #eeffcc
codetextcolor = #111111
codetrimcolor = #AACC99
codevarfont = "Droid Sans Mono", monospace
codeblockfont = "Droid Sans Mono", monospace
# styling for document headers
headfont = "PT Sans Narrow", "Arial Narrow", arial, sans-serif
headtextcolor = #000000
headlinkcolor = #D32F1A
# styling for section headers
sectionbgcolor = #FFFFFF
sectiontrimcolor = rgba(0,0,0,.125)
sectiontextcolor = #D32F1A
rubricbgcolor = #FFFFFF
# admonitions
admonition_note_color = #E7F0FE
admonition_warning_color = #ffe4e4
admonition_seealso_color = #FFF7E0
admonition_deprecated_color = #fbece0
admonition_todo_color = #FFF7E0
admonition_trim_color = rgba(0,0,0,.05)
# tables
table_header_color = rgba(0,0,0,.15)
table_shade_color = rgba(0,0,0,.06)
table_trim_color = rgba(0,0,0,.15)
# styling for footer / html background
footerbgcolor = #f5f5f5 url(fuel_tile.jpg)
footertextcolor = #D32F1A
# styling for sidebar
sidebarwidth = 275px
sidebarbgcolor = #FFFFFF
sidebartextcolor = #38424B
sidebarlinkcolor = #D32F1A
sidebartrimcolor = rgba(0,0,0,.15)
sidebarhighcolor = #F2F2F2
# styling for top & bottom relbars
relbarbgcolor = #FFFFFF
relbartextcolor = #D32F1A
relbarlinkcolor = #D32F1A
relbartrimcolor = #777777
# index page
index_category_color = #999999
# font css url - for loading in fonts (eg google font dir)
fontcssurl = http://fonts.googleapis.com/css?family=Noticia+Text|Open+Sans|Droid+Sans+Mono|PT+Sans+Narrow:400,700|PT+Sans:400,700,400italic
# set google analytics tracker
googletag = GTM-K2J65K

View File

@ -12,7 +12,6 @@
# serve to show the default.
import sys, os
import cloud_sptheme as csp
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
@ -107,12 +106,74 @@ html_theme = "mirantis"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = { "roottarget": "index" }
html_theme_options = {
# Navigation bar title. (Default: ``project`` value)
'navbar_title': "Documentation",
# Tab name for entire site. (Default: "Site")
'navbar_site_name': "Guide",
# A list of tuples containing pages or urls to link to.
# Valid tuples should be in the following forms:
# (name, page) # a link to a page
# (name, "/aa/bb", 1) # a link to an arbitrary relative url
# (name, "http://example.com", True) # arbitrary absolute url
# Note the "1" or "True" value above as the third argument to indicate
# an arbitrary url.
# 'navbar_links': [
# ("Examples", "examples"),
# ("Link", "http://example.com", True),
# ],
# Render the next and previous page links in navbar. (Default: true)
'navbar_sidebarrel': True,
# Render the current pages TOC in the navbar. (Default: true)
'navbar_pagenav': True,
# Tab name for the current pages TOC. (Default: "Page")
'navbar_pagenav_name': "Section",
# Global TOC depth for "site" navbar tab. (Default: 1)
# Switching to -1 shows all levels.
'globaltoc_depth': 2,
# Include hidden TOCs in Site navbar?
#
# Note: If this is "false", you cannot have mixed ``:hidden:`` and
# non-hidden ``toctree`` directives in the same page, or else the build
# will break.
#
# Values: "true" (default) or "false"
'globaltoc_includehidden': "true",
# HTML navbar class (Default: "navbar") to attach to <div> element.
# For black navbar, do "navbar navbar-inverse"
'navbar_class': "navbar",
# Fix navigation bar to top of page?
# Values: "true" (default) or "false"
'navbar_fixed_top': "true",
# Location of link to source.
# Options are "nav" (default), "footer" or anything else to exclude.
'source_link_position': "nav",
# Bootswatch (http://bootswatch.com/) theme.
#
# Options are nothing (default) or the name of a valid theme
# such as "amelia" or "cosmo".
'bootswatch_theme': "yeti",
# Choose Bootstrap version.
# Values: "3" (default) or "2" (in quotes)
'bootstrap_version': "3",
}
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ["_templates", csp.get_theme_dir()]
html_theme_path = ['_templates']
html_add_permalinks = None
# html_add_permalinks = None
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
@ -124,8 +185,7 @@ html_title = project + ' v' + release + ' | Documentation'
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
# html_logo = '_static/fuel-logo.png'
html_logo = '_static/fuel_gradient_200.png'
html_logo = '_static/mirantis_logo.png'
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
@ -146,9 +206,9 @@ html_static_path = ['_static']
html_use_smartypants = False
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': ['searchbox.html', 'globaltoc.html'],
}
#html_sidebars = {
# '**': ['searchbox.html', 'globaltoc.html'],
#}
# Additional templates that should be rendered to pages, maps page names to
# template names.