parent
96190154a3
commit
9563db3e77
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 1.0 KiB |
File diff suppressed because one or more lines are too long
@ -0,0 +1,30 @@
|
|||||||
|
$(document).ready(function(){
|
||||||
|
$('.local-toc').on('click' ,'a.reference.internal', function (){
|
||||||
|
$('.local-toc li.active').removeClass('active');
|
||||||
|
$(this).parent('li').addClass('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
if (!$('.doc-menu-vertical > ul > li.current > ul').length) {
|
||||||
|
$('.doc-content-wrap').css('margin-left', '-=240px');
|
||||||
|
$('.doc-menu-vertical').remove();
|
||||||
|
$('.local-toc').css('left', '0');
|
||||||
|
}
|
||||||
|
$('.doc-menu-vertical .toctree-l2').each(function (i, e){
|
||||||
|
$(e).toggleClass('has-child', !!$(e).find('ul').length);
|
||||||
|
});
|
||||||
|
if ($('.local-toc a:visible').length) {
|
||||||
|
$('.doc-content-wrap').css('margin-left', '+=50px');
|
||||||
|
$('.local-toc > ul').addClass('nav nav-stacked');
|
||||||
|
$('#doc-content').scrollspy({
|
||||||
|
target: '.local-toc'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('.local-toc').remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.doc-menu-vertical').find('li.current').last().addClass('active');
|
||||||
|
|
||||||
|
$('.doc-menu-vertical').perfectScrollbar();
|
||||||
|
$('.local-toc').perfectScrollbar();
|
||||||
|
});
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,225 @@
|
|||||||
|
/**
|
||||||
|
* Extend jquery with a scrollspy plugin.
|
||||||
|
* This watches the window scroll and fires events when elements are scrolled into viewport.
|
||||||
|
*
|
||||||
|
* throttle() and getTime() taken from Underscore.js
|
||||||
|
* https://github.com/jashkenas/underscore
|
||||||
|
*
|
||||||
|
* @author Copyright 2013 John Smart
|
||||||
|
* @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE
|
||||||
|
* @see https://github.com/thesmart
|
||||||
|
* @version 0.1.2
|
||||||
|
*/
|
||||||
|
(function($) {
|
||||||
|
|
||||||
|
var jWindow = $(window);
|
||||||
|
var elements = [];
|
||||||
|
var elementsInView = [];
|
||||||
|
var isSpying = false;
|
||||||
|
var ticks = 0;
|
||||||
|
var offset = {
|
||||||
|
top : 0,
|
||||||
|
right : 0,
|
||||||
|
bottom : 0,
|
||||||
|
left : 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find elements that are within the boundary
|
||||||
|
* @param {number} top
|
||||||
|
* @param {number} right
|
||||||
|
* @param {number} bottom
|
||||||
|
* @param {number} left
|
||||||
|
* @return {jQuery} A collection of elements
|
||||||
|
*/
|
||||||
|
function findElements(top, right, bottom, left) {
|
||||||
|
var hits = $();
|
||||||
|
$.each(elements, function(i, element) {
|
||||||
|
var elTop = element.offset().top,
|
||||||
|
elLeft = element.offset().left,
|
||||||
|
elRight = elLeft + element.width(),
|
||||||
|
elBottom = elTop + element.height();
|
||||||
|
|
||||||
|
var isIntersect = !(elLeft > right ||
|
||||||
|
elRight < left ||
|
||||||
|
elTop > bottom ||
|
||||||
|
elBottom < top);
|
||||||
|
|
||||||
|
if (isIntersect) {
|
||||||
|
hits.push(element);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return hits;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the user scrolls the window
|
||||||
|
*/
|
||||||
|
function onScroll() {
|
||||||
|
// unique tick id
|
||||||
|
++ticks;
|
||||||
|
|
||||||
|
// viewport rectangle
|
||||||
|
var top = jWindow.scrollTop(),
|
||||||
|
left = jWindow.scrollLeft(),
|
||||||
|
right = left + jWindow.width(),
|
||||||
|
bottom = top + jWindow.height();
|
||||||
|
|
||||||
|
// determine which elements are in view
|
||||||
|
var intersections = findElements(top+offset.top, right+offset.right, bottom+offset.bottom, left+offset.left);
|
||||||
|
$.each(intersections, function(i, element) {
|
||||||
|
var lastTick = element.data('scrollSpy:ticks');
|
||||||
|
if (typeof lastTick != 'number') {
|
||||||
|
// entered into view
|
||||||
|
element.triggerHandler('scrollSpy:enter');
|
||||||
|
}
|
||||||
|
|
||||||
|
// update tick id
|
||||||
|
element.data('scrollSpy:ticks', ticks);
|
||||||
|
});
|
||||||
|
|
||||||
|
// determine which elements are no longer in view
|
||||||
|
$.each(elementsInView, function(i, element) {
|
||||||
|
var lastTick = element.data('scrollSpy:ticks');
|
||||||
|
if (typeof lastTick == 'number' && lastTick !== ticks) {
|
||||||
|
// exited from view
|
||||||
|
element.triggerHandler('scrollSpy:exit');
|
||||||
|
element.data('scrollSpy:ticks', null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// remember elements in view for next tick
|
||||||
|
elementsInView = intersections;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when window is resized
|
||||||
|
*/
|
||||||
|
function onWinSize() {
|
||||||
|
jWindow.trigger('scrollSpy:winSize');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get time in ms
|
||||||
|
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
||||||
|
* @type {function}
|
||||||
|
* @return {number}
|
||||||
|
*/
|
||||||
|
var getTime = (Date.now || function () {
|
||||||
|
return new Date().getTime();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a function, that, when invoked, will only be triggered at most once
|
||||||
|
* during a given window of time. Normally, the throttled function will run
|
||||||
|
* as much as it can, without ever going more than once per `wait` duration;
|
||||||
|
* but if you'd like to disable the execution on the leading edge, pass
|
||||||
|
* `{leading: false}`. To disable execution on the trailing edge, ditto.
|
||||||
|
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
||||||
|
* @param {function} func
|
||||||
|
* @param {number} wait
|
||||||
|
* @param {Object=} options
|
||||||
|
* @returns {Function}
|
||||||
|
*/
|
||||||
|
function throttle(func, wait, options) {
|
||||||
|
var context, args, result;
|
||||||
|
var timeout = null;
|
||||||
|
var previous = 0;
|
||||||
|
options || (options = {});
|
||||||
|
var later = function () {
|
||||||
|
previous = options.leading === false ? 0 : getTime();
|
||||||
|
timeout = null;
|
||||||
|
result = func.apply(context, args);
|
||||||
|
context = args = null;
|
||||||
|
};
|
||||||
|
return function () {
|
||||||
|
var now = getTime();
|
||||||
|
if (!previous && options.leading === false) previous = now;
|
||||||
|
var remaining = wait - (now - previous);
|
||||||
|
context = this;
|
||||||
|
args = arguments;
|
||||||
|
if (remaining <= 0) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = null;
|
||||||
|
previous = now;
|
||||||
|
result = func.apply(context, args);
|
||||||
|
context = args = null;
|
||||||
|
} else if (!timeout && options.trailing !== false) {
|
||||||
|
timeout = setTimeout(later, remaining);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables ScrollSpy using a selector
|
||||||
|
* @param {jQuery|string} selector The elements collection, or a selector
|
||||||
|
* @param {Object=} options Optional.
|
||||||
|
throttle : number -> scrollspy throttling. Default: 100 ms
|
||||||
|
offsetTop : number -> offset from top. Default: 0
|
||||||
|
offsetRight : number -> offset from right. Default: 0
|
||||||
|
offsetBottom : number -> offset from bottom. Default: 0
|
||||||
|
offsetLeft : number -> offset from left. Default: 0
|
||||||
|
* @returns {jQuery}
|
||||||
|
*/
|
||||||
|
$.scrollSpy = function(selector, options) {
|
||||||
|
selector = $(selector);
|
||||||
|
selector.each(function(i, element) {
|
||||||
|
elements.push($(element));
|
||||||
|
});
|
||||||
|
options = options || {
|
||||||
|
throttle: 100
|
||||||
|
};
|
||||||
|
|
||||||
|
offset.top = options.offsetTop || 0;
|
||||||
|
offset.right = options.offsetRight || 0;
|
||||||
|
offset.bottom = options.offsetBottom || 0;
|
||||||
|
offset.left = options.offsetLeft || 0;
|
||||||
|
|
||||||
|
var throttledScroll = throttle(onScroll, options.throttle || 100);
|
||||||
|
var readyScroll = function(){
|
||||||
|
$(document).ready(throttledScroll);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!isSpying) {
|
||||||
|
jWindow.on('scroll', readyScroll);
|
||||||
|
jWindow.on('resize', readyScroll);
|
||||||
|
isSpying = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// perform a scan once, after current execution context, and after dom is ready
|
||||||
|
setTimeout(readyScroll, 0);
|
||||||
|
|
||||||
|
return selector;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listen for window resize events
|
||||||
|
* @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms
|
||||||
|
* @returns {jQuery} $(window)
|
||||||
|
*/
|
||||||
|
$.winSizeSpy = function(options) {
|
||||||
|
$.winSizeSpy = function() { return jWindow; }; // lock from multiple calls
|
||||||
|
options = options || {
|
||||||
|
throttle: 100
|
||||||
|
};
|
||||||
|
return jWindow.on('resize', throttle(onWinSize, options.throttle || 100));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables ScrollSpy on a collection of elements
|
||||||
|
* e.g. $('.scrollSpy').scrollSpy()
|
||||||
|
* @param {Object=} options Optional.
|
||||||
|
throttle : number -> scrollspy throttling. Default: 100 ms
|
||||||
|
offsetTop : number -> offset from top. Default: 0
|
||||||
|
offsetRight : number -> offset from right. Default: 0
|
||||||
|
offsetBottom : number -> offset from bottom. Default: 0
|
||||||
|
offsetLeft : number -> offset from left. Default: 0
|
||||||
|
* @returns {jQuery}
|
||||||
|
*/
|
||||||
|
$.fn.scrollSpy = function(options) {
|
||||||
|
return $.scrollSpy($(this), options);
|
||||||
|
};
|
||||||
|
|
||||||
|
})(jQuery);
|
@ -0,0 +1,24 @@
|
|||||||
|
{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
|
||||||
|
|
||||||
|
{% if page_source_suffix %}
|
||||||
|
{% set suffix = page_source_suffix %}
|
||||||
|
{% else %}
|
||||||
|
{% set suffix = source_suffix %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if meta is defined and 'github_url' in meta %}
|
||||||
|
{% set display_github = True %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if meta is defined and 'bitbucket_url' in meta %}
|
||||||
|
{% set display_bitbucket = True %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
{% for doc in parents %}
|
||||||
|
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> > </li>
|
||||||
|
{% endfor %}
|
||||||
|
<li>{{ title }}</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
@ -0,0 +1,191 @@
|
|||||||
|
{# TEMPLATE VAR SETTINGS #}
|
||||||
|
{%- set url_root = pathto('', 1) %}
|
||||||
|
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
|
||||||
|
{%- if not embedded and docstitle %}
|
||||||
|
{%- set titlesuffix = " — "|safe + docstitle|e %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set titlesuffix = "" %}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
{{ metatags }}
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
{% block htmltitle %}
|
||||||
|
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{# FAVICON #}
|
||||||
|
{% if favicon %}
|
||||||
|
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{# CSS #}
|
||||||
|
|
||||||
|
{# OPENSEARCH #}
|
||||||
|
{% if not embedded %}
|
||||||
|
{% if use_opensearch %}
|
||||||
|
<link rel="search" type="application/opensearchdescription+xml" title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}" href="{{ pathto('_static/opensearch.xml', 1) }}"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{# RTD hosts this file, so just load on non RTD builds #}
|
||||||
|
{% if not READTHEDOCS %}
|
||||||
|
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for cssfile in css_files %}
|
||||||
|
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
||||||
|
{% endfor %}
|
||||||
|
{% for cssfile in extra_css_files %}
|
||||||
|
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{%- block linktags %}
|
||||||
|
{%- if hasdoc('about') %}
|
||||||
|
<link rel="author" title="{{ _('About these documents') }}"
|
||||||
|
href="{{ pathto('about') }}"/>
|
||||||
|
{%- endif %}
|
||||||
|
{%- if hasdoc('genindex') %}
|
||||||
|
<link rel="index" title="{{ _('Index') }}"
|
||||||
|
href="{{ pathto('genindex') }}"/>
|
||||||
|
{%- endif %}
|
||||||
|
{%- if hasdoc('search') %}
|
||||||
|
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}"/>
|
||||||
|
{%- endif %}
|
||||||
|
{%- if hasdoc('copyright') %}
|
||||||
|
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}"/>
|
||||||
|
{%- endif %}
|
||||||
|
<link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}"/>
|
||||||
|
{%- if parents %}
|
||||||
|
<link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}"/>
|
||||||
|
{%- endif %}
|
||||||
|
{%- if next %}
|
||||||
|
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}"/>
|
||||||
|
{%- endif %}
|
||||||
|
{%- if prev %}
|
||||||
|
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}"/>
|
||||||
|
{%- endif %}
|
||||||
|
{%- endblock %}
|
||||||
|
{%- block extrahead %}
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="{{pathto('_static/css/perfect-scrollbar.min.css', 1)}}" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="{{pathto('_static/css/override.css', 1)}}" type="text/css" />
|
||||||
|
<script>
|
||||||
|
var _hmt = _hmt || [];
|
||||||
|
(function() {
|
||||||
|
var hm = document.createElement("script");
|
||||||
|
hm.src = "//hm.baidu.com/hm.js?b9a314ab40d04d805655aab1deee08ba";
|
||||||
|
var s = document.getElementsByTagName("script")[0];
|
||||||
|
s.parentNode.insertBefore(hm, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{# Keep modernizr in head - http://modernizr.com/docs/#installing #}
|
||||||
|
<script src="{{ pathto('_static/js/modernizr.min.js', 1) }}"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav" role="document">
|
||||||
|
|
||||||
|
{% block extrabody %}
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="site-logo">
|
||||||
|
<a href="/"><img src="{{pathto('_static/images/PP_w.png', 1)}}"></a>
|
||||||
|
</div>
|
||||||
|
<div class="site-nav-links">
|
||||||
|
<div class="site-menu">
|
||||||
|
<a class="fork-on-github"><i class="fa fa-github"></i>Folk me on Github</a>
|
||||||
|
<div class="language-switcher dropdown">
|
||||||
|
<a type="button" data-toggle="dropdown">
|
||||||
|
<span>English</span>
|
||||||
|
<i class="fa fa-angle-up"></i>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="/doc_cn">中文</a></li>
|
||||||
|
<li><a href="/doc">English</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<ul class="site-page-links">
|
||||||
|
<li><a>Home</a></li>
|
||||||
|
<li><a>Get Started</a></li>
|
||||||
|
<li class="active"><a>Documentation</a></li>
|
||||||
|
<li><a>About Us</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="doc-module">
|
||||||
|
{%set modules = toctree(maxdepth=0, collapse=False, titles_only=True)%}
|
||||||
|
{{modules}}
|
||||||
|
{% include "searchbox.html" %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
{% endblock %}
|
||||||
|
<div class="main-content-wrap">
|
||||||
|
|
||||||
|
{# SIDE NAV, TOGGLES ON MOBILE #}
|
||||||
|
<nav class="doc-menu-vertical" role="navigation">
|
||||||
|
{% block menu %}
|
||||||
|
{% set toctree = toctree(maxdepth=-1, collapse=False,titles_only=True, includehidden=True) %}
|
||||||
|
{{ toctree }}
|
||||||
|
{% endblock %}
|
||||||
|
</nav>
|
||||||
|
{% if toc %}
|
||||||
|
<nav class="local-toc">{{ toc }}</nav>
|
||||||
|
{% endif %}
|
||||||
|
<section class="doc-content-wrap">
|
||||||
|
|
||||||
|
{% include "breadcrumbs.html" %}
|
||||||
|
{# PAGE CONTENT #}
|
||||||
|
<div class="wy-nav-content" id="doc-content">
|
||||||
|
<div class="rst-content">
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div itemprop="articleBody">
|
||||||
|
{% block body %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% include "footer.html" %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% include "versions.html" %}
|
||||||
|
|
||||||
|
{% if not embedded %}
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var DOCUMENTATION_OPTIONS = {
|
||||||
|
URL_ROOT:'{{ url_root }}',
|
||||||
|
VERSION:'{{ release|e }}',
|
||||||
|
COLLAPSE_INDEX:false,
|
||||||
|
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
|
||||||
|
HAS_SOURCE: {{ has_source|lower }}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
{%- for scriptfile in script_files %}
|
||||||
|
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
|
||||||
|
{%- endfor %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{# RTD hosts this file, so just load on non RTD builds #}
|
||||||
|
{% if not READTHEDOCS %}
|
||||||
|
<script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<script src="{{ pathto('_static/js/bootstrap.min.js', 1) }}"></script>
|
||||||
|
<script src="{{ pathto('_static/js/perfect-scrollbar.jquery.min.js', 1) }}"></script>
|
||||||
|
<script src="{{ pathto('_static/js/paddle_doc_init.js', 1) }}"></script>
|
||||||
|
{%- block footer %} {% endblock %}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,52 @@
|
|||||||
|
{#
|
||||||
|
basic/search.html
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Template for the search page.
|
||||||
|
|
||||||
|
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
||||||
|
:license: BSD, see LICENSE for details.
|
||||||
|
#}
|
||||||
|
{%- extends "layout.html" %}
|
||||||
|
{% set title = _('Search') %}
|
||||||
|
{% set script_files = script_files + ['_static/searchtools.js'] %}
|
||||||
|
{% block footer %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });
|
||||||
|
jQuery('.doc-content-wrap > div[role="navigation"]').remove();
|
||||||
|
jQuery('.doc-content-wrap').css('padding-top', 0);
|
||||||
|
</script>
|
||||||
|
{# this is used when loading the search index using $.ajax fails,
|
||||||
|
such as on Chrome for documents on localhost #}
|
||||||
|
<script type="text/javascript" id="searchindexloader"></script>
|
||||||
|
{{ super() }}
|
||||||
|
{% endblock %}
|
||||||
|
{% block body %}
|
||||||
|
<noscript>
|
||||||
|
<div id="fallback" class="admonition warning">
|
||||||
|
<p class="last">
|
||||||
|
{% trans %}Please activate JavaScript to enable the search
|
||||||
|
functionality.{% endtrans %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
{% if search_performed %}
|
||||||
|
<h2>{{ _('Search Results') }}</h2>
|
||||||
|
{% if not search_results %}
|
||||||
|
<p>{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
<div id="search-results">
|
||||||
|
{% if search_results %}
|
||||||
|
<ul>
|
||||||
|
{% for href, caption, context in search_results %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ pathto(item.href) }}">{{ caption }}</a>
|
||||||
|
<p class="context">{{ context|e }}</p>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
@ -1,6 +1,7 @@
|
|||||||
FROM paddledev/paddle:cpu-devel-latest
|
FROM paddledev/paddle:cpu-devel-latest
|
||||||
COPY build.sh /
|
COPY build.sh /
|
||||||
RUN pip install sphinx &&\
|
RUN pip install sphinx &&\
|
||||||
|
pip install sphinx_rtd_theme &&\
|
||||||
apt install -y doxygen graphviz &&\
|
apt install -y doxygen graphviz &&\
|
||||||
pip install breathe recommonmark numpy protobuf==2.6.1
|
pip install breathe recommonmark numpy protobuf==2.6.1
|
||||||
CMD /build.sh
|
CMD /build.sh
|
||||||
|
Loading…
Reference in new issue