Added topic on Clear Containers and updated theme files.

Added topic on Clear Containers and updated theme files.
This commit is contained in:
Tullis, Michael L
2015-10-22 16:55:53 -06:00
parent cc9f5e6e51
commit 1d43a764eb
53 changed files with 1402 additions and 421 deletions

View File

@@ -23,3 +23,9 @@ TOPIC TITLE
^^^^^^^^^^^^^^^^
.. contents::
.. sectnum::
<code class="inline">

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Clear Linux documentation build configuration file, created by
# Zephyr documentation build configuration file, created by
# sphinx-quickstart on Fri May 8 11:43:01 2015.
#
# This file is execfile()d with the current directory set to its
@@ -15,11 +15,6 @@
import sys
import os
import shlex
import sphinx_rtd_theme
# Set this to true if you are working on a local environment and don't want
# to retrieve css/js files from the internet
local_env = True
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
@@ -54,7 +49,7 @@ master_doc = 'index'
# General information about the project.
project = u'Clear Linux* Project for Intel® Architecture'
copyright = u'2015, many'
copyright = u'2015, Intel Corporation, Wind River Systems, Inc.'
author = u'many'
# The version info for the project you're documenting, acts as replacement for
@@ -62,9 +57,9 @@ author = u'many'
# built documents.
#
# The short X.Y version.
version = '0.1'
version = '0.5'
# The full version, including alpha/beta/rc tags.
release = '0.1'
release = '0.5'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -118,15 +113,16 @@ rst_epilog = """
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'sphinx_rtd_theme'
#html_theme = 'alabaster'
html_theme = 'zephyr-docs-theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ['_themes']
html_theme_path = ['_themes/']
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
@@ -135,10 +131,9 @@ html_title = "Documentation for Clear Linux* Project for Intel(r) Architecture"
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
html_logo = 'logo.png'
html_theme_options = { 'local_env': local_env, 'logo': 'logo.png' }
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
@@ -278,7 +273,7 @@ man_pages = [
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'zephyr', u'Documentation for Clear Linux* Project for Intel® Architecture',
author, 'Zephyr', 'One line description of project.',
author, 'clr', 'One line description of project.',
'Miscellaneous'),
]

View File

@@ -0,0 +1,296 @@
# -*- coding: utf-8 -*-
#
# Zephyr documentation build configuration file, created by
# sphinx-quickstart on Fri May 8 11:43:01 2015.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
import shlex
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc', 'breathe', 'sphinx.ext.todo'
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'Zephyr Project'
copyright = u'2015, Intel Corporation, Wind River Systems, Inc.'
author = u'many'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '0.1'
# The full version, including alpha/beta/rc tags.
release = '0.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
rst_epilog = """
.. include:: /substitutions.rst
"""
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#html_theme = 'alabaster'
html_theme = 'zephyr-docs-theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ['../']
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
html_title = "Zephyr Project Documentation"
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants =
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
html_domain_indices = False
# If false, no index is generated.
html_use_index = True
# If true, the index is split into individual pages for each letter.
html_split_index = True
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink =
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
#html_search_language = 'en'
# A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value
#html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used.
#html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
htmlhelp_basename = 'zephyrdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
# Latex figure (float) alignment
#'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'zephyr.tex', u'Zephyr Project Documentation',
u'many', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'zephyr', u'Zephyr Project Documentation',
[author], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'zephyr', u'Zephyr Project Documentation',
author, 'Zephyr', 'One line description of project.',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False
breathe_projects = {
"Zephyr": "xml",
"doc-examples": "xml"
}
breathe_default_project = "Zephyr"

View File

@@ -0,0 +1,2 @@
pandoc -o get.html get.rst
pause

View File

@@ -0,0 +1,2 @@
pandoc -o get.md get.rst
pause

View File

@@ -1,32 +1,43 @@
<p><span>Linux*-based operating systems contain the code of several hundred, if not thousands, of open source projects. To make this manageable, distributions use a concept called "packages" to configure and compile the source code of these projects into binaries, which can then be logically installed.</span></p>
<p><span>Many distributions then combine these compiled binaries into so-called packages, resolving dependencies and providing everything needed to install. This is the granularity at which typical distributions deploy their software, enabling system administrators to install and update each package individually or as a set, using tools such as "yum" and "apt-get."</span></p>
<h2><span>The Clear way</span></h2>
<p><span>The Clear Linux OS for Intel</span><span>(r)</span><span> Architecture does things a bit differently. While we use the concept of packages to manage compiling source code into installable binaries, we do not deploy software through packages as many distributions do. Instead, we provide "bundles" that each contain a set of functionality for the system administrator--functionality that is enabled by composing all the required upstream open source projects into one logical unit: a bundle.</span></p>
<p><span>There is another notable difference between package-based distributions and the Clear Linux OS for Intel Architecture. On a package-based OS, a system administrator can update each individual package or piece of software to a newer (or older!) version. In the Clear Linux OS for Intel Architecture, an update translates to an entirely new OS version, containing one or many updates; it is not possible to update a piece of the system while remaining on the same version of Clear Linux.</span></p>
<p><span>Why would you want this? This may sound like a huge restriction or limitation at first, but we consider this a great feature. Imagine a cloud environment with many machines. In this case, it is desirable and more advantageous to have a homogeneous set of software.</span></p>
<p><span>With traditional distributions, to describe what version of software a server is running, one might need to:</span></p>
<h1 id="clear-containers-getting-started-guide">Clear Containers getting started guide</h1>
<p>Clear Containers for Docker* Engine is now available on multiple operating systems. This enables executing existing Docker applications in the secure and fast Clear Containers environment.</p>
<h2 id="binary-packages">Binary packages</h2>
<p>The primary host platform is Clear Linux* Project for Intel® Architecture, version 4000 or better. However, binaries for a range of operating systems are available from:</p>
<ul>
<li>
<p><span>List and keep track of the current OS release (generally uninformative about any singular packages or functionality) </span></p>
</li>
<li>
<p><span>Keep track of all packages and repositories used, updating those as required to keep up to date</span></p>
</li>
<li>
<p><span>List and keep track of every package available and installed on the system, none of which are directly tied to the current OS release</span></p>
</li>
<li><a href="https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&amp;package=clear-containers-docker">https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&amp;package=clear-containers-docker</a></li>
</ul>
<p><span>This is done very well, but given the nearly endless combinations of packages and </span><span>versions</span><span> of packages a server may have, it quickly becomes non-trivial to define what "version" the </span><span>system</span><span> is and what software it is running without explicitly going through each system and inspecting every package.</span></p>
<p><span>With the Clear Linux OS for Intel Architecture, we must keep track of:</span></p>
<p>Currently experimental builds are available for:</p>
<ul>
<li>
<p><span>One single number</span></p>
</li>
<li>CentOS*, Scientific Linux* 7</li>
<li>Fedora* 21, 22</li>
<li>openSUSE* 13.1, 13.2, Tumbleweed</li>
<li>SUSE* Linux Enterprise 12</li>
<li>Debian* 8.0</li>
<li>Ubuntu* 15.04</li>
</ul>
<p>If you have any feedback, please mail it to the <code>dev@lists.clearlinux.org</code> mailing list. Subscription to this list is available at: <a href="https://lists.clearlinux.org/mailman/listinfo/dev" class="uri">https://lists.clearlinux.org/mailman/listinfo/dev</a>.</p>
<h2 id="installation-instructions">Installation instructions</h2>
<h3 id="using-hosts-other-than-clear-linux-os-for-intel-architecture">Using hosts other than Clear Linux OS for Intel Architecture</h3>
<p>If you are <em>not</em> using Clear Linux OS for Intel Architecture, follow the instructions below:</p>
<ol>
<li>Visit the link below, and select your operating system by clicking the appropriate icon: <a href="https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&amp;package=clear-containers-docker">https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&amp;package=clear-containers-docker</a></li>
<li>Follow the brief instructions shown.</li>
<li><p>Reload your systemd configuration:</p>
<pre><code>$ sudo systemctl daemon-reload</code></pre></li>
<li><p>Start the Docker service:</p>
<pre><code>$ systemctl restart docker</code></pre></li>
</ol>
<h3 id="using-clear-linux-os-for-intel-architecture-as-host">Using Clear Linux OS for Intel Architecture as Host</h3>
<p>If you are running Clear Linux OS for Intel Architecture on your host system, follow the instructions below:</p>
<ol>
<li><p>Enable the repository by running the following as the <code>root</code> user:</p>
<pre><code># clr_bundle_add containers-basic</code></pre></li>
<li><p>Reload your systemd configuration:</p>
<pre><code>$ sudo systemctl daemon-reload</code></pre></li>
<li><p>Start the Docker service:</p>
<pre><code>$ systemctl restart docker</code></pre></li>
</ol>
<h2 id="source-code">Source Code</h2>
<p>The experimental source code is based on the Docker version 1.8.1 upstream release and is available at:</p>
<ul>
<li><a href="https://github.com/clearlinux/docker" class="uri">https://github.com/clearlinux/docker</a></li>
</ul>
<p><span>That number represents the current OS release, and it is sufficient to describe the versions of all the software on the OS. Each build is composed of a specific set of bundles made from a particular version of packages. This matters on a daily basis to system administrators, who need to determine which of their systems do not have the latest security fixes, or which combinations of software have been tested with which other pieces. Every release of the same number is guaranteed to contain the same versions of software, so there is no ambiguity between two systems running the same Clear Linux OS for Intel Architecture. </span></p>
<h2><span>Incredible update speeds</span></h2>
<p><span>Software updates with Clear Linux OS for Intel Architecture are also efficient; bundles are only describing a set of files, and the update technology only updates files that actually changed, using so-called binary-delta technology for efficiency. Updating using this method is different from operating systems that use packages as the unit of deployment. In those operating systems, the entire package gets updated when needed, even if only one small file in that package has changed.</span></p>
<p><span>It is quite common for a full OS update fixing a security hole to be only 15 kilobytes in total update size. If only several kilobytes need to be changed, it does not make sense to re-download and reinstall an entire package or suite of programs just to incorporate a miniscule (yet important) update. Through binary deltas, the OS is able to update only those bits that changed, yielding very small update content (deltas) that can be applied exceedingly fast. One can then expect a major security patch or core update to take seconds.</span></p>
<p><span>We realize that while our definition of bundles makes sense to us, each data center operator may have special needs and ideas. For that reason we are working on completing a "mixer" tool, which would allow users of Clear Linux OS for Intel Architecture to customize and add bundles and their own software while still using the content of the operating system, and its updates, as the base. This way system administrators can focus on the pieces of their OS deployment that are custom to their environment, while continuing to stay on a controlled update stream.</span></p>
<p><span>[The software update technology in Clear Linux OS for Intel Architecture was first presented at the Linux Plumbers conference in 2012.]</span></p>
<p><span>&nbsp;</span></p>

View File

@@ -1,102 +1,72 @@
Linux\*-based operating systems contain the code of several hundred, if
not thousands, of open source projects. To make this manageable,
distributions use a concept called "packages" to configure and compile
the source code of these projects into binaries, which can then be
logically installed.
Clear Containers getting started guide
======================================
Many distributions then combine these compiled binaries into so-called
packages, resolving dependencies and providing everything needed to
install. This is the granularity at which typical distributions deploy
their software, enabling system administrators to install and update
each package individually or as a set, using tools such as "yum" and
"apt-get."
Clear Containers for Docker* Engine is now available on multiple
operating systems. This enables executing existing Docker applications
in the secure and fast Clear Containers environment.
The Clear way
-------------
Binary packages
---------------
The Clear Linux OS for Intel(r) Architecture does things a bit
differently. While we use the concept of packages to manage compiling
source code into installable binaries, we do not deploy software through
packages as many distributions do. Instead, we provide "bundles" that
each contain a set of functionality for the system
administrator--functionality that is enabled by composing all the
required upstream open source projects into one logical unit: a bundle.
The primary host platform is Clear Linux* Project for Intel® Architecture, version 4000 or better. However, binaries for a range of operating systems are available from:
There is another notable difference between package-based distributions
and the Clear Linux OS for Intel Architecture. On a package-based OS, a
system administrator can update each individual package or piece of
software to a newer (or older!) version. In the Clear Linux OS for Intel
Architecture, an update translates to an entirely new OS version,
containing one or many updates; it is not possible to update a piece of
the system while remaining on the same version of Clear Linux.
- https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&package=clear-containers-docker
Why would you want this? This may sound like a huge restriction or
limitation at first, but we consider this a great feature. Imagine a
cloud environment with many machines. In this case, it is desirable and
more advantageous to have a homogeneous set of software.
Currently experimental builds are available for:
With traditional distributions, to describe what version of software a
server is running, one might need to:
- CentOS*, Scientific Linux* 7
- Fedora* 21, 22
- openSUSE* 13.1, 13.2, Tumbleweed
- SUSE* Linux Enterprise 12
- Debian* 8.0
- Ubuntu* 15.04
- List and keep track of the current OS release (generally
uninformative about any singular packages or functionality)
If you have any feedback, please mail it to the ``dev@lists.clearlinux.org`` mailing list. Subscription to this list is
available at: https://lists.clearlinux.org/mailman/listinfo/dev.
- Keep track of all packages and repositories used, updating those as
required to keep up to date
Installation instructions
-------------------------
- List and keep track of every package available and installed on the
system, none of which are directly tied to the current OS release
Using hosts other than Clear Linux OS for Intel Architecture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is done very well, but given the nearly endless combinations of
packages and versions of packages a server may have, it quickly becomes
non-trivial to define what "version" the system is and what software it
is running without explicitly going through each system and inspecting
every package.
If you are *not* using Clear Linux OS for Intel Architecture, follow the instructions below:
With the Clear Linux OS for Intel Architecture, we must keep track of:
#. Visit the link below, and select your operating system by clicking the appropriate icon:
https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&package=clear-containers-docker
- One single number
#. Follow the brief instructions shown.
That number represents the current OS release, and it is sufficient to
describe the versions of all the software on the OS. Each build is
composed of a specific set of bundles made from a particular version of
packages. This matters on a daily basis to system administrators, who
need to determine which of their systems do not have the latest security
fixes, or which combinations of software have been tested with which
other pieces. Every release of the same number is guaranteed to contain
the same versions of software, so there is no ambiguity between two
systems running the same Clear Linux OS for Intel Architecture.
#. Reload your systemd configuration::
Incredible update speeds
------------------------
$ sudo systemctl daemon-reload
Software updates with Clear Linux OS for Intel Architecture are also
efficient; bundles are only describing a set of files, and the update
technology only updates files that actually changed, using so-called
binary-delta technology for efficiency. Updating using this method is
different from operating systems that use packages as the unit of
deployment. In those operating systems, the entire package gets updated
when needed, even if only one small file in that package has changed.
#. Start the Docker service::
$ systemctl restart docker
It is quite common for a full OS update fixing a security hole to be
only 15 kilobytes in total update size. If only several kilobytes need
to be changed, it does not make sense to re-download and reinstall an
entire package or suite of programs just to incorporate a miniscule (yet
important) update. Through binary deltas, the OS is able to update only
those bits that changed, yielding very small update content (deltas)
that can be applied exceedingly fast. One can then expect a major
security patch or core update to take seconds.
Using Clear Linux OS for Intel Architecture as Host
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We realize that while our definition of bundles makes sense to us, each
data center operator may have special needs and ideas. For that reason
we are working on completing a "mixer" tool, which would allow users of
Clear Linux OS for Intel Architecture to customize and add bundles and
their own software while still using the content of the operating
system, and its updates, as the base. This way system administrators can
focus on the pieces of their OS deployment that are custom to their
environment, while continuing to stay on a controlled update stream.
If you are running Clear Linux OS for Intel Architecture on your host system, follow the
instructions below:
[The software update technology in Clear Linux OS for Intel Architecture
was first presented at the Linux Plumbers conference in 2012.]
#. Enable the repository by running the following as the ``root`` user::
# clr_bundle_add containers-basic
#. Reload your systemd configuration::
$ sudo systemctl daemon-reload
#. Start the Docker service::
$ systemctl restart docker
Source Code
-----------
The experimental source code is based on the Docker version 1.8.1 upstream release and is available at:
- https://github.com/clearlinux/docker
 

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,122 +0,0 @@
jQuery(document).ready(function($) {
$('body').fadeIn();
var headerEffect = function(h, p) {
p = p -60; // offset caused by header
console.log("pos: " + p);
var elements = [];
elements.push($('img.logo-region-highlighted').position());
elements.push($('div.region-homepage').position());
elements.push($('footer').position());
console.log(elements);
if (p <= elements[0].top) {
h.removeClass('-hidden -full-header');
} else if (p > elements[0].top && p <= elements[1].top ){
h.addClass('-hidden');
} else if (p > elements[1].top && p <= elements[2].top ) {
h.removeClass('-hidden');
h.addClass('-full-header');
}
};
var wrapper = $('div#wrapper');
var mobileMenu = $('nav#main-menu-mobile');
var mobileMenuBars = $('span#nav-bars');
var searchButton = $('span#nav-search');
var searchContainer = $('div#search-container');
var overlayClass = '-overlay';
if ($('body').hasClass('front')) {
var currentPos = $(window).scrollTop();
var header = $('header');
headerEffect(header, currentPos);
$(window).scroll(function() {
var currentPos = $(window).scrollTop();
console.log(currentPos);
headerEffect(header, currentPos);
});
}
var overlayBehavior = function(action) {
cssClass = '-overlay';
}
var menuMobile = function(action) {
}
var resized = false;
$(window).resize(function() {
console.log($(window).width());
if ($(window).width() > 768 && !resized) {
console.log('si');
resized = true;
} else {
resized = false;
}
});
mobileMenuBars.click(function() {
body = $('body');
if (mobileMenu.is(':visible')) {
mobileMenu.slideUp();
body.removeClass('-expanded-mobile-menu');
if (!body.hasClass('-expanded-search-box')) {
body.removeClass('-expanded-header');
wrapper.removeClass(overlayClass);
}
} else {
mobileMenu.slideDown();
body.addClass('-expanded-header -expanded-mobile-menu');
wrapper.addClass(overlayClass);
}
});
// shows and hides the search text box
searchButton.click(function() {
if (searchContainer.is(':visible')) {
searchContainer.slideUp();
$('body').removeClass('-expanded-search-box');
if (!$('body').hasClass('-expanded-mobile-menu')) {
$('body').removeClass('-expanded-header');
wrapper.removeClass(overlayClass);
}
} else {
searchContainer.slideDown();
$('body').addClass('-expanded-header -expanded-search-box');
wrapper.addClass(overlayClass);
}
});
var normalHeaderState = function() {
body = $('body');
if (body.hasClass('-expanded-header')) {
if (searchContainer.is(':visible')) {
searchContainer.slideUp()
body.removeClass('-expanded-search-box');
}
if (mobileMenu.is(':visible')) {
mobileMenu.slideUp();
body.removeClass('-expanded-mobile-menu');
}
wrapper.removeClass(overlayClass);
$('body').removeClass('-expanded-header');
}
}
$('html').click(function() {
normalHeaderState();
});
$('header').click(function(event){
event.stopPropagation();
});
$('span#secondary-menu-button').click(function() {
$('div.region-sidebar').slideToggle();
$('div.container-sidebar').toggleClass('-expanded-submenu');
});
$(document).on('keyup', function(e) {
if (e.keyCode == 27 && wrapper.hasClass('-overlay')) {
normalHeaderState();
}
});
});

View File

@@ -1,7 +0,0 @@
{
"version": 3,
"mappings": ";AAyDA,UAAY;EACV,sBAAsB,EAAE,WAAW;;;AAqDrC,SAAS;EARP,KAAK,EAAE,CAAC;;AACR,iCAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,eAAO;EACL,KAAK,EAAE,IAAI;;;AC1Gb,UAkBC;EAjBC,WAAW,ECFJ,WAAW;EDGlB,WAAW,EAHqC,MAAM;EAItD,UAAU,EAJsD,MAAM;EAapE,GAAG,EAAE,sCAAwB;EAC7B,GAAG,EAAE,8PAAyE;;ACZpF,UAAU;EACR,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,WAAW;EACxB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,CAAC;EACd,eAAe,EAAE,OAAO;;;AAG1B,KAAK;EACH,OAAO,EAAE,YAAY;EACrB,eAAe,EAAE,OAAO;;;AAIxB,MAAG;EACD,OAAO,EAAE,YAAY;;AACvB;mBAAiB;;EAGf,KAAK,EAAE,OAAY;;;AAEvB,MAAM;EACJ,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,MAAM;;AAEjB,aAAG;EACD,KAAK,EAAE,KAAI;;AACb;0BAAiB;;EAGf,cAAc,EAAE,QAAQ;;;AAG9B,eAAe;EACb,OAAO,EAAE,GAAO;;;AAElB,iBAAiB;EACf,OAAO,EAAE,GAAO;;;AAElB,qBAAqB;EACnB,OAAO,EAAE,GAAO;;;AAElB,uBAAuB;EACrB,OAAO,EAAE,GAAO;;;AAElB,mBAAmB;EACjB,OAAO,EAAE,GAAO;;;AAElB,qBAAqB;EACnB,OAAO,EAAE,GAAO;;;AAElB,qBAAqB;EACnB,OAAO,EAAE,GAAO;;;AAElB,uBAAuB;EACrB,OAAO,EAAE,GAAO;;;AAElB,sBAAsB;EACpB,OAAO,EAAE,GAAO;;;AAElB,wBAAwB;EACtB,OAAO,EAAE,GAAO;;;ACnElB,aAAa;EACX,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EC6E+B,KAAK;ED5EzC,KAAK,EEoC+B,OAAyB;EFnC7D,UAAU,EAAE,OAAkC;EAC9C,UAAU,EAAE,kBAAiC;EAC7C,WAAW,EE+CyB,2DAAM;EF9C1C,OAAO,EC+E6B,GAAG;;AD9EvC,eAAC;EACC,KAAK,EE+B6B,OAAK;EF9BvC,eAAe,EAAE,IAAI;;AACvB,8BAAgB;EACd,OAAO,EAAE,IAAI;;AACf,kCAAoB;EAClB,OAAO,EAAE,IAAqB;EAC9B,gBAAgB,EAAE,OAAkC;EACpD,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,GAAG;EACd,MAAM,EAAE,OAAO;EACf,KAAK,EEX6B,OAAM;EL4F1C,KAAK,EAAE,CAAC;;AACR,mFAAS;EAEP,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;;AACb,wCAAO;EACL,KAAK,EAAE,IAAI;;AGrFX,sCAAG;EACD,KAAK,EEgB2B,OAAyB;;AFf3D,2CAAQ;EACN,KAAK,EAAE,IAAI;;AACb,6CAAU;EACR,KAAK,EAAE,IAAI;;AACb,kDAAiB;EACf,gBAAgB,ECQgB,OAAI;EDPpC,KAAK,EEI2B,IAAM;;AFHxC,yDAAwB;EACtB,gBAAgB,EEmBgB,OAAO;EFlBvC,KAAK,ECzB2B,IAAI;;AD0BxC,0CAA8B;EAC5B,OAAO,EAAE,KAAK;;AAChB,iCAAmB;EACjB,SAAS,EAAE,GAAG;EACd,OAAO,EAAE,IAAqB;EAC9B,KAAK,EEP6B,IAAY;EFQ9C,OAAO,EAAE,IAAI;;AACb,oCAAE;EACA,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,MAAM;EACd,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,iBAA6C;;AAC3D,oCAAE;EACA,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,CAAC;;AACT,sCAAC;EACC,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,GAAqB;EAC9B,KAAK,EEfyB,OAAyB;;AFgB7D,uBAAW;EACT,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,IAAI;EACV,MAAM,EAAE,IAAI;EACZ,SAAS,ECkByB,KAAK;;ADjBvC,kCAAU;EACR,KAAK,EAAE,IAAI;;AACb,gCAAQ;EACN,KAAK,EAAE,IAAI;;AACb,qDAA+B;EAC7B,UAAU,EAAE,KAAK;;AACjB,8DAAQ;EACN,KAAK,EAAE,IAAI;;AACb,gEAAU;EACR,KAAK,EAAE,IAAI;;AACf,4CAAoB;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,KAAuB;EAChC,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,MAAM;;;AGhDpB,oCAAsB;EHmDxB,aAAa;IACX,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;;EACb,mBAAO;IACL,OAAO,EAAE,KAAK;;;EAClB,GAAG;IACD,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI",
"sources": ["../../../bower_components/wyrm/sass/wyrm_core/_mixin.sass","../../../bower_components/bourbon/dist/css3/_font-face.scss","../../../sass/_theme_badge_fa.sass","../../../sass/_theme_badge.sass","../../../bower_components/wyrm/sass/wyrm_core/_wy_variables.sass","../../../sass/_theme_variables.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_media.scss"],
"names": [],
"file": "badge_only.css"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
This is Zephyr's documentation theme.

View File

@@ -6,11 +6,12 @@
{% set suffix = source_suffix %}
{% endif %}
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="{{ pathto(master_doc) }}">Docs</a> &raquo;</li>
<div role="navigation" aria-label="breadcrumbs navigation" id="breadcrumb">
<ul class="wy-breadcrumbs container">
<li><a href="/">Home</a> / </li>
<li><a href="{{ pathto(master_doc) }}">Docs</a> / </li>
{% for doc in parents %}
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> / </li>
{% endfor %}
<li>{{ title }}</li>
<li class="wy-breadcrumbs-aside">
@@ -19,13 +20,8 @@
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/blob/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-github"> Edit on GitHub</a>
{% elif display_bitbucket %}
<a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-bitbucket"> Edit on Bitbucket</a>
{% 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>
</ul>
<hr/>
</div>

View File

@@ -1,15 +1,5 @@
<footer>
<div class="container">
{% if next or prev %}
<div class="rst-footer-buttons row" role="navigation" aria-label="footer 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" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
{% endif %}
</div>
{% endif %}
<div role="contentinfo" class="row">
<p>

View File

@@ -1,11 +1,7 @@
{# TEMPLATE VAR SETTINGS #}
{%- if theme_local_env %}
{%- set css_files = css_files + ['_static/main.css'] %}
{%- set script_files = script_files + ['_static/main.js'] %}
{% else %}
{%- set css_files = css_files + ['/sites/all/themes/custom/zephyr_theme/css/main.css'] %}
{%- set script_files = script_files + ['/sites/all/themes/custom/zephyr_theme/js/main.js'] %}
{%- endif %}
{%- set css_files = css_files + ['/sites/all/themes/custom/zephyr_theme/css/main.css'] %}
{%- set script_files = script_files + ['/sites/all/themes/custom/zephyr_theme/js/main.js'] %}
{%- set script_files = script_files + ['/sites/all/themes/custom/zephyr_theme/js/vendor/affix.js'] %}
{%- set url_root = pathto('', 1) %}
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
{%- if not embedded and docstitle %}
@@ -53,6 +49,7 @@
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
{% endfor %}
<link rel="stylesheet" href="{{ pathto('_static/css/overrides.css', 1) }}" type="text/css" />
{%- block linktags %}
{%- if hasdoc('about') %}
<link rel="author" title="{{ _('About these documents') }}"
@@ -86,7 +83,7 @@
</head>
<body class="wy-body-for-nav not-front" role="document">
<body class="wy-body-for-nav not-front" role="document" >
<div id="wrapper">
<header class="region-header">
<div class="inner-header-wide-container">
@@ -99,7 +96,7 @@
<a href="/" title="Home" rel="home" id="logo">
{% 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) }}" />
<img src="{{ pathto('_static/img/' + logo, 1) }}" />
{% endif %}
</a>
</div>
@@ -130,12 +127,15 @@
</div>
</div>
</header>
<div class="wy-grid-for-nav container" id="main-content">
<div class="row">
<div class="wy-grid-for-nav" id="main-content">
{% include "breadcrumbs.html" %}
<div class="container">
<div id="content" class="row">
{# SIDE NAV, TOGGLES ON MOBILE #}
<nav data-toggle="wy-nav-shift" class="wy-nav-side col-xs-3" id="sidebar">
<div class="wy-side-scroll">
<div class="wy-side-scroll" data-spy="affix" data-offset-bottom="630" data-offset-top="0">
<div class="wy-side-nav-search">
{% block sidebartitle %}
@@ -154,7 +154,7 @@
{% endblock %}
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<div class="wy-menu wy-menu-vertical"role="navigation" aria-label="main navigation">
{% block menu %}
{% set toctree = toctree(maxdepth=4, collapse=theme_collapse_navigation, includehidden=True) %}
{% if toctree %}
@@ -180,19 +180,19 @@
{# PAGE CONTENT #}
<div class="wy-nav-content">
<div class="rst-content">
{% include "breadcrumbs.html" %}
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
{% block body %}{% endblock %}
</div>
</div>
</div>
{% include "navigation.html" %}
</div>
</section>
</div>
</div>
</div>
{% include "footer.html" %}
</div>
{% include "versions.html" %}

View File

@@ -0,0 +1,10 @@
{% if next or prev %}
<div class="rst-footer-buttons row" role="navigation" aria-label="footer 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" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
{% endif %}
</div>
{% endif %}

View File

@@ -0,0 +1,2 @@
.sass-cache
*.map

View File

@@ -4199,58 +4199,6 @@ tbody.collapse.in {
background-color: #fff;
cursor: not-allowed; }
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em; }
.label:empty {
display: none; }
.btn .label {
position: relative;
top: -1px; }
a.label:hover, a.label:focus {
color: #fff;
text-decoration: none;
cursor: pointer; }
.label-default {
background-color: #777777; }
.label-default[href]:hover, .label-default[href]:focus {
background-color: #5e5e5e; }
.label-primary {
background-color: #337ab7; }
.label-primary[href]:hover, .label-primary[href]:focus {
background-color: #286090; }
.label-success {
background-color: #5cb85c; }
.label-success[href]:hover, .label-success[href]:focus {
background-color: #449d44; }
.label-info {
background-color: #5bc0de; }
.label-info[href]:hover, .label-info[href]:focus {
background-color: #31b0d5; }
.label-warning {
background-color: #f0ad4e; }
.label-warning[href]:hover, .label-warning[href]:focus {
background-color: #ec971f; }
.label-danger {
background-color: #d9534f; }
.label-danger[href]:hover, .label-danger[href]:focus {
background-color: #c9302c; }
.badge {
display: inline-block;
min-width: 10px;
@@ -5834,6 +5782,9 @@ button.close {
padding-bottom: 5px;
padding-top: 5px; }
div.region-homepage .container {
opacity: 0;
transform: scale(0.92); }
div.region-homepage .container, div.region-homepage .block, div.region-homepage .view-content {
height: 100%;
z-index: 1; }
@@ -5880,7 +5831,7 @@ div.region-highlighted {
width: 100%;
height: 100%;
content: '';
top: 40%;
top: 55%;
left: -35%; }
div.region-highlighted::after {
background-image: url("../images/zephyr_clouds.png");
@@ -6023,30 +5974,27 @@ div#block-views-events-block-events {
background: linear-gradient(-135deg, #DBE1E4 10%, transparent); }
div#block-views-blogs-block-blog {
background: linear-gradient(-45deg, #DBE1E4 10%, transparent); }
div#block-views-blogs-block-blog .container h3::after {
left: calc(50% - 50px); }
position: relative;
background: linear-gradient(-135deg, #DBE1E4 10%, transparent); }
div#block-views-blogs-block-blog::before {
background-image: url("../images/zephyr_clouds.png");
background-size: contain;
content: ' ';
top: 0;
right: 0;
bottom: 0;
left: 0;
position: absolute;
background-repeat: no-repeat;
transform: rotate(180deg);
transform: scale(-1, 1);
width: 100%;
height: 100%;
content: '';
top: 95%;
left: 10%; }
z-index: -1;
background: url("../images/zephyr_clouds_bottom.png") no-repeat right bottom content-box;
background-size: contain; }
@media (min-width: 768px) {
div#block-views-blogs-block-blog::before {
top: 90%; } }
background-size: 75%; } }
@media (min-width: 992px) {
div#block-views-blogs-block-blog::before {
top: 90%; } }
@media (min-width: 1200px) {
div#block-views-blogs-block-blog::before {
top: 90%; } }
background-position: right bottom -5%;
background-size: initial; } }
div#block-views-blogs-block-blog .container h3::after {
left: calc(50% - 50px); }
html {
overflow: initial; }
@@ -6055,6 +6003,11 @@ body.wy-body-for-nav {
background: initial; }
body.wy-body-for-nav #main-content {
padding-bottom: 641px; }
body.wy-body-for-nav div#main-content {
background: initial !important; }
body.wy-body-for-nav div#content {
padding-top: 35px;
padding-bottom: 0 !important; }
.wy-nav-top {
display: none; }
@@ -6062,41 +6015,128 @@ body.wy-body-for-nav {
.wy-side-scroll, .wy-side-nav-search, .wy-menu-vertical {
width: initial;
overflow-x: initial;
overflow-y: initial; }
overflow-y: initial;
height: initial; }
@media (min-width: 768px) {
.wy-side-scroll {
width: 157.5px; } }
@media (min-width: 992px) {
.wy-side-scroll {
width: 212.5px; } }
@media (min-width: 1200px) {
.wy-side-scroll {
width: 262.5px; } }
.sidebar-top, .sidebar-bottom {
position: absolute; }
.sidebar-fixed {
position: fixed; }
.wy-nav-side {
bottom: initial;
padding-bottom: initial;
overflow-x: initial;
overflow-y: initial;
background: initial;
z-index: initial;
left: initial !important; }
left: initial !important;
bottom: initial;
top: initial; }
.wy-side-nav-search input[type=text] {
border-color: initial; }
.wy-nav-content-wrap {
margin-left: initial;
background: initial; }
.wy-side-nav-search {
padding: initial;
z-index: initial; }
.wy-side-nav-search input[type=text] {
border-radius: 0;
color: #000;
font-size: initial; }
.wy-nav-content {
max-width: initial;
padding: initial; }
padding: initial;
background: initial; }
.wy-side-nav-search {
background-color: transparent;
position: initial; }
.wy-menu-vertical a {
padding-right: 0 !important;
border-right: none !important; }
.wy-menu-vertical a:hover {
background-color: transparent; }
.wy-menu-vertical li.current, .wy-menu-vertical a.current {
background: #F6F7F8; }
.wy-menu-vertical li.current {
background: #F6F7F8; }
.wy-menu-vertical li a {
border-left: 3px solid;
border-left-color: transparent;
font-size: 14px;
padding-left: 10px;
transition: border-left-color 0.2s ease;
color: #000;
border-right: none !important;
background: none !important;
padding-right: 0 !important; }
.wy-menu-vertical li a.current {
font-weight: initial;
background: #FFF;
color: inherit; }
.wy-menu-vertical li a:hover, .wy-menu-vertical li a.current {
transition: border-left-color 0.2s ease;
border-left-color: #AF7FE4;
color: #7929D2; }
.wy-menu-vertical li a:hover {
background: none; }
html {
height: 100%; }
.wy-grid-for-nav > .row, div#block-views-features-block-features .wy-grid-for-nav > .view-content {
position: relative; }
div#breadcrumb ul {
margin-bottom: 0px; }
div#breadcrumb a {
padding: 0px; }
body.page-downloads table {
width: 100%; }
body.page-downloads thead {
font-size: 1.2em; }
body.page-downloads th {
border-bottom: 2px solid #F0F2F4;
padding-bottom: 15px; }
body.page-downloads td {
padding: 15px 0 15px; }
body.page-admin table {
width: 100%;
border: 1px solid #F0F2F4; }
body.page-admin th {
font-size: 1.2em; }
body.page-admin td, body.page-admin th {
padding: 5px; }
body.page-admin td.active, body.page-admin th.active {
background-color: #F0F2F4; }
body.page-admin tbody tr {
transition: background-color 0.2s ease; }
body.page-admin tbody tr.even {
background-color: #F6F7F8; }
body.page-admin tbody tr.odd {
background-color: #FFF; }
body.page-admin tbody tr:hover {
background-color: #F0F2F4;
transition: background-color 0.2s ease; }
html, body {
min-height: 100%; }
body {
font-family: "IntelClear-Light", "ClearSans-Light", Helvetica, "Helvetica Neue", verdana, sans-serif;
font-size: 14px;
height: 100%;
line-height: 1.4; }
h1, .h1,
@@ -6115,7 +6155,8 @@ h1, .h1 {
margin-bottom: 30px; }
h2, .h2 {
font-size: 30px; }
font-size: 30px;
margin-bottom: 15px; }
h3, .h3 {
font-size: 20px;
@@ -6197,6 +6238,22 @@ a:active {
visibility: visible;
opacity: 1; }
div.region-homepage .-fade-in {
opacity: 1;
transform: scale(1);
transition: opacity 0.5s, transform 0.65s ease-out; }
.-monospace-text {
font-family: Consolas, monaco, monospace; }
.-lightgray-bg {
background-color: #F0F2F4;
padding: 3px; }
.-lightgray-l-bg {
background-color: #F6F7F8;
padding: 3px; }
.-collapsed-header, body.front header {
transition: all 0.3s ease-in; }
@media (min-width: 768px) {
@@ -6213,23 +6270,31 @@ a:active {
border-bottom: 1px solid #d1d3d5;
transition: border-bottom 0.2s; }
.-hidden, .-hidden-full-header {
transition: transform 0.01s ease-in-out; }
.-hidden {
opacity: 0;
transition: all 0.2s; }
transform: translateY(-100%); }
.-hidden-full-header {
transform: translateY(-100%); }
.-expanded-mobile-menu a.navigation-button span::after {
font-family: 'FontAwesome';
content: "" !important; }
@media (min-width: 768px) {
.-full-header .sub-container, body.not-front header .sub-container {
height: 80px !important; }
.-full-header nav#main-menu, body.not-front header nav#main-menu {
float: right;
display: block; }
.-full-header .header-logo, body.not-front header .header-logo {
display: table-cell !important;
text-align: left; } }
.-full-header, body.not-front header {
margin-top: 0;
transition: transform 0.01s ease-in-out; }
@media (min-width: 768px) {
.-full-header .sub-container, body.not-front header .sub-container {
height: 80px !important; }
.-full-header nav#main-menu, body.not-front header nav#main-menu {
float: right;
display: block; }
.-full-header .header-logo, body.not-front header .header-logo {
display: table-cell !important;
text-align: left; } }
header {
width: 100%;
@@ -6316,7 +6381,7 @@ header {
transition: all 0.1s linear; }
header .inner-header-wide-container nav#main-menu ul.navbar-nav li a.contact-us {
display: none; }
header .inner-header-wide-container nav#main-menu ul.navbar-nav li a.active {
header .inner-header-wide-container nav#main-menu ul.navbar-nav li a.active, header .inner-header-wide-container nav#main-menu ul.navbar-nav li a.active-trail {
background: #2d3237;
height: calc(100% - 5px);
color: #d1d3d5; }
@@ -6326,8 +6391,7 @@ header {
transition: all 0.1s linear;
background-color: #4c5155; }
header .inner-header-wide-container nav#main-menu ul.navbar-nav li a:active {
background-color: #2d3237;
transform: scale(0.95); }
background-color: #2d3237; }
header .inner-header-wide-container nav#main-menu-mobile {
display: none; }
header .inner-header-wide-container nav#main-menu-mobile ul {
@@ -6375,7 +6439,7 @@ footer {
footer .region-footer-navigation-container .region-footer-navigation::before {
width: 2px;
height: 100%;
background-color: #919196;
background-color: #4c5155;
content: '';
position: absolute; }
footer .region-footer-navigation-container .menu-block-wrapper {
@@ -6388,6 +6452,7 @@ footer {
width: 100%; }
footer .region-footer-navigation-container .menu-block-wrapper ul li {
list-style-type: none;
list-style-image: none;
margin: 0; }
footer .region-footer-navigation-container .menu-block-wrapper a.home, footer .region-footer-navigation-container .menu-block-wrapper a.contact-us {
display: none; }
@@ -6441,17 +6506,20 @@ footer {
color: #919196;
min-height: 80px;
padding: 10px 0;
width: 100%;
font-size: 0.7em; }
@media (min-width: 768px) {
footer .region-footer-disclaimer-container {
font-size: 0.8em; } }
@media (min-width: 992px) {
footer .region-footer-disclaimer-container {
font-size: 0.9em; } }
@media (min-width: 1200px) {
footer .region-footer-disclaimer-container {
font-size: 0.9em; } }
width: 100%; }
footer .region-footer-disclaimer-container p {
margin-bottom: 0.3em;
line-height: initial;
font-size: 0.7em; }
@media (min-width: 768px) {
footer .region-footer-disclaimer-container p {
font-size: 0.8em; } }
@media (min-width: 992px) {
footer .region-footer-disclaimer-container p {
font-size: 0.9em; } }
@media (min-width: 1200px) {
footer .region-footer-disclaimer-container p {
font-size: 0.9em; } }
.-collapsed-offset, body.front div#main-content {
padding-top: 60px; }
@@ -6461,9 +6529,9 @@ footer {
div#main-content {
position: relative;
overflow: hidden;
z-index: 0;
padding-bottom: 180px;
overflow-x: hidden;
padding-top: 80px; }
@media (min-width: 768px) {
div#main-content {
@@ -6472,6 +6540,46 @@ div#main-content {
div#main-content {
padding-bottom: 500px; } }
body.not-front div#main-content {
min-height: 100vh;
background: url("../images/zephyr_clouds_bottom.png") no-repeat right bottom content-box;
background-size: contain; }
@media (min-width: 768px) {
body.not-front div#main-content {
background-size: 75%; } }
@media (min-width: 992px) {
body.not-front div#main-content {
background-position: right bottom -5%;
background-size: initial; } }
body.not-front div#main-content div#content {
padding-bottom: 120px; }
@media (min-width: 768px) {
body.not-front div#main-content div#content {
padding-top: 35px;
padding-bottom: 90px; } }
@media (min-width: 992px) {
body.not-front div#main-content div#content {
padding-bottom: 135px; } }
body.not-front div#main-content div#content div.views-row {
margin-bottom: 40px; }
body.not-front div#main-content div#content div.views-row p {
margin-bottom: 15px; }
body.not-front div#main-content div#content div.views-row p:last-child {
margin-bottom: 0px; }
body.not-front div#main-content div#content div.views-row:last-child {
margin-bottom: 0; }
body.not-front h1 {
margin-bottom: 40px;
position: relative; }
body.not-front h1::after {
width: 100px;
height: 6px;
background-color: #AF7FE4;
content: '';
position: absolute;
left: 0px;
bottom: -20px; }
@font-face {
font-family: 'ClearSans-Light';
src: url("fonts/ClearSans-Light.eot");
@@ -6578,7 +6686,14 @@ div#main-content {
font-weight: normal; }
.-expanded-submenu {
border-bottom-color: #d1d3d5 !important;
background-color: #F0F2F4 !important; }
background-color: #F0F2F4; }
@media (min-width: 768px) {
.-expanded-submenu {
background-color: #FFF; } }
.-expanded-submenu div.region-sidebar {
display: block;
height: auto;
transition: all; }
.-expanded-submenu span#secondary-menu-button {
display: block; }
.-expanded-submenu span#secondary-menu-button::after {
@@ -6586,16 +6701,46 @@ div#main-content {
content: "" !important;
color: #919196; }
div.region-sidebar {
display: none;
height: 0px; }
@media (min-width: 768px) {
div.region-sidebar {
display: block; } }
div.container-sidebar {
margin-bottom: 20px;
border-bottom: 1px solid #F0F2F4;
padding-bottom: 0.5em;
background-color: #FFF; }
div.container-sidebar div.region-sidebar {
display: none; }
padding-bottom: 0.5em; }
@media (min-width: 768px) {
div.container-sidebar {
border-bottom: 0; }
div.container-sidebar + div.col-sm-9::before {
width: 2px;
height: 100%;
background-color: #F0F2F4;
content: '';
position: absolute;
left: 0px; } }
div.container-sidebar div.affix {
position: initial; }
@media (min-width: 768px) {
div.container-sidebar div.region-sidebar {
display: block; } }
div.container-sidebar div.affix {
position: fixed; } }
div.container-sidebar div.affix-bottom {
position: relative; }
@media (min-width: 768px) {
div.container-sidebar div.affix-bottom {
position: absolute; } }
@media (min-width: 768px) {
div.container-sidebar div.sticky-container {
width: 157.5px; } }
@media (min-width: 992px) {
div.container-sidebar div.sticky-container {
width: 131.6px; } }
@media (min-width: 1200px) {
div.container-sidebar div.sticky-container {
width: 165px; } }
div.container-sidebar span#secondary-menu-button {
cursor: pointer;
font-size: 2em;
@@ -6609,23 +6754,38 @@ div.container-sidebar {
color: #919196; }
@media (min-width: 768px) {
div.container-sidebar span#secondary-menu-button {
display: none; } }
cursor: initial;
font-size: 1.5em; }
div.container-sidebar span#secondary-menu-button::after {
content: none !important; } }
div.container-sidebar ul {
margin: 0;
padding: 0; }
div.container-sidebar ul li {
list-style-type: none;
font-size: 1.5em; }
margin-bottom: 10px; }
@media (min-width: 768px) {
div.container-sidebar ul li {
font-size: 1em; } }
div.container-sidebar ul li a {
display: block;
border-left: 6px solid transparent;
padding-left: 25px;
color: #4c5155; }
div.container-sidebar ul li a:hover {
border-left-color: #7929D2;
color: #4c5155;
border-left: 3px solid;
border-left-color: transparent;
font-size: 14px;
padding-left: 10px;
transition: border-left-color 0.2s ease; }
div.container-sidebar ul li a:hover, div.container-sidebar ul li a.active {
transition: border-left-color 0.2s ease;
border-left-color: #AF7FE4;
color: #7929D2; }
div#breadcrumb {
background-color: #F0F2F4;
padding-top: 10px;
padding-bottom: 10px; }
@media (min-width: 768px) {
div#breadcrumb {
margin-bottom: 10px; } }
/*# sourceMappingURL=main.css.map */

View File

@@ -0,0 +1 @@
// Put all css overrides below

View File

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 280 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,162 @@
/* ========================================================================
* Bootstrap: affix.js v3.3.5
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
+function ($) {
'use strict';
// AFFIX CLASS DEFINITION
// ======================
var Affix = function (element, options) {
this.options = $.extend({}, Affix.DEFAULTS, options)
this.$target = $(this.options.target)
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
this.$element = $(element)
this.affixed = null
this.unpin = null
this.pinnedOffset = null
this.checkPosition()
}
Affix.VERSION = '3.3.5'
Affix.RESET = 'affix affix-top affix-bottom'
Affix.DEFAULTS = {
offset: 0,
target: window
}
Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
var targetHeight = this.$target.height()
if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
if (this.affixed == 'bottom') {
if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
}
var initializing = this.affixed == null
var colliderTop = initializing ? scrollTop : position.top
var colliderHeight = initializing ? targetHeight : height
if (offsetTop != null && scrollTop <= offsetTop) return 'top'
if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
return false
}
Affix.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset
this.$element.removeClass(Affix.RESET).addClass('affix')
var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
return (this.pinnedOffset = position.top - scrollTop)
}
Affix.prototype.checkPositionWithEventLoop = function () {
setTimeout($.proxy(this.checkPosition, this), 1)
}
Affix.prototype.checkPosition = function () {
if (!this.$element.is(':visible')) return
var height = this.$element.height()
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
var scrollHeight = Math.max($(document).height(), $(document.body).height())
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
if (this.affixed != affix) {
if (this.unpin != null) this.$element.css('top', '')
var affixType = 'affix' + (affix ? '-' + affix : '')
var e = $.Event(affixType + '.bs.affix')
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
this.affixed = affix
this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
this.$element
.removeClass(Affix.RESET)
.addClass(affixType)
.trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
}
if (affix == 'bottom') {
this.$element.offset({
top: scrollHeight - height - offsetBottom
})
}
}
// AFFIX PLUGIN DEFINITION
// =======================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.affix')
var options = typeof option == 'object' && option
if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
if (typeof option == 'string') data[option]()
})
}
var old = $.fn.affix
$.fn.affix = Plugin
$.fn.affix.Constructor = Affix
// AFFIX NO CONFLICT
// =================
$.fn.affix.noConflict = function () {
$.fn.affix = old
return this
}
// AFFIX DATA-API
// ==============
$(window).on('load', function () {
$('[data-spy="affix"]').each(function () {
var $spy = $(this)
var data = $spy.data()
data.offset = data.offset || {}
if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
if (data.offsetTop != null) data.offset.top = data.offsetTop
Plugin.call($spy, data)
})
})
}(jQuery);

View File

@@ -0,0 +1,254 @@
jQuery(document).ready(function($) {
// Global vars
// TODO: clean-up this ASAP!
var $window = $(window);
var wrapper = $('div#wrapper');
var mobileMenu = $('nav#main-menu-mobile');
var mobileMenuBars = $('span#nav-bars');
var searchButton = $('span#nav-search');
var searchContainer = $('div#search-container');
var overlayClass = '-overlay';
var $document = $(document);
var $header = $('header');
var $footerHeight = $('footer').height();
var $body = $('body');
var currentPos = $document.scrollTop();
var calculateWindowSize
// returns the latest position in range that is smaller or equal than n
var inRange = function(n, range) {
var lastCheckpoint = null
range.forEach(function(val, idx) {
if (n >= val)
lastCheckpoint = idx;
});
return (lastCheckpoint != null) ? lastCheckpoint : false
};
// fades in content as the user scrolls
var halfScreenElement= function() {
return document.elementFromPoint(0, $window.height()*.66);
}
// This function alternates the different status of the header in body.front
var headerEffect = function(header, position) {
var $elements = [];
var fadeInElements = [];
var checkpoints = [];
var lastCheckpoint = null;
var currentHalfScreenElement = null;
$elements.push($('img.logo-region-highlighted'));
$('div.region-homepage > div.block').each(function(i) {
$elements.push($(this));
fadeInElements.push($(this).attr('id'));
});
$elements.forEach(function(e, idx) {
checkpoints.push(e.offset().top);
});
lastCheckpoint = inRange(position, checkpoints);
currentHalfScreenElement = halfScreenElement();
if ($.inArray(currentHalfScreenElement.id, fadeInElements) != -1) {
$('div#' + currentHalfScreenElement.id + ' div.container').addClass('-fade-in');
}
if (lastCheckpoint !== false) {
switch(lastCheckpoint) {
case 0:
if ($header.hasClass('-full-header')) {
$header.addClass('-hidden-full-header');
} else {
$header.addClass('-hidden');
}
break;
case 1:
$header.addClass('-full-header');
$header.removeClass('-hidden -hidden-full-header');
break;
default:
}
} else {
$header.removeClass('-hidden -full-header -hidden-full-header');
}
};
var sidebarEffect = function (sidebar, position, topOffset, bottomOffset) {
bottomOffset = $document.height() - bottomOffset - sidebar.height();
console.log(position);
if (position <= topOffset) {
sidebar.addClass('sidebar-top');
sidebar.removeClass('sidebar-fixed sidebar-bottom');
sidebar.css('top', '');
} else if (position < bottomOffset) {
sidebar.removeClass('sidebar-top sidebar-bottom');
sidebar.addClass('sidebar-fixed');
sidebar.css('top', '');
} else {
lastPosition = sidebar.offset().top - sidebar.parent().offset().top
if (!sidebar.hasClass('sidebar-bottom')) {
sidebar.removeClass('sidebar-fixed sidebar-top');
sidebar.addClass('sidebar-bottom');
sidebar.css('top', lastPosition);
}
}
};
var onReadyExec = function() {
if ($body.hasClass('front')) {
headerEffect($header, currentPos);
}
};
onReadyExec();
/*
if ($('body').hasClass('wy-body-for-nav')) {
$sidebar = $('.wy-side-scroll');
currentPos = $window.scrollTop();
$(window).scroll(function() {
currentPos = $(this).scrollTop();
console.log(currentPos);
sidebarEffect($sidebar, currentPos, 0, 630);
})
}
*/
//
var overlayBehavior = function(action) {
cssClass = '-overlay';
}
var menuMobile = function(action) {
}
var resized = false;
$window.resize(function() {
if ($window.width() > 768 && !resized) {
resized = true;
} else {
resized = false;
}
});
mobileMenuBars.click(function() {
if (mobileMenu.is(':visible')) {
mobileMenu.slideUp(200);
$body.removeClass('-expanded-mobile-menu');
if (!$body.hasClass('-expanded-search-box')) {
$body.removeClass('-expanded-header');
wrapper.removeClass(overlayClass);
}
} else {
mobileMenu.slideDown(200);
$body.addClass('-expanded-header -expanded-mobile-menu');
wrapper.addClass(overlayClass);
}
});
// shows and hides the search text box
searchButton.click(function() {
if (searchContainer.is(':visible')) {
searchContainer.slideUp(200);
$('body').removeClass('-expanded-search-box');
if (!$('body').hasClass('-expanded-mobile-menu')) {
$('body').removeClass('-expanded-header');
wrapper.removeClass(overlayClass);
}
} else {
searchContainer.slideDown(200);
$('body').addClass('-expanded-header -expanded-search-box');
wrapper.addClass(overlayClass);
}
});
var normalHeaderState = function() {
body = $('body');
if (body.hasClass('-expanded-header')) {
if (searchContainer.is(':visible')) {
searchContainer.slideUp()
body.removeClass('-expanded-search-box');
}
if (mobileMenu.is(':visible')) {
mobileMenu.slideUp();
body.removeClass('-expanded-mobile-menu');
}
wrapper.removeClass(overlayClass);
$('body').removeClass('-expanded-header');
}
}
$('html').click(function() {
normalHeaderState();
});
$('header').click(function(event){
event.stopPropagation();
});
$('span#secondary-menu-button').click(function() {
if ($(window).width() < 768) {
$('div.container-sidebar').toggleClass('-expanded-submenu');
}
});
// when esc key is keyup
$(document).on('keyup', function(e) {
if (e.keyCode == 27 && wrapper.hasClass('-overlay')) {
normalHeaderState();
}
});
// This event listens for a mousedown event on all a.trap-link elements
// If the user right-clicks the link, the page will scroll to the anchor
// found on attribute data-hash
$('a.trap-link').click(function(e) {
// only do this where body.page-about
if ($('body').hasClass('page-about')) {
e.preventDefault();
var hash = $(this).data('hash');
$(this).closest('ul.menu').find('a.active').removeClass('active');
$(this).addClass('active');
$('html, body').animate({
scrollTop: $('#' + hash).offset().top - 80
}, 500);
}
});
// Listens for position and updates global variable
$window.scroll(function() {
currentPos = $(this).scrollTop();
console.log(currentPos);
if ($body.hasClass('front')) {
headerEffect($header, currentPos);
}
});
// TODO: Use global currentPos for scroll position
if ($('body').hasClass('page-about')) {
var $menuLinks = [];
var checkpoints = [];
var currentPos = 0;
var lastCheckpoint = null;
$('div.region-sidebar ul.menu a.trap-link').each(function(i) {
$menuLinks.push($(this));
checkpoints[i] = $('#' + $menuLinks[i].data('hash')).offset().top - 100;
});
$(window).scroll(function() {
currentPos = $(this).scrollTop();
lastCheckpoint = inRange(currentPos, checkpoints);
if (lastCheckpoint !== false) {
$menuLinks.forEach(function(e, idx) {
if (idx != lastCheckpoint)
e.removeClass('active');
});
$menuLinks[lastCheckpoint].addClass('active');
}
});
}
$('div.sticky-container').affix({
offset: {
top: 0,
bottom: 635
}
});
});

View File

@@ -0,0 +1,172 @@
/* ========================================================================
* Bootstrap: scrollspy.js v3.3.5
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
+function ($) {
'use strict';
// SCROLLSPY CLASS DEFINITION
// ==========================
function ScrollSpy(element, options) {
this.$body = $(document.body)
this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
this.selector = (this.options.target || '') + ' .nav li > a'
this.offsets = []
this.targets = []
this.activeTarget = null
this.scrollHeight = 0
this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
this.refresh()
this.process()
}
ScrollSpy.VERSION = '3.3.5'
ScrollSpy.DEFAULTS = {
offset: 10
}
ScrollSpy.prototype.getScrollHeight = function () {
return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
}
ScrollSpy.prototype.refresh = function () {
var that = this
var offsetMethod = 'offset'
var offsetBase = 0
this.offsets = []
this.targets = []
this.scrollHeight = this.getScrollHeight()
if (!$.isWindow(this.$scrollElement[0])) {
offsetMethod = 'position'
offsetBase = this.$scrollElement.scrollTop()
}
this.$body
.find(this.selector)
.map(function () {
var $el = $(this)
var href = $el.data('target') || $el.attr('href')
var $href = /^#./.test(href) && $(href)
return ($href
&& $href.length
&& $href.is(':visible')
&& [[$href[offsetMethod]().top + offsetBase, href]]) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
that.offsets.push(this[0])
that.targets.push(this[1])
})
}
ScrollSpy.prototype.process = function () {
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
var scrollHeight = this.getScrollHeight()
var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
var offsets = this.offsets
var targets = this.targets
var activeTarget = this.activeTarget
var i
if (this.scrollHeight != scrollHeight) {
this.refresh()
}
if (scrollTop >= maxScroll) {
return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
}
if (activeTarget && scrollTop < offsets[0]) {
this.activeTarget = null
return this.clear()
}
for (i = offsets.length; i--;) {
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
&& this.activate(targets[i])
}
}
ScrollSpy.prototype.activate = function (target) {
this.activeTarget = target
this.clear()
var selector = this.selector +
'[data-target="' + target + '"],' +
this.selector + '[href="' + target + '"]'
var active = $(selector)
.parents('li')
.addClass('active')
if (active.parent('.dropdown-menu').length) {
active = active
.closest('li.dropdown')
.addClass('active')
}
active.trigger('activate.bs.scrollspy')
}
ScrollSpy.prototype.clear = function () {
$(this.selector)
.parentsUntil(this.options.target, '.active')
.removeClass('active')
}
// SCROLLSPY PLUGIN DEFINITION
// ===========================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.scrollspy')
var options = typeof option == 'object' && option
if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
if (typeof option == 'string') data[option]()
})
}
var old = $.fn.scrollspy
$.fn.scrollspy = Plugin
$.fn.scrollspy.Constructor = ScrollSpy
// SCROLLSPY NO CONFLICT
// =====================
$.fn.scrollspy.noConflict = function () {
$.fn.scrollspy = old
return this
}
// SCROLLSPY DATA-API
// ==================
$(window).on('load.bs.scrollspy.data-api', function () {
$('[data-spy="scroll"]').each(function () {
var $spy = $(this)
Plugin.call($spy, $spy.data())
})
})
}(jQuery);

View File

@@ -152,7 +152,7 @@ html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
# html_extra_path = [_html_raw]
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.

View File

@@ -0,0 +1,72 @@
Clear Containers getting started guide
======================================
Clear Containers for Docker* Engine is now available on multiple
operating systems. This enables executing existing Docker applications
in the secure and fast Clear Containers environment.
Binary packages
---------------
The primary host platform is Clear Linux* Project for Intel® Architecture, version 4000 or better. However, binaries for a range of operating systems are available from:
- https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&package=clear-containers-docker
Currently experimental builds are available for:
- CentOS*, Scientific Linux* 7
- Fedora* 21, 22
- openSUSE* 13.1, 13.2, Tumbleweed
- SUSE* Linux Enterprise 12
- Debian* 8.0
- Ubuntu* 15.04
If you have any feedback, please mail it to the ``dev@lists.clearlinux.org`` mailing list. Subscription to this list is
available at: https://lists.clearlinux.org/mailman/listinfo/dev.
Installation instructions
-------------------------
Using hosts other than Clear Linux OS for Intel Architecture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are *not* using Clear Linux OS for Intel Architecture, follow the instructions below:
#. Visit the link below, and select your operating system by clicking the appropriate icon:
https://software.opensuse.org/download.html?project=home%3Aclearlinux%3Apreview&package=clear-containers-docker
#. Follow the brief instructions shown.
#. Reload your systemd configuration::
$ sudo systemctl daemon-reload
#. Start the Docker service::
$ systemctl restart docker
Using Clear Linux OS for Intel Architecture as Host
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are running Clear Linux OS for Intel Architecture on your host system, follow the
instructions below:
#. Enable the repository by running the following as the ``root`` user::
# clr_bundle_add containers-basic
#. Reload your systemd configuration::
$ sudo systemctl daemon-reload
#. Start the Docker service::
$ systemctl restart docker
Source Code
-----------
The experimental source code is based on the Docker version 1.8.1 upstream release and is available at:
- https://github.com/clearlinux/docker

View File

@@ -16,6 +16,7 @@ Getting started
gs_creating_bootable_usb
gs_installing_clr_as_host
gs_running_clr_virtual
gs-clear-containers-gettting-started
Software update
###############

13
source/theme.conf Normal file
View File

@@ -0,0 +1,13 @@
[theme]
inherit = basic
stylesheet = css/theme.css
[options]
typekit_id = hiw1hhg
analytics_id =
sticky_navigation = False
logo_only =
collapse_navigation = False
display_version = True
local_env =
logo = logo.png