diff --git a/.#Makefile b/.#Makefile new file mode 120000 index 0000000..c7660df --- /dev/null +++ b/.#Makefile @@ -0,0 +1 @@ +old@Georgia-MacBook.local.16131 \ No newline at end of file diff --git a/.gitignore b/.gitignore~ similarity index 83% rename from .gitignore rename to .gitignore~ index 67aa07d..368d9bd 100644 --- a/.gitignore +++ b/.gitignore~ @@ -1,4 +1,3 @@ futuregrid.virtual.cluster.egg-info dist -*~ -*.pyc \ No newline at end of file +*~ \ No newline at end of file diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ + diff --git a/LICENCE.txt b/LICENCE.txt deleted file mode 100644 index 12bc4b0..0000000 --- a/LICENCE.txt +++ /dev/null @@ -1,14 +0,0 @@ -Code is distributed under Apache License - -Please do not remove this file - -Institution: -Indiana University - -Authors: -Gregor von Laszewski -Xiuwen Yang - -e-mail: -laszewski@gmail.com -xiuwyang@umail.iu.edu diff --git a/README.md b/README.md deleted file mode 100644 index da0fe87..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -PLEASE SEE: - -* https://github.com/futuregrid/virtual-cluster/blob/master/doc/source/intro.rst \ No newline at end of file diff --git a/doc/source/download.rst b/_sources/download.txt similarity index 100% rename from doc/source/download.rst rename to _sources/download.txt diff --git a/doc/source/index.rst b/_sources/index.txt similarity index 100% rename from doc/source/index.rst rename to _sources/index.txt diff --git a/doc/source/intro.rst b/_sources/intro.txt similarity index 100% rename from doc/source/intro.rst rename to _sources/intro.txt diff --git a/doc/source/modules.rst b/_sources/modules.txt similarity index 100% rename from doc/source/modules.rst rename to _sources/modules.txt diff --git a/doc/source/support.rst b/_sources/support.txt similarity index 100% rename from doc/source/support.rst rename to _sources/support.txt diff --git a/_static/ajax-loader.gif b/_static/ajax-loader.gif new file mode 100644 index 0000000..61faf8c Binary files /dev/null and b/_static/ajax-loader.gif differ diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 0000000..43e8baf --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,540 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/doc/source/_themes/bootstrap/static/bootstrap-responsive.css b/_static/bootstrap-responsive.css similarity index 100% rename from doc/source/_themes/bootstrap/static/bootstrap-responsive.css rename to _static/bootstrap-responsive.css diff --git a/doc/source/_themes/bootstrap/static/bootstrap-sphinx.css_t b/_static/bootstrap-sphinx.css similarity index 61% rename from doc/source/_themes/bootstrap/static/bootstrap-sphinx.css_t rename to _static/bootstrap-sphinx.css index e6f6ad3..ad7747d 100644 --- a/doc/source/_themes/bootstrap/static/bootstrap-sphinx.css_t +++ b/_static/bootstrap-sphinx.css @@ -128,84 +128,6 @@ pre { word-wrap: normal; white-space: pre; } - -{%- if theme_page_toc_position == 'subnav' %} -.subnav { - margin-top: 18px; -} -.subnav .nav-pills { - overflow: hidden; - white-space: nowrap; -} -.subnav .nav-pills > li { - display: table-cell; - float: none; -} -.subnav .navbar-inner { - padding: 0; -} -.subnav .navbar-inner ul.nav { - white-space: nowrap; -} -.subnav .navbar-inner ul.nav li { - display: inline-block; - float: none; -} -.subnav .dropdown-toggle { - display: none; - margin-left: 8px; - line-height: 40px; -} -.subnav .hoverscroll { - margin: 0 auto; -} -.subnav-fixed .nav { - margin: 0; -} -@media (min-width: 980px) { - .subnav-fixed { - margin-top: 0; - position: fixed; - top: 40px; - left: 0; - right: 0; - z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */ - border-color: #d5d5d5; - border-width: 0 0 1px; /* drop the border on the fixed edges */ - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); - -moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); - box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */ - } - .subnav-fixed .nav { - width: 938px; - margin: 0 auto; - padding: 0 1px; - } - .subnav .nav > li:first-child > a, - .subnav .nav > li:first-child > a:hover { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - } -} -@media (max-width: 768px) { - .subnav { - display: none; - } -} -@media (min-width: 1210px) { - .subnav-fixed .nav { - width: 1168px; - } - -} -{%- endif %} - -{%- if theme_page_toc_position.startswith('sidebar-') %} .page-sidebar { max-width: 300px; } @@ -233,13 +155,7 @@ pre { text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); background-color: #0088cc; } -{%- endif %} - -{%- block sidebarlogo %} - {%- if logo %} .navbar h3 a, .navbar .brand { - background: transparent url("{{ logo }}") no-repeat 22px 3px; + background: transparent url("fg-logo-white-24x36.png") no-repeat 22px 3px; padding-left: 62px; -} - {%- endif %} -{%- endblock %} +} \ No newline at end of file diff --git a/doc/source/_themes/bootstrap/static/bootstrap-sphinx.js_t b/_static/bootstrap-sphinx.js similarity index 55% rename from doc/source/_themes/bootstrap/static/bootstrap-sphinx.js_t rename to _static/bootstrap-sphinx.js index 6abca9c..cd31723 100644 --- a/doc/source/_themes/bootstrap/static/bootstrap-sphinx.js_t +++ b/_static/bootstrap-sphinx.js @@ -15,79 +15,6 @@ sphinx['init'] = function($win, $nav, $subnav){ } return {left: 0, top: 0}; }; - - {%- if theme_page_toc_position == 'subnav' %} - /** - * Initialize the subnav functionality, handling fixing it to the top when - * scrolling, dealing with overflow, etc. - */ - sphinx['initSubNav'] = function(){ - if (!$subnav.length){ - return; - } - - // disable until it can be fixed to work w/ hoverscroll - /*$subnav.find('.dropdown-toggle').show().click(function(e){ - e.stopPropagation(); - $(this).closest('li').toggleClass('open'); - });*/ - - function afix(){ - $subnav.addClass('subnav-fixed'); - if ($subnav.css('position') == 'fixed'){ - if (!$subnav.siblings('.subnav-placeholder').length){ - var $placeholder = $(''); - $placeholder.height($subnav.outerHeight()); - $subnav.before($placeholder); - } - } - } - - function unafix(){ - $subnav.siblings('.subnav-placeholder').remove(); - $subnav.removeClass('subnav-fixed'); - } - - function hoverscroll(){ - var $subnav_inner = $subnav.find('.navbar-inner'); - var $list = $subnav_inner.find('ul').first(); - var width = ($subnav.css('position') == 'fixed') ? - $('.body').width() : $subnav_inner.width(); - $list.hoverscroll({ - arrowOpacity: 0.3, - width: width, - height: $subnav_inner.height() - }); - } - - var navTop = 0; - $win.on('load resize', function(e){ - var offset = sphinx.absolutePosition($('.subnav-placeholder').get(0) || $subnav.get(0)); - navTop = offset.top - $nav.outerHeight(); - $win.scroll(); - if (e.type == 'load'){ - $win.hashchange(); - } - }); - $win.on('hoverscroll scroll', function(){ - var scrollTop = $win.scrollTop(); - if (scrollTop > navTop) { - if (!$subnav.hasClass('subnav-fixed')){ - // account for the page not being long enough to make the subnav fixed - // without it immediately scrolling back and forcing back to static - // positioning. - var height = $(document).height() - navTop - $subnav.outerHeight(true); - if (height > $win.height()){ - afix(); - } - } - } else if ($subnav.hasClass('subnav-fixed')){ - unafix(); - } - hoverscroll(); - }).scroll(); - }; - {%- elif theme_page_toc_position.startswith('sidebar-') %} /** * Initialize the sidebar to support fixed positioning. */ @@ -99,7 +26,6 @@ sphinx['init'] = function($win, $nav, $subnav){ }).resize(); $sidenav.affix(); }; - {%- endif %} /** * Initialize top nav flyout menus to position the submenus more @@ -169,19 +95,6 @@ sphinx['init'] = function($win, $nav, $subnav){ navOffset += $nav.outerHeight(); } - {%- if theme_page_toc_position == 'subnav' %} - var $placeholder = $subnav.siblings('.subnav-placeholder'); - if ($placeholder.length){ - navOffset += $placeholder.outerHeight(); - }else{ - $subnav.addClass('subnav-fixed'); - if ($subnav.css('position') == 'fixed'){ - navOffset += $subnav.outerHeight(); - } - $subnav.removeClass('subnav-fixed'); - } - {%- endif %} - $win.scrollTop(sphinx.absolutePosition($target.get(0)).top - navOffset); var $animate = $target; if ($animate.is('.section')){ @@ -192,11 +105,6 @@ sphinx['init'] = function($win, $nav, $subnav){ $animate.animate({opacity: 0.4}, 1000, function(){ $animate.animate({opacity: 1}, 1000); }); - {%- if theme_page_toc_position == 'subnav' %} - if ($subnav.css('position') == 'fixed'){ - $win.scroll(); - } - {%- endif %} } }).hashchange(); }; @@ -204,9 +112,6 @@ sphinx['init'] = function($win, $nav, $subnav){ sphinx['initScrollspy'] = function(){ var navOffset = 10; navOffset += $nav.outerHeight(); - {%- if theme_page_toc_position == 'subnav' %} - navOffset += $subnav.outerHeight(); - {%- endif %} // wait on all other events setTimeout(function(){ @@ -214,39 +119,12 @@ sphinx['init'] = function($win, $nav, $subnav){ $win.on('load resize', function(){ $('body').scrollspy('refresh'); }); - - {%- if theme_page_toc_position == 'subnav' %} - $('body').bind('activate', function(e){ - var $target = $(e.target); - var $list = $subnav.find('.listcontainer'); - var left = $target.position().left; - var right = left + $target.width(); - var scroll = $list.scrollLeft(); - - if (right > ($list.width() - scroll)){ - $list.scrollLeft(right); - $win.trigger('hoverscroll'); - }else if (left < scroll){ - $list.scrollLeft(left); - $win.trigger('hoverscroll'); - } - }); - $win.on('scroll', function(){ - if($win.scrollTop() == 0){ - $('body').data('scrollspy').activeTarget = null; - $subnav.find('li.active').removeClass('active'); - $subnav.find('.listcontainer').scrollLeft(0); - $win.trigger('hoverscroll'); - } - }); - {%- else %} $win.on('scroll', function(){ if($win.scrollTop() == 0){ $('body').data('scrollspy').activeTarget = null; $('.page-toc').find('li.active').removeClass('active'); } }); - {%- endif %} }, 0); }; @@ -277,11 +155,7 @@ sphinx['init'] = function($win, $nav, $subnav){ }); sphinx.initTopNav(); - {%- if theme_page_toc_position == 'subnav' %} - sphinx.initSubNav(); - {%- elif theme_page_toc_position.startswith('sidebar-') %} sphinx.initSideNav(); - {%- endif %} sphinx.initHashLinks(); sphinx.initScrollspy(); @@ -289,4 +163,4 @@ sphinx['init'] = function($win, $nav, $subnav){ $(document).ready(function() { sphinx.init($(window), $('#navbar'), $('.subnav')); -}); +}); \ No newline at end of file diff --git a/doc/source/_themes/bootstrap/static/bootstrap.css b/_static/bootstrap.css similarity index 100% rename from doc/source/_themes/bootstrap/static/bootstrap.css rename to _static/bootstrap.css diff --git a/doc/source/_themes/bootstrap/static/bootstrap.js b/_static/bootstrap.js similarity index 100% rename from doc/source/_themes/bootstrap/static/bootstrap.js rename to _static/bootstrap.js diff --git a/doc/source/_themes/bootstrap/static/bootstrap.scrollspy.js b/_static/bootstrap.scrollspy.js similarity index 100% rename from doc/source/_themes/bootstrap/static/bootstrap.scrollspy.js rename to _static/bootstrap.scrollspy.js diff --git a/_static/comment-bright.png b/_static/comment-bright.png new file mode 100644 index 0000000..551517b Binary files /dev/null and b/_static/comment-bright.png differ diff --git a/_static/comment-close.png b/_static/comment-close.png new file mode 100644 index 0000000..09b54be Binary files /dev/null and b/_static/comment-close.png differ diff --git a/_static/comment.png b/_static/comment.png new file mode 100644 index 0000000..92feb52 Binary files /dev/null and b/_static/comment.png differ diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 0000000..d4619fd --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/_static/down-pressed.png b/_static/down-pressed.png new file mode 100644 index 0000000..6f7ad78 Binary files /dev/null and b/_static/down-pressed.png differ diff --git a/_static/down.png b/_static/down.png new file mode 100644 index 0000000..3003a88 Binary files /dev/null and b/_static/down.png differ diff --git a/doc/source/_static/fg-logo-grid-glow.png b/_static/fg-logo-grid-glow.png similarity index 100% rename from doc/source/_static/fg-logo-grid-glow.png rename to _static/fg-logo-grid-glow.png diff --git a/doc/source/_static/fg-logo-white-24x36.png b/_static/fg-logo-white-24x36.png similarity index 100% rename from doc/source/_static/fg-logo-white-24x36.png rename to _static/fg-logo-white-24x36.png diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000..d18082e Binary files /dev/null and b/_static/file.png differ diff --git a/doc/source/_static/header_bg.png b/_static/header_bg.png similarity index 100% rename from doc/source/_static/header_bg.png rename to _static/header_bg.png diff --git a/doc/source/_themes/bootstrap/static/img/arrow-left.png b/_static/img/arrow-left.png similarity index 100% rename from doc/source/_themes/bootstrap/static/img/arrow-left.png rename to _static/img/arrow-left.png diff --git a/doc/source/_themes/bootstrap/static/img/arrow-right.png b/_static/img/arrow-right.png similarity index 100% rename from doc/source/_themes/bootstrap/static/img/arrow-right.png rename to _static/img/arrow-right.png diff --git a/doc/source/_themes/bootstrap/static/img/glyphicons-halflings-white.png b/_static/img/glyphicons-halflings-white.png similarity index 100% rename from doc/source/_themes/bootstrap/static/img/glyphicons-halflings-white.png rename to _static/img/glyphicons-halflings-white.png diff --git a/doc/source/_themes/bootstrap/static/img/glyphicons-halflings.png b/_static/img/glyphicons-halflings.png similarity index 100% rename from doc/source/_themes/bootstrap/static/img/glyphicons-halflings.png rename to _static/img/glyphicons-halflings.png diff --git a/doc/source/_themes/bootstrap/static/jquery.ba-hashchange.js b/_static/jquery.ba-hashchange.js similarity index 100% rename from doc/source/_themes/bootstrap/static/jquery.ba-hashchange.js rename to _static/jquery.ba-hashchange.js diff --git a/doc/source/_themes/bootstrap/static/jquery.hoverscroll.css b/_static/jquery.hoverscroll.css similarity index 100% rename from doc/source/_themes/bootstrap/static/jquery.hoverscroll.css rename to _static/jquery.hoverscroll.css diff --git a/doc/source/_themes/bootstrap/static/jquery.hoverscroll.js b/_static/jquery.hoverscroll.js similarity index 100% rename from doc/source/_themes/bootstrap/static/jquery.hoverscroll.js rename to _static/jquery.hoverscroll.js diff --git a/doc/source/_themes/bootstrap/static/jquery.js b/_static/jquery.js similarity index 100% rename from doc/source/_themes/bootstrap/static/jquery.js rename to _static/jquery.js diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000..da1c562 Binary files /dev/null and b/_static/minus.png differ diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 0000000..b3cb374 Binary files /dev/null and b/_static/plus.png differ diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 0000000..d79caa1 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.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: #0044DD } /* 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 .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 0000000..663be4c --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,560 @@ +/* + * searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('