mirror of https://github.com/ansible/ansible.git
[2.11] Use `sphinx_ansible_theme` Sphinx theme in docs (#75058)
* Use `sphinx_ansible_theme` Sphinx theme in docs (#74318) (cherry picked from commitpull/75100/head346c7a765d
) * 🔥 Drop unused `core.css` file This is a forgotten leftover from #74318 that should've been removed earlier. (cherry picked from commitec408a69f1
) * Update docs requirements list (#74956) * removes upper bound on sphinx version * updates versions of docs build dependencies, adds known good requirements file * adds instructions for using known_good_reqs file (cherry picked from commit58f26388be
) Co-authored-by: Sviatoslav Sydorenko <webknjaz@redhat.com> Co-authored-by: Sviatoslav Sydorenko <wk@sydorenko.org.ua> Co-authored-by: Alicia Cozine <879121+acozine@users.noreply.github.com>
parent
a5d1238f42
commit
37b3593720
@ -0,0 +1,73 @@
|
|||||||
|
{% if is_eol %}
|
||||||
|
{# Creates a banner at the top of the page for EOL versions. #}
|
||||||
|
<div id='banner' class='Admonition caution'>
|
||||||
|
<p>You are reading an unmaintained version of the Ansible documentation. Unmaintained Ansible versions can contain unfixed security vulnerabilities (CVE). Please upgrade to a maintained version. See <a href="/ansible/latest/">the latest Ansible documentation</a>.</p>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<script>
|
||||||
|
function startsWith(str, needle) {
|
||||||
|
return str.slice(0, needle.length) == needle
|
||||||
|
}
|
||||||
|
function startsWithOneOf(str, needles) {
|
||||||
|
return needles.some(function (needle) {
|
||||||
|
return startsWith(str, needle);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var banner = '';
|
||||||
|
var survey_banner =
|
||||||
|
'<div id="latest_survey_banner_id" class="admonition important">' +
|
||||||
|
'<br>' +
|
||||||
|
'<p>' +
|
||||||
|
'Please take our ' +
|
||||||
|
'<a href="https://www.surveymonkey.co.uk/r/2VWVJY3">survey</a> ' +
|
||||||
|
'to help us improve support for collections and roles in GalaxyNG.' +
|
||||||
|
'</p>' +
|
||||||
|
'<br>' +
|
||||||
|
'</div>';
|
||||||
|
// Create a banner if we're not on the official docs site
|
||||||
|
if (location.host == "docs.testing.ansible.com") {
|
||||||
|
document.write('<div id="testing_banner_id" class="admonition important">' +
|
||||||
|
'<p>This is the testing site for Ansible Documentation. Unless you are reviewing pre-production changes, please visit the <a href="https://docs.ansible.com/ansible/latest/">official documentation website</a>.</p> <p></p>' +
|
||||||
|
'</div>');
|
||||||
|
}
|
||||||
|
{% if available_versions is defined %}
|
||||||
|
// Create a banner
|
||||||
|
current_url_path = window.location.pathname;
|
||||||
|
|
||||||
|
var important = false;
|
||||||
|
var msg = '<p>';
|
||||||
|
if (startsWith(current_url_path, "/ansible-core/")) {
|
||||||
|
msg += 'You are reading documentation for Ansible Core, which contains no plugins except for those in ansible.builtin. For documentation of the Ansible package, go to <a href="/ansible/latest">the latest documentation</a>.';
|
||||||
|
} else if (startsWithOneOf(current_url_path, ["/ansible/latest/", "/ansible/{{ latest_version }}/"])) {
|
||||||
|
/* temp banner to advertise GalaxyNG survey */
|
||||||
|
banner += survey_banner;
|
||||||
|
|
||||||
|
msg += 'You are reading the latest community version of the Ansible documentation. Red Hat subscribers, select <b>2.9</b> in the version selection to the left for the most recent Red Hat release.';
|
||||||
|
} else if (startsWith(current_url_path, "/ansible/2.9/")) {
|
||||||
|
msg += 'You are reading the latest Red Hat released version of the Ansible documentation. Community users can use this version, or select <b>latest</b> from the version selector to the left for the most recent community version.';
|
||||||
|
} else if (startsWith(current_url_path, "/ansible/devel/")) {
|
||||||
|
/* temp banner to advertise GalaxyNG survey */
|
||||||
|
banner += survey_banner;
|
||||||
|
|
||||||
|
/* temp banner to advertise survey
|
||||||
|
important = true;
|
||||||
|
msg += 'Please take our <a href="https://www.surveymonkey.co.uk/r/B9V3CDY">Docs survey</a> before December 31 to help us improve Ansible documentation.';
|
||||||
|
*/
|
||||||
|
|
||||||
|
msg += 'You are reading the <b>devel</b> version of the Ansible documentation - this version is not guaranteed stable. Use the version selection to the left if you want the latest stable released version.';
|
||||||
|
} else {
|
||||||
|
msg += 'You are reading an older version of the Ansible documentation. Use the version selection to the left if you want the latest stable released version.';
|
||||||
|
}
|
||||||
|
msg += '</p>';
|
||||||
|
|
||||||
|
banner += '<div id="banner_id" class="admonition ';
|
||||||
|
banner += important ? 'important' : 'caution';
|
||||||
|
banner += '">';
|
||||||
|
banner += important ? '<br>' : '';
|
||||||
|
banner += msg;
|
||||||
|
banner += important ? '<br>' : '';
|
||||||
|
banner += '</div>';
|
||||||
|
document.write(banner);
|
||||||
|
{% endif %}
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
@ -0,0 +1,45 @@
|
|||||||
|
{%- extends "!breadcrumbs.html" %}
|
||||||
|
{%- block breadcrumbs_aside %}
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
{%- if hasdoc(pagename) and display_vcs_links %}
|
||||||
|
{%- if display_github %}
|
||||||
|
{%- if check_meta and 'github_url' in meta %}
|
||||||
|
<!-- User defined GitHub URL -->
|
||||||
|
<a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||||
|
{%- else %}
|
||||||
|
<!-- Ansible-specific additions for modules etc -->
|
||||||
|
{% if check_meta and pagename.endswith((
|
||||||
|
'_module', '_become', '_cache', '_callback',
|
||||||
|
'_connection', '_inventory', '_lookup',
|
||||||
|
'_shell', '_strategy', '_vars',
|
||||||
|
)) %}
|
||||||
|
<!-- <a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_module_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a> -->
|
||||||
|
<br>
|
||||||
|
{% elif check_meta and pagename.startswith('cli') and meta.get('source', None) %}
|
||||||
|
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_cli_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||||
|
{% elif (not 'list_of' in pagename) and (not 'category' in pagename) %}
|
||||||
|
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- elif display_bitbucket %}
|
||||||
|
{%- if check_meta and 'bitbucket_url' in meta %}
|
||||||
|
<!-- User defined Bitbucket URL -->
|
||||||
|
<a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||||
|
{%- else %}
|
||||||
|
<a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}?mode={{ theme_vcs_pageview_mode or "view" }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||||
|
{%- endif %}
|
||||||
|
{%- elif display_gitlab %}
|
||||||
|
{%- if check_meta and 'gitlab_url' in meta %}
|
||||||
|
<!-- User defined GitLab URL -->
|
||||||
|
<a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||||
|
{%- else %}
|
||||||
|
<a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||||
|
{%- endif %}
|
||||||
|
{%- elif show_source and source_url_prefix %}
|
||||||
|
<a href="{{ source_url_prefix }}{{ pagename }}{{ page_source_suffix }}">{{ _('View page source') }}</a>
|
||||||
|
{%- elif show_source and has_source and sourcename %}
|
||||||
|
<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
</li>
|
||||||
|
{%- endblock %}
|
@ -0,0 +1,4 @@
|
|||||||
|
{# https://jinja.palletsprojects.com/en/3.0.x/tricks/#null-default-fallback #}
|
||||||
|
{%- if not is_eol %}
|
||||||
|
{%- extends "!version_chooser.html" %}
|
||||||
|
{%- endif %}
|
@ -1,188 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# pylint: disable=no-self-argument
|
|
||||||
#
|
|
||||||
# Copyright 2006-2017 by the Pygments team, see AUTHORS at
|
|
||||||
# https://bitbucket.org/birkenfeld/pygments-main/raw/7941677dc77d4f2bf0bbd6140ade85a9454b8b80/AUTHORS
|
|
||||||
# Copyright by Norman Richards (original author of JSON lexer).
|
|
||||||
#
|
|
||||||
# Licensed under BSD license:
|
|
||||||
#
|
|
||||||
# Copyright (c) 2006-2017 by the respective authors (see AUTHORS file).
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are
|
|
||||||
# met:
|
|
||||||
#
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
#
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
from __future__ import (absolute_import, division, print_function)
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
from pygments.lexer import LexerContext, ExtendedRegexLexer, DelegatingLexer, RegexLexer, bygroups, include
|
|
||||||
from pygments.lexers import DiffLexer
|
|
||||||
from pygments import token
|
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
|
|
||||||
class AnsibleOutputPrimaryLexer(RegexLexer):
|
|
||||||
name = 'Ansible-output-primary'
|
|
||||||
|
|
||||||
# The following definitions are borrowed from Pygment's JSON lexer.
|
|
||||||
# It has been originally authored by Norman Richards.
|
|
||||||
|
|
||||||
# integer part of a number
|
|
||||||
int_part = r'-?(0|[1-9]\d*)'
|
|
||||||
|
|
||||||
# fractional part of a number
|
|
||||||
frac_part = r'\.\d+'
|
|
||||||
|
|
||||||
# exponential part of a number
|
|
||||||
exp_part = r'[eE](\+|-)?\d+'
|
|
||||||
|
|
||||||
tokens = {
|
|
||||||
# #########################################
|
|
||||||
# # BEGIN: states from JSON lexer #########
|
|
||||||
# #########################################
|
|
||||||
'whitespace': [
|
|
||||||
(r'\s+', token.Text),
|
|
||||||
],
|
|
||||||
|
|
||||||
# represents a simple terminal value
|
|
||||||
'simplevalue': [
|
|
||||||
(r'(true|false|null)\b', token.Keyword.Constant),
|
|
||||||
(('%(int_part)s(%(frac_part)s%(exp_part)s|'
|
|
||||||
'%(exp_part)s|%(frac_part)s)') % vars(),
|
|
||||||
token.Number.Float),
|
|
||||||
(int_part, token.Number.Integer),
|
|
||||||
(r'"(\\\\|\\"|[^"])*"', token.String),
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
# the right hand side of an object, after the attribute name
|
|
||||||
'objectattribute': [
|
|
||||||
include('value'),
|
|
||||||
(r':', token.Punctuation),
|
|
||||||
# comma terminates the attribute but expects more
|
|
||||||
(r',', token.Punctuation, '#pop'),
|
|
||||||
# a closing bracket terminates the entire object, so pop twice
|
|
||||||
(r'\}', token.Punctuation, '#pop:2'),
|
|
||||||
],
|
|
||||||
|
|
||||||
# a json object - { attr, attr, ... }
|
|
||||||
'objectvalue': [
|
|
||||||
include('whitespace'),
|
|
||||||
(r'"(\\\\|\\"|[^"])*"', token.Name.Tag, 'objectattribute'),
|
|
||||||
(r'\}', token.Punctuation, '#pop'),
|
|
||||||
],
|
|
||||||
|
|
||||||
# json array - [ value, value, ... }
|
|
||||||
'arrayvalue': [
|
|
||||||
include('whitespace'),
|
|
||||||
include('value'),
|
|
||||||
(r',', token.Punctuation),
|
|
||||||
(r'\]', token.Punctuation, '#pop'),
|
|
||||||
],
|
|
||||||
|
|
||||||
# a json value - either a simple value or a complex value (object or array)
|
|
||||||
'value': [
|
|
||||||
include('whitespace'),
|
|
||||||
include('simplevalue'),
|
|
||||||
(r'\{', token.Punctuation, 'objectvalue'),
|
|
||||||
(r'\[', token.Punctuation, 'arrayvalue'),
|
|
||||||
],
|
|
||||||
# #########################################
|
|
||||||
# # END: states from JSON lexer ###########
|
|
||||||
# #########################################
|
|
||||||
|
|
||||||
'host-postfix': [
|
|
||||||
(r'\n', token.Text, '#pop:3'),
|
|
||||||
(r'( )(=>)( )(\{)',
|
|
||||||
bygroups(token.Text, token.Punctuation, token.Text, token.Punctuation),
|
|
||||||
'objectvalue'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'host-error': [
|
|
||||||
(r'(?:(:)( )(UNREACHABLE|FAILED)(!))?',
|
|
||||||
bygroups(token.Punctuation, token.Text, token.Keyword, token.Punctuation),
|
|
||||||
'host-postfix'),
|
|
||||||
(r'', token.Text, 'host-postfix'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'host-name': [
|
|
||||||
(r'(\[)([^ \]]+)(?:( )(=>)( )([^\]]+))?(\])',
|
|
||||||
bygroups(token.Punctuation, token.Name.Variable, token.Text, token.Punctuation, token.Text, token.Name.Variable, token.Punctuation),
|
|
||||||
'host-error')
|
|
||||||
],
|
|
||||||
|
|
||||||
'host-result': [
|
|
||||||
(r'\n', token.Text, '#pop'),
|
|
||||||
(r'( +)(ok|changed|failed|skipped|unreachable)(=)([0-9]+)',
|
|
||||||
bygroups(token.Text, token.Keyword, token.Punctuation, token.Number.Integer)),
|
|
||||||
],
|
|
||||||
|
|
||||||
'root': [
|
|
||||||
(r'(PLAY|TASK|PLAY RECAP)(?:( )(\[)([^\]]+)(\]))?( )(\*+)(\n)',
|
|
||||||
bygroups(token.Keyword, token.Text, token.Punctuation, token.Literal, token.Punctuation, token.Text, token.Name.Variable, token.Text)),
|
|
||||||
(r'(fatal|ok|changed|skipping)(:)( )',
|
|
||||||
bygroups(token.Keyword, token.Punctuation, token.Text),
|
|
||||||
'host-name'),
|
|
||||||
(r'(\[)(WARNING)(\]:)([^\n]+)',
|
|
||||||
bygroups(token.Punctuation, token.Keyword, token.Punctuation, token.Text)),
|
|
||||||
(r'([^ ]+)( +)(:)',
|
|
||||||
bygroups(token.Name, token.Text, token.Punctuation),
|
|
||||||
'host-result'),
|
|
||||||
(r'(\tto retry, use: )(.*)(\n)', bygroups(token.Text, token.Literal.String, token.Text)),
|
|
||||||
(r'.*\n', token.Other),
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class AnsibleOutputLexer(DelegatingLexer):
|
|
||||||
name = 'Ansible-output'
|
|
||||||
aliases = ['ansible-output']
|
|
||||||
|
|
||||||
def __init__(self, **options):
|
|
||||||
super(AnsibleOutputLexer, self).__init__(DiffLexer, AnsibleOutputPrimaryLexer, **options)
|
|
||||||
|
|
||||||
|
|
||||||
# ####################################################################################################
|
|
||||||
# # Sphinx plugin ####################################################################################
|
|
||||||
# ####################################################################################################
|
|
||||||
|
|
||||||
__version__ = "0.1.0"
|
|
||||||
__license__ = "BSD license"
|
|
||||||
__author__ = "Felix Fontein"
|
|
||||||
__author_email__ = "felix@fontein.de"
|
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
|
||||||
""" Initializer for Sphinx extension API.
|
|
||||||
See http://www.sphinx-doc.org/en/stable/extdev/index.html#dev-extensions.
|
|
||||||
"""
|
|
||||||
for lexer in [
|
|
||||||
AnsibleOutputLexer(startinline=True)
|
|
||||||
]:
|
|
||||||
app.add_lexer(lexer.name, lexer)
|
|
||||||
for alias in lexer.aliases:
|
|
||||||
app.add_lexer(alias, lexer)
|
|
||||||
|
|
||||||
return dict(version=__version__, parallel_read_safe=True)
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,17 @@
|
|||||||
|
.DocSiteProduct-header--core {
|
||||||
|
background-color: #161b1f;
|
||||||
|
border-color: #161b1f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-nav-top, .wy-side-nav-search {
|
||||||
|
background-color: #161b1f;
|
||||||
|
}
|
||||||
|
.wy-nav-side {
|
||||||
|
background-color: #999999;
|
||||||
|
}
|
||||||
|
.wy-menu-vertical header, .wy-menu-vertical p.caption {
|
||||||
|
color: #161b1f;
|
||||||
|
}
|
||||||
|
.ansibleNav ul li a:hover {
|
||||||
|
color: #161b1f;
|
||||||
|
}
|
@ -1,76 +0,0 @@
|
|||||||
.highlight { background: #f8f8f8 }
|
|
||||||
.highlight .hll { background-color: #ffffcc; border: 1px solid #edff00; padding-top: 2px; border-radius: 3px; display: block }
|
|
||||||
.highlight .c { color: #6a737d; font-style: italic } /* Comment */
|
|
||||||
.highlight .err { color: #a61717; background-color: #e3d2d2; color: #a61717; border: 1px solid #FF0000 } /* Error */
|
|
||||||
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
|
|
||||||
.highlight .o { color: #666666; font-weight: bold } /* Operator */
|
|
||||||
.highlight .ch { color: #6a737d; font-style: italic } /* Comment.Hashbang */
|
|
||||||
.highlight .cm { color: #6a737d; font-style: italic } /* Comment.Multiline */
|
|
||||||
.highlight .cp { color: #007020 } /* Comment.Preproc */
|
|
||||||
.highlight .cpf { color: #6a737d; font-style: italic } /* Comment.PreprocFile */
|
|
||||||
.highlight .c1 { color: #6a737d; font-style: italic } /* Comment.Single */
|
|
||||||
.highlight .cs { color: #999999; font-weight: bold; font-style: italic; background-color: #fff0f0 } /* Comment.Special */
|
|
||||||
.highlight .gd { color: #A00000; background-color: #ffdddd } /* Generic.Deleted */
|
|
||||||
.highlight .gd .x { color: #A00000; background-color: #ffaaaa }
|
|
||||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
|
||||||
.highlight .gr { color: #aa0000 } /* Generic.Error */
|
|
||||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
|
||||||
.highlight .gi { color: #00A000; background-color: #ddffdd } /* Generic.Inserted */
|
|
||||||
.highlight .gi .x { color: #00A000; background-color: #aaffaa; }
|
|
||||||
.highlight .go { color: #333333 } /* Generic.Output */
|
|
||||||
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
|
|
||||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
|
||||||
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
|
||||||
.highlight .gt { color: #0040D0 } /* Generic.Traceback */
|
|
||||||
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
|
|
||||||
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
|
|
||||||
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
|
|
||||||
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
|
|
||||||
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
|
|
||||||
.highlight .kt { color: #902000 } /* Keyword.Type */
|
|
||||||
.highlight .l { color: #032f62 } /* Literal */
|
|
||||||
.highlight .m { color: #208050 } /* Literal.Number */
|
|
||||||
.highlight .s { color: #4070a0 } /* Literal.String */
|
|
||||||
.highlight .n { color: #333333 }
|
|
||||||
.highlight .p { font-weight: bold }
|
|
||||||
.highlight .na { color: teal } /* Name.Attribute */
|
|
||||||
.highlight .nb { color: #0086b3 } /* Name.Builtin */
|
|
||||||
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
|
|
||||||
.highlight .no { color: teal; } /* Name.Constant */
|
|
||||||
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
|
|
||||||
.highlight .ni { color: purple; font-weight: bold } /* Name.Entity */
|
|
||||||
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
|
|
||||||
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
|
|
||||||
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
|
|
||||||
.highlight .nn { color: #555555; font-weight: bold } /* Name.Namespace */
|
|
||||||
.highlight .nt { color: #22863a } /* Name.Tag */
|
|
||||||
.highlight .nv { color: #9960b5; font-weight: bold } /* Name.Variable */
|
|
||||||
.highlight .p { color: font-weight: bold } /* Indicator */
|
|
||||||
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
|
|
||||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
|
||||||
.highlight .mb { color: #009999 } /* Literal.Number.Bin */
|
|
||||||
.highlight .mf { color: #009999 } /* Literal.Number.Float */
|
|
||||||
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
|
|
||||||
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
|
|
||||||
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
|
|
||||||
.highlight .sa { color: #dd1144 } /* Literal.String.Affix */
|
|
||||||
.highlight .sb { color: #dd1144 } /* Literal.String.Backtick */
|
|
||||||
.highlight .sc { color: #dd1144 } /* Literal.String.Char */
|
|
||||||
.highlight .dl { color: #dd1144 } /* Literal.String.Delimiter */
|
|
||||||
.highlight .sd { color: #dd1144; font-style: italic } /* Literal.String.Doc */
|
|
||||||
.highlight .s2 { color: #dd1144 } /* Literal.String.Double */
|
|
||||||
.highlight .se { color: #dd1144; font-weight: bold } /* Literal.String.Escape */
|
|
||||||
.highlight .sh { color: #dd1144 } /* Literal.String.Heredoc */
|
|
||||||
.highlight .si { color: #dd1144; font-style: italic } /* Literal.String.Interpol */
|
|
||||||
.highlight .sx { color: #dd1144 } /* Literal.String.Other */
|
|
||||||
.highlight .sr { color: #009926 } /* Literal.String.Regex */
|
|
||||||
.highlight .s1 { color: #dd1144 } /* Literal.String.Single */
|
|
||||||
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
|
|
||||||
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
|
|
||||||
.highlight .fm { color: #06287e } /* Name.Function.Magic */
|
|
||||||
.highlight .vc { color: teal } /* Name.Variable.Class */
|
|
||||||
.highlight .vg { color: teal } /* Name.Variable.Global */
|
|
||||||
.highlight .vi { color: teal } /* Name.Variable.Instance */
|
|
||||||
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
|
|
||||||
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
|
|
||||||
.highlight .gc { color: #909090; background-color: #eaf2f5 }
|
|
@ -1,23 +0,0 @@
|
|||||||
"""Sphinx ReadTheDocs theme.
|
|
||||||
|
|
||||||
From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
|
|
||||||
|
|
||||||
"""
|
|
||||||
from __future__ import (absolute_import, division, print_function)
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
from os import path
|
|
||||||
|
|
||||||
__version__ = '0.2.5b2'
|
|
||||||
__version_full__ = __version__
|
|
||||||
|
|
||||||
|
|
||||||
def get_html_theme_path():
|
|
||||||
"""Return list of HTML theme paths."""
|
|
||||||
cur_dir = path.abspath(path.dirname(path.dirname(__file__)))
|
|
||||||
return cur_dir
|
|
||||||
|
|
||||||
|
|
||||||
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
|
|
||||||
def setup(app):
|
|
||||||
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
|
|
@ -1,55 +0,0 @@
|
|||||||
<!--- Based on sphinx versionwarning extension. Extension currently only works on READTHEDOCS -->
|
|
||||||
<script>
|
|
||||||
startsWith = function(str, needle) {
|
|
||||||
return str.slice(0, needle.length) == needle
|
|
||||||
}
|
|
||||||
// Create a banner if we're not on the official docs site
|
|
||||||
if (location.host == "docs.testing.ansible.com") {
|
|
||||||
document.write('<div id="testing_banner_id" class="admonition important">');
|
|
||||||
document.write('<p>This is the testing site for Ansible Documentation. Unless you are reviewing pre-production changes, please visit the <a href="https://docs.ansible.com/ansible/latest/">official documentation website</a>.</p> <p></p>');
|
|
||||||
document.write('</div>');
|
|
||||||
}
|
|
||||||
{% if (not READTHEDOCS) and (available_versions is defined) %}
|
|
||||||
// Create a banner
|
|
||||||
current_url_path = window.location.pathname;
|
|
||||||
|
|
||||||
if (startsWith(current_url_path, "/ansible-core/")) {
|
|
||||||
document.write('<div id="core_banner_id" class="admonition caution">');
|
|
||||||
document.write('<p>You are reading documentation for Ansible Core, which contains no plugins except for those in ansible.builtin. For documentation of the Ansible package, go to <a href="https://docs.ansible.com/ansible/latest">the latest documentation</a>.</p>');
|
|
||||||
document.write('</div>');
|
|
||||||
|
|
||||||
} else if (startsWith(current_url_path, "/ansible/latest/") || startsWith(current_url_path, "/ansible/{{ latest_version }}/")) {
|
|
||||||
/* temp banner to advertise GalaxyNG survey */
|
|
||||||
document.write('<div id="latest_survey_banner_id" class="admonition important">');
|
|
||||||
document.write('<br><p>Please take our <a href="https://www.surveymonkey.co.uk/r/2VWVJY3">survey</a> to help us improve support for collections and roles in GalaxyNG.</p><br>');
|
|
||||||
document.write('</div>');
|
|
||||||
|
|
||||||
document.write('<div id="latest_banner_id" class="admonition caution">');
|
|
||||||
document.write('<p>You are reading the latest community version of the Ansible documentation. Red Hat subscribers, select <b>2.9</b> in the version selection to the left for the most recent Red Hat release.</p>');
|
|
||||||
document.write('</div>');
|
|
||||||
|
|
||||||
} else if (startsWith(current_url_path, "/ansible/2.9/")) {
|
|
||||||
document.write('<div id="2dot9_banner_id" class="admonition caution">');
|
|
||||||
document.write('<p>You are reading the latest Red Hat released version of the Ansible documentation. Community users can use this version, or select <b>latest</b> from the version selector to the left for the most recent community version.</p>');
|
|
||||||
document.write('</div>');
|
|
||||||
} else if (startsWith(current_url_path, "/ansible/devel/")) {
|
|
||||||
/* temp banner to advertise GalaxyNG survey */
|
|
||||||
document.write('<div id="devel_survey_banner_id" class="admonition important">');
|
|
||||||
document.write('<br><p>Please take our <a href="https://www.surveymonkey.co.uk/r/2VWVJY3">survey</a> to help us improve support for collections and roles in GalaxyNG.</p><br>');
|
|
||||||
document.write('</div>');
|
|
||||||
/* temp banner to advertise survey
|
|
||||||
document.write('<div id="devel_survey_banner_id" class="admonition important">');
|
|
||||||
document.write('<br><p>Please take our <a href="https://www.surveymonkey.co.uk/r/B9V3CDY">Docs survey</a> before December 31 to help us improve Ansible documentation.</p><br>');
|
|
||||||
document.write('</div>'); */
|
|
||||||
|
|
||||||
document.write('<div id="devel_banner_id" class="admonition caution">');
|
|
||||||
document.write('<p>You are reading the <b>devel</b> version of the Ansible documentation - this version is not guaranteed stable. Use the version selection to the left if you want the latest stable released version.</p>');
|
|
||||||
document.write('</div>');
|
|
||||||
|
|
||||||
} else {
|
|
||||||
document.write('<div id="EOL_banner_id" class="admonition caution">');
|
|
||||||
document.write('<p>You are reading an older version of the Ansible documentation. Use the version selection to the left if you want the latest stable released version.</p>');
|
|
||||||
document.write('</div>');
|
|
||||||
}
|
|
||||||
{% endif %}
|
|
||||||
</script>
|
|
@ -1,4 +0,0 @@
|
|||||||
{# Creates a banner at the top of the page for EOL versions. #}
|
|
||||||
<div id='banner' class='Admonition caution'>
|
|
||||||
<p>You are reading an unmaintained version of the Ansible documentation. Unmaintained Ansible versions can contain unfixed security vulnerabilities (CVE). Please upgrade to a maintained version. See <a href="https://docs.ansible.com/ansible/latest/index.html">the latest Ansible documentation</a>.</p>
|
|
||||||
</div>
|
|
@ -1,25 +0,0 @@
|
|||||||
<!---- extra body elements for Ansible beyond RTD Sphinx Theme --->
|
|
||||||
<!-- Google Tag Manager -->
|
|
||||||
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PSB293" 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','GTM-PSB293');</script>
|
|
||||||
<!-- End Google Tag Manager -->
|
|
||||||
|
|
||||||
<div class="DocSite-globalNav ansibleNav">
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://www.ansible.com/ansiblefest" target="_blank">AnsibleFest</a></li>
|
|
||||||
<li><a href="https://www.ansible.com/tower" target="_blank">Products</a></li>
|
|
||||||
<li><a href="https://www.ansible.com/community" target="_blank">Community</a></li>
|
|
||||||
<li><a href="https://www.ansible.com/webinars-training" target="_blank">Webinars & Training</a></li>
|
|
||||||
<li><a href="https://www.ansible.com/blog" target="_blank">Blog</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<a class="DocSite-nav" href="/" style="padding-bottom: 30px;">
|
|
||||||
|
|
||||||
<img class="DocSiteNav-logo"
|
|
||||||
src="{{ pathto('_static/', 1) }}images/logo_invert.png"
|
|
||||||
alt="Ansible Logo">
|
|
||||||
<div class="DocSiteNav-title">
|
|
||||||
Documentation
|
|
||||||
</div>
|
|
||||||
</a>
|
|
@ -1,18 +0,0 @@
|
|||||||
<!-- extra footer elements for Ansible beyond RTD Sphinx Theme --->
|
|
||||||
<!-- begin analytics -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _hsq = _hsq || [];
|
|
||||||
_hsq.push(["setContentType", "standard-page"]);
|
|
||||||
(function(d,s,i,r) {
|
|
||||||
if (d.getElementById(i)){return;}
|
|
||||||
var n = d.createElement(s),e = document.getElementsByTagName(s)[0];
|
|
||||||
n.id=i;n.src = '//js.hs-analytics.net/analytics/'+(Math.ceil(new Date()/r)*r)+'/330046.js';
|
|
||||||
e.parentNode.insertBefore(n, e);
|
|
||||||
})(document, "script", "hs-analytics",300000);
|
|
||||||
</script>
|
|
||||||
<!-- end analytics -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
if (("undefined" !== typeof _satellite) && ("function" === typeof _satellite.pageBottom)) {
|
|
||||||
_satellite.pageBottom();
|
|
||||||
}
|
|
||||||
</script>
|
|
@ -1,12 +0,0 @@
|
|||||||
<!---- extra head elements for Ansible beyond RTD Sphinx Theme --->
|
|
||||||
<script type="text/javascript" src="//www.redhat.com/dtm.js"></script>
|
|
||||||
<!-- <meta class="swiftype" name="published_at" data-type="date" content="2017-12-13" /> -->
|
|
||||||
<meta class="swiftype" name="version" data-type="string" content="{{ version }}">
|
|
||||||
|
|
||||||
<!-- Google Tag Manager Data Layer -->
|
|
||||||
<script>
|
|
||||||
dataLayer = [];
|
|
||||||
</script>
|
|
||||||
<!-- End Google Tag Manager Data Layer -->
|
|
||||||
|
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
|
|
@ -1,9 +0,0 @@
|
|||||||
<!-- extra nav elements for Ansible beyond RTD Sphinx Theme --->
|
|
||||||
<!-- changeable widget links to tower - do not change as image controlled by Ansible-->
|
|
||||||
<div id="sideBanner">
|
|
||||||
<br/>
|
|
||||||
<a href="https://www.ansible.com/docs-left?utm_source=docs">
|
|
||||||
<img style="border-width:0px;" src="https://cdn2.hubspot.net/hubfs/330046/docs-graphics/ASB-docs-left-rail.png" />
|
|
||||||
</a>
|
|
||||||
<br/><br/><br/>
|
|
||||||
</div>
|
|
@ -1,10 +0,0 @@
|
|||||||
{%- if builder != 'singlehtml' %}
|
|
||||||
<div role="search">
|
|
||||||
<!-- <form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" -->
|
|
||||||
<form id="rtd-search-form" class="wy-form" method="get">
|
|
||||||
<input type="text" class="st-default-search-input" name="q" placeholder="{{ _('Search docs') }}" />
|
|
||||||
<input type="hidden" name="check_keywords" value="yes" />
|
|
||||||
<input type="hidden" name="area" value="default" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
{%- endif %}
|
|
@ -1,29 +0,0 @@
|
|||||||
<!--- Based on https://github.com/rtfd/sphinx_rtd_theme/pull/438/files -->
|
|
||||||
{# Creates dropdown version selection in the top-left navigation. #}
|
|
||||||
<div class="version">
|
|
||||||
{% if (not READTHEDOCS) and (available_versions is defined) %}
|
|
||||||
<div class="version-dropdown">
|
|
||||||
<select class="version-list" id="version-list" onchange="javascript:location.href = this.value;">
|
|
||||||
<script> x = document.getElementById("version-list"); </script>
|
|
||||||
{% for slug in available_versions %}
|
|
||||||
<script>
|
|
||||||
current_url = window.location.href;
|
|
||||||
option = document.createElement("option");
|
|
||||||
option.text = "{{ slug }}";
|
|
||||||
if ( "{{ slug }}" == "{{ current_version }}" ) {
|
|
||||||
option.selected = true;
|
|
||||||
}
|
|
||||||
if (current_url.search("/{{ current_version }}/") > -1) {
|
|
||||||
option.value = current_url.replace("/{{ current_version }}/","/{{ slug }}/");
|
|
||||||
} else {
|
|
||||||
option.value = current_url.replace("/latest/","/{{ slug }}/");
|
|
||||||
}
|
|
||||||
x.add(option);
|
|
||||||
</script>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
{{ nav_version }}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
@ -1,96 +0,0 @@
|
|||||||
|
|
||||||
{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
|
|
||||||
|
|
||||||
{% if page_source_suffix %}
|
|
||||||
{% set suffix = page_source_suffix %}
|
|
||||||
{% else %}
|
|
||||||
{% set suffix = source_suffix %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if meta is defined and meta is not none %}
|
|
||||||
{% set check_meta = True %}
|
|
||||||
{% else %}
|
|
||||||
{% set check_meta = False %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if check_meta and 'github_url' in meta %}
|
|
||||||
{% set display_github = True %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if check_meta and 'bitbucket_url' in meta %}
|
|
||||||
{% set display_bitbucket = True %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if check_meta and 'gitlab_url' in meta %}
|
|
||||||
{% set display_gitlab = True %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
|
||||||
|
|
||||||
<ul class="wy-breadcrumbs">
|
|
||||||
{% block breadcrumbs %}
|
|
||||||
<li><a href="{{ pathto(master_doc) }}">{{ _('Docs') }}</a> »</li>
|
|
||||||
{% for doc in parents %}
|
|
||||||
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> »</li>
|
|
||||||
{% endfor %}
|
|
||||||
<li>{{ title }}</li>
|
|
||||||
{% endblock %}
|
|
||||||
{% block breadcrumbs_aside %}
|
|
||||||
<li class="wy-breadcrumbs-aside">
|
|
||||||
{% if hasdoc(pagename) %}
|
|
||||||
{% if display_github %}
|
|
||||||
{% if check_meta and 'github_url' in meta %}
|
|
||||||
<!-- User defined GitHub URL -->
|
|
||||||
<a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
|
||||||
{% else %}
|
|
||||||
<!-- Ansible-specific additions for modules etc -->
|
|
||||||
{% if (pagename.endswith('_module')) or (pagename.endswith('_become'))
|
|
||||||
or (pagename.endswith('_cache')) or (pagename.endswith('_callback'))
|
|
||||||
or (pagename.endswith('_connection')) or (pagename.endswith('_inventory'))
|
|
||||||
or (pagename.endswith('_lookup')) or (pagename.endswith('_shell'))
|
|
||||||
or (pagename.endswith('_strategy')) or (pagename.endswith('_vars'))
|
|
||||||
%}
|
|
||||||
<!-- <a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ github_module_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a> -->
|
|
||||||
<br>
|
|
||||||
{% elif pagename.startswith('cli') and meta.get('source', None) %}
|
|
||||||
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ github_cli_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
|
||||||
{% elif (not 'list_of' in pagename) and (not 'category' in pagename) %}
|
|
||||||
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{% elif display_bitbucket %}
|
|
||||||
{% if check_meta and 'bitbucket_url' in meta %}
|
|
||||||
<!-- User defined Bitbucket URL -->
|
|
||||||
<a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
|
||||||
{% else %}
|
|
||||||
<a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ suffix }}?mode={{ theme_vcs_pageview_mode|default("view") }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
|
||||||
{% endif %}
|
|
||||||
{% elif display_gitlab %}
|
|
||||||
{% if check_meta and 'gitlab_url' in meta %}
|
|
||||||
<!-- User defined GitLab URL -->
|
|
||||||
<a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
|
||||||
{% else %}
|
|
||||||
<a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
|
||||||
{% endif %}
|
|
||||||
{% elif show_source and source_url_prefix %}
|
|
||||||
<a href="{{ source_url_prefix }}{{ pagename }}{{ suffix }}">{{ _('View page source') }}</a>
|
|
||||||
{% elif show_source and has_source and sourcename %}
|
|
||||||
<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</li>
|
|
||||||
{% endblock %}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
{% if (theme_prev_next_buttons_location == 'top' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
|
|
||||||
<div class="rst-breadcrumbs-buttons" role="navigation" aria-label="breadcrumb navigation">
|
|
||||||
{% if next %}
|
|
||||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
|
||||||
{% endif %}
|
|
||||||
{% if prev %}
|
|
||||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<hr/>
|
|
||||||
</div>
|
|
@ -1,62 +0,0 @@
|
|||||||
<footer>
|
|
||||||
{% if next or prev %}
|
|
||||||
<div class="rst-footer-buttons">
|
|
||||||
{% if next %}
|
|
||||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}"/>Next <span class="icon icon-circle-arrow-right"></span></a>
|
|
||||||
{% endif %}
|
|
||||||
{% if prev %}
|
|
||||||
<a href="{{ prev.link|e }}" class="btn btn-neutral" title="{{ prev.title|striptags|e }}"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<hr/>
|
|
||||||
|
|
||||||
{# Ansible search with Swift - do not remove #}
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
|
|
||||||
(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
|
|
||||||
e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
|
|
||||||
})(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');
|
|
||||||
|
|
||||||
_st('install','yABGvz2N8PwcwBxyfzUc','2.0.0');
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div role="contentinfo">
|
|
||||||
<p>
|
|
||||||
{%- if show_copyright %}
|
|
||||||
{%- if hasdoc('copyright') %}
|
|
||||||
{% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}{% endtrans %}
|
|
||||||
{%- else %}
|
|
||||||
{% trans copyright=copyright|e %}© Copyright {{ copyright }}{% endtrans %}
|
|
||||||
{%- endif %}
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- if build_id and build_url %}
|
|
||||||
{% trans build_url=build_url, build_id=build_id %}
|
|
||||||
<span class="build">
|
|
||||||
Build
|
|
||||||
<a href="{{ build_url }}">{{ build_id }}</a>.
|
|
||||||
</span>
|
|
||||||
{% endtrans %}
|
|
||||||
{%- elif commit %}
|
|
||||||
{% trans commit=commit %}
|
|
||||||
<span class="commit">
|
|
||||||
Revision <code>{{ commit }}</code>.
|
|
||||||
</span>
|
|
||||||
{% endtrans %}
|
|
||||||
{%- elif last_updated %}
|
|
||||||
<span class="lastupdated">
|
|
||||||
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
|
|
||||||
</span>
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{%- if show_sphinx %}
|
|
||||||
{% trans %}Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>{% endtrans %}.
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- block extrafooter %} {% endblock %}
|
|
||||||
</footer>
|
|
@ -1,250 +0,0 @@
|
|||||||
{# TEMPLATE VAR SETTINGS #}
|
|
||||||
{%- set url_root = pathto('', 1) %}
|
|
||||||
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
|
|
||||||
{%- if not embedded and docstitle %}
|
|
||||||
{%- set titlesuffix = " — "|safe + docstitle|e %}
|
|
||||||
{%- else %}
|
|
||||||
{%- set titlesuffix = "" %}
|
|
||||||
{%- endif %}
|
|
||||||
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="{{ lang_attr }}" > <![endif]-->
|
|
||||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="{{ lang_attr }}" > <!--<![endif]-->
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
{{ metatags }}
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
{% block htmltitle %}
|
|
||||||
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{# FAVICON #}
|
|
||||||
{% if favicon %}
|
|
||||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
|
||||||
{% endif %}
|
|
||||||
{# CANONICAL URL #}
|
|
||||||
{% if theme_canonical_url %}
|
|
||||||
<link rel="canonical" href="{{ theme_canonical_url }}{{ pagename }}.html"/>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{# JAVASCRIPTS #}
|
|
||||||
{%- block scripts %}
|
|
||||||
<script type="text/javascript" src="{{ pathto('_static/js/modernizr.min.js', 1) }}"></script>
|
|
||||||
{%- if not embedded %}
|
|
||||||
{# XXX Sphinx 1.8.0 made this an external js-file, quick fix until we refactor the template to inherert more blocks directly from sphinx #}
|
|
||||||
{% if sphinx_version >= "1.8.0" %}
|
|
||||||
<script type="text/javascript" id="documentation_options" data-url_root="{{ pathto('', 1) }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
|
|
||||||
{%- for scriptfile in script_files %}
|
|
||||||
{{ js_tag(scriptfile) }}
|
|
||||||
{%- endfor %}
|
|
||||||
{% else %}
|
|
||||||
<script type="text/javascript">
|
|
||||||
var DOCUMENTATION_OPTIONS = {
|
|
||||||
URL_ROOT:'{{ url_root }}',
|
|
||||||
VERSION:'{{ release|e }}',
|
|
||||||
LANGUAGE:'{{ language }}',
|
|
||||||
COLLAPSE_INDEX:false,
|
|
||||||
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
|
|
||||||
HAS_SOURCE: {{ has_source|lower }},
|
|
||||||
SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
{%- for scriptfile in script_files %}
|
|
||||||
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
|
|
||||||
{%- endfor %}
|
|
||||||
{% endif %}
|
|
||||||
<script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
|
|
||||||
|
|
||||||
{# OPENSEARCH #}
|
|
||||||
{%- if use_opensearch %}
|
|
||||||
<link rel="search" type="application/opensearchdescription+xml"
|
|
||||||
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
|
|
||||||
href="{{ pathto('_static/opensearch.xml', 1) }}"/>
|
|
||||||
{%- endif %}
|
|
||||||
{%- endif %}
|
|
||||||
{%- endblock %}
|
|
||||||
|
|
||||||
{# Ansible CCS additions #}
|
|
||||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
|
|
||||||
<link href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.min.css' rel='stylesheet' type='text/css'>
|
|
||||||
|
|
||||||
{# CSS #}
|
|
||||||
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
|
|
||||||
<link rel="stylesheet" href="{{ pathto('_static/ansible.css', 1) }}" type="text/css" />
|
|
||||||
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
|
|
||||||
{%- for css in css_files %}
|
|
||||||
{%- if css|attr("rel") %}
|
|
||||||
<link rel="{{ css.rel }}" href="{{ pathto(css.filename, 1) }}" type="text/css"{% if css.title is not none %} title="{{ css.title }}"{% endif %} />
|
|
||||||
{%- else %}
|
|
||||||
<link rel="stylesheet" href="{{ pathto(css, 1) }}" type="text/css" />
|
|
||||||
{%- endif %}
|
|
||||||
{%- endfor %}
|
|
||||||
|
|
||||||
{%- for cssfile in extra_css_files %}
|
|
||||||
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
|
||||||
{%- endfor %}
|
|
||||||
|
|
||||||
{%- block linktags %}
|
|
||||||
{%- if hasdoc('about') %}
|
|
||||||
<link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
|
|
||||||
{%- endif %}
|
|
||||||
{%- if hasdoc('genindex') %}
|
|
||||||
<link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
|
|
||||||
{%- endif %}
|
|
||||||
{%- if hasdoc('search') %}
|
|
||||||
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
|
|
||||||
{%- endif %}
|
|
||||||
{%- if hasdoc('copyright') %}
|
|
||||||
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
|
|
||||||
{%- endif %}
|
|
||||||
{%- if next %}
|
|
||||||
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
|
|
||||||
{%- endif %}
|
|
||||||
{%- if prev %}
|
|
||||||
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
|
|
||||||
{%- endif %}
|
|
||||||
{%- endblock %}
|
|
||||||
{%- block extrahead %} {% include "ansible_extrahead.html" %} {% endblock %}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="wy-body-for-nav">
|
|
||||||
{% block extrabody %} {% include "ansible_extrabody.html" %} {% endblock %}
|
|
||||||
<div class="wy-grid-for-nav">
|
|
||||||
{# SIDE NAV, TOGGLES ON MOBILE #}
|
|
||||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
||||||
<div class="wy-side-scroll">
|
|
||||||
<div class="wy-side-nav-search" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
|
|
||||||
{% block sidebartitle %}
|
|
||||||
|
|
||||||
{% if logo and theme_logo_only %}
|
|
||||||
<a href="{{ pathto(master_doc) }}">
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if logo %}
|
|
||||||
{# Not strictly valid HTML, but it's the only way to display/scale
|
|
||||||
it properly, without weird scripting or heaps of work
|
|
||||||
#}
|
|
||||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="Logo"/>
|
|
||||||
{% endif %}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
{% if theme_display_version %}
|
|
||||||
{%- set nav_version = version %}
|
|
||||||
{% if READTHEDOCS and current_version %}
|
|
||||||
{%- set nav_version = current_version %}
|
|
||||||
{% endif %}
|
|
||||||
{% if nav_version %}
|
|
||||||
<div class="version">
|
|
||||||
{{ nav_version }}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% include "ansible_versions.html" %}
|
|
||||||
{% include "ansible_searchbox.html" %}
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% block navigation %}
|
|
||||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
|
||||||
{% block menu %}
|
|
||||||
{#
|
|
||||||
The singlehtml builder doesn't handle this toctree call when the
|
|
||||||
toctree is empty. Skip building this for now.
|
|
||||||
#}
|
|
||||||
{% if 'singlehtml' not in builder %}
|
|
||||||
{% set global_toc = toctree(maxdepth=theme_navigation_depth|int,
|
|
||||||
collapse=theme_collapse_navigation|tobool,
|
|
||||||
includehidden=theme_includehidden|tobool,
|
|
||||||
titles_only=theme_titles_only|tobool) %}
|
|
||||||
{% endif %}
|
|
||||||
{% if global_toc %}
|
|
||||||
{{ global_toc }}
|
|
||||||
{% else %}
|
|
||||||
<!-- Local TOC -->
|
|
||||||
<div class="local-toc">{{ toc }}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
{% block extranav %}{% include "ansible_extranav.html" %}{% endblock %}
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
||||||
|
|
||||||
{# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
|
|
||||||
<nav class="wy-nav-top" aria-label="top navigation">
|
|
||||||
{% block mobile_nav %}
|
|
||||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
||||||
<a href="{{ pathto(master_doc) }}">{{ project }}</a>
|
|
||||||
{% endblock %}
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="wy-nav-content">
|
|
||||||
{%- block content %}
|
|
||||||
{% if theme_style_external_links|tobool %}
|
|
||||||
<div class="rst-content style-external-links">
|
|
||||||
{% else %}
|
|
||||||
<div class="rst-content">
|
|
||||||
{% endif %}
|
|
||||||
{% include "breadcrumbs.html" %}
|
|
||||||
{% include "ansible_banner.html" %}
|
|
||||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
||||||
{%- block document %}
|
|
||||||
<div itemprop="articleBody">
|
|
||||||
{% block body %}{% endblock %}
|
|
||||||
</div>
|
|
||||||
{% if self.comments()|trim %}
|
|
||||||
<div class="articleComments">
|
|
||||||
{% block comments %}{% endblock %}
|
|
||||||
</div>
|
|
||||||
{% endif%}
|
|
||||||
</div>
|
|
||||||
{%- endblock %}
|
|
||||||
{% include "footer.html" %}
|
|
||||||
</div>
|
|
||||||
{%- endblock %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
jQuery(function () {
|
|
||||||
{% if theme_sticky_navigation|tobool %}
|
|
||||||
SphinxRtdTheme.Navigation.enableSticky();
|
|
||||||
{% else %}
|
|
||||||
SphinxRtdTheme.Navigation.enable();
|
|
||||||
{% endif %}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{# Do not conflict with RTD insertion of analytics script #}
|
|
||||||
{% if not READTHEDOCS %}
|
|
||||||
{% if theme_analytics_id %}
|
|
||||||
<!-- Theme Analytics -->
|
|
||||||
<script>
|
|
||||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
||||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
||||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
||||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
||||||
|
|
||||||
ga('create', '{{ theme_analytics_id }}', 'auto');
|
|
||||||
ga('send', 'pageview');
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{%- block footer %} {% include "ansible_extrafooter.html" %} {% endblock %}
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,50 +0,0 @@
|
|||||||
{#
|
|
||||||
basic/search.html
|
|
||||||
~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Template for the search page.
|
|
||||||
|
|
||||||
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
|
||||||
:license: BSD, see LICENSE for details.
|
|
||||||
#}
|
|
||||||
{%- extends "layout.html" %}
|
|
||||||
{% set title = _('Search') %}
|
|
||||||
{% set script_files = script_files + ['_static/searchtools.js'] %}
|
|
||||||
{% block footer %}
|
|
||||||
<script type="text/javascript">
|
|
||||||
jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });
|
|
||||||
</script>
|
|
||||||
{# this is used when loading the search index using $.ajax fails,
|
|
||||||
such as on Chrome for documents on localhost #}
|
|
||||||
<script type="text/javascript" id="searchindexloader"></script>
|
|
||||||
{{ super() }}
|
|
||||||
{% endblock %}
|
|
||||||
{% block body %}
|
|
||||||
<noscript>
|
|
||||||
<div id="fallback" class="admonition warning">
|
|
||||||
<p class="last">
|
|
||||||
{% trans %}Please activate JavaScript to enable the search
|
|
||||||
functionality.{% endtrans %}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</noscript>
|
|
||||||
|
|
||||||
{% if search_performed %}
|
|
||||||
<h2>{{ _('Search Results') }}</h2>
|
|
||||||
{% if not search_results %}
|
|
||||||
<p>{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}</p>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
<div id="search-results">
|
|
||||||
{% if search_results %}
|
|
||||||
<ul>
|
|
||||||
{% for href, caption, context in search_results %}
|
|
||||||
<li>
|
|
||||||
<a href="{{ pathto(item.href) }}">{{ caption }}</a>
|
|
||||||
<p class="context">{{ context|e }}</p>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,9 +0,0 @@
|
|||||||
{%- if builder != 'singlehtml' %}
|
|
||||||
<div role="search">
|
|
||||||
<form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}"
|
|
||||||
<input type="text" name="q" placeholder="{{ _(' Search') }}" />
|
|
||||||
<input type="hidden" name="check_keywords" value="yes" />
|
|
||||||
<input type="hidden" name="area" value="default" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
{%- endif %}
|
|
@ -1 +0,0 @@
|
|||||||
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 434 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 8.1 KiB |
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@
|
|||||||
/* sphinx_rtd_theme version 0.4.3 | MIT license */
|
|
||||||
/* Built 20190212 16:02 */
|
|
||||||
require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n<l.length;n++)c(l[n]);return c}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(e){var i=this;void 0===e&&(e=!0),i.isRunning||(i.isRunning=!0,jQuery(function(n){i.init(n),i.reset(),i.win.on("hashchange",i.reset),e&&i.win.on("scroll",function(){i.linkScroll||i.winScroll||(i.winScroll=!0,requestAnimationFrame(function(){i.onScroll()}))}),i.win.on("resize",function(){i.winResize||(i.winResize=!0,requestAnimationFrame(function(){i.onResize()}))}),i.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(i){i(document);var t=this;this.navBar=i("div.wy-side-scroll:first"),this.win=i(window),i(document).on("click","[data-toggle='wy-nav-top']",function(){i("[data-toggle='wy-nav-shift']").toggleClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var n=i(this);i("[data-toggle='wy-nav-shift']").removeClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift"),t.toggleCurrent(n),t.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){i("[data-toggle='rst-versions']").toggleClass("shift-up")}),i("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),i("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),i("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i('<span class="toctree-expand"></span>'),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0<i.length&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"),i[0].scrollIntoView())}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),t=Math.max(0,16-(i-r)),o=window.setTimeout(function(){n(i+t)},t);return r=i+t,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]);
|
|
@ -1,18 +0,0 @@
|
|||||||
[theme]
|
|
||||||
inherit = basic
|
|
||||||
stylesheet = css/theme.css
|
|
||||||
pygments_style = default
|
|
||||||
|
|
||||||
[options]
|
|
||||||
canonical_url =
|
|
||||||
analytics_id =
|
|
||||||
collapse_navigation = True
|
|
||||||
sticky_navigation = True
|
|
||||||
navigation_depth = 4
|
|
||||||
includehidden = True
|
|
||||||
titles_only =
|
|
||||||
logo_only =
|
|
||||||
display_version = True
|
|
||||||
prev_next_buttons_location = bottom
|
|
||||||
style_external_links = False
|
|
||||||
vcs_pageview_mode =
|
|
@ -1,36 +0,0 @@
|
|||||||
{% if READTHEDOCS %}
|
|
||||||
{# Add rst-badge after rst-versions for small badge style. #}
|
|
||||||
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
|
|
||||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
|
||||||
<span class="fa fa-book"> Read the Docs</span>
|
|
||||||
v: {{ current_version }}
|
|
||||||
<span class="fa fa-caret-down"></span>
|
|
||||||
</span>
|
|
||||||
<div class="rst-other-versions">
|
|
||||||
<dl>
|
|
||||||
<dt>{{ _('Versions') }}</dt>
|
|
||||||
{% for slug, url in versions %}
|
|
||||||
<dd><a href="{{ url }}">{{ slug }}</a></dd>
|
|
||||||
{% endfor %}
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt>{{ _('Downloads') }}</dt>
|
|
||||||
{% for type, url in downloads %}
|
|
||||||
<dd><a href="{{ url }}">{{ type }}</a></dd>
|
|
||||||
{% endfor %}
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt>{{ _('On Read the Docs') }}</dt>
|
|
||||||
<dd>
|
|
||||||
<a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>
|
|
||||||
</dd>
|
|
||||||
<dd>
|
|
||||||
<a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">{{ _('Builds') }}</a>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<hr/>
|
|
||||||
{% trans %}Free document hosting provided by <a href="https://www.readthedocs.org">Read the Docs</a>.{% endtrans %}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
@ -1,106 +0,0 @@
|
|||||||
angular.module('ansibleApp', []).filter('moduleVersion', function() {
|
|
||||||
return function(modules, version) {
|
|
||||||
|
|
||||||
var parseVersionString = function (str) {
|
|
||||||
if (typeof(str) != 'string') { return false; }
|
|
||||||
var x = str.split('.');
|
|
||||||
// parse from string or default to 0 if can't parse
|
|
||||||
var maj = parseInt(x[0]) || 0;
|
|
||||||
var min = parseInt(x[1]) || 0;
|
|
||||||
var pat = parseInt(x[2]) || 0;
|
|
||||||
return {
|
|
||||||
major: maj,
|
|
||||||
minor: min,
|
|
||||||
patch: pat
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var vMinMet = function(vmin, vcurrent) {
|
|
||||||
minimum = parseVersionString(vmin);
|
|
||||||
running = parseVersionString(vcurrent);
|
|
||||||
if (running.major != minimum.major)
|
|
||||||
return (running.major > minimum.major);
|
|
||||||
else {
|
|
||||||
if (running.minor != minimum.minor)
|
|
||||||
return (running.minor > minimum.minor);
|
|
||||||
else {
|
|
||||||
if (running.patch != minimum.patch)
|
|
||||||
return (running.patch > minimum.patch);
|
|
||||||
else
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var result = [];
|
|
||||||
if (!version) {
|
|
||||||
return modules;
|
|
||||||
}
|
|
||||||
for (var i = 0; i < modules.length; i++) {
|
|
||||||
if (vMinMet(modules[i].version_added, version)) {
|
|
||||||
result[result.length] = modules[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
}).filter('uniqueVersion', function() {
|
|
||||||
return function(modules) {
|
|
||||||
var result = [];
|
|
||||||
var inArray = function (needle, haystack) {
|
|
||||||
var length = haystack.length;
|
|
||||||
for(var i = 0; i < length; i++) {
|
|
||||||
if(haystack[i] == needle) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var parseVersionString = function (str) {
|
|
||||||
if (typeof(str) != 'string') { return false; }
|
|
||||||
var x = str.split('.');
|
|
||||||
// parse from string or default to 0 if can't parse
|
|
||||||
var maj = parseInt(x[0]) || 0;
|
|
||||||
var min = parseInt(x[1]) || 0;
|
|
||||||
var pat = parseInt(x[2]) || 0;
|
|
||||||
return {
|
|
||||||
major: maj,
|
|
||||||
minor: min,
|
|
||||||
patch: pat
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i < modules.length; i++) {
|
|
||||||
if (!inArray(modules[i].version_added, result)) {
|
|
||||||
// Some module do not define version
|
|
||||||
if (modules[i].version_added) {
|
|
||||||
result[result.length] = "" + modules[i].version_added;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
result.sort(
|
|
||||||
function (a, b) {
|
|
||||||
ao = parseVersionString(a);
|
|
||||||
bo = parseVersionString(b);
|
|
||||||
if (ao.major == bo.major) {
|
|
||||||
if (ao.minor == bo.minor) {
|
|
||||||
if (ao.patch == bo.patch) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return (ao.patch > bo.patch) ? 1 : -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return (ao.minor > bo.minor) ? 1 : -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return (ao.major > bo.major) ? 1 : -1;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
# pip packages required to build docsite
|
||||||
|
# tested June 9 2021
|
||||||
|
|
||||||
|
antsibull==0.33.0
|
||||||
|
docutils==0.16
|
||||||
|
# check unordered lists when testing more recent docutils versions
|
||||||
|
# see https://github.com/readthedocs/sphinx_rtd_theme/issues/1115
|
||||||
|
jinja2==3.0.1
|
||||||
|
Pygments==2.9.0
|
||||||
|
PyYAML==5.4.1
|
||||||
|
resolvelib==0.5.4
|
||||||
|
rstcheck==3.3.1
|
||||||
|
sphinx==4.0.2
|
||||||
|
sphinx-notfound-page==0.7.1 # must be >= 0.6
|
||||||
|
sphinx-intl==2.0.1
|
||||||
|
sphinx_ansible_theme===0.6.0
|
||||||
|
straight.plugin==1.5.0 # Needed for hacking/build-ansible.py which is the backend build script
|
Loading…
Reference in New Issue