This commit is contained in:
James Lal 2014-02-26 01:54:09 -08:00
Родитель 4afc292e1d
Коммит baa279bc3f
49 изменённых файлов: 95827 добавлений и 1 удалений

1
.gitignore поставляемый
Просмотреть файл

@ -1,2 +1 @@
/doc
/node_modules

4
.travis.yml Normal file
Просмотреть файл

@ -0,0 +1,4 @@
language: node_js
node_js:
- "0.10"
- "0.11"

919
doc/Project.html Normal file
Просмотреть файл

@ -0,0 +1,919 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mozilla-treeherder Module: mozilla-treeherder/project</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spacelab.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<a class="brand" href="index.html">mozilla-treeherder</a>
<ul class="nav">
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project.html">mozilla-treeherder/project</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span8">
<div id="main">
<h1 class="page-title">Module: mozilla-treeherder/project</h1>
<section>
<header>
<h2>
mozilla-treeherder/project
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="module:mozilla-treeherder/project"><span class="type-signature"></span>new require("mozilla-treeherder/project")<span class="signature">(project, config)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
```js
var Project = require('mozilla-treeherder/project');
var project = new Project('gaia', {
consumerKey: 'key',
consumerSecret: 'yes'
});
```
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>project</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">name.</td>
</tr>
<tr>
<td class="name"><code>config</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">for project.
<h6>Properties</h6>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>consumerKey</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">for oauth.</td>
</tr>
<tr>
<td class="name"><code>consumerSecret</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">also for oauth.</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-92">line 92</a>
</li></ul></dd>
</dl>
</dd>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-1">line 1</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="getObjectstore"><span class="type-signature"></span>getObjectstore<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;Array>}</span></h4>
</dt>
<dd>
<div class="description">
Fetch all the objectstore results for this project.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-160">line 160</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Array></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getResultset"><span class="type-signature"></span>getResultset<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;Array>}</span></h4>
</dt>
<dd>
<div class="description">
Fetch all resultset(s) for this project.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-141">line 141</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="http://treeherder-dev.allizom.org/docs/#!/project/Result_Set_get_10">http://treeherder-dev.allizom.org/docs/#!/project/Result_Set_get_10</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Array></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="postResultset"><span class="type-signature"></span>postResultset<span class="signature">(resultset)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
</dt>
<dd>
<div class="description">
Update or create a resultset.
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>resultset</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">full resultset object.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-152">line 152</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="http://treeherder-dev.allizom.org/docs/#!/project/Result_Set_post_9">http://treeherder-dev.allizom.org/docs/#!/project/Result_Set_post_9</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Object></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="request"><span class="type-signature"></span>request<span class="signature">(method, path, body)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
</dt>
<dd>
<div class="description">
Issue a project specific api request
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>method</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">http method type.</td>
</tr>
<tr>
<td class="name"><code>path</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">the subpath in the project.</td>
</tr>
<tr>
<td class="name"><code>body</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">of the http request.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-125">line 125</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Object></span>
</dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha4</a>
on Wed Feb 26 2014 01:40:12 GMT-0800 (PST) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<div class="span3">
<div id="toc"></div>
</div>
<br clear="both">
</div>
</div>
<script src="scripts/sunlight.js"></script>
<script src="scripts/sunlight.javascript.js"></script>
<script src="scripts/sunlight-plugin.doclinks.js"></script>
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
<script src="scripts/sunlight-plugin.menu.js"></script>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/jquery.scrollTo.js"></script>
<script src="scripts/jquery.localScroll.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
<script>
$( function () {
$( "#toc" ).toc( {
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
} );
</script>
</body>
</html>

643
doc/_.html Normal file
Просмотреть файл

@ -0,0 +1,643 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mozilla-treeherder Class: module:mozilla-treeherder/project !l!*</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spacelab.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<a class="brand" href="index.html">mozilla-treeherder</a>
<ul class="nav">
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project.html">mozilla-treeherder/project</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="_.html">module:mozilla-treeherder/project !l!*</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span8">
<div id="main">
<h1 class="page-title">Class: module:mozilla-treeherder/project !l!*</h1>
<section>
<header>
<h2>
module:mozilla-treeherder/project !l!*
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="module:mozilla-treeherder/project !l!*"><span class="type-signature"></span>new module:mozilla-treeherder/project !l!*<span class="signature">(project, config)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>project</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">name.</td>
</tr>
<tr>
<td class="name"><code>config</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">for project.
<h6>Properties</h6>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>consumerKey</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">for oauth.</td>
</tr>
<tr>
<td class="name"><code>consumerSecret</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">also for oauth.</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-82">line 82</a>
</li></ul></dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="request"><span class="type-signature"></span>request<span class="signature">(method, path, body)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
</dt>
<dd>
<div class="description">
Issue a project specific api request
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>method</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">http method type.</td>
</tr>
<tr>
<td class="name"><code>path</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">the subpath in the project.</td>
</tr>
<tr>
<td class="name"><code>body</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">of the http request.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-115">line 115</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Object></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="resultset"><span class="type-signature"></span>resultset<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;Array>}</span></h4>
</dt>
<dd>
<div class="description">
Fetch all resultset(s) for this project.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-129">line 129</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Array></span>
</dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha4</a>
on Wed Feb 26 2014 00:28:12 GMT-0800 (PST) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<div class="span3">
<div id="toc"></div>
</div>
<br clear="both">
</div>
</div>
<script src="scripts/sunlight.js"></script>
<script src="scripts/sunlight.javascript.js"></script>
<script src="scripts/sunlight-plugin.doclinks.js"></script>
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
<script src="scripts/sunlight-plugin.menu.js"></script>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/jquery.scrollTo.js"></script>
<script src="scripts/jquery.localScroll.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
<script>
$( function () {
$( "#toc" ).toc( {
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
} );
</script>
</body>
</html>

200
doc/classes.list.html Normal file
Просмотреть файл

@ -0,0 +1,200 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mozilla-treeherder Classes</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spacelab.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<a class="brand" href="index.html">mozilla-treeherder</a>
<ul class="nav">
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project.html">mozilla-treeherder/project</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="_.html">module:mozilla-treeherder/project !l!*</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span8">
<div id="main">
<h1 class="page-title">Classes</h1>
<section>
<header>
<h2>
</h2>
</header>
<article>
<div class="container-overview">
<dl class="details">
</dl>
</div>
<h3 class="subsection-title">Classes</h3>
<dl>
<dt><a href="_.html">module:mozilla-treeherder/project !l!*</a></dt>
<dd></dd>
</dl>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha4</a>
on Wed Feb 26 2014 00:28:12 GMT-0800 (PST) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<div class="span3">
<div id="toc"></div>
</div>
<br clear="both">
</div>
</div>
<script src="scripts/sunlight.js"></script>
<script src="scripts/sunlight.javascript.js"></script>
<script src="scripts/sunlight-plugin.doclinks.js"></script>
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
<script src="scripts/sunlight-plugin.menu.js"></script>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/jquery.scrollTo.js"></script>
<script src="scripts/jquery.localScroll.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
<script>
$( function () {
$( "#toc" ).toc( {
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
} );
</script>
</body>
</html>

Двоичные данные
doc/img/glyphicons-halflings-white.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 8.6 KiB

Двоичные данные
doc/img/glyphicons-halflings.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 12 KiB

154
doc/index.html Normal file
Просмотреть файл

@ -0,0 +1,154 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mozilla-treeherder Index</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spacelab.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<a class="brand" href="index.html">mozilla-treeherder</a>
<ul class="nav">
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project.html">mozilla-treeherder/project</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span8">
<div id="main">
<span class="page-title">Index</span>
<section>
<article><h1 id="mozilla-treeherder">mozilla-treeherder</h1>
<p>NodeJS interface for treeherder.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-js">var Project = require(&#39;mozilla-treeherder/project&#39;);
// this configuration can be aquired from an ateam member working on
// treeherder (jeads).
var project = new Project(&#39;gaia&#39;, {
consumerKey: &#39;...&#39;,
consumerSecret: &#39;&#39;
});
</code></pre>
<h2 id="notes">Notes</h2>
<ul>
<li><code>TREEHERDER_URL</code> environment variable can be used to configure the
base url for treeherder.</li>
</ul>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha4</a>
on Wed Feb 26 2014 01:40:12 GMT-0800 (PST) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<div class="span3">
<div id="toc"></div>
</div>
<br clear="both">
</div>
</div>
<script src="scripts/sunlight.js"></script>
<script src="scripts/sunlight.javascript.js"></script>
<script src="scripts/sunlight-plugin.doclinks.js"></script>
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
<script src="scripts/sunlight-plugin.menu.js"></script>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/jquery.scrollTo.js"></script>
<script src="scripts/jquery.localScroll.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
<script>
$( function () {
$( "#toc" ).toc( {
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
} );
</script>
</body>
</html>

186
doc/modules.list.html Normal file
Просмотреть файл

@ -0,0 +1,186 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mozilla-treeherder Modules</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spacelab.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<a class="brand" href="index.html">mozilla-treeherder</a>
<ul class="nav">
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project.html">mozilla-treeherder/project</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span8">
<div id="main">
<h1 class="page-title">Modules</h1>
<section>
<header>
<h2>
</h2>
</header>
<article>
<div class="container-overview">
<dl class="details">
</dl>
</div>
<h3 class="subsection-title">Classes</h3>
<dl>
<dt><a href="project.html">require("mozilla-treeherder/project")</a></dt>
<dd></dd>
</dl>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha4</a>
on Wed Feb 26 2014 01:40:12 GMT-0800 (PST) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<div class="span3">
<div id="toc"></div>
</div>
<br clear="both">
</div>
</div>
<script src="scripts/sunlight.js"></script>
<script src="scripts/sunlight.javascript.js"></script>
<script src="scripts/sunlight-plugin.doclinks.js"></script>
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
<script src="scripts/sunlight-plugin.menu.js"></script>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/jquery.scrollTo.js"></script>
<script src="scripts/jquery.localScroll.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
<script>
$( function () {
$( "#toc" ).toc( {
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
} );
</script>
</body>
</html>

645
doc/project-Project.html Normal file
Просмотреть файл

@ -0,0 +1,645 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mozilla-treeherder Class: Project</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spacelab.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<a class="brand" href="index.html">mozilla-treeherder</a>
<ul class="nav">
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project.html">mozilla-treeherder/project</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project-Project.html">Project</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span8">
<div id="main">
<h1 class="page-title">Class: Project</h1>
<section>
<header>
<h2>
<span class="ancestors"><a href="project.html">mozilla-treeherder/project</a>~</span>
Project
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="Project"><span class="type-signature"></span>new Project<span class="signature">(project, config)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>project</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">name.</td>
</tr>
<tr>
<td class="name"><code>config</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">for project.
<h6>Properties</h6>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>consumerKey</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">for oauth.</td>
</tr>
<tr>
<td class="name"><code>consumerSecret</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">also for oauth.</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-79">line 79</a>
</li></ul></dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="request"><span class="type-signature"></span>request<span class="signature">(method, path, body)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
</dt>
<dd>
<div class="description">
Issue a project specific api request
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>method</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">http method type.</td>
</tr>
<tr>
<td class="name"><code>path</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">the subpath in the project.</td>
</tr>
<tr>
<td class="name"><code>body</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">of the http request.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-112">line 112</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Object></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="resultset"><span class="type-signature"></span>resultset<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;Array>}</span></h4>
</dt>
<dd>
<div class="description">
Fetch all resultset(s) for this project.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="project.js.html">/Users/james/workspace/treeherder-node/project.js</a>, <a href="project.js.html#sunlight-1-line-126">line 126</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise.&lt;Array></span>
</dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha4</a>
on Wed Feb 26 2014 00:23:52 GMT-0800 (PST) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<div class="span3">
<div id="toc"></div>
</div>
<br clear="both">
</div>
</div>
<script src="scripts/sunlight.js"></script>
<script src="scripts/sunlight.javascript.js"></script>
<script src="scripts/sunlight-plugin.doclinks.js"></script>
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
<script src="scripts/sunlight-plugin.menu.js"></script>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/jquery.scrollTo.js"></script>
<script src="scripts/jquery.localScroll.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
<script>
$( function () {
$( "#toc" ).toc( {
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
} );
</script>
</body>
</html>

277
doc/project.js.html Normal file
Просмотреть файл

@ -0,0 +1,277 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mozilla-treeherder Source: /Users/james/workspace/treeherder-node/project.js</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spacelab.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<a class="brand" href="index.html">mozilla-treeherder</a>
<ul class="nav">
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b
class="caret"></b></a>
<ul class="dropdown-menu inline">
<li>
<a href="project.html">mozilla-treeherder/project</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<div id="main">
<h1 class="page-title">Source: /Users/james/workspace/treeherder-node/project.js</h1>
<section>
<article>
<pre class="sunlight-highlight-javascript linenums">/**
@module mozilla-treeherder/project
*/
var assert = require('assert');
var consts = require('./consts');
var crypto = require('crypto');
var request = require('superagent-promise');
var OAuth = require('oauth').OAuth;
/**
@kind constant
default treeherder user.
*/
var TREEHERDER_USER = 'treeherder-node ' + require('./package').version;
function buildRequest(oauth, user, method, url, body) {
// we need to directly sign the body since oauth node does not do this for us.
body = JSON.stringify(body || '');
var queryParams = oauth._prepareParameters(
null, // no tokens in 2 legged oauth
null, // ^
method,
url,
/**
*/
{
// future book keeping for treeherder not sure what it's going to be used
// for...
user: user,
// node oauth does not provide body hasing but its easy to do so... its
// always sha1 as far as I can tell (at least the server only cares about
// sha1)
oauth_body_hash: crypto.createHash('sha1').update(body).digest('base64'),
// per http://tools.ietf.org/html/rfc5849#section-2.1 it must be empty if
// not used to indicate two legged oauth...
oauth_token: ''
}
);
var req = request(method, url).
set('Content-Type', 'application/json').
send(body);
// map the query parameters in order into an object
var query = {};
queryParams.reduce(function(result, value) {
result[value[0]] = value[1];
return result;
}, query);
req.query(query);
// return a promise for the result...
return req.end();
}
/**
Generic helper for resolving http request promises.
@private
*/
function handleResponse(res) {
if (res.ok) return res.body;
throw res.error;
}
/**
```js
var Project = require('mozilla-treeherder/project');
var project = new Project('gaia', {
consumerKey: 'key',
consumerSecret: 'yes'
});
```
@param {String} project name.
@param {Object} config for project.
@param {String} config.consumerKey for oauth.
@param {String} config.consumerSecret also for oauth.
@constructor
@alias module:mozilla-treeherder/project
*/
function Project(project, config) {
assert(project, 'project is required');
assert(config.consumerKey, '.consumerKey is required');
assert(config.consumerSecret, '.consumerSecret is required');
this.project = project;
this.user = config.user || TREEHERDER_USER;
// https://github.com/ciaranj/node-oauth/blob/171e668f386a3e1ba0bcb915b8dc7fdc9335aa62/lib/oauth.js#L9
this.oauth = new OAuth(
null, // 2 legged oauth has no urls
null, // ^
config.consumerKey, // per project key
config.consumerSecret, // per project secret
'1.0', // oauth version
null, // no callbacks in 2 legged oauth
'HMAC-SHA1' // signature type expected by the treeherder server.
);
var url = config.baseUrl || consts.baseUrl;
this.url = url + 'project/' + project + '/';
}
Project.prototype = {
/**
Issue a project specific api request
@param {String} method http method type.
@param {String} path the subpath in the project.
@param {Object} body of the http request.
@return {Promise&lt;Object>}
*/
request: function(method, path, body) {
return buildRequest(
this.oauth,
this.user,
method,
this.url + path,
body
);
},
/**
Fetch all resultset(s) for this project.
@see http://treeherder-dev.allizom.org/docs/#!/project/Result_Set_get_10
@return {Promise&lt;Array>}
*/
getResultset: function() {
return this.request('GET', 'resultset/').then(handleResponse);
},
/**
Update or create a resultset.
@see http://treeherder-dev.allizom.org/docs/#!/project/Result_Set_post_9
@param {Object} resultset full resultset object.
@return {Promise&lt;Object>}
*/
postResultset: function(resultset) {
return this.request('POST', 'resultset/', resultset).then(handleResponse);
},
/**
Fetch all the objectstore results for this project.
@return {Promise&lt;Array>}
*/
getObjectstore: function() {
return this.request('GET', 'objectstore/').then(handleResponse);
}
};
module.exports = Project;
</pre>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha4</a>
on Wed Feb 26 2014 01:40:12 GMT-0800 (PST) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<br clear="both">
</div>
</div>
<script src="scripts/sunlight.js"></script>
<script src="scripts/sunlight.javascript.js"></script>
<script src="scripts/sunlight-plugin.doclinks.js"></script>
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
<script src="scripts/sunlight-plugin.menu.js"></script>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/jquery.scrollTo.js"></script>
<script src="scripts/jquery.localScroll.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
<script>
$( function () {
$( "#toc" ).toc( {
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
} );
</script>
</body>
</html>

1429
doc/scripts/URI.js Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

165
doc/scripts/bootstrap-dropdown.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,165 @@
/* ============================================================
* bootstrap-dropdown.js v2.3.1
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function ($) {
"use strict"; // jshint ;_;
/* DROPDOWN CLASS DEFINITION
* ========================= */
var toggle = '[data-toggle=dropdown]'
, Dropdown = function (element) {
var $el = $(element).on('click.dropdown.data-api', this.toggle)
$('html').on('click.dropdown.data-api', function () {
$el.parent().removeClass('open')
})
}
Dropdown.prototype = {
constructor: Dropdown
, toggle: function (e) {
var $this = $(this)
, $parent
, isActive
if ($this.is('.disabled, :disabled')) return
$parent = getParent($this)
isActive = $parent.hasClass('open')
clearMenus()
if (!isActive) {
$parent.toggleClass('open')
}
$this.focus()
return false
}
, keydown: function (e) {
var $this
, $items
, $active
, $parent
, isActive
, index
if (!/(38|40|27)/.test(e.keyCode)) return
$this = $(this)
e.preventDefault()
e.stopPropagation()
if ($this.is('.disabled, :disabled')) return
$parent = getParent($this)
isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) {
if (e.which == 27) $parent.find(toggle).focus()
return $this.click()
}
$items = $('[role=menu] li:not(.divider):visible a', $parent)
if (!$items.length) return
index = $items.index($items.filter(':focus'))
if (e.keyCode == 38 && index > 0) index-- // up
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
$items
.eq(index)
.focus()
}
}
function clearMenus() {
$(toggle).each(function () {
getParent($(this)).removeClass('open')
})
}
function getParent($this) {
var selector = $this.attr('data-target')
, $parent
if (!selector) {
selector = $this.attr('href')
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
$parent = selector && $(selector)
if (!$parent || !$parent.length) $parent = $this.parent()
return $parent
}
/* DROPDOWN PLUGIN DEFINITION
* ========================== */
var old = $.fn.dropdown
$.fn.dropdown = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('dropdown')
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
if (typeof option == 'string') data[option].call($this)
})
}
$.fn.dropdown.Constructor = Dropdown
/* DROPDOWN NO CONFLICT
* ==================== */
$.fn.dropdown.noConflict = function () {
$.fn.dropdown = old
return this
}
/* APPLY TO STANDARD DROPDOWN ELEMENTS
* =================================== */
$(document)
.on('click.dropdown.data-api', clearMenus)
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
}(window.jQuery);

144
doc/scripts/bootstrap-tab.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,144 @@
/* ========================================================
* bootstrap-tab.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* TAB CLASS DEFINITION
* ==================== */
var Tab = function (element) {
this.element = $(element)
}
Tab.prototype = {
constructor: Tab
, show: function () {
var $this = this.element
, $ul = $this.closest('ul:not(.dropdown-menu)')
, selector = $this.attr('data-target')
, previous
, $target
, e
if (!selector) {
selector = $this.attr('href')
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
if ( $this.parent('li').hasClass('active') ) return
previous = $ul.find('.active:last a')[0]
e = $.Event('show', {
relatedTarget: previous
})
$this.trigger(e)
if (e.isDefaultPrevented()) return
$target = $(selector)
this.activate($this.parent('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown'
, relatedTarget: previous
})
})
}
, activate: function ( element, container, callback) {
var $active = container.find('> .active')
, transition = callback
&& $.support.transition
&& $active.hasClass('fade')
function next() {
$active
.removeClass('active')
.find('> .dropdown-menu > .active')
.removeClass('active')
element.addClass('active')
if (transition) {
element[0].offsetWidth // reflow for transition
element.addClass('in')
} else {
element.removeClass('fade')
}
if ( element.parent('.dropdown-menu') ) {
element.closest('li.dropdown').addClass('active')
}
callback && callback()
}
transition ?
$active.one($.support.transition.end, next) :
next()
$active.removeClass('in')
}
}
/* TAB PLUGIN DEFINITION
* ===================== */
var old = $.fn.tab
$.fn.tab = function ( option ) {
return this.each(function () {
var $this = $(this)
, data = $this.data('tab')
if (!data) $this.data('tab', (data = new Tab(this)))
if (typeof option == 'string') data[option]()
})
}
$.fn.tab.Constructor = Tab
/* TAB NO CONFLICT
* =============== */
$.fn.tab.noConflict = function () {
$.fn.tab = old
return this
}
/* TAB DATA-API
* ============ */
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
$(this).tab('show')
})
}(window.jQuery);

Просмотреть файл

@ -0,0 +1,130 @@
/*!
* jQuery.LocalScroll
* Copyright (c) 2007-2013 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* http://flesler.blogspot.com/2007/10/jquerylocalscroll-10.html
* @author Ariel Flesler
* @version 1.2.8
*
* @id jQuery.fn.localScroll
* @param {Object} settings Hash of settings, it is passed in to jQuery.ScrollTo, none is required.
* @return {jQuery} Returns the same jQuery object, for chaining.
*
* @example $('ul.links').localScroll();
*
* @example $('ul.links').localScroll({ filter:'.animated', duration:400, axis:'x' });
*
* @example $.localScroll({ target:'#pane', axis:'xy', queue:true, event:'mouseover' });
*
* Notes:
* - The plugin requires jQuery.ScrollTo.
* - The hash of settings, is passed to jQuery.ScrollTo, so the settings are valid for that plugin as well.
* - jQuery.localScroll can be used if the desired links, are all over the document, it accepts the same settings.
* - If the setting 'lazy' is set to true, then the binding will still work for later added anchors.
* - If onBefore returns false, the event is ignored.
*/
;(function( $ ){
var URI = location.href.replace(/#.*/,''); // local url without hash
var $localScroll = $.localScroll = function( settings ){
$('body').localScroll( settings );
};
// Many of these defaults, belong to jQuery.ScrollTo, check it's demo for an example of each option.
// @see http://flesler.demos.com/jquery/scrollTo/
// The defaults are public and can be overriden.
$localScroll.defaults = {
duration:1000, // How long to animate.
axis:'y', // Which of top and left should be modified.
event:'click', // On which event to react.
stop:true, // Avoid queuing animations
target: window, // What to scroll (selector or element). The whole window by default.
reset: true // Used by $.localScroll.hash. If true, elements' scroll is resetted before actual scrolling
/*
lock:false, // ignore events if already animating
lazy:false, // if true, links can be added later, and will still work.
filter:null, // filter some anchors out of the matched elements.
hash: false // if true, the hash of the selected link, will appear on the address bar.
*/
};
// If the URL contains a hash, it will scroll to the pointed element
$localScroll.hash = function( settings ){
if( location.hash ){
settings = $.extend( {}, $localScroll.defaults, settings );
settings.hash = false; // can't be true
if( settings.reset ){
var d = settings.duration;
delete settings.duration;
$(settings.target).scrollTo( 0, settings );
settings.duration = d;
}
scroll( 0, location, settings );
}
};
$.fn.localScroll = function( settings ){
settings = $.extend( {}, $localScroll.defaults, settings );
return settings.lazy ?
// use event delegation, more links can be added later.
this.bind( settings.event, function( e ){
// Could use closest(), but that would leave out jQuery -1.3.x
var a = $([e.target, e.target.parentNode]).filter(filter)[0];
// if a valid link was clicked
if( a )
scroll( e, a, settings ); // do scroll.
}) :
// bind concretely, to each matching link
this.find('a,area')
.filter( filter ).bind( settings.event, function(e){
scroll( e, this, settings );
}).end()
.end();
function filter(){// is this a link that points to an anchor and passes a possible filter ? href is checked to avoid a bug in FF.
return !!this.href && !!this.hash && this.href.replace(this.hash,'') == URI && (!settings.filter || $(this).is( settings.filter ));
};
};
function scroll( e, link, settings ){
var id = link.hash.slice(1),
elem = document.getElementById(id) || document.getElementsByName(id)[0];
if ( !elem )
return;
if( e )
e.preventDefault();
var $target = $( settings.target );
if( settings.lock && $target.is(':animated') ||
settings.onBefore && settings.onBefore(e, elem, $target) === false )
return;
if( settings.stop )
$target._scrollable().stop(true); // remove all its animations
if( settings.hash ){
var attr = elem.id == id ? 'id' : 'name',
$a = $('<a> </a>').attr(attr, id).css({
position:'absolute',
top: $(window).scrollTop(),
left: $(window).scrollLeft()
});
elem[attr] = '';
$('body').prepend($a);
location = link.hash;
$a.remove();
elem[attr] = id;
}
$target
.scrollTo( elem, settings ) // do scroll
.trigger('notify.serialScroll',[elem]); // notify serialScroll about this change
};
})( jQuery );

3522
doc/scripts/jquery.min.js поставляемый Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,217 @@
/*!
* jQuery.ScrollTo
* Copyright (c) 2007-2013 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
*
* @projectDescription Easy element scrolling using jQuery.
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
* @author Ariel Flesler
* @version 1.4.5
*
* @id jQuery.scrollTo
* @id jQuery.fn.scrollTo
* @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
* The different options for target are:
* - A number position (will be applied to all axes).
* - A string position ('44', '100px', '+=90', etc ) will be applied to all axes
* - A jQuery/DOM element ( logically, child of the element to scroll )
* - A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
* - A hash { top:x, left:y }, x and y can be any kind of number/string like above.
* - A percentage of the container's dimension/s, for example: 50% to go to the middle.
* - The string 'max' for go-to-end.
* @param {Number, Function} duration The OVERALL length of the animation, this argument can be the settings object instead.
* @param {Object,Function} settings Optional set of settings or the onAfter callback.
* @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
* @option {Number, Function} duration The OVERALL length of the animation.
* @option {String} easing The easing method for the animation.
* @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
* @option {Object, Number} offset Add/deduct from the end position. One number for both axes or { top:x, left:y }.
* @option {Object, Number} over Add/deduct the height/width multiplied by 'over', can be { top:x, left:y } when using both axes.
* @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
* @option {Function} onAfter Function to be called after the scrolling ends.
* @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
* @return {jQuery} Returns the same jQuery object, for chaining.
*
* @desc Scroll to a fixed position
* @example $('div').scrollTo( 340 );
*
* @desc Scroll relatively to the actual position
* @example $('div').scrollTo( '+=340px', { axis:'y' } );
*
* @desc Scroll using a selector (relative to the scrolled element)
* @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
*
* @desc Scroll to a DOM element (same for jQuery object)
* @example var second_child = document.getElementById('container').firstChild.nextSibling;
* $('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
* alert('scrolled!!');
* }});
*
* @desc Scroll on both axes, to different values
* @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
*/
;(function( $ ){
var $scrollTo = $.scrollTo = function( target, duration, settings ){
$(window).scrollTo( target, duration, settings );
};
$scrollTo.defaults = {
axis:'xy',
duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1,
limit:true
};
// Returns the element that needs to be animated to scroll the window.
// Kept for backwards compatibility (specially for localScroll & serialScroll)
$scrollTo.window = function( scope ){
return $(window)._scrollable();
};
// Hack, hack, hack :)
// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
$.fn._scrollable = function(){
return this.map(function(){
var elem = this,
isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;
if( !isWin )
return elem;
var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;
return /webkit/i.test(navigator.userAgent) || doc.compatMode == 'BackCompat' ?
doc.body :
doc.documentElement;
});
};
$.fn.scrollTo = function( target, duration, settings ){
if( typeof duration == 'object' ){
settings = duration;
duration = 0;
}
if( typeof settings == 'function' )
settings = { onAfter:settings };
if( target == 'max' )
target = 9e9;
settings = $.extend( {}, $scrollTo.defaults, settings );
// Speed is still recognized for backwards compatibility
duration = duration || settings.duration;
// Make sure the settings are given right
settings.queue = settings.queue && settings.axis.length > 1;
if( settings.queue )
// Let's keep the overall duration
duration /= 2;
settings.offset = both( settings.offset );
settings.over = both( settings.over );
return this._scrollable().each(function(){
// Null target yields nothing, just like jQuery does
if (target == null) return;
var elem = this,
$elem = $(elem),
targ = target, toff, attr = {},
win = $elem.is('html,body');
switch( typeof targ ){
// A number will pass the regex
case 'number':
case 'string':
if( /^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ) ){
targ = both( targ );
// We are done
break;
}
// Relative selector, no break!
targ = $(targ,this);
if (!targ.length) return;
case 'object':
// DOMElement / jQuery
if( targ.is || targ.style )
// Get the real position of the target
toff = (targ = $(targ)).offset();
}
$.each( settings.axis.split(''), function( i, axis ){
var Pos = axis == 'x' ? 'Left' : 'Top',
pos = Pos.toLowerCase(),
key = 'scroll' + Pos,
old = elem[key],
max = $scrollTo.max(elem, axis);
if( toff ){// jQuery / DOMElement
attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );
// If it's a dom element, reduce the margin
if( settings.margin ){
attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
}
attr[key] += settings.offset[pos] || 0;
if( settings.over[pos] )
// Scroll to a fraction of its width/height
attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos];
}else{
var val = targ[pos];
// Handle percentage values
attr[key] = val.slice && val.slice(-1) == '%' ?
parseFloat(val) / 100 * max
: val;
}
// Number or 'number'
if( settings.limit && /^\d+$/.test(attr[key]) )
// Check the limits
attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );
// Queueing axes
if( !i && settings.queue ){
// Don't waste time animating, if there's no need.
if( old != attr[key] )
// Intermediate animation
animate( settings.onAfterFirst );
// Don't animate this axis again in the next iteration.
delete attr[key];
}
});
animate( settings.onAfter );
function animate( callback ){
$elem.animate( attr, duration, settings.easing, callback && function(){
callback.call(this, target, settings);
});
};
}).end();
};
// Max scrolling position, works on quirks mode
// It only fails (not too badly) on IE, quirks mode.
$scrollTo.max = function( elem, axis ){
var Dim = axis == 'x' ? 'Width' : 'Height',
scroll = 'scroll'+Dim;
if( !$(elem).is('html,body') )
return elem[scroll] - $(elem)[Dim.toLowerCase()]();
var size = 'client' + Dim,
html = elem.ownerDocument.documentElement,
body = elem.ownerDocument.body;
return Math.max( html[scroll], body[scroll] )
- Math.min( html[size] , body[size] );
};
function both( val ){
return typeof val == 'object' ? val : { top:val, left:val };
};
})( jQuery );

Просмотреть файл

@ -0,0 +1,18 @@
/**
* jQuery plugin for Sunlight http://sunlightjs.com/
*
* by Tommy Montgomery http://tmont.com/
* licensed under WTFPL http://sam.zoy.org/wtfpl/
*/
(function($, window){
$.fn.sunlight = function(options) {
var highlighter = new window.Sunlight.Highlighter(options);
this.each(function() {
highlighter.highlightNode(this);
});
return this;
};
}(jQuery, this));

25
doc/scripts/linenumber.js Normal file
Просмотреть файл

@ -0,0 +1,25 @@
/*global document */
(function() {
var source = document.getElementsByClassName('prettyprint source linenums');
var i = 0;
var lineNumber = 0;
var lineId;
var lines;
var totalLines;
var anchorHash;
if (source && source[0]) {
anchorHash = document.location.hash.substring(1);
lines = source[0].getElementsByTagName('li');
totalLines = lines.length;
for (; i < totalLines; i++) {
lineNumber++;
lineId = 'line' + lineNumber;
lines[i].id = lineId;
if (lineId === anchorHash) {
lines[i].className += ' selected';
}
}
}
})();

Просмотреть файл

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

6
doc/scripts/prettify/jquery.min.js поставляемый Normal file

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -0,0 +1,21 @@
PR.registerLangHandler(PR.createSimpleLexer([
["pln", /^[\t\n\f\r ]+/, null, " \t\r\n "]
], [
["str", /^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/, null],
["str", /^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/, null],
["lang-css-str", /^url\(([^"')]*)\)/i],
["kwd", /^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i, null],
["lang-css-kw", /^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],
["com", /^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],
["com", /^(?:<\!--|--\>)/],
["lit", /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
["lit", /^#[\da-f]{3,6}/i],
["pln", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],
["pun", /^[^\s\w"']+/]
]), ["css"]);
PR.registerLangHandler(PR.createSimpleLexer([], [
["kwd", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]
]), ["css-kw"]);
PR.registerLangHandler(PR.createSimpleLexer([], [
["str", /^[^"')]+/]
]), ["css-str"]);

Просмотреть файл

@ -0,0 +1,496 @@
var q = null;
window.PR_SHOULD_USE_CONTINUATION = !0;
(function() {
function L(a) {
function m(a) {
var f = a.charCodeAt(0);
if (f !== 92) return f;
var b = a.charAt(1);
return (f = r[b]) ? f : "0" <= b && b <= "7" ? parseInt(a.substring(1), 8) : b === "u" || b === "x" ? parseInt(a.substring(2), 16) : a.charCodeAt(1)
}
function e(a) {
if (a < 32) return (a < 16 ? "\\x0" : "\\x") + a.toString(16);
a = String.fromCharCode(a);
if (a === "\\" || a === "-" || a === "[" || a === "]") a = "\\" + a;
return a
}
function h(a) {
for (var f = a.substring(1, a.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), a = [], b = [], o = f[0] === "^", c = o ? 1 : 0, i = f.length; c < i; ++c) {
var j = f[c];
if (/\\[bdsw]/i.test(j)) a.push(j);
else {
var j = m(j),
d;
c + 2 < i && "-" === f[c + 1] ? (d = m(f[c + 2]), c += 2) : d = j;
b.push([j, d]);
d < 65 || j > 122 || (d < 65 || j > 90 || b.push([Math.max(65, j) | 32, Math.min(d, 90) | 32]), d < 97 || j > 122 || b.push([Math.max(97, j) & -33, Math.min(d, 122) & -33]))
}
}
b.sort(function(a, f) {
return a[0] - f[0] || f[1] - a[1]
});
f = [];
j = [NaN, NaN];
for (c = 0; c < b.length; ++c) i = b[c], i[0] <= j[1] + 1 ? j[1] = Math.max(j[1], i[1]) : f.push(j = i);
b = ["["];
o && b.push("^");
b.push.apply(b, a);
for (c = 0; c < f.length; ++c) i = f[c], b.push(e(i[0])), i[1] > i[0] && (i[1] + 1 > i[0] && b.push("-"), b.push(e(i[1])));
b.push("]");
return b.join("")
}
function y(a) {
for (var f = a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), b = f.length, d = [], c = 0, i = 0; c < b; ++c) {
var j = f[c];
j === "(" ? ++i : "\\" === j.charAt(0) && (j = +j.substring(1)) && j <= i && (d[j] = -1)
}
for (c = 1; c < d.length; ++c) - 1 === d[c] && (d[c] = ++t);
for (i = c = 0; c < b; ++c) j = f[c], j === "(" ? (++i, d[i] === void 0 && (f[c] = "(?:")) : "\\" === j.charAt(0) && (j = +j.substring(1)) && j <= i && (f[c] = "\\" + d[i]);
for (i = c = 0; c < b; ++c)"^" === f[c] && "^" !== f[c + 1] && (f[c] = "");
if (a.ignoreCase && s) for (c = 0; c < b; ++c) j = f[c], a = j.charAt(0), j.length >= 2 && a === "[" ? f[c] = h(j) : a !== "\\" && (f[c] = j.replace(/[A-Za-z]/g, function(a) {
a = a.charCodeAt(0);
return "[" + String.fromCharCode(a & -33, a | 32) + "]"
}));
return f.join("")
}
for (var t = 0, s = !1, l = !1, p = 0, d = a.length; p < d; ++p) {
var g = a[p];
if (g.ignoreCase) l = !0;
else if (/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""))) {
s = !0;
l = !1;
break
}
}
for (var r = {
b: 8,
t: 9,
n: 10,
v: 11,
f: 12,
r: 13
}, n = [], p = 0, d = a.length; p < d; ++p) {
g = a[p];
if (g.global || g.multiline) throw Error("" + g);
n.push("(?:" + y(g) + ")")
}
return RegExp(n.join("|"), l ? "gi" : "g")
}
function M(a) {
function m(a) {
switch (a.nodeType) {
case 1:
if (e.test(a.className)) break;
for (var g = a.firstChild; g; g = g.nextSibling) m(g);
g = a.nodeName;
if ("BR" === g || "LI" === g) h[s] = "\n", t[s << 1] = y++, t[s++ << 1 | 1] = a;
break;
case 3:
case 4:
g = a.nodeValue, g.length && (g = p ? g.replace(/\r\n?/g, "\n") : g.replace(/[\t\n\r ]+/g, " "), h[s] = g, t[s << 1] = y, y += g.length, t[s++ << 1 | 1] = a)
}
}
var e = /(?:^|\s)nocode(?:\s|$)/,
h = [],
y = 0,
t = [],
s = 0,
l;
a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = document.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
var p = l && "pre" === l.substring(0, 3);
m(a);
return {
a: h.join("").replace(/\n$/, ""),
c: t
}
}
function B(a, m, e, h) {
m && (a = {
a: m,
d: a
}, e(a), h.push.apply(h, a.e))
}
function x(a, m) {
function e(a) {
for (var l = a.d, p = [l, "pln"], d = 0, g = a.a.match(y) || [], r = {}, n = 0, z = g.length; n < z; ++n) {
var f = g[n],
b = r[f],
o = void 0,
c;
if (typeof b === "string") c = !1;
else {
var i = h[f.charAt(0)];
if (i) o = f.match(i[1]), b = i[0];
else {
for (c = 0; c < t; ++c) if (i = m[c], o = f.match(i[1])) {
b = i[0];
break
}
o || (b = "pln")
}
if ((c = b.length >= 5 && "lang-" === b.substring(0, 5)) && !(o && typeof o[1] === "string")) c = !1, b = "src";
c || (r[f] = b)
}
i = d;
d += f.length;
if (c) {
c = o[1];
var j = f.indexOf(c),
k = j + c.length;
o[2] && (k = f.length - o[2].length, j = k - c.length);
b = b.substring(5);
B(l + i, f.substring(0, j), e, p);
B(l + i + j, c, C(b, c), p);
B(l + i + k, f.substring(k), e, p)
} else p.push(l + i, b)
}
a.e = p
}
var h = {},
y;
(function() {
for (var e = a.concat(m), l = [], p = {}, d = 0, g = e.length; d < g; ++d) {
var r = e[d],
n = r[3];
if (n) for (var k = n.length; --k >= 0;) h[n.charAt(k)] = r;
r = r[1];
n = "" + r;
p.hasOwnProperty(n) || (l.push(r), p[n] = q)
}
l.push(/[\S\s]/);
y = L(l)
})();
var t = m.length;
return e
}
function u(a) {
var m = [],
e = [];
a.tripleQuotedStrings ? m.push(["str", /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, "'\""]) : a.multiLineStrings ? m.push(["str", /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, q, "'\"`"]) : m.push(["str", /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, "\"'"]);
a.verbatimStrings && e.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, q]);
var h = a.hashComments;
h && (a.cStyleComments ? (h > 1 ? m.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, "#"]) : m.push(["com", /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/, q, "#"]), e.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, q])) : m.push(["com", /^#[^\n\r]*/, q, "#"]));
a.cStyleComments && (e.push(["com", /^\/\/[^\n\r]*/, q]), e.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, q]));
a.regexLiterals && e.push(["lang-regex", /^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);
(h = a.types) && e.push(["typ", h]);
a = ("" + a.keywords).replace(/^ | $/g, "");
a.length && e.push(["kwd", RegExp("^(?:" + a.replace(/[\s,]+/g, "|") + ")\\b"), q]);
m.push(["pln", /^\s+/, q, " \r\n\t\xa0"]);
e.push(["lit", /^@[$_a-z][\w$@]*/i, q], ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ["pln", /^[$_a-z][\w$@]*/i, q], ["lit", /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, "0123456789"], ["pln", /^\\[\S\s]?/, q], ["pun", /^.[^\s\w"-$'./@\\`]*/, q]);
return x(m, e)
}
function D(a, m) {
function e(a) {
switch (a.nodeType) {
case 1:
if (k.test(a.className)) break;
if ("BR" === a.nodeName) h(a), a.parentNode && a.parentNode.removeChild(a);
else for (a = a.firstChild; a; a = a.nextSibling) e(a);
break;
case 3:
case 4:
if (p) {
var b = a.nodeValue,
d = b.match(t);
if (d) {
var c = b.substring(0, d.index);
a.nodeValue = c;
(b = b.substring(d.index + d[0].length)) && a.parentNode.insertBefore(s.createTextNode(b), a.nextSibling);
h(a);
c || a.parentNode.removeChild(a)
}
}
}
}
function h(a) {
function b(a, d) {
var e = d ? a.cloneNode(!1) : a,
f = a.parentNode;
if (f) {
var f = b(f, 1),
g = a.nextSibling;
f.appendChild(e);
for (var h = g; h; h = g) g = h.nextSibling, f.appendChild(h)
}
return e
}
for (; !a.nextSibling;) if (a = a.parentNode, !a) return;
for (var a = b(a.nextSibling, 0), e;
(e = a.parentNode) && e.nodeType === 1;) a = e;
d.push(a)
}
var k = /(?:^|\s)nocode(?:\s|$)/,
t = /\r\n?|\n/,
s = a.ownerDocument,
l;
a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = s.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
var p = l && "pre" === l.substring(0, 3);
for (l = s.createElement("LI"); a.firstChild;) l.appendChild(a.firstChild);
for (var d = [l], g = 0; g < d.length; ++g) e(d[g]);
m === (m | 0) && d[0].setAttribute("value", m);
var r = s.createElement("OL");
r.className = "linenums";
for (var n = Math.max(0, m - 1 | 0) || 0, g = 0, z = d.length; g < z; ++g) l = d[g], l.className = "L" + (g + n) % 10, l.firstChild || l.appendChild(s.createTextNode("\xa0")), r.appendChild(l);
a.appendChild(r)
}
function k(a, m) {
for (var e = m.length; --e >= 0;) {
var h = m[e];
A.hasOwnProperty(h) ? window.console && console.warn("cannot override language handler %s", h) : A[h] = a
}
}
function C(a, m) {
if (!a || !A.hasOwnProperty(a)) a = /^\s*</.test(m) ? "default-markup" : "default-code";
return A[a]
}
function E(a) {
var m =
a.g;
try {
var e = M(a.h),
h = e.a;
a.a = h;
a.c = e.c;
a.d = 0;
C(m, h)(a);
var k = /\bMSIE\b/.test(navigator.userAgent),
m = /\n/g,
t = a.a,
s = t.length,
e = 0,
l = a.c,
p = l.length,
h = 0,
d = a.e,
g = d.length,
a = 0;
d[g] = s;
var r, n;
for (n = r = 0; n < g;) d[n] !== d[n + 2] ? (d[r++] = d[n++], d[r++] = d[n++]) : n += 2;
g = r;
for (n = r = 0; n < g;) {
for (var z = d[n], f = d[n + 1], b = n + 2; b + 2 <= g && d[b + 1] === f;) b += 2;
d[r++] = z;
d[r++] = f;
n = b
}
for (d.length = r; h < p;) {
var o = l[h + 2] || s,
c = d[a + 2] || s,
b = Math.min(o, c),
i = l[h + 1],
j;
if (i.nodeType !== 1 && (j = t.substring(e, b))) {
k && (j = j.replace(m, "\r"));
i.nodeValue =
j;
var u = i.ownerDocument,
v = u.createElement("SPAN");
v.className = d[a + 1];
var x = i.parentNode;
x.replaceChild(v, i);
v.appendChild(i);
e < o && (l[h + 1] = i = u.createTextNode(t.substring(b, o)), x.insertBefore(i, v.nextSibling))
}
e = b;
e >= o && (h += 2);
e >= c && (a += 2)
}
} catch (w) {
"console" in window && console.log(w && w.stack ? w.stack : w)
}
}
var v = ["break,continue,do,else,for,if,return,while"],
w = [
[v, "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],
F = [w, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
G = [w, "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
H = [G, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],
w = [w, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
I = [v, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
J = [v, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
v = [v, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
K = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,
N = /\S/,
O = u({
keywords: [F, H, w, "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END" + I, J, v],
hashComments: !0,
cStyleComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}),
A = {};
k(O, ["default-code"]);
k(x([], [
["pln", /^[^<?]+/],
["dec", /^<!\w[^>]*(?:>|$)/],
["com", /^<\!--[\S\s]*?(?:--\>|$)/],
["lang-", /^<\?([\S\s]+?)(?:\?>|$)/],
["lang-", /^<%([\S\s]+?)(?:%>|$)/],
["pun", /^(?:<[%?]|[%?]>)/],
["lang-", /^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],
["lang-js", /^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],
["lang-css", /^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],
["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]
]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]);
k(x([
["pln", /^\s+/, q, " \t\r\n"],
["atv", /^(?:"[^"]*"?|'[^']*'?)/, q, "\"'"]
], [
["tag", /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],
["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
["lang-uq.val", /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],
["pun", /^[/<->]+/],
["lang-js", /^on\w+\s*=\s*"([^"]+)"/i],
["lang-js", /^on\w+\s*=\s*'([^']+)'/i],
["lang-js", /^on\w+\s*=\s*([^\s"'>]+)/i],
["lang-css", /^style\s*=\s*"([^"]+)"/i],
["lang-css", /^style\s*=\s*'([^']+)'/i],
["lang-css", /^style\s*=\s*([^\s"'>]+)/i]
]), ["in.tag"]);
k(x([], [
["atv", /^[\S\s]+/]
]), ["uq.val"]);
k(u({
keywords: F,
hashComments: !0,
cStyleComments: !0,
types: K
}), ["c", "cc", "cpp", "cxx", "cyc", "m"]);
k(u({
keywords: "null,true,false"
}), ["json"]);
k(u({
keywords: H,
hashComments: !0,
cStyleComments: !0,
verbatimStrings: !0,
types: K
}), ["cs"]);
k(u({
keywords: G,
cStyleComments: !0
}), ["java"]);
k(u({
keywords: v,
hashComments: !0,
multiLineStrings: !0
}), ["bsh", "csh", "sh"]);
k(u({
keywords: I,
hashComments: !0,
multiLineStrings: !0,
tripleQuotedStrings: !0
}), ["cv", "py"]);
k(u({
keywords: "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), ["perl", "pl", "pm"]);
k(u({
keywords: J,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), ["rb"]);
k(u({
keywords: w,
cStyleComments: !0,
regexLiterals: !0
}), ["js"]);
k(u({
keywords: "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
hashComments: 3,
cStyleComments: !0,
multilineStrings: !0,
tripleQuotedStrings: !0,
regexLiterals: !0
}), ["coffee"]);
k(x([], [
["str", /^[\S\s]+/]
]), ["regex"]);
window.prettyPrintOne = function(a, m, e) {
var h = document.createElement("PRE");
h.innerHTML = a;
e && D(h, e);
E({
g: m,
i: e,
h: h
});
return h.innerHTML
};
window.prettyPrint = function(a) {
function m() {
for (var e = window.PR_SHOULD_USE_CONTINUATION ? l.now() + 250 : Infinity; p < h.length && l.now() < e; p++) {
var n = h[p],
k = n.className;
if (k.indexOf("prettyprint") >= 0) {
var k = k.match(g),
f, b;
if (b = !k) {
b = n;
for (var o = void 0, c = b.firstChild; c; c = c.nextSibling) var i = c.nodeType,
o = i === 1 ? o ? b : c : i === 3 ? N.test(c.nodeValue) ? b : o : o;
b = (f = o === b ? void 0 : o) && "CODE" === f.tagName
}
b && (k = f.className.match(g));
k && (k = k[1]);
b = !1;
for (o = n.parentNode; o; o = o.parentNode) if ((o.tagName === "pre" || o.tagName === "code" || o.tagName === "xmp") && o.className && o.className.indexOf("prettyprint") >= 0) {
b = !0;
break
}
b || ((b = (b = n.className.match(/\blinenums\b(?::(\d+))?/)) ? b[1] && b[1].length ? +b[1] : !0 : !1) && D(n, b), d = {
g: k,
h: n,
i: b
}, E(d))
}
}
p < h.length ? setTimeout(m, 250) : a && a()
}
for (var e = [document.getElementsByTagName("pre"), document.getElementsByTagName("code"), document.getElementsByTagName("xmp")], h = [], k = 0; k < e.length; ++k) for (var t = 0, s = e[k].length; t < s; ++t) h.push(e[k][t]);
var e = q,
l = Date;
l.now || (l = {
now: function() {
return +new Date
}
});
var p = 0,
d, g = /\blang(?:uage)?-([\w.]+)(?!\S)/;
m()
};
window.PR = {
createSimpleLexer: x,
registerLangHandler: k,
sourceDecorator: u,
PR_ATTRIB_NAME: "atn",
PR_ATTRIB_VALUE: "atv",
PR_COMMENT: "com",
PR_DECLARATION: "dec",
PR_KEYWORD: "kwd",
PR_LITERAL: "lit",
PR_NOCODE: "nocode",
PR_PLAIN: "pln",
PR_PUNCTUATION: "pun",
PR_SOURCE: "src",
PR_STRING: "str",
PR_TAG: "tag",
PR_TYPE: "typ"
}
})();

Просмотреть файл

@ -0,0 +1,91 @@
/**
* Sunlight documentation link plugin
*
* This plugin generates hyperlinks to language documentation for certain tokens
* (e.g. links to php.net for functions).
*
* Supported languages:
* - PHP (functions and language constructs)
* - Ruby (functions)
* - Python (functions)
* - Perl (functions)
* - Lua (functions)
*
* Options:
* - enableDocLinks: true/false (default is false)
*/
(function(sunlight, document, undefined){
if (sunlight === undefined) {
throw "Include sunlight.js before including plugin files";
}
var supportedLanguages = {
php: {
"function": function(word) { return "http://php.net/" + word; },
languageConstruct: function(word) { return "http://php.net/" + word; }
},
ruby: {
"function": function(word) {
return "http://www.ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/function.html#"
+ word.replace(/!/g, "_bang").replace(/\?/g, "_p");
}
},
python: {
"function": function(word) {
return "http://docs.python.org/py3k/library/functions.html#" + word;
}
},
perl: {
"function": function(word) { return "http://perldoc.perl.org/functions/" + word + ".html"; }
},
lua: {
"function": function(word) { return "http://www.lua.org/manual/5.1/manual.html#pdf-" + word; }
}
};
function createLink(transformUrl) {
return function(context) {
var link = document.createElement("a");
link.className = context.options.classPrefix + context.tokens[context.index].name;
link.setAttribute("href", transformUrl(context.tokens[context.index].value));
link.appendChild(context.createTextNode(context.tokens[context.index]));
context.addNode(link);
};
}
sunlight.bind("beforeAnalyze", function(context) {
if (!this.options.enableDocLinks) {
return;
}
context.analyzerContext.getAnalyzer = function() {
var language = supportedLanguages[this.language.name],
analyzer,
tokenName;
if (!language) {
return;
}
analyzer = sunlight.util.clone(context.analyzerContext.language.analyzer);
for (tokenName in language) {
if (!language.hasOwnProperty(tokenName)) {
continue;
}
analyzer["handle_" + tokenName] = createLink(language[tokenName]);
}
return analyzer;
};
});
sunlight.globalOptions.enableDocLinks = false;
}(this["Sunlight"], document));

Просмотреть файл

@ -0,0 +1,104 @@
/**
* Sunlight line number/line highlighting plugin
*
* This creates the line number gutter in addition to creating the line highlighting
* overlay (if applicable). It is bundled in sunlight-min.js.
*
* Options:
* - lineNumbers: true/false/"automatic" (default is "automatic")
* - lineNumberStart: <number> (line number to start from, default is 1)
* - lineHighlight: <array> (array of line numbers to highlight)
*/
(function(sunlight, document, undefined){
if (sunlight === undefined) {
throw "Include sunlight.js before including plugin files";
}
function getLineCount(node) {
//browsers don't render the last trailing newline, so we make sure that the line numbers reflect that
//by disregarding the last trailing newline
//get the last text node
var lastTextNode = function getLastNode(node) {
if (!node.lastChild) {
return null;
}
if (node.lastChild.nodeType === 3) {
return node.lastChild;
}
return getLastNode(node.lastChild);
}(node) || { lastChild: "" };
return node.innerHTML.replace(/[^\n]/g, "").length - /\n$/.test(lastTextNode.nodeValue);
}
sunlight.bind("afterHighlightNode", function(context) {
var lineContainer,
lineCount,
lineHighlightOverlay,
currentLineOverlay,
lineHighlightingEnabled,
i,
eol,
link,
name;
if (!this.options.lineNumbers) {
return;
}
if (this.options.lineNumbers === "automatic" && sunlight.util.getComputedStyle(context.node, "display") !== "block") {
//if it's not a block level element or the lineNumbers option is not set to "automatic"
return;
}
lineContainer = document.createElement("pre");
lineCount = getLineCount(context.node);
lineHighlightingEnabled = this.options.lineHighlight.length > 0;
if (lineHighlightingEnabled) {
lineHighlightOverlay = document.createElement("div");
lineHighlightOverlay.className = this.options.classPrefix + "line-highlight-overlay";
}
lineContainer.className = this.options.classPrefix + "line-number-margin";
eol = document.createTextNode(sunlight.util.eol)
for (i = this.options.lineNumberStart; i <= this.options.lineNumberStart + lineCount; i++) {
link = document.createElement("a");
name = (context.node.id ? context.node.id : this.options.classPrefix + context.count) + "-line-" + i;
link.setAttribute("name", name);
link.setAttribute("href", "#" + name);
link.appendChild(document.createTextNode(i));
lineContainer.appendChild(link);
lineContainer.appendChild(eol.cloneNode(false));
if (lineHighlightingEnabled) {
currentLineOverlay = document.createElement("div");
if (sunlight.util.contains(this.options.lineHighlight, i)) {
currentLineOverlay.className = this.options.classPrefix + "line-highlight-active";
}
lineHighlightOverlay.appendChild(currentLineOverlay);
}
}
context.codeContainer.insertBefore(lineContainer, context.codeContainer.firstChild);
if (lineHighlightingEnabled) {
context.codeContainer.appendChild(lineHighlightOverlay);
}
//enable the border on the code container
context.codeContainer.style.borderWidth = "1px";
context.codeContainer.style.borderStyle = "solid";
});
sunlight.globalOptions.lineNumbers = "automatic";
sunlight.globalOptions.lineNumberStart = 1;
sunlight.globalOptions.lineHighlight = [];
}(this["Sunlight"], document));

Просмотреть файл

@ -0,0 +1,159 @@
/**
* Sunlight menu plugin
*
* This creates the menu in the upper right corner for block-level elements.
* This plugin is not supported for IE6.
*
* Options:
* - showMenu: true/false (default is false)
* - autoCollapse: true/false (default is false)
*/
(function(sunlight, document, undefined){
if (sunlight === undefined) {
throw "Include sunlight.js before including plugin files";
}
//http://dean.edwards.name/weblog/2007/03/sniff/#comment83695
//eval()'d so that it compresses correctly
var ieVersion = eval("0 /*@cc_on+ScriptEngineMajorVersion()@*/");
function createLink(href, title, text) {
var link = document.createElement("a");
link.setAttribute("href", href);
link.setAttribute("title", title);
if (text) {
link.appendChild(document.createTextNode(text));
}
return link;
}
function getTextRecursive(node) {
var text = "",
i = 0;
if (node.nodeType === 3) {
return node.nodeValue;
}
text = "";
for (i = 0; i < node.childNodes.length; i++) {
text += getTextRecursive(node.childNodes[i]);
}
return text;
}
sunlight.bind("afterHighlightNode", function(context) {
var menu,
sunlightIcon,
ul,
collapse,
mDash,
collapseLink,
viewRaw,
viewRawLink,
about,
aboutLink,
icon;
if ((ieVersion && ieVersion < 7) || !this.options.showMenu || sunlight.util.getComputedStyle(context.node, "display") !== "block") {
return;
}
menu = document.createElement("div");
menu.className = this.options.classPrefix + "menu";
sunlightIcon =
"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJ" +
"cEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41Ljg3O4BdAAAAl0lEQVQ4jWP4" +
"P9n9PyWYgTYGzAr+///Q9P//Ty/HjhfEETDg1oH/YPDgNKbm4wsIuGBO+H84WJJKhhd2dkA0v3tEZhjcPQox4MVN" +
"7P7fUEHAgM112DX++Qkx+PEFMqPxwSmIAQenkWHAvCicAUucAbCAfX2PQCCCEtDGKkz86RXEgL39BAwAKcAFbh/6" +
"/39GIL3yAj0NAAB+LQeDCZ9tvgAAAABJRU5ErkJggg==";
ul = document.createElement("ul");
collapse = document.createElement("li");
mDash = String.fromCharCode(0x2014);
collapseLink = createLink("#", "collapse code block", mDash);
collapseLink.onclick = function() {
var originalHeight = sunlight.util.getComputedStyle(context.codeContainer, "height"),
originalOverflow = sunlight.util.getComputedStyle(context.codeContainer, "overflowY");
return function() {
var needsToExpand = sunlight.util.getComputedStyle(context.codeContainer, "height") !== originalHeight;
this.replaceChild(document.createTextNode(needsToExpand ? mDash : "+"), this.firstChild);
this.setAttribute("title", (needsToExpand ? "collapse" : "expand") + " clode block");
context.codeContainer.style.height = needsToExpand ? originalHeight : "0px";
context.codeContainer.style.overflowY = needsToExpand ? originalOverflow : "hidden";
return false;
}
}();
collapse.appendChild(collapseLink);
viewRaw = document.createElement("li");
viewRawLink = createLink("#", "view raw code", "raw");
viewRawLink.onclick = function() {
var textarea;
return function() {
var rawCode;
if (textarea) {
textarea.parentNode.removeChild(textarea);
textarea = null;
context.node.style.display = "block";
this.replaceChild(document.createTextNode("raw"), this.firstChild);
this.setAttribute("title", "view raw code");
} else {
//hide the codeContainer, flatten all text nodes, create a <textarea>, append it
rawCode = getTextRecursive(context.node);
textarea = document.createElement("textarea");
textarea.value = rawCode;
textarea.setAttribute("readonly", "readonly");
textarea.style.width = (parseInt(sunlight.util.getComputedStyle(context.node, "width")) - 5) + "px"; //IE, Safari and Chrome can't handle the actual width
textarea.style.height = sunlight.util.getComputedStyle(context.node, "height");
textarea.style.border = "none";
textarea.style.overflowX = "hidden"; //IE requires this
textarea.setAttribute("wrap", "off"); //prevent line wrapping lol
context.codeContainer.insertBefore(textarea, context.node);
context.node.style.display = "none";
this.replaceChild(document.createTextNode("highlighted"), this.firstChild);
this.setAttribute("title", "view highlighted code");
textarea.select(); //highlight everything
}
return false;
}
}();
viewRaw.appendChild(viewRawLink);
about = document.createElement("li");
aboutLink = createLink("http://sunlightjs.com/", "Sunlight: JavaScript syntax highlighter by Tommy Montgomery");
icon = document.createElement("img");
icon.setAttribute("src", "data:image/png;base64," + sunlightIcon);
icon.setAttribute("alt", "about");
aboutLink.appendChild(icon);
about.appendChild(aboutLink);
ul.appendChild(about);
ul.appendChild(viewRaw);
ul.appendChild(collapse);
menu.appendChild(ul);
context.container.insertBefore(menu, context.container.firstChild);
if (this.options.autoCollapse) {
collapseLink.onclick.call(collapseLink);
}
});
sunlight.globalOptions.showMenu = false;
sunlight.globalOptions.autoCollapse = false;
}(this["Sunlight"], document));

Просмотреть файл

@ -0,0 +1,183 @@
(function(sunlight, undefined){
if (sunlight === undefined || sunlight["registerLanguage"] === undefined) {
throw "Include sunlight.js before including language files";
}
sunlight.registerLanguage("javascript", {
keywords: [
//keywords
"break", "case", "catch", "continue", "default", "delete", "do",
"else", "finally", "for", "function", "if", "in", "instanceof",
"new", "return", "switch", "this", "throw", "try", "typeof",
"var", "void", "while", "with",
//literals
"true", "false", "null"
],
customTokens: {
reservedWord: {
values: [
"abstract", "boolean", "byte", "char", "class", "const", "debugger", "double",
"enum", "export", "extends", "final", "float", "goto", "implements", "import",
"int", "interface", "long", "native", "package", "private", "protected", "public",
"short", "static", "super", "synchronized", "throws", "transient", "volatile"
],
boundary: "\\b"
},
globalVariable: {
values: ["NaN", "Infinity", "undefined"],
boundary: "\\b"
},
globalFunction: {
values: ["encodeURI", "encodeURIComponent", "decodeURI", "decodeURIComponent", "parseInt", "parseFloat", "isNaN", "isFinite", "eval"],
boundary: "\\b"
},
globalObject: {
values: [
"Math", "JSON",
"XMLHttpRequest", "XDomainRequest", "ActiveXObject",
"Boolean", "Date", "Array", "Image", "Function", "Object", "Number", "RegExp", "String"
],
boundary: "\\b"
}
},
scopes: {
string: [ ["\"", "\"", sunlight.util.escapeSequences.concat(["\\\""])], ["'", "'", sunlight.util.escapeSequences.concat(["\\\'", "\\\\"])] ],
comment: [ ["//", "\n", null, true], ["/*", "*/"] ]
},
customParseRules: [
//regex literal
function(context) {
var peek = context.reader.peek(),
isValid,
regexLiteral = "/",
line = context.reader.getLine(),
column = context.reader.getColumn(),
charClass = false,
peek2,
next;
if (context.reader.current() !== "/" || peek === "/" || peek === "*") {
//doesn't start with a / or starts with // (comment) or /* (multi line comment)
return null;
}
isValid = function() {
var previousNonWsToken = context.token(context.count() - 1),
previousToken = null;
if (context.defaultData.text !== "") {
previousToken = context.createToken("default", context.defaultData.text);
}
if (!previousToken) {
previousToken = previousNonWsToken;
}
//first token of the string
if (previousToken === undefined) {
return true;
}
//since JavaScript doesn't require statement terminators, if the previous token was whitespace and contained a newline, then we're good
if (previousToken.name === "default" && previousToken.value.indexOf("\n") > -1) {
return true;
}
if (sunlight.util.contains(["keyword", "ident", "number"], previousNonWsToken.name)) {
return false;
}
if (previousNonWsToken.name === "punctuation" && !sunlight.util.contains(["(", "{", "[", ",", ";"], previousNonWsToken.value)) {
return false;
}
return true;
}();
if (!isValid) {
return null;
}
//read the regex literal
while (context.reader.peek() !== context.reader.EOF) {
peek2 = context.reader.peek(2);
if (peek2 === "\\/" || peek2 === "\\\\") {
//escaped backslash or escaped forward slash
regexLiteral += context.reader.read(2);
continue;
}
if (peek2 === "\\[" || peek2 === "\\]") {
regexLiteral += context.reader.read(2);
continue;
} else if (next === "[") {
charClass = true;
} else if (next === "]") {
charClass = false;
}
regexLiteral += (next = context.reader.read());
if (next === "/" && !charClass) {
break;
}
}
//read the regex modifiers
//only "g", "i" and "m" are allowed, but for the sake of simplicity we'll just say any alphabetical character is valid
while (context.reader.peek() !== context.reader.EOF) {
if (!/[A-Za-z]/.test(context.reader.peek())) {
break;
}
regexLiteral += context.reader.read();
}
return context.createToken("regexLiteral", regexLiteral, line, column);
}
],
identFirstLetter: /[$A-Za-z_]/,
identAfterFirstLetter: /[\w\$]/,
namedIdentRules: {
follows: [
[{ token: "keyword", values: ["function"] }, sunlight.util.whitespace]
]
},
operators: [
//arithmetic
"++", "+=", "+",
"--", "-=", "-",
"*=", "*",
"/=", "/",
"%=", "%",
//boolean
"&&", "||",
//bitwise
"|=", "|",
"&=", "&",
"^=", "^",
">>>=", ">>>", ">>=", ">>",
"<<=", "<<",
//inequality
"<=", "<",
">=", ">",
"===", "==", "!==", "!=",
//unary
"!", "~",
//other
"?", ":", ".", "="
]
});
}(this["Sunlight"]));

1157
doc/scripts/sunlight.js Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

209
doc/scripts/toc.js Normal file
Просмотреть файл

@ -0,0 +1,209 @@
(function($) {
$.fn.toc = function(options) {
var self = this;
var opts = $.extend({}, jQuery.fn.toc.defaults, options);
var container = $(opts.container);
var headings = $(opts.selectors, container);
var headingOffsets = [];
var activeClassName = opts.prefix+'-active';
var scrollTo = function(e) {
if (opts.smoothScrolling) {
e.preventDefault();
var elScrollTo = $(e.target).attr('href');
var $el = $(elScrollTo);
$('body,html').animate({ scrollTop: $el.offset().top }, 400, 'swing', function() {
location.hash = elScrollTo;
});
}
$('li', self).removeClass(activeClassName);
$(e.target).parent().addClass(activeClassName);
};
//highlight on scroll
var timeout;
var highlightOnScroll = function(e) {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function() {
var top = $(window).scrollTop(),
highlighted;
for (var i = 0, c = headingOffsets.length; i < c; i++) {
if (headingOffsets[i] >= top) {
$('li', self).removeClass(activeClassName);
highlighted = $('li:eq('+(i-1)+')', self).addClass(activeClassName);
opts.onHighlight(highlighted);
break;
}
}
}, 50);
};
if (opts.highlightOnScroll) {
$(window).bind('scroll', highlightOnScroll);
highlightOnScroll();
}
//Perform search and hide unmatched elements
var tocList;
var treeObject = {};
//Create the tree
var createTree = function(ul) {
var prevLevel = {level: -1, index: -1, parent: -1, val: ''};
var levelParent = {0: -1};
tocList = ul.children("li");
tocList.each(function(i) {
var me = $(this).removeClass("toc-active");
var currentLevel = parseInt(me.attr('class').trim().slice(-1));
if (currentLevel > prevLevel.level) {
currentParent = prevLevel.index;
} else if (currentLevel == prevLevel.level) {
currentParent = prevLevel.parent;
} else if (currentLevel < prevLevel.level) {
currentParent = levelParent[currentLevel] || prevLevel.parent;
}
levelParent[currentLevel] = currentParent;
var currentVal = $('a', this).text().trim().toLowerCase();
treeObject[i] = {
val: currentVal,
level: currentLevel,
parent: currentParent
}
prevLevel = {index: i, val: currentVal, level: currentLevel, parent: currentParent};
});
}
//Show the parents recursively
var showParents = function(key) {
var me = treeObject[key];
if (me.parent > -1) {
$(tocList[me.parent]).show();
showParents(me.parent);
}
};
//Perform the search
var search = function(searchVal) {
searchVal = searchVal.trim().toLowerCase();
for (var key in treeObject) {
var me = treeObject[key];
if (me.val.indexOf(searchVal) !== -1 || searchVal.length == 0) {
$(tocList[key]).show();
if ($(tocList[me.parent]).is(":hidden")) {
showParents(key);
}
} else {
$(tocList[key]).hide();
}
}
}
return this.each(function() {
//build TOC
var el = $(this);
var searchVal = '';
var searchForm = $("<form/>", {class: "form-search quick-search"})
.append($("<input/>", {type: "text", class: "input-medium search-query", placeholder: "Quick Search"}))
.append($("<i/>", {class: "icon icon-search search-icon"}));
searchForm.css({'position': 'fixed', 'top': '45px', 'padding-right': '20px'});
$(".search-icon", searchForm).css({'marginLeft': '-20px', 'marginTop': '3px'});
var ul = $('<ul/>');
headings.each(function(i, heading) {
var $h = $(heading);
headingOffsets.push($h.offset().top - opts.highlightOffset);
//add anchor
var anchor = $('<span/>').attr('id', opts.anchorName(i, heading, opts.prefix)).insertBefore($h);
//build TOC item
var a = $('<a/>')
.text(opts.headerText(i, heading, $h))
.attr('href', '#' + opts.anchorName(i, heading, opts.prefix))
.bind('click', function(e) {
scrollTo(e);
el.trigger('selected', $(this).attr('href'));
});
var li = $('<li/>')
.addClass(opts.itemClass(i, heading, $h, opts.prefix))
.append(a);
ul.append(li);
});
el.html(ul);
el.parent().prepend(searchForm);
el.css({'top': '80px'});
//create the tree
createTree(ul)
//set intent timer
var intentTimer;
var accumulatedTime = 0;
//bind quick search
el.siblings('.quick-search').children('.search-query').bind('keyup', function(e) {
if (accumulatedTime < 1000) {
window.clearTimeout(intentTimer);
}
var me = $(this);
if (me.val().length > 0) {
$(".search-icon").removeClass("icon-search").addClass("icon-remove-circle").css('cursor', 'pointer');
} else {
$(".search-icon").removeClass("icon-remove-circle").addClass("icon-search").css('cursor', 'auto');
}
var intentTime = 500 - (me.val().length * 10);
accumulatedTime += intentTime;
intentTimer = window.setTimeout(function() {
if (searchVal == me.val()) {
return false;
}
searchVal = me.val();
search(me.val());
accumulatedTime = 0;
}, intentTime);
});
// Make text clear icon work
$(".search-icon").click(function(e) {
if($(this).hasClass('icon-remove-circle')) {
$('.search-query').val('').trigger('keyup');
} else {
$('.search-query').focus();
}
});
//set positions of search box and TOC
var navHeight = $(".navbar").height();
var searchHeight = $(".quick-search").height();
$(".quick-search").css({'top': navHeight + 10 + 'px', 'position': 'fixed'});
el.css('top', navHeight + searchHeight + 15 + 'px');
});
};
jQuery.fn.toc.defaults = {
container: 'body',
selectors: 'h1,h2,h3',
smoothScrolling: true,
prefix: 'toc',
onHighlight: function() {},
highlightOnScroll: true,
highlightOffset: 100,
anchorName: function(i, heading, prefix) {
return prefix+i;
},
headerText: function(i, heading, $heading) {
return $heading.text();
},
itemClass: function(i, heading, $heading, prefix) {
return prefix + '-' + $heading[0].tagName.toLowerCase();
}
};
})(jQuery);

960
doc/styles/darkstrap.css Normal file
Просмотреть файл

@ -0,0 +1,960 @@
/*
* Darkstrap v0.9.2
* By danneu (http://github.com/danneu/darkstrap)
* Based off Twitter Bootstrap v2.2.2
*/
tr.warning,
tr.success,
tr.error,
tr.info {
color: #fff;
}
body {
color: #c6c6c6;
background-color: #2f2f2f;
}
a:hover {
color: #1ab2ff;
}
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
background-color: #cccccc;
}
select {
background-color: #cccccc;
}
.uneditable-input,
.uneditable-textarea {
background-color: #c9c9c9;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
color: #666666;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
color: #666666;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
color: #666666;
}
.control-group.warning .input-prepend .add-on,
.control-group.warning .input-append .add-on {
background-color: #faa732;
}
.control-group.error .input-prepend .add-on,
.control-group.error .input-append .add-on {
background-color: #fc5b5e;
}
.control-group.success .input-prepend .add-on,
.control-group.success .input-append .add-on {
background-color: #5bb75b;
}
.control-group.info .input-prepend .add-on,
.control-group.info .input-append .add-on {
background-color: #3a87ad;
}
.form-actions {
background-color: #444444;
}
.help-block,
.help-inline {
color: #ececec;
}
.table th,
.table td {
border-top: 1px solid #666666;
}
.table tbody + tbody {
border-top: 2px solid #666666;
}
.table .table {
background-color: #2f2f2f;
}
.table-bordered {
border: 1px solid #666666;
}
.table-bordered th,
.table-bordered td {
border-left: 1px solid #666666;
}
.table-striped tbody > tr:nth-child(odd) > td,
.table-striped tbody > tr:nth-child(odd) > th {
background-color: #444444;
}
.table-hover tbody tr:hover td,
.table-hover tbody tr:hover th {
background-color: #666666;
}
.table tbody tr.success td {
background-color: #5bb75b;
}
.table tbody tr.error td {
background-color: #fc5b5e;
}
.table tbody tr.warning td {
background-color: #faa732;
}
.table tbody tr.info td {
background-color: #3a87ad;
}
.table-hover tbody tr.success:hover td {
background-color: #4cad4c;
}
.table-hover tbody tr.error:hover td {
background-color: #fc4245;
}
.table-hover tbody tr.warning:hover td {
background-color: #f99c19;
}
.table-hover tbody tr.info:hover td {
background-color: #34789a;
}
[class^="icon-"],
[class*=" icon-"] {
background-image: url("../img/glyphicons-halflings.png");
}
.icon-white,
.nav-pills > .active > a > [class^="icon-"],
.nav-pills > .active > a > [class*=" icon-"],
.nav-list > .active > a > [class^="icon-"],
.nav-list > .active > a > [class*=" icon-"],
.navbar-inverse .nav > .active > a > [class^="icon-"],
.navbar-inverse .nav > .active > a > [class*=" icon-"],
.dropdown-menu > li > a:hover > [class^="icon-"],
.dropdown-menu > li > a:hover > [class*=" icon-"],
.dropdown-menu > .active > a > [class^="icon-"],
.dropdown-menu > .active > a > [class*=" icon-"],
.dropdown-submenu:hover > a > [class^="icon-"],
.dropdown-submenu:hover > a > [class*=" icon-"] {
background-image: url("../img/glyphicons-halflings-white.png");
}
.btn-link:hover {
color: #1ab2ff;
}
.alert {
background-color: #faa732;
border: 1px solid #fa7d23;
}
.alert-success {
background-color: #5bb75b;
border-color: #5cad4c;
}
.alert-danger,
.alert-error {
background-color: #fc5b5e;
border-color: #fc4c6d;
}
.alert-info {
background-color: #3a87ad;
border-color: #318292;
}
.nav-tabs > .active > a,
.nav-tabs > .active > a:hover {
background-color: #2f2f2f;
}
.nav .dropdown-toggle:hover .caret {
border-top-color: #1ab2ff;
border-bottom-color: #1ab2ff;
}
.navbar-inner {
background-color: #363636;
background-image: -moz-linear-gradient(top, #444444, #222222);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
background-image: -webkit-linear-gradient(top, #444444, #222222);
background-image: -o-linear-gradient(top, #444444, #222222);
background-image: linear-gradient(to bottom, #444444, #222222);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF444444', endColorstr='#FF222222', GradientType=0);
border: 1px solid #030303;
}
.navbar .brand {
color: #c6c6c6;
text-shadow: 0 1px 0 #444444;
}
.navbar-text {
color: #c6c6c6;
}
.navbar-link {
color: #c6c6c6;
}
.navbar-link:hover {
color: white;
}
.navbar .divider-vertical {
border-left: 1px solid #222222;
border-right: 1px solid #444444;
}
.navbar .nav > li > a {
color: #c6c6c6;
text-shadow: 0 1px 0 #444444;
}
.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
color: white;
}
.navbar .nav > .active > a,
.navbar .nav > .active > a:hover,
.navbar .nav > .active > a:focus {
color: white;
background-color: #151515;
}
.navbar .btn-navbar {
background-color: #292929;
background-image: -moz-linear-gradient(top, #373737, #151515);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#373737), to(#151515));
background-image: -webkit-linear-gradient(top, #373737, #151515);
background-image: -o-linear-gradient(top, #373737, #151515);
background-image: linear-gradient(to bottom, #373737, #151515);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF373737', endColorstr='#FF151515', GradientType=0);
border-color: #151515 #151515 black;
*background-color: #151515;
}
.navbar .btn-navbar:hover, .navbar .btn-navbar:active, .navbar .btn-navbar.active, .navbar .btn-navbar.disabled, .navbar .btn-navbar[disabled] {
background-color: #151515;
*background-color: #090909;
}
.navbar .btn-navbar:active, .navbar .btn-navbar.active {
background-color: black \9;
}
.navbar .nav li.dropdown > a:hover .caret {
border-top-color: white;
border-bottom-color: white;
}
.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
background-color: #151515;
color: white;
}
.navbar .nav li.dropdown > .dropdown-toggle .caret {
border-top-color: #c6c6c6;
border-bottom-color: #c6c6c6;
}
.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
border-top-color: white;
border-bottom-color: white;
}
.well {
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
border: 0;
}
.darkwell, .breadcrumb, code, pre, select,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input, textarea, .hero-unit, .progress {
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
border: 0;
}
.breadcrumb {
border: 0;
}
.breadcrumb li {
text-shadow: 0 1px 0 black;
}
.page-header {
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
}
h1, h2, h3, h4, h5, h6 {
color: white;
}
h6 {
color: #999;
}
blockquote {
border-left-color: #111;
}
blockquote.pull-right {
border-right-color: #111;
}
hr {
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
border-top: none;
}
code {
border: none;
padding: 2px 4px;
}
pre {
border: none;
color: #c6c6c6;
padding: 8px;
}
legend {
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
color: #fff;
}
select,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
color: white;
height: 21px;
}
select:-moz-placeholder,
input[type="text"]:-moz-placeholder,
input[type="password"]:-moz-placeholder,
input[type="datetime"]:-moz-placeholder,
input[type="datetime-local"]:-moz-placeholder,
input[type="date"]:-moz-placeholder,
input[type="month"]:-moz-placeholder,
input[type="time"]:-moz-placeholder,
input[type="week"]:-moz-placeholder,
input[type="number"]:-moz-placeholder,
input[type="email"]:-moz-placeholder,
input[type="url"]:-moz-placeholder,
input[type="search"]:-moz-placeholder,
input[type="tel"]:-moz-placeholder,
input[type="color"]:-moz-placeholder,
.uneditable-input:-moz-placeholder {
color: #666666;
}
select:-ms-input-placeholder,
input[type="text"]:-ms-input-placeholder,
input[type="password"]:-ms-input-placeholder,
input[type="datetime"]:-ms-input-placeholder,
input[type="datetime-local"]:-ms-input-placeholder,
input[type="date"]:-ms-input-placeholder,
input[type="month"]:-ms-input-placeholder,
input[type="time"]:-ms-input-placeholder,
input[type="week"]:-ms-input-placeholder,
input[type="number"]:-ms-input-placeholder,
input[type="email"]:-ms-input-placeholder,
input[type="url"]:-ms-input-placeholder,
input[type="search"]:-ms-input-placeholder,
input[type="tel"]:-ms-input-placeholder,
input[type="color"]:-ms-input-placeholder,
.uneditable-input:-ms-input-placeholder {
color: #666666;
}
select::-webkit-input-placeholder,
input[type="text"]::-webkit-input-placeholder,
input[type="password"]::-webkit-input-placeholder,
input[type="datetime"]::-webkit-input-placeholder,
input[type="datetime-local"]::-webkit-input-placeholder,
input[type="date"]::-webkit-input-placeholder,
input[type="month"]::-webkit-input-placeholder,
input[type="time"]::-webkit-input-placeholder,
input[type="week"]::-webkit-input-placeholder,
input[type="number"]::-webkit-input-placeholder,
input[type="email"]::-webkit-input-placeholder,
input[type="url"]::-webkit-input-placeholder,
input[type="search"]::-webkit-input-placeholder,
input[type="tel"]::-webkit-input-placeholder,
input[type="color"]::-webkit-input-placeholder,
.uneditable-input::-webkit-input-placeholder {
color: #666666;
}
textarea {
color: white;
}
textarea:-moz-placeholder {
color: #666666;
}
textarea:-ms-input-placeholder {
color: #666666;
}
textarea::-webkit-input-placeholder {
color: #666666;
}
select {
height: 29px;
}
.input-prepend .add-on,
.input-append .add-on {
background: #444;
color: #c6c6c6;
border-color: #111;
text-shadow: 0 1px 0 black;
}
.form-actions {
border-top-color: #222;
}
.well .form-actions {
border-top-color: #000;
background-color: rgba(0, 0, 0, 0.3);
margin-left: -17px;
margin-right: -17px;
margin-bottom: -17px;
}
.help-inline,
.help-block {
color: #999;
}
.control-group.warning input, .control-group.warning select, .control-group.warning textarea {
color: #faa732;
border-color: #faa732;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.warning input:focus,
.control-group.warning select:focus,
.control-group.warning textarea:focus {
border-color: #faa732;
-webkit-box-shadow: 0 0 6px #faa732;
-moz-box-shadow: 0 0 6px #faa732;
box-shadow: 0 0 6px #faa732;
}
.control-group.warning .control-label,
.control-group.warning .help-block,
.control-group.warning .help-inline {
color: #faa732;
}
.control-group.success input, .control-group.success select, .control-group.success textarea {
color: #5bb75b;
border-color: #5bb75b;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.success input:focus,
.control-group.success select:focus,
.control-group.success textarea:focus {
border-color: #5bb75b;
-webkit-box-shadow: 0 0 6px #5bb75b;
-moz-box-shadow: 0 0 6px #5bb75b;
box-shadow: 0 0 6px #5bb75b;
}
.control-group.success .control-label,
.control-group.success .help-block,
.control-group.success .help-inline {
color: #5bb75b;
}
.control-group.error input, .control-group.error select, .control-group.error textarea {
color: #fc5b5e;
border-color: #fc5b5e;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.error input:focus,
.control-group.error select:focus,
.control-group.error textarea:focus {
border-color: #fc5b5e;
-webkit-box-shadow: 0 0 6px #fc5b5e;
-moz-box-shadow: 0 0 6px #fc5b5e;
box-shadow: 0 0 6px #fc5b5e;
}
.control-group.error .control-label,
.control-group.error .help-block,
.control-group.error .help-inline {
color: #fc5b5e;
}
.control-group.info input, .control-group.info select, .control-group.info textarea {
color: #3a87ad;
border-color: #3a87ad;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.info input:focus,
.control-group.info select:focus,
.control-group.info textarea:focus {
border-color: #3a87ad;
-webkit-box-shadow: 0 0 6px #3a87ad;
-moz-box-shadow: 0 0 6px #3a87ad;
box-shadow: 0 0 6px #3a87ad;
}
.control-group.info .control-label,
.control-group.info .help-block,
.control-group.info .help-inline {
color: #3a87ad;
}
input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
border-color: #fc5b5e;
}
input:focus:invalid:focus,
textarea:focus:invalid:focus,
select:focus:invalid:focus {
border-color: #fc5b5e;
box-shadow: 0 0 6px #fc5b5e;
}
.btn-link {
text-shadow: none;
}
.img-polaroid {
background-color: #111;
background-color: rgba(0, 0, 0, 0.3);
}
.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle,
.nav > .open.active > a:hover {
background-color: rgba(0, 0, 0, 0.25);
border-color: transparent transparent #666666 transparent;
}
.nav > .dropdown.active > a:hover {
color: #fff;
}
.nav-tabs .active .dropdown-toggle .caret,
.nav-pills .active .dropdown-toggle .caret {
border-top-color: #fff;
}
.nav-tabs {
border-bottom: 1px solid #666666;
}
.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
background-color: #2f2f2f;
color: #fff;
border-color: #666666 #666666 transparent #666666;
}
.nav-tabs > li > a:hover {
border-color: #2f2f2f #2f2f2f #666666 #2f2f2f;
background-color: rgba(0, 0, 0, 0.25);
color: #00aaff;
}
.nav-tabs.nav-stacked > li > a, .nav-tabs.nav-stacked > li > a:hover {
border-color: #666;
}
.well > .nav-tabs > .active > a, .well > .nav-tabs > .active > a:hover {
background-color: #202020;
}
.nav-pills > li > a:hover {
background-color: rgba(0, 0, 0, 0.25);
color: #00aaff;
}
.nav-list > li > a,
.nav-list .nav-header {
text-shadow: 0 1px 0 black;
}
.nav-list > li > a:hover {
background-color: rgba(0, 0, 0, 0.25);
color: #00aaff;
}
.nav-list .active > a:hover {
background-color: #0088cc;
color: white;
}
.tabs-below .nav-tabs {
border-top: 1px solid #666666;
}
.tabs-left .nav-tabs {
border-right: 1px solid #666666;
}
.tabs-right .nav-tabs {
border-left: 1px solid #666666;
}
.tabs-below .nav-tabs > li > a:hover {
border-top: 1px solid #666666;
}
.tabs-left .nav-tabs > li > a:hover {
border-color: transparent #666666 transparent transparent;
}
.tabs-right .nav-tabs > li > a:hover {
border-color: transparent transparent transparent #666666;
}
.tabs-below .nav-tabs .active > a,
.tabs-below .nav-tabs .active > a:hover {
border-color: transparent #666666 #666666 #666666;
}
.tabs-left .nav-tabs .active > a,
.tabs-left .nav-tabs .active > a:hover {
border-color: #666666 transparent #666666 #666666;
}
.tabs-right .nav-tabs .active > a,
.tabs-right .nav-tabs .active > a:hover {
border-color: #666666 #666666 #666666 transparent;
}
.nav-list > li > a,
.nav-list .nav-header {
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
}
.nav-tabs > li > a:hover {
border-color: transparent transparent #666666 transparent;
}
.nav > .disabled > a:hover {
color: #999;
}
.nav-list .divider {
background-color: transparent;
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
}
.navbar .brand {
text-shadow: 0 1px 0 black;
}
.navbar .divider-vertical {
border: transparent;
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 1px 0 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 1px 0 0;
box-shadow: rgba(255, 255, 255, 0.07) 1px 0 0;
border-right: 1px solid #121212;
}
.navbar-inverse .brand {
color: #555;
text-shadow: 0 1px 0 white;
}
.navbar-inverse .brand:hover {
color: #555;
}
.navbar-inverse .navbar-inner {
background: #fafafa;
border: 1px solid #030303;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
background: -moz-linear-gradient(top, white 0%, #999999 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #999999));
background: -webkit-linear-gradient(top, white 0%, #999999 100%);
background: -o-linear-gradient(top, white 0%, #999999 100%);
background: -ms-linear-gradient(top, white 0%, #999999 100%);
background: linear-gradient(to bottom, #ffffff 0%, #999999 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#999999',GradientType=0 );
}
.navbar-inverse .nav > li > a {
color: #555;
}
.navbar-inverse .nav > li > a:hover {
color: #333;
}
.navbar-inverse .nav > .active > a,
.navbar-inverse .nav > .active > a:hover {
background-color: #e5e5e5;
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.125) inset;
color: #555555;
}
.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
background-color: #e5e5e5;
color: #555;
}
.navbar-inverse .nav li.dropdown > a:hover .caret {
border-top-color: #555;
color: #555;
}
.navbar-inverse .nav > li > a:focus,
.navbar-inverse .nav > li > a:hover {
background-color: transparent;
color: #333;
}
.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
background-color: #e5e5e5;
color: #555;
}
.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
border-bottom-color: #555;
border-top-color: #555;
color: #555;
}
.navbar-inverse .navbar-search .search-query {
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.6) inset;
background-color: white;
color: #333;
}
.navbar-inverse .navbar-search input.search-query:focus {
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.6) inset, 0 0 8px rgba(82, 168, 236, 0.6);
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.6) inset, 0 0 8px rgba(82, 168, 236, 0.9);
padding: 4px 14px;
outline: 0 none;
}
.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
border-bottom-color: #555;
border-top-color: #555;
}
.navbar-inverse .nav li.dropdown > a:hover .caret {
border-bottom-color: #333;
border-top-color: #333;
}
.navbar-inverse .navbar-search .search-query:-moz-placeholder {
color: #999;
}
.pagination ul > li > a,
.pagination ul > li > span {
background: transparent;
border-color: #666;
}
.pagination ul > li > a:hover,
.pagination ul > .active > a,
.pagination ul > .active > span {
background-color: rgba(0, 0, 0, 0.25);
}
.pager li > a, .pager li > span {
background-color: transparent;
border-color: #666;
}
.pager li > a:hover {
background-color: rgba(0, 0, 0, 0.25);
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > span {
background-color: transparent;
}
.label,
.badge {
text-shadow: 1px 1px 0 black;
box-shadow: 1px 1px 0 black;
}
.label-inverse,
.badge-inverse {
background-color: #111;
}
.hero-unit {
background: #111;
color: #ccc;
}
.thumbnail {
border-color: #666;
box-shadow: 0 1px 3px black;
}
.thumbnail .caption {
color: #999;
}
.alert {
color: white;
border-color: #a86404;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}
.alert h1, .alert h2, .alert h3, .alert h4, .alert h5, .alert h6 {
color: #c17305;
}
.alert-error {
border-color: #d40408;
}
.alert-error h1, .alert-error h2, .alert-error h3, .alert-error h4, .alert-error h5, .alert-error h6 {
color: #ed0409;
}
.alert-success {
border-color: #2d662d;
}
.alert-success h1, .alert-success h2, .alert-success h3, .alert-success h4, .alert-success h5, .alert-success h6 {
color: #347834;
}
.alert-info {
border-color: #1a3c4e;
}
.alert-info h1, .alert-info h2, .alert-info h3, .alert-info h4, .alert-info h5, .alert-info h6 {
color: #204B61;
}
select::-webkit-scrollbar {
-webkit-appearance: none;
width: 11px;
}
select::-webkit-scrollbar-thumb {
border-radius: 8px;
border: 2px solid #202020;
background-color: rgba(0, 0, 0, 0.5);
}
.modal {
background-color: #444;
}
.modal-header {
border-bottom: 1px solid #222222;
}
.modal-body p {
color: #c6c6c6;
}
.modal-footer {
background-color: #373737;
border-top: 1px solid #222222;
-moz-box-shadow: 0 1px 0 #333333 inset;
-webkit-box-shadow: 0 1px 0 #333333 inset;
-o-box-shadow: 0 1px 0 #333333 inset;
box-shadow: 0 1px 0 #333333 inset;
}
.popover {
background: #444;
border: 1px solid rgba(0, 0, 0, 0.5);
border: 1px solid black;
}
.popover-title {
background: #373737;
border-bottom-color: #222;
}
.popover.top .arrow:after {
border-top-color: #444;
}
.popover.right .arrow:after {
border-right-color: #444;
}
.popover.bottom .arrow:after {
border-bottom-color: #444;
}
.popover.left .arrow:after {
border-left-color: #444;
}

Просмотреть файл

@ -0,0 +1,334 @@
html
{
overflow: auto;
background-color: #fff;
}
body
{
font: 14px "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 130%;
color: #000;
background-color: #fff;
}
a {
color: #444;
}
a:visited {
color: #444;
}
a:active {
color: #444;
}
header
{
display: block;
padding: 6px 4px;
}
.class-description {
font-style: italic;
font-family: Palatino, 'Palatino Linotype', serif;
font-size: 130%;
line-height: 140%;
margin-bottom: 1em;
margin-top: 1em;
}
#main {
float: left;
width: 100%;
}
section
{
display: block;
background-color: #fff;
padding: 12px 24px;
border-bottom: 1px solid #ccc;
margin-right: 240px;
}
.variation {
display: none;
}
.optional:after {
content: "opt";
font-size: 60%;
color: #aaa;
font-style: italic;
font-weight: lighter;
}
nav
{
display: block;
float: left;
margin-left: -230px;
margin-top: 28px;
width: 220px;
border-left: 1px solid #ccc;
padding-left: 9px;
}
nav ul {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
font-size: 100%;
line-height: 17px;
padding:0;
margin:0;
list-style-type:none;
}
nav h2 a, nav h2 a:visited {
color: #A35A00;
text-decoration: none;
}
nav h3 {
margin-top: 12px;
}
nav li {
margin-top: 6px;
}
nav a {
color: #5C5954;
}
nav a:visited {
color: #5C5954;
}
nav a:active {
color: #5C5954;
}
footer {
display: block;
padding: 6px;
margin-top: 12px;
font-style: italic;
font-size: 90%;
}
h1
{
font-size: 200%;
font-weight: bold;
letter-spacing: -0.01em;
margin: 6px 0 9px 0;
}
h2
{
font-size: 170%;
font-weight: bold;
letter-spacing: -0.01em;
margin: 6px 0 3px 0;
}
h3
{
font-size: 150%;
font-weight: bold;
letter-spacing: -0.01em;
margin-top: 16px;
margin: 6px 0 3px 0;
}
h4
{
font-size: 130%;
font-weight: bold;
letter-spacing: -0.01em;
margin-top: 16px;
margin: 18px 0 3px 0;
color: #A35A00;
}
h5, .container-overview .subsection-title
{
font-size: 120%;
font-weight: bold;
letter-spacing: -0.01em;
margin: 8px 0 3px -16px;
}
h6
{
font-size: 100%;
letter-spacing: -0.01em;
margin: 6px 0 3px 0;
font-style: italic;
}
.ancestors { color: #999; }
.ancestors a
{
color: #999 !important;
text-decoration: none;
}
.important
{
font-weight: bold;
color: #950B02;
}
.yes-def {
text-indent: -1000px;
}
.type-signature {
color: #aaa;
}
.name, .signature {
font-family: Consolas, "Lucida Console", Monaco, monospace;
}
.details { margin-top: 14px; border-left: 2px solid #DDD; }
.details dt { width:100px; float:left; padding-left: 10px; padding-top: 6px; }
.details dd { margin-left: 50px; }
.details ul { margin: 0; }
.details ul { list-style-type: none; }
.details li { margin-left: 30px; padding-top: 6px; }
.details pre.prettyprint { margin: 0 }
.details .object-value { padding-top: 0; }
.description {
margin-bottom: 1em;
margin-left: -16px;
margin-top: 1em;
}
.code-caption
{
font-style: italic;
font-family: Palatino, 'Palatino Linotype', serif;
font-size: 107%;
margin: 0;
}
.prettyprint
{
border: 1px solid #ddd;
width: 80%;
overflow: auto;
}
.prettyprint.source {
width: inherit;
}
.prettyprint code
{
font-family: Consolas, 'Lucida Console', Monaco, monospace;
font-size: 100%;
line-height: 18px;
display: block;
padding: 4px 12px;
margin: 0;
background-color: #fff;
color: #000;
}
.prettyprint code span.line
{
display: inline-block;
}
.prettyprint.linenums
{
padding-left: 70px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.prettyprint.linenums ol
{
padding-left: 0;
}
.prettyprint.linenums li
{
border-left: 3px #ddd solid;
}
.prettyprint.linenums li.selected,
.prettyprint.linenums li.selected *
{
background-color: lightyellow;
}
.prettyprint.linenums li *
{
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.params, .props
{
border-spacing: 0;
border: 0;
border-collapse: collapse;
}
.params .name, .props .name, .name code {
color: #A35A00;
font-family: Consolas, 'Lucida Console', Monaco, monospace;
font-size: 100%;
}
.params td, .params th, .props td, .props th
{
border: 1px solid #ddd;
margin: 0px;
text-align: left;
vertical-align: top;
padding: 4px 6px;
display: table-cell;
}
.params thead tr, .props thead tr
{
background-color: #ddd;
font-weight: bold;
}
.params .params thead tr, .props .props thead tr
{
background-color: #fff;
font-weight: bold;
}
.params th, .props th { border-right: 1px solid #aaa; }
.params thead .last, .props thead .last { border-right: 1px solid #ddd; }
.params td.description > p:first-child
{
margin-top: 0;
padding-top: 0;
}
.params td.description > p:last-child
{
margin-bottom: 0;
padding-bottom: 0;
}
.disabled {
color: #454545;
}

Просмотреть файл

@ -0,0 +1,111 @@
/* JSDoc prettify.js theme */
/* plain text */
.pln {
color: #000000;
font-weight: normal;
font-style: normal;
}
/* string content */
.str {
color: #006400;
font-weight: normal;
font-style: normal;
}
/* a keyword */
.kwd {
color: #000000;
font-weight: bold;
font-style: normal;
}
/* a comment */
.com {
font-weight: normal;
font-style: italic;
}
/* a type name */
.typ {
color: #000000;
font-weight: normal;
font-style: normal;
}
/* a literal value */
.lit {
color: #006400;
font-weight: normal;
font-style: normal;
}
/* punctuation */
.pun {
color: #000000;
font-weight: bold;
font-style: normal;
}
/* lisp open bracket */
.opn {
color: #000000;
font-weight: bold;
font-style: normal;
}
/* lisp close bracket */
.clo {
color: #000000;
font-weight: bold;
font-style: normal;
}
/* a markup tag name */
.tag {
color: #006400;
font-weight: normal;
font-style: normal;
}
/* a markup attribute name */
.atn {
color: #006400;
font-weight: normal;
font-style: normal;
}
/* a markup attribute value */
.atv {
color: #006400;
font-weight: normal;
font-style: normal;
}
/* a declaration */
.dec {
color: #000000;
font-weight: bold;
font-style: normal;
}
/* a variable name */
.var {
color: #000000;
font-weight: normal;
font-style: normal;
}
/* a function name */
.fun {
color: #000000;
font-weight: bold;
font-style: normal;
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin-top: 0;
margin-bottom: 0;
}

Просмотреть файл

@ -0,0 +1,132 @@
/* Tomorrow Theme */
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* Pretty printing styles. Used with prettify.js. */
/* SPAN elements with the classes below are added by prettyprint. */
/* plain text */
.pln {
color: #4d4d4c; }
@media screen {
/* string content */
.str {
color: #718c00; }
/* a keyword */
.kwd {
color: #8959a8; }
/* a comment */
.com {
color: #8e908c; }
/* a type name */
.typ {
color: #4271ae; }
/* a literal value */
.lit {
color: #f5871f; }
/* punctuation */
.pun {
color: #4d4d4c; }
/* lisp open bracket */
.opn {
color: #4d4d4c; }
/* lisp close bracket */
.clo {
color: #4d4d4c; }
/* a markup tag name */
.tag {
color: #c82829; }
/* a markup attribute name */
.atn {
color: #f5871f; }
/* a markup attribute value */
.atv {
color: #3e999f; }
/* a declaration */
.dec {
color: #f5871f; }
/* a variable name */
.var {
color: #c82829; }
/* a function name */
.fun {
color: #4271ae; } }
/* Use higher contrast and text-weight for printable form. */
@media print, projection {
.str {
color: #060; }
.kwd {
color: #006;
font-weight: bold; }
.com {
color: #600;
font-style: italic; }
.typ {
color: #404;
font-weight: bold; }
.lit {
color: #044; }
.pun, .opn, .clo {
color: #440; }
.tag {
color: #006;
font-weight: bold; }
.atn {
color: #404; }
.atv {
color: #060; } }
/* Style */
/*
pre.prettyprint {
background: white;
font-family: Menlo, Monaco, Consolas, monospace;
font-size: 12px;
line-height: 1.5;
border: 1px solid #ccc;
padding: 10px; }
*/
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin-top: 0;
margin-bottom: 0; }
/* IE indents via margin-left */
li.L0,
li.L1,
li.L2,
li.L3,
li.L4,
li.L5,
li.L6,
li.L7,
li.L8,
li.L9 {
/* */ }
/* Alternate shading for lines */
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 {
/* */ }

6367
doc/styles/site.amelia.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5699
doc/styles/site.cerulean.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5942
doc/styles/site.cosmo.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

6149
doc/styles/site.cyborg.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5991
doc/styles/site.flatly.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5743
doc/styles/site.journal.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5431
doc/styles/site.readable.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5756
doc/styles/site.simplex.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

6202
doc/styles/site.slate.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5794
doc/styles/site.spacelab.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5936
doc/styles/site.spruce.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

5543
doc/styles/site.united.css Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,345 @@
/* global styles */
.sunlight-container {
clear: both !important;
position: relative !important;
margin: 10px 0 !important;
}
.sunlight-code-container {
clear: both !important;
position: relative !important;
border: none;
border-color: #626262 !important;
background-color: #262626 !important;
}
.sunlight-highlighted, .sunlight-container, .sunlight-container textarea {
font-family: Consolas, Inconsolata, Monaco, "Courier New" !important;
font-size: 12px !important;
line-height: 15px !important;
}
.sunlight-highlighted, .sunlight-container textarea {
color: #FFFFFF !important;
margin: 0 !important;
}
.sunlight-container textarea {
padding-left: 0 !important;
margin-left: 0 !important;
margin-right: 0 !important;
padding-right: 0 !important;
}
.sunlight-code-container > .sunlight-highlighted {
white-space: pre;
overflow-x: auto;
overflow-y: hidden; /* ie requires this wtf? */
}
.sunlight-highlighted {
z-index: 1;
position: relative;
}
.sunlight-highlighted * {
background: transparent;
}
.sunlight-line-number-margin {
float: left !important;
margin-right: 5px !important;
margin-top: 0 !important;
margin-bottom: 0 !important;
padding: 0 !important;
padding-right: 4px !important;
padding-left: 4px !important;
border-right: 1px solid #9A9A9A !important;
background-color: #3E3E3E !important;
color: #9A9A9A !important;
text-align: right !important;
position: relative;
z-index: 3;
}
.sunlight-highlighted a, .sunlight-line-number-margin a {
border: none !important;
text-decoration: none !important;
font-style: normal !important;
padding: 0 !important;
}
.sunlight-line-number-margin a {
color: inherit !important;
}
.sunlight-line-highlight-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: 0;
}
.sunlight-line-highlight-overlay div {
height: 15px;
width: 100%;
}
.sunlight-line-highlight-overlay .sunlight-line-highlight-active {
background-color: #4B4B4B;
}
/* menu */
.sunlight-menu {
background-color: #FFFFCC;
color: #000000;
}
.sunlight-menu ul {
margin: 0 !important;
padding: 0 !important;
list-style-type: none !important;
}
.sunlight-menu li {
float: right !important;
margin-left: 5px !important;
}
.sunlight-menu a, .sunlight-menu img {
color: #000099 !important;
text-decoration: none !important;
border: none !important;
}
.sunlight-string,
.sunlight-char,
.sunlight-heredoc,
.sunlight-heredocDeclaration,
.sunlight-nowdoc,
.sunlight-longString,
.sunlight-rawString,
.sunlight-binaryString,
.sunlight-verbatimString,
.sunlight-rawLongString,
.sunlight-binaryLongString,
.sunlight-diff .sunlight-added {
color: #55EB54 !important;
}
.sunlight-operator,
.sunlight-punctuation,
.sunlight-delimiter {
color: #B1EDEC !important;
}
.sunlight-ident,
.sunlight-diff .sunlight-unchanged {
color: #E0E0E0 !important;
font-weight: bold !important;
}
.sunlight-comment,
.sunlight-xmlDocCommentContent,
.sunlight-nginx .sunlight-ssiCommand,
.sunlight-sln .sunlight-formatDeclaration,
.sunlight-diff .sunlight-mergeHeader,
.sunlight-diff .sunlight-noNewLine {
color: #787D31 !important;
}
.sunlight-number,
.sunlight-cdata,
.sunlight-guid,
.sunlight-diff .sunlight-modified {
color: #F7BA7E !important;
font-weight: bold !important;
}
.sunlight-named-ident,
.sunlight-xml .sunlight-attribute,
.sunlight-constant,
.sunlight-javascript .sunlight-globalVariable,
.sunlight-globalObject,
.sunlight-css .sunlight-id,
.sunlight-python .sunlight-attribute,
.sunlight-nginx .sunlight-context,
.sunlight-httpd .sunlight-context,
.sunlight-lisp .sunlight-declarationSpecifier,
.sunlight-erlang .sunlight-userDefinedFunction,
.sunlight-diff .sunlight-removed {
color: #FBBDEE !important;
font-weight: bold !important;
}
.sunlight-keyword,
.sunlight-languageConstruct,
.sunlight-specialOperator,
.sunlight-xml .sunlight-tagName,
.sunlight-xml .sunlight-operator,
.sunlight-bash .sunlight-command,
.sunlight-erlang .sunlight-moduleAttribute {
color: #A3CCF7 !important;
font-weight: bold !important;
}
.sunlight-shortOpenTag,
.sunlight-openTag,
.sunlight-closeTag,
.sunlight-xmlOpenTag,
.sunlight-xmlCloseTag,
.sunlight-aspOpenTag,
.sunlight-aspCloseTag,
.sunlight-label,
.sunlight-css .sunlight-importantFlag {
background-color: #7373C1 !important;
}
.sunlight-content {
color: #FFFFFF !important;
font-weight: bold !important;
}
.sunlight-function,
.sunlight-globalFunction,
.sunlight-objective-c .sunlight-messageDestination,
.sunlight-ruby .sunlight-specialFunction,
.sunlight-6502asm .sunlight-illegalOpcode,
.sunlight-powershell .sunlight-switch,
.sunlight-lisp .sunlight-macro,
.sunlight-lisp .sunlight-specialForm,
.sunlight-lisp .sunlight-type,
.sunlight-sln .sunlight-sectionName,
.sunlight-diff .sunlight-header {
color: #C8BBF1 !important;
font-weight: bold !important;
}
.sunlight-variable,
.sunlight-environmentVariable,
.sunlight-specialVariable,
.sunlight-objective-c .sunlight-messageArgumentName,
.sunlight-lisp .sunlight-globalVariable,
.sunlight-ruby .sunlight-globalVariable,
.sunlight-ruby .sunlight-instanceVariable {
color: #F5E5B0 !important;
font-weight: bold !important;
}
.sunlight-regexLiteral,
.sunlight-lisp .sunlight-operator,
.sunlight-6502asm .sunlight-pseudoOp,
.sunlight-erlang .sunlight-macro,
.sunlight-diff .sunlight-rangeInfo {
color: #E0F16A !important;
}
.sunlight-specialVariable {
font-style: italic !important;
font-weight: bold !important;
}
.sunlight-csharp .sunlight-pragma,
.sunlight-preprocessorDirective,
.sunlight-vb .sunlight-compilerDirective {
color: #666363 !important;
font-style: italic !important;
}
.sunlight-xmlDocCommentMeta,
.sunlight-java .sunlight-annotation,
.sunlight-scala .sunlight-annotation,
.sunlight-docComment {
color: #666363 !important;
}
.sunlight-quotedIdent,
.sunlight-ruby .sunlight-subshellCommand,
.sunlight-lisp .sunlight-keywordArgument,
.sunlight-haskell .sunlight-infixOperator,
.sunlight-erlang .sunlight-quotedAtom {
color: #F8CA16 !important;
}
/* html/xml */
.sunlight-xml .sunlight-tagName,
.sunlight-xml .sunlight-operator,
.sunlight-xml .sunlight-attribute {
font-weight: normal !important;
}
.sunlight-doctype {
color: #DEB9B2 !important;
font-style: italic !important;
}
.sunlight-xml .sunlight-entity {
background-color: #E6E585 !important;
color: #000000 !important;
}
/* javascript */
.sunlight-javascript .sunlight-reservedWord {
font-style: italic !important;
}
/* css */
.sunlight-css .sunlight-element {
color: #E9EE97 !important;
}
.sunlight-css .sunlight-microsoftFilterPrefix {
color: #C9FF9F !important;
}
.sunlight-css .sunlight-rule {
color: #0099FF !important;
}
.sunlight-css .sunlight-class {
color: #E78282 !important;
}
.sunlight-css .sunlight-pseudoClass, .sunlight-css .sunlight-pseudoElement {
color: #73D693 !important;
}
/* bash */
.sunlight-bash .sunlight-hashBang {
color: #FFFF00 !important;
}
.sunlight-bash .sunlight-verbatimCommand {
color: #BBA4EE !important;
}
.sunlight-bash .sunlight-variable,
.sunlight-bash .sunlight-specialVariable {
color: #ED8585 !important;
}
/* python */
.sunlight-python .sunlight-specialMethod {
font-weight: bold !important;
color: #B0A3C2;
}
/* ruby */
.sunlight-ruby .sunlight-symbol {
font-weight: bold !important;
color: #90EEA2 !important;
}
/* brainfuck */
.sunlight-brainfuck {
font-weight: bold !important;
color: #000000 !important;
}
.sunlight-brainfuck .sunlight-increment {
background-color: #FF9900 !important;
}
.sunlight-brainfuck .sunlight-decrement {
background-color: #FF99FF !important;
}
.sunlight-brainfuck .sunlight-incrementPointer {
background-color: #FFFF99 !important;
}
.sunlight-brainfuck .sunlight-decrementPointer {
background-color: #66CCFF !important;
}
.sunlight-brainfuck .sunlight-read {
background-color: #FFFFFF !important;
}
.sunlight-brainfuck .sunlight-write {
background-color: #99FF99 !important;
}
.sunlight-brainfuck .sunlight-openLoop, .sunlight-brainfuck .sunlight-closeLoop {
background-color: #FFFFFF !important;
}
/* 6502 asm */
.sunlight-6502asm .sunlight-label {
background: none !important;
color: #FFFFFF !important;
text-decoration: underline !important;
}
/* lisp */
.sunlight-lisp .sunlight-macro {
font-style: italic !important;
}
/* erlang */
.sunlight-erlang .sunlight-atom {
color: #FFFFFF !important;
font-weight: bold !important;
}

Просмотреть файл

@ -0,0 +1,344 @@
/* global styles */
.sunlight-container {
clear: both !important;
position: relative !important;
margin: 10px 0 !important;
}
.sunlight-code-container {
clear: both !important;
position: relative !important;
border: none;
border-color: #969696 !important;
background-color: #FFFFFF !important;
}
.sunlight-highlighted, .sunlight-container, .sunlight-container textarea {
font-family: Consolas, Inconsolata, Monaco, "Courier New" !important;
font-size: 12px !important;
line-height: 15px !important;
}
.sunlight-highlighted, .sunlight-container textarea {
color: #000000 !important;
margin: 0 !important;
}
.sunlight-container textarea {
padding-left: 0 !important;
margin-left: 0 !important;
margin-right: 0 !important;
padding-right: 0 !important;
}
.sunlight-code-container > .sunlight-highlighted {
white-space: pre;
overflow-x: auto;
overflow-y: hidden; /* ie requires this wtf? */
}
.sunlight-highlighted {
z-index: 1;
position: relative;
}
.sunlight-highlighted * {
background: transparent;
}
.sunlight-line-number-margin {
float: left !important;
margin-right: 5px !important;
margin-top: 0 !important;
margin-bottom: 0 !important;
padding: 0 !important;
padding-right: 4px !important;
padding-left: 4px !important;
border-right: 1px solid #CCCCCC !important;
background-color: #EEEEEE !important;
color: #848484 !important;
text-align: right !important;
position: relative;
z-index: 3;
}
.sunlight-highlighted a, .sunlight-line-number-margin a {
border: none !important;
text-decoration: none !important;
font-weight: normal !important;
font-style: normal !important;
padding: 0 !important;
}
.sunlight-line-number-margin a {
color: inherit !important;
}
.sunlight-line-highlight-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: 0;
}
.sunlight-line-highlight-overlay div {
height: 15px;
width: 100%;
}
.sunlight-line-highlight-overlay .sunlight-line-highlight-active {
background-color: #E7FCFA;
}
/* menu */
.sunlight-menu {
background-color: #FFFFCC;
color: #000000;
}
.sunlight-menu ul {
margin: 0 !important;
padding: 0 !important;
list-style-type: none !important;
}
.sunlight-menu li {
float: right !important;
margin-left: 5px !important;
}
.sunlight-menu a, .sunlight-menu img {
color: #000099 !important;
text-decoration: none !important;
border: none !important;
}
.sunlight-string,
.sunlight-char,
.sunlight-heredoc,
.sunlight-heredocDeclaration,
.sunlight-nowdoc,
.sunlight-longString,
.sunlight-rawString,
.sunlight-binaryString,
.sunlight-rawLongString,
.sunlight-binaryLongString,
.sunlight-verbatimString,
.sunlight-diff .sunlight-removed {
color: #990000 !important;
}
.sunlight-ident,
.sunlight-operator,
.sunlight-punctuation,
.sunlight-delimiter,
.sunlight-diff .sunlight-unchanged {
color: #000000 !important;
}
.sunlight-comment,
.sunlight-xmlDocCommentContent,
.sunlight-nginx .sunlight-ssiCommand,
.sunlight-sln .sunlight-formatDeclaration,
.sunlight-diff .sunlight-added {
color: #009900 !important;
}
.sunlight-number,
.sunlight-guid,
.sunlight-cdata {
color: #CC6600 !important;
}
.sunlight-named-ident,
.sunlight-constant,
.sunlight-javascript .sunlight-globalVariable,
.sunlight-globalObject,
.sunlight-python .sunlight-attribute,
.sunlight-nginx .sunlight-context,
.sunlight-httpd .sunlight-context,
.sunlight-haskell .sunlight-class,
.sunlight-haskell .sunlight-type,
.sunlight-lisp .sunlight-declarationSpecifier,
.sunlight-erlang .sunlight-userDefinedFunction,
.sunlight-diff .sunlight-header {
color: #2B91AF !important;
}
.sunlight-keyword,
.sunlight-languageConstruct,
.sunlight-css
.sunlight-element,
.sunlight-bash .sunlight-command,
.sunlight-specialOperator,
.sunlight-erlang .sunlight-moduleAttribute,
.sunlight-xml .sunlight-tagName,
.sunlight-xml .sunlight-operator,
.sunlight-diff .sunlight-modified {
color: #0000FF !important;
}
.sunlight-shortOpenTag,
.sunlight-openTag,
.sunlight-closeTag,
.sunlight-xmlOpenTag,
.sunlight-xmlCloseTag,
.sunlight-aspOpenTag,
.sunlight-aspCloseTag,
.sunlight-label,
.sunlight-css .sunlight-importantFlag {
background-color: #FFFF99 !important;
color: #000000 !important;
}
.sunlight-function,
.sunlight-globalFunction,
.sunlight-ruby .sunlight-specialFunction,
.sunlight-objective-c .sunlight-messageDestination,
.sunlight-6502asm .sunlight-illegalOpcode,
.sunlight-powershell .sunlight-switch,
.sunlight-lisp .sunlight-macro,
.sunlight-lisp .sunlight-specialForm,
.sunlight-lisp .sunlight-type,
.sunlight-sln .sunlight-sectionName,
.sunlight-diff .sunlight-rangeInfo {
color: #B069AF !important;
}
.sunlight-variable,
.sunlight-specialVariable,
.sunlight-environmentVariable,
.sunlight-objective-c .sunlight-messageArgumentName,
.sunlight-lisp .sunlight-globalVariable,
.sunlight-ruby .sunlight-globalVariable,
.sunlight-ruby .sunlight-instanceVariable,
.sunlight-sln .sunlight-operator {
color: #325484 !important;
}
.sunlight-regexLiteral,
.sunlight-lisp .sunlight-operator,
.sunlight-6502asm .sunlight-pseudoOp,
.sunlight-erlang .sunlight-macro {
color: #FF00B2 !important;
}
.sunlight-specialVariable {
font-style: italic !important;
font-weight: bold !important;
}
.sunlight-csharp .sunlight-pragma,
.sunlight-preprocessorDirective,
.sunlight-vb .sunlight-compilerDirective,
.sunlight-diff .sunlight-mergeHeader,
.sunlight-diff .sunlight-noNewLine {
color: #999999 !important;
font-style: italic !important;
}
.sunlight-xmlDocCommentMeta,
.sunlight-java .sunlight-annotation,
.sunlight-scala .sunlight-annotation,
.sunlight-docComment {
color: #808080 !important;
}
.sunlight-quotedIdent,
.sunlight-ruby .sunlight-subshellCommand,
.sunlight-lisp .sunlight-keywordArgument,
.sunlight-haskell .sunlight-infixOperator,
.sunlight-erlang .sunlight-quotedAtom {
color: #999900 !important;
}
/* xml */
.sunlight-xml .sunlight-string {
color: #990099 !important;
}
.sunlight-xml .sunlight-attribute {
color: #FF0000 !important;
}
.sunlight-xml .sunlight-entity {
background-color: #EEEEEE !important;
color: #000000 !important;
border: 1px solid #000000 !important;
}
.sunlight-xml .sunlight-doctype {
color: #2B91AF !important;
}
/* javascript */
.sunlight-javascript .sunlight-reservedWord {
font-style: italic !important;
}
/* css */
.sunlight-css .sunlight-microsoftFilterPrefix {
color: #FF00FF !important;
}
.sunlight-css .sunlight-rule {
color: #0099FF !important;
}
.sunlight-css .sunlight-keyword {
color: #4E65B8 !important;
}
.sunlight-css .sunlight-class {
color: #FF0000 !important;
}
.sunlight-css .sunlight-id {
color: #8A8E13 !important;
}
.sunlight-css .sunlight-pseudoClass,
.sunlight-css .sunlight-pseudoElement {
color: #368B87 !important;
}
/* bash */
.sunlight-bash .sunlight-hashBang {
color: #3D97F5 !important;
}
.sunlight-bash .sunlight-verbatimCommand {
color: #999900 !important;
}
.sunlight-bash .sunlight-variable,
.sunlight-bash .sunlight-specialVariable {
color: #FF0000 !important;
}
/* python */
.sunlight-python .sunlight-specialMethod {
font-weight: bold !important;
color: #A07DD3;
}
/* ruby */
.sunlight-ruby .sunlight-symbol {
font-weight: bold !important;
color: #ED7272 !important;
}
/* brainfuck */
.sunlight-brainfuck {
font-weight: bold !important;
color: #000000 !important;
}
.sunlight-brainfuck .sunlight-increment {
background-color: #FF9900 !important;
}
.sunlight-brainfuck .sunlight-decrement {
background-color: #FF99FF !important;
}
.sunlight-brainfuck .sunlight-incrementPointer {
background-color: #FFFF99 !important;
}
.sunlight-brainfuck .sunlight-decrementPointer {
background-color: #66CCFF !important;
}
.sunlight-brainfuck .sunlight-read {
background-color: #FFFFFF !important;
}
.sunlight-brainfuck .sunlight-write {
background-color: #99FF99 !important;
}
.sunlight-brainfuck .sunlight-openLoop, .sunlight-brainfuck .sunlight-closeLoop {
background-color: #FFFFFF !important;
}
/* 6502 asm */
.sunlight-6502asm .sunlight-label {
font-weight: bold !important;
color: #000000 !important;
background: none !important;
}
/* lisp */
.sunlight-lisp .sunlight-macro {
font-style: italic !important;
}
/* erlang */
.sunlight-erlang .sunlight-atom {
font-weight: bold !important;
}