mirror of
https://github.com/Tonejs/Tone.js
synced 2024-11-15 08:17:07 +00:00
First commit with the DocStrap template truely in effect ( in effect )
This commit is contained in:
parent
cec6ba3d15
commit
00b1bf25e7
81 changed files with 186530 additions and 84162 deletions
|
@ -18,7 +18,10 @@ define(["Tone/core/Tone", "Tone/source/Oscillator", "Tone/signal/Scale"], functi
|
|||
this.input = this.context.createGain();
|
||||
/** @type {Tone.Oscillator} */
|
||||
this.oscillator = new Tone.Oscillator(this.defaultArg(rate, 1), "sine");
|
||||
/** @type {Tone.Scale} @private */
|
||||
/**
|
||||
@type {Tone.Scale}
|
||||
@private
|
||||
*/
|
||||
this._scaler = new Tone.Scale(this.defaultArg(outputMin, 0), this.defaultArg(outputMax, 1));
|
||||
/** alias for the output */
|
||||
this.output = this._scaler;
|
||||
|
|
|
@ -5,8 +5,8 @@ module.exports = function(grunt) {
|
|||
//pkg: grunt.file.readJSON('package.json'),
|
||||
jsdoc : {
|
||||
src : {
|
||||
// src: ['../Tone/**/*.js'],
|
||||
src: ['../Tone.js'],
|
||||
src: ['../Tone/**/*.js', '../README.md'],
|
||||
//src: ['../Tone.js'],
|
||||
options: {
|
||||
destination: '../doc',
|
||||
//configure: './config/jsdoc.conf.json',
|
||||
|
|
25
build/doc_config/template/jsdoc.conf.json
Normal file
25
build/doc_config/template/jsdoc.conf.json
Normal file
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"tags" : {
|
||||
"allowUnknownTags" : true
|
||||
},
|
||||
"plugins" : ["plugins/markdown"],
|
||||
"templates" : {
|
||||
"cleverLinks" : false,
|
||||
"monospaceLinks" : false,
|
||||
"default" : {
|
||||
"outputSourceFiles" : true
|
||||
},
|
||||
"systemName" : "Tone.js",
|
||||
"footer" : "",
|
||||
"copyright" : "Tone No Tone Copyright © 2014.",
|
||||
"navType" : "inline",
|
||||
"theme" : "flatly",
|
||||
"linenums" : true,
|
||||
"collapseSymbols" : false,
|
||||
"inverseNav" : true
|
||||
},
|
||||
"markdown" : {
|
||||
"parser" : "gfm",
|
||||
"hardwrap" : true
|
||||
}
|
||||
}
|
651
build/doc_config/template/publish.js
Normal file
651
build/doc_config/template/publish.js
Normal file
|
@ -0,0 +1,651 @@
|
|||
"use strict";
|
||||
/**
|
||||
* @module template/publish
|
||||
* @type {*}
|
||||
*/
|
||||
/*global env: true */
|
||||
var template = require( 'jsdoc/template' ),
|
||||
fs = require( 'jsdoc/fs' ),
|
||||
_ = require( 'underscore' ),
|
||||
path = require( 'jsdoc/path' ),
|
||||
taffy = require( 'taffydb' ).taffy,
|
||||
handle = require( 'jsdoc/util/error' ).handle,
|
||||
helper = require( 'jsdoc/util/templateHelper' ),
|
||||
htmlsafe = helper.htmlsafe,
|
||||
linkto = helper.linkto,
|
||||
resolveAuthorLinks = helper.resolveAuthorLinks,
|
||||
scopeToPunc = helper.scopeToPunc,
|
||||
hasOwnProp = Object.prototype.hasOwnProperty,
|
||||
conf = env.conf.templates || {},
|
||||
data,
|
||||
view,
|
||||
outdir = env.opts.destination;
|
||||
|
||||
var globalUrl = helper.getUniqueFilename( 'global' );
|
||||
var indexUrl = helper.getUniqueFilename( 'index' );
|
||||
|
||||
var navOptions = {
|
||||
systemName : conf.systemName || "Documentation",
|
||||
navType : conf.navType || "vertical",
|
||||
footer : conf.footer || "",
|
||||
copyright : conf.copyright || "",
|
||||
theme : conf.theme || "simplex",
|
||||
linenums : conf.linenums,
|
||||
collapseSymbols : conf.collapseSymbols || false,
|
||||
inverseNav : conf.inverseNav
|
||||
};
|
||||
|
||||
var navigationMaster = {
|
||||
index : {
|
||||
title : navOptions.systemName,
|
||||
link : indexUrl,
|
||||
members : []
|
||||
},
|
||||
namespace : {
|
||||
title : "Namespaces",
|
||||
link : helper.getUniqueFilename( "namespaces.list" ),
|
||||
members : []
|
||||
},
|
||||
module : {
|
||||
title : "Modules",
|
||||
link : helper.getUniqueFilename( "modules.list" ),
|
||||
members : []
|
||||
},
|
||||
class : {
|
||||
title : "Classes",
|
||||
link : helper.getUniqueFilename( 'classes.list' ),
|
||||
members : []
|
||||
},
|
||||
|
||||
mixin : {
|
||||
title : "Mixins",
|
||||
link : helper.getUniqueFilename( "mixins.list" ),
|
||||
members : []
|
||||
},
|
||||
event : {
|
||||
title : "Events",
|
||||
link : helper.getUniqueFilename( "events.list" ),
|
||||
members : []
|
||||
},
|
||||
tutorial : {
|
||||
title : "Tutorials",
|
||||
link : helper.getUniqueFilename( "tutorials.list" ),
|
||||
members : []
|
||||
},
|
||||
global : {
|
||||
title : "Global",
|
||||
link : globalUrl,
|
||||
members : []
|
||||
|
||||
},
|
||||
external : {
|
||||
title : "Externals",
|
||||
link : helper.getUniqueFilename( "externals.list" ),
|
||||
members : []
|
||||
}
|
||||
};
|
||||
|
||||
function find( spec ) {
|
||||
return helper.find( data, spec );
|
||||
}
|
||||
|
||||
function tutoriallink( tutorial ) {
|
||||
return helper.toTutorial( tutorial, null, { tag : 'em', classname : 'disabled', prefix : 'Tutorial: ' } );
|
||||
}
|
||||
|
||||
function getAncestorLinks( doclet ) {
|
||||
return helper.getAncestorLinks( data, doclet );
|
||||
}
|
||||
|
||||
function hashToLink( doclet, hash ) {
|
||||
if ( !/^(#.+)/.test( hash ) ) { return hash; }
|
||||
|
||||
var url = helper.createLink( doclet );
|
||||
|
||||
url = url.replace( /(#.+|$)/, hash );
|
||||
return '<a href="' + url + '">' + hash + '</a>';
|
||||
}
|
||||
|
||||
function needsSignature( doclet ) {
|
||||
var needsSig = false;
|
||||
|
||||
// function and class definitions always get a signature
|
||||
if ( doclet.kind === 'function' || doclet.kind === 'class' ) {
|
||||
needsSig = true;
|
||||
}
|
||||
// typedefs that contain functions get a signature, too
|
||||
else if ( doclet.kind === 'typedef' && doclet.type && doclet.type.names &&
|
||||
doclet.type.names.length ) {
|
||||
for ( var i = 0, l = doclet.type.names.length; i < l; i++ ) {
|
||||
if ( doclet.type.names[i].toLowerCase() === 'function' ) {
|
||||
needsSig = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return needsSig;
|
||||
}
|
||||
|
||||
function addSignatureParams( f ) {
|
||||
var params = helper.getSignatureParams( f, 'optional' );
|
||||
|
||||
f.signature = (f.signature || '') + '(' + params.join( ', ' ) + ')';
|
||||
}
|
||||
|
||||
function addSignatureReturns( f ) {
|
||||
var returnTypes = helper.getSignatureReturns( f );
|
||||
|
||||
f.signature = '<span class="signature">' + (f.signature || '') + '</span>' + '<span class="type-signature">' + (returnTypes.length ? ' → {' + returnTypes.join( '|' ) + '}' : '') + '</span>';
|
||||
}
|
||||
|
||||
function addSignatureTypes( f ) {
|
||||
var types = helper.getSignatureTypes( f );
|
||||
|
||||
f.signature = (f.signature || '') + '<span class="type-signature">' + (types.length ? ' :' + types.join( '|' ) : '') + '</span>';
|
||||
}
|
||||
|
||||
function addAttribs( f ) {
|
||||
var attribs = helper.getAttribs( f );
|
||||
|
||||
f.attribs = '<span class="type-signature">' + htmlsafe( attribs.length ? '<' + attribs.join( ', ' ) + '> ' : '' ) + '</span>';
|
||||
}
|
||||
|
||||
function shortenPaths( files, commonPrefix ) {
|
||||
// always use forward slashes
|
||||
var regexp = new RegExp( '\\\\', 'g' );
|
||||
|
||||
Object.keys( files ).forEach( function ( file ) {
|
||||
files[file].shortened = files[file].resolved.replace( commonPrefix, '' )
|
||||
.replace( regexp, '/' );
|
||||
} );
|
||||
|
||||
return files;
|
||||
}
|
||||
|
||||
function resolveSourcePath( filepath ) {
|
||||
return path.resolve( process.cwd(), filepath );
|
||||
}
|
||||
|
||||
function getPathFromDoclet( doclet ) {
|
||||
if ( !doclet.meta ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var filepath = doclet.meta.path && doclet.meta.path !== 'null' ?
|
||||
doclet.meta.path + '/' + doclet.meta.filename :
|
||||
doclet.meta.filename;
|
||||
|
||||
return filepath;
|
||||
}
|
||||
|
||||
function generate( docType, title, docs, filename, resolveLinks ) {
|
||||
resolveLinks = resolveLinks === false ? false : true;
|
||||
|
||||
var docData = {
|
||||
title : title,
|
||||
docs : docs,
|
||||
docType : docType
|
||||
};
|
||||
|
||||
var outpath = path.join( outdir, filename ),
|
||||
html = view.render( 'container.tmpl', docData );
|
||||
|
||||
if ( resolveLinks ) {
|
||||
html = helper.resolveLinks( html ); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
||||
}
|
||||
|
||||
fs.writeFileSync( outpath, html, 'utf8' );
|
||||
}
|
||||
|
||||
function generateSourceFiles( sourceFiles ) {
|
||||
Object.keys( sourceFiles ).forEach( function ( file ) {
|
||||
var source;
|
||||
// links are keyed to the shortened path in each doclet's `meta.filename` property
|
||||
var sourceOutfile = helper.getUniqueFilename( sourceFiles[file].shortened );
|
||||
helper.registerLink( sourceFiles[file].shortened, sourceOutfile );
|
||||
|
||||
try {
|
||||
source = {
|
||||
kind : 'source',
|
||||
code : helper.htmlsafe( fs.readFileSync( sourceFiles[file].resolved, 'utf8' ) )
|
||||
};
|
||||
}
|
||||
catch ( e ) {
|
||||
handle( e );
|
||||
}
|
||||
|
||||
generate( 'source', 'Source: ' + sourceFiles[file].shortened, [source], sourceOutfile,
|
||||
false );
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Look for classes or functions with the same name as modules (which indicates that the module
|
||||
* exports only that class or function), then attach the classes or functions to the `module`
|
||||
* property of the appropriate module doclets. The name of each class or function is also updated
|
||||
* for display purposes. This function mutates the original arrays.
|
||||
*
|
||||
* @private
|
||||
* @param {Array.<module:jsdoc/doclet.Doclet>} doclets - The array of classes and functions to
|
||||
* check.
|
||||
* @param {Array.<module:jsdoc/doclet.Doclet>} modules - The array of module doclets to search.
|
||||
*/
|
||||
function attachModuleSymbols( doclets, modules ) {
|
||||
var symbols = {};
|
||||
|
||||
// build a lookup table
|
||||
doclets.forEach( function ( symbol ) {
|
||||
symbols[symbol.longname] = symbol;
|
||||
} );
|
||||
|
||||
return modules.map( function ( module ) {
|
||||
if ( symbols[module.longname] ) {
|
||||
module.module = symbols[module.longname];
|
||||
module.module.name = module.module.name.replace( 'module:', 'require("' ) + '")';
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the navigation sidebar.
|
||||
* @param {object} members The members that will be used to create the sidebar.
|
||||
* @param {array<object>} members.classes
|
||||
* @param {array<object>} members.externals
|
||||
* @param {array<object>} members.globals
|
||||
* @param {array<object>} members.mixins
|
||||
* @param {array<object>} members.modules
|
||||
* @param {array<object>} members.namespaces
|
||||
* @param {array<object>} members.tutorials
|
||||
* @param {array<object>} members.events
|
||||
* @return {string} The HTML for the navigation sidebar.
|
||||
*/
|
||||
function buildNav( members ) {
|
||||
|
||||
var seen = {};
|
||||
var nav = navigationMaster;
|
||||
if ( members.modules.length ) {
|
||||
|
||||
members.modules.forEach( function ( m ) {
|
||||
if ( !hasOwnProp.call( seen, m.longname ) ) {
|
||||
|
||||
nav.module.members.push( linkto( m.longname, m.name ) );
|
||||
}
|
||||
seen[m.longname] = true;
|
||||
} );
|
||||
}
|
||||
|
||||
if ( members.externals.length ) {
|
||||
|
||||
members.externals.forEach( function ( e ) {
|
||||
if ( !hasOwnProp.call( seen, e.longname ) ) {
|
||||
|
||||
nav.external.members.push( linkto( e.longname, e.name.replace( /(^"|"$)/g, '' ) ) );
|
||||
}
|
||||
seen[e.longname] = true;
|
||||
} );
|
||||
}
|
||||
|
||||
if ( members.classes.length ) {
|
||||
|
||||
members.classes.forEach( function ( c ) {
|
||||
if ( !hasOwnProp.call( seen, c.longname ) ) {
|
||||
|
||||
nav.class.members.push( linkto( c.longname, c.name ) );
|
||||
}
|
||||
seen[c.longname] = true;
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
if ( members.events.length ) {
|
||||
|
||||
members.events.forEach( function ( e ) {
|
||||
if ( !hasOwnProp.call( seen, e.longname ) ) {
|
||||
|
||||
nav.event.members.push( linkto( e.longname, e.name ) );
|
||||
}
|
||||
seen[e.longname] = true;
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
if ( members.namespaces.length ) {
|
||||
|
||||
members.namespaces.forEach( function ( n ) {
|
||||
if ( !hasOwnProp.call( seen, n.longname ) ) {
|
||||
|
||||
nav.namespace.members.push( linkto( n.longname, n.name ) );
|
||||
}
|
||||
seen[n.longname] = true;
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
if ( members.mixins.length ) {
|
||||
|
||||
members.mixins.forEach( function ( m ) {
|
||||
if ( !hasOwnProp.call( seen, m.longname ) ) {
|
||||
|
||||
nav.mixin.members.push( linkto( m.longname, m.name ) );
|
||||
}
|
||||
seen[m.longname] = true;
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
if ( members.tutorials.length ) {
|
||||
|
||||
members.tutorials.forEach( function ( t ) {
|
||||
|
||||
nav.tutorial.members.push( tutoriallink( t.name ) );
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
if ( members.globals.length ) {
|
||||
members.globals.forEach( function ( g ) {
|
||||
if ( g.kind !== 'typedef' && !hasOwnProp.call( seen, g.longname ) ) {
|
||||
|
||||
nav.global.members.push( linkto( g.longname, g.name ) );
|
||||
}
|
||||
seen[g.longname] = true;
|
||||
} );
|
||||
}
|
||||
|
||||
var topLevelNav = [];
|
||||
_.each( nav, function ( entry, name ) {
|
||||
if ( entry.members.length > 0 && name !== "index" ) {
|
||||
topLevelNav.push( {
|
||||
title : entry.title,
|
||||
link : entry.link,
|
||||
members : entry.members
|
||||
} );
|
||||
}
|
||||
} );
|
||||
nav.topLevelNav = topLevelNav;
|
||||
}
|
||||
|
||||
/**
|
||||
@param {TAFFY} taffyData See <http://taffydb.com/>.
|
||||
@param {object} opts
|
||||
@param {Tutorial} tutorials
|
||||
*/
|
||||
exports.publish = function ( taffyData, opts, tutorials ) {
|
||||
data = taffyData;
|
||||
|
||||
conf['default'] = conf['default'] || {};
|
||||
|
||||
var templatePath = opts.template;
|
||||
view = new template.Template( templatePath + '/tmpl' );
|
||||
|
||||
// claim some special filenames in advance, so the All-Powerful Overseer of Filename Uniqueness
|
||||
// doesn't try to hand them out later
|
||||
// var indexUrl = helper.getUniqueFilename( 'index' );
|
||||
// don't call registerLink() on this one! 'index' is also a valid longname
|
||||
|
||||
// var globalUrl = helper.getUniqueFilename( 'global' );
|
||||
helper.registerLink( 'global', globalUrl );
|
||||
|
||||
// set up templating
|
||||
view.layout = 'layout.tmpl';
|
||||
|
||||
// set up tutorials for helper
|
||||
helper.setTutorials( tutorials );
|
||||
|
||||
data = helper.prune( data );
|
||||
data.sort( 'longname, version, since' );
|
||||
helper.addEventListeners( data );
|
||||
|
||||
var sourceFiles = {};
|
||||
var sourceFilePaths = [];
|
||||
data().each( function ( doclet ) {
|
||||
doclet.attribs = '';
|
||||
|
||||
if ( doclet.examples ) {
|
||||
doclet.examples = doclet.examples.map( function ( example ) {
|
||||
var caption, code;
|
||||
|
||||
if ( example.match( /^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i ) ) {
|
||||
caption = RegExp.$1;
|
||||
code = RegExp.$3;
|
||||
}
|
||||
|
||||
return {
|
||||
caption : caption || '',
|
||||
code : code || example
|
||||
};
|
||||
} );
|
||||
}
|
||||
if ( doclet.see ) {
|
||||
doclet.see.forEach( function ( seeItem, i ) {
|
||||
doclet.see[i] = hashToLink( doclet, seeItem );
|
||||
} );
|
||||
}
|
||||
|
||||
// build a list of source files
|
||||
var sourcePath;
|
||||
var resolvedSourcePath;
|
||||
if ( doclet.meta ) {
|
||||
sourcePath = getPathFromDoclet( doclet );
|
||||
resolvedSourcePath = resolveSourcePath( sourcePath );
|
||||
sourceFiles[sourcePath] = {
|
||||
resolved : resolvedSourcePath,
|
||||
shortened : null
|
||||
};
|
||||
|
||||
sourceFilePaths.push( resolvedSourcePath );
|
||||
}
|
||||
} );
|
||||
|
||||
// update outdir if necessary, then create outdir
|
||||
var packageInfo = ( find( {kind : 'package'} ) || [] ) [0];
|
||||
if ( packageInfo && packageInfo.name ) {
|
||||
outdir = path.join( outdir, packageInfo.name, packageInfo.version );
|
||||
}
|
||||
fs.mkPath( outdir );
|
||||
|
||||
// copy static files to outdir
|
||||
var fromDir = path.join( templatePath, 'static' ),
|
||||
staticFiles = fs.ls( fromDir, 3 );
|
||||
|
||||
staticFiles.forEach( function ( fileName ) {
|
||||
var toDir = fs.toDir( fileName.replace( fromDir, outdir ) );
|
||||
fs.mkPath( toDir );
|
||||
fs.copyFileSync( fileName, toDir );
|
||||
} );
|
||||
|
||||
if ( sourceFilePaths.length ) {
|
||||
sourceFiles = shortenPaths( sourceFiles, path.commonPrefix( sourceFilePaths ) );
|
||||
}
|
||||
data().each( function ( doclet ) {
|
||||
var url = helper.createLink( doclet );
|
||||
helper.registerLink( doclet.longname, url );
|
||||
|
||||
// replace the filename with a shortened version of the full path
|
||||
var docletPath;
|
||||
if ( doclet.meta ) {
|
||||
docletPath = getPathFromDoclet( doclet );
|
||||
docletPath = sourceFiles[docletPath].shortened;
|
||||
if ( docletPath ) {
|
||||
doclet.meta.filename = docletPath;
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
data().each( function ( doclet ) {
|
||||
var url = helper.longnameToUrl[doclet.longname];
|
||||
|
||||
if ( url.indexOf( '#' ) > -1 ) {
|
||||
doclet.id = helper.longnameToUrl[doclet.longname].split( /#/ ).pop();
|
||||
}
|
||||
else {
|
||||
doclet.id = doclet.name;
|
||||
}
|
||||
|
||||
if ( needsSignature( doclet ) ) {
|
||||
addSignatureParams( doclet );
|
||||
addSignatureReturns( doclet );
|
||||
addAttribs( doclet );
|
||||
}
|
||||
} );
|
||||
|
||||
// do this after the urls have all been generated
|
||||
data().each( function ( doclet ) {
|
||||
doclet.ancestors = getAncestorLinks( doclet );
|
||||
|
||||
if ( doclet.kind === 'member' ) {
|
||||
addSignatureTypes( doclet );
|
||||
addAttribs( doclet );
|
||||
}
|
||||
|
||||
if ( doclet.kind === 'constant' ) {
|
||||
addSignatureTypes( doclet );
|
||||
addAttribs( doclet );
|
||||
doclet.kind = 'member';
|
||||
}
|
||||
} );
|
||||
|
||||
var members = helper.getMembers( data );
|
||||
members.tutorials = tutorials.children;
|
||||
|
||||
// add template helpers
|
||||
view.find = find;
|
||||
view.linkto = linkto;
|
||||
view.resolveAuthorLinks = resolveAuthorLinks;
|
||||
view.tutoriallink = tutoriallink;
|
||||
view.htmlsafe = htmlsafe;
|
||||
|
||||
// once for all
|
||||
buildNav( members );
|
||||
view.nav = navigationMaster;
|
||||
view.navOptions = navOptions;
|
||||
attachModuleSymbols( find( { kind : ['class', 'function'], longname : {left : 'module:'} } ),
|
||||
members.modules );
|
||||
|
||||
// only output pretty-printed source files if requested; do this before generating any other
|
||||
// pages, so the other pages can link to the source files
|
||||
if ( conf['default'].outputSourceFiles ) {
|
||||
generateSourceFiles( sourceFiles );
|
||||
}
|
||||
|
||||
if ( members.globals.length ) {
|
||||
generate( 'global', 'Global', [
|
||||
{kind : 'globalobj'}
|
||||
], globalUrl );
|
||||
}
|
||||
|
||||
// some browsers can't make the dropdown work
|
||||
if ( view.nav.module && view.nav.module.members.length ) {
|
||||
generate( 'module', view.nav.module.title, [
|
||||
{kind : 'sectionIndex', contents : view.nav.module}
|
||||
], navigationMaster.module.link );
|
||||
}
|
||||
|
||||
if ( view.nav.class && view.nav.class.members.length ) {
|
||||
generate( 'class', view.nav.class.title, [
|
||||
{kind : 'sectionIndex', contents : view.nav.class}
|
||||
], navigationMaster.class.link );
|
||||
}
|
||||
|
||||
if ( view.nav.namespace && view.nav.namespace.members.length ) {
|
||||
generate( 'namespace', view.nav.namespace.title, [
|
||||
{kind : 'sectionIndex', contents : view.nav.namespace}
|
||||
], navigationMaster.namespace.link );
|
||||
}
|
||||
|
||||
if ( view.nav.mixin && view.nav.mixin.members.length ) {
|
||||
generate( 'mixin', view.nav.mixin.title, [
|
||||
{kind : 'sectionIndex', contents : view.nav.mixin}
|
||||
], navigationMaster.mixin.link );
|
||||
}
|
||||
|
||||
if ( view.nav.external && view.nav.external.members.length ) {
|
||||
generate( 'external', view.nav.external.title, [
|
||||
{kind : 'sectionIndex', contents : view.nav.external}
|
||||
], navigationMaster.external.link );
|
||||
}
|
||||
|
||||
if ( view.nav.tutorial && view.nav.tutorial.members.length ) {
|
||||
generate( 'tutorial', view.nav.tutorial.title, [
|
||||
{kind : 'sectionIndex', contents : view.nav.tutorial}
|
||||
], navigationMaster.tutorial.link );
|
||||
}
|
||||
|
||||
// index page displays information from package.json and lists files
|
||||
var files = find( {kind : 'file'} ),
|
||||
packages = find( {kind : 'package'} );
|
||||
|
||||
generate( 'index', 'Index',
|
||||
packages.concat(
|
||||
[
|
||||
{kind : 'mainpage', readme : opts.readme, longname : (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}
|
||||
]
|
||||
).concat( files ),
|
||||
indexUrl );
|
||||
|
||||
// set up the lists that we'll use to generate pages
|
||||
var classes = taffy( members.classes );
|
||||
var modules = taffy( members.modules );
|
||||
var namespaces = taffy( members.namespaces );
|
||||
var mixins = taffy( members.mixins );
|
||||
var externals = taffy( members.externals );
|
||||
|
||||
for ( var longname in helper.longnameToUrl ) {
|
||||
if ( hasOwnProp.call( helper.longnameToUrl, longname ) ) {
|
||||
var myClasses = helper.find( classes, {longname : longname} );
|
||||
if ( myClasses.length ) {
|
||||
generate( 'class', 'Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname] );
|
||||
}
|
||||
|
||||
var myModules = helper.find( modules, {longname : longname} );
|
||||
if ( myModules.length ) {
|
||||
generate( 'module', 'Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname] );
|
||||
}
|
||||
|
||||
var myNamespaces = helper.find( namespaces, {longname : longname} );
|
||||
if ( myNamespaces.length ) {
|
||||
generate( 'namespace', 'Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname] );
|
||||
}
|
||||
|
||||
var myMixins = helper.find( mixins, {longname : longname} );
|
||||
if ( myMixins.length ) {
|
||||
generate( 'mixin', 'Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname] );
|
||||
}
|
||||
|
||||
var myExternals = helper.find( externals, {longname : longname} );
|
||||
if ( myExternals.length ) {
|
||||
generate( 'external', 'External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: move the tutorial functions to templateHelper.js
|
||||
function generateTutorial( title, tutorial, filename ) {
|
||||
var tutorialData = {
|
||||
title : title,
|
||||
header : tutorial.title,
|
||||
content : tutorial.parse(),
|
||||
children : tutorial.children,
|
||||
docs : null
|
||||
};
|
||||
|
||||
var tutorialPath = path.join( outdir, filename ),
|
||||
html = view.render( 'tutorial.tmpl', tutorialData );
|
||||
|
||||
// yes, you can use {@link} in tutorials too!
|
||||
html = helper.resolveLinks( html ); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
||||
|
||||
fs.writeFileSync( tutorialPath, html, 'utf8' );
|
||||
}
|
||||
|
||||
// tutorials can have only one parent so there is no risk for loops
|
||||
function saveChildren( node ) {
|
||||
node.children.forEach( function ( child ) {
|
||||
generateTutorial( 'tutorial' + child.title, child, helper.tutorialToUrl( child.name ) );
|
||||
saveChildren( child );
|
||||
} );
|
||||
}
|
||||
|
||||
saveChildren( tutorials );
|
||||
};
|
Binary file not shown.
After Width: | Height: | Size: 8.6 KiB |
BIN
build/doc_config/template/static/img/glyphicons-halflings.png
Normal file
BIN
build/doc_config/template/static/img/glyphicons-halflings.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
1429
build/doc_config/template/static/scripts/URI.js
Normal file
1429
build/doc_config/template/static/scripts/URI.js
Normal file
File diff suppressed because it is too large
Load diff
165
build/doc_config/template/static/scripts/bootstrap-dropdown.js
vendored
Normal file
165
build/doc_config/template/static/scripts/bootstrap-dropdown.js
vendored
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
build/doc_config/template/static/scripts/bootstrap-tab.js
vendored
Normal file
144
build/doc_config/template/static/scripts/bootstrap-tab.js
vendored
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);
|
130
build/doc_config/template/static/scripts/jquery.localScroll.js
Normal file
130
build/doc_config/template/static/scripts/jquery.localScroll.js
Normal file
|
@ -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
build/doc_config/template/static/scripts/jquery.min.js
vendored
Normal file
3522
build/doc_config/template/static/scripts/jquery.min.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
217
build/doc_config/template/static/scripts/jquery.scrollTo.js
Normal file
217
build/doc_config/template/static/scripts/jquery.scrollTo.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 );
|
18
build/doc_config/template/static/scripts/jquery.sunlight.js
Normal file
18
build/doc_config/template/static/scripts/jquery.sunlight.js
Normal file
|
@ -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));
|
|
@ -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
build/doc_config/template/static/scripts/prettify/jquery.min.js
vendored
Normal file
6
build/doc_config/template/static/scripts/prettify/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -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"]);
|
496
build/doc_config/template/static/scripts/prettify/prettify.js
Normal file
496
build/doc_config/template/static/scripts/prettify/prettify.js
Normal file
|
@ -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));
|
159
build/doc_config/template/static/scripts/sunlight-plugin.menu.js
Normal file
159
build/doc_config/template/static/scripts/sunlight-plugin.menu.js
Normal file
|
@ -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));
|
183
build/doc_config/template/static/scripts/sunlight.javascript.js
Normal file
183
build/doc_config/template/static/scripts/sunlight.javascript.js
Normal file
|
@ -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
build/doc_config/template/static/scripts/sunlight.js
Normal file
1157
build/doc_config/template/static/scripts/sunlight.js
Normal file
File diff suppressed because it is too large
Load diff
209
build/doc_config/template/static/scripts/toc.js
Normal file
209
build/doc_config/template/static/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
build/doc_config/template/static/styles/darkstrap.css
Normal file
960
build/doc_config/template/static/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;
|
||||
}
|
132
build/doc_config/template/static/styles/prettify-tomorrow.css
Normal file
132
build/doc_config/template/static/styles/prettify-tomorrow.css
Normal file
|
@ -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
build/doc_config/template/static/styles/site.amelia.css
Normal file
6367
build/doc_config/template/static/styles/site.amelia.css
Normal file
File diff suppressed because it is too large
Load diff
5699
build/doc_config/template/static/styles/site.cerulean.css
Normal file
5699
build/doc_config/template/static/styles/site.cerulean.css
Normal file
File diff suppressed because it is too large
Load diff
5942
build/doc_config/template/static/styles/site.cosmo.css
Normal file
5942
build/doc_config/template/static/styles/site.cosmo.css
Normal file
File diff suppressed because it is too large
Load diff
6149
build/doc_config/template/static/styles/site.cyborg.css
Normal file
6149
build/doc_config/template/static/styles/site.cyborg.css
Normal file
File diff suppressed because it is too large
Load diff
5638
build/doc_config/template/static/styles/site.darkstrap.css
Normal file
5638
build/doc_config/template/static/styles/site.darkstrap.css
Normal file
File diff suppressed because it is too large
Load diff
5991
build/doc_config/template/static/styles/site.flatly.css
Normal file
5991
build/doc_config/template/static/styles/site.flatly.css
Normal file
File diff suppressed because it is too large
Load diff
5743
build/doc_config/template/static/styles/site.journal.css
Normal file
5743
build/doc_config/template/static/styles/site.journal.css
Normal file
File diff suppressed because it is too large
Load diff
5431
build/doc_config/template/static/styles/site.readable.css
Normal file
5431
build/doc_config/template/static/styles/site.readable.css
Normal file
File diff suppressed because it is too large
Load diff
5756
build/doc_config/template/static/styles/site.simplex.css
Normal file
5756
build/doc_config/template/static/styles/site.simplex.css
Normal file
File diff suppressed because it is too large
Load diff
6202
build/doc_config/template/static/styles/site.slate.css
Normal file
6202
build/doc_config/template/static/styles/site.slate.css
Normal file
File diff suppressed because it is too large
Load diff
5794
build/doc_config/template/static/styles/site.spacelab.css
Normal file
5794
build/doc_config/template/static/styles/site.spacelab.css
Normal file
File diff suppressed because it is too large
Load diff
5936
build/doc_config/template/static/styles/site.spruce.css
Normal file
5936
build/doc_config/template/static/styles/site.spruce.css
Normal file
File diff suppressed because it is too large
Load diff
6104
build/doc_config/template/static/styles/site.superhero.css
Normal file
6104
build/doc_config/template/static/styles/site.superhero.css
Normal file
File diff suppressed because it is too large
Load diff
5543
build/doc_config/template/static/styles/site.united.css
Normal file
5543
build/doc_config/template/static/styles/site.united.css
Normal file
File diff suppressed because it is too large
Load diff
345
build/doc_config/template/static/styles/sunlight.dark.css
Normal file
345
build/doc_config/template/static/styles/sunlight.dark.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;
|
||||
}
|
344
build/doc_config/template/static/styles/sunlight.default.css
Normal file
344
build/doc_config/template/static/styles/sunlight.default.css
Normal file
|
@ -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;
|
||||
}
|
159
build/doc_config/template/tmpl/container.tmpl
Normal file
159
build/doc_config/template/tmpl/container.tmpl
Normal file
|
@ -0,0 +1,159 @@
|
|||
<?js
|
||||
var self = this;
|
||||
docs.forEach(function(doc, i) {
|
||||
?>
|
||||
|
||||
<?js if (doc.kind === 'mainpage' || (doc.kind === 'package')) { ?>
|
||||
<?js if (i === 0){ ?>
|
||||
<span class="page-title"><?js= title ?></span>
|
||||
<?js } ?>
|
||||
<?js= self.partial('mainpage.tmpl', doc) ?>
|
||||
|
||||
<?js } else if (doc.kind === 'source') { ?>
|
||||
<h1 class="page-title"><?js= title ?></h1>
|
||||
<?js= self.partial('source.tmpl', doc) ?>
|
||||
<?js } else { ?>
|
||||
<h1 class="page-title"><?js= title ?></h1>
|
||||
<section>
|
||||
|
||||
<header>
|
||||
<h2><?js if (doc.ancestors && doc.ancestors.length) { ?>
|
||||
<span class="ancestors"><?js= doc.ancestors.join('') ?></span>
|
||||
<?js } ?>
|
||||
<?js= doc.name ?>
|
||||
<?js if (doc.variation) { ?>
|
||||
<sup class="variation"><?js= doc.variation ?></sup>
|
||||
<?js } ?></h2>
|
||||
<?js if (doc.classdesc) { ?>
|
||||
<div class="class-description"><?js= doc.classdesc ?></div>
|
||||
<?js } ?>
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<div class="container-overview">
|
||||
<?js if (doc.kind === 'module' && doc.module) { ?>
|
||||
<?js= self.partial('method.tmpl', doc.module) ?>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (doc.kind === 'class') { ?>
|
||||
<?js= self.partial('method.tmpl', doc) ?>
|
||||
<?js } else { ?>
|
||||
<?js if (doc.description) { ?>
|
||||
<div class="description"><?js= doc.description ?></div>
|
||||
<?js } ?>
|
||||
|
||||
<?js= self.partial('details.tmpl', doc) ?>
|
||||
|
||||
<?js if (doc.examples && doc.examples.length) { ?>
|
||||
<h3>Example<?js= doc.examples.length > 1? 's':'' ?></h3>
|
||||
<?js= self.partial('examples.tmpl', doc.examples) ?>
|
||||
<?js } ?>
|
||||
<?js } ?>
|
||||
</div>
|
||||
|
||||
<?js if (doc.augments && doc.augments.length) { ?>
|
||||
<h3 class="subsection-title">Extends</h3>
|
||||
|
||||
<ul><?js doc.augments.forEach(function(a) { ?>
|
||||
<li><?js= self.linkto(a, a) ?></li>
|
||||
<?js }); ?></ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (doc.mixes && doc.mixes.length) { ?>
|
||||
<h3 class="subsection-title">Mixes In</h3>
|
||||
|
||||
<ul><?js doc.mixes.forEach(function(a) { ?>
|
||||
<li><?js= self.linkto(a, a) ?></li>
|
||||
<?js }); ?></ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (doc.requires && doc.requires.length) { ?>
|
||||
<h3 class="subsection-title">Requires</h3>
|
||||
|
||||
<ul><?js doc.requires.forEach(function(r) { ?>
|
||||
<li><?js= self.linkto(r, r) ?></li>
|
||||
<?js }); ?></ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js
|
||||
var classes = self.find({kind: 'class', memberof: doc.longname});
|
||||
if (doc.kind !== 'globalobj' && classes && classes.length) {
|
||||
?>
|
||||
<h3 class="subsection-title">Classes</h3>
|
||||
|
||||
<dl><?js classes.forEach(function(c) { ?>
|
||||
<dt><?js= self.linkto(c.longname, c.name) ?></dt>
|
||||
<dd><?js if (c.summary) { ?><?js= c.summary ?><?js } ?></dd>
|
||||
<?js }); ?></dl>
|
||||
<?js } ?>
|
||||
|
||||
<?js
|
||||
var namespaces = self.find({kind: 'namespace', memberof: doc.longname});
|
||||
if (doc.kind !== 'globalobj' && namespaces && namespaces.length) {
|
||||
?>
|
||||
<h3 class="subsection-title">Namespaces</h3>
|
||||
|
||||
<dl><?js namespaces.forEach(function(n) { ?>
|
||||
<dt><a href="namespaces.html#<?js= n.longname ?>"><?js= self.linkto(n.longname, n.name) ?></a></dt>
|
||||
<dd><?js if (n.summary) { ?><?js= n.summary ?><?js } ?></dd>
|
||||
<?js }); ?></dl>
|
||||
<?js } ?>
|
||||
|
||||
<?js
|
||||
var members = self.find({kind: 'member', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
|
||||
if (members && members.length && members.forEach) {
|
||||
?>
|
||||
<h3 class="subsection-title">Members</h3>
|
||||
|
||||
<dl><?js members.forEach(function(p) { ?>
|
||||
<?js= self.partial('members.tmpl', p) ?>
|
||||
<?js }); ?></dl>
|
||||
<?js } ?>
|
||||
|
||||
<?js
|
||||
var methods = self.find({kind: 'function', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
|
||||
if (methods && methods.length && methods.forEach) {
|
||||
?>
|
||||
<h3 class="subsection-title">Methods</h3>
|
||||
|
||||
<dl><?js methods.forEach(function(m) { ?>
|
||||
<?js= self.partial('method.tmpl', m) ?>
|
||||
<?js }); ?></dl>
|
||||
<?js } ?>
|
||||
|
||||
<?js
|
||||
var typedefs = self.find({kind: 'typedef', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
|
||||
if (typedefs && typedefs.length && typedefs.forEach) {
|
||||
?>
|
||||
<h3 class="subsection-title">Type Definitions</h3>
|
||||
|
||||
<dl><?js typedefs.forEach(function(e) {
|
||||
if (e.signature) {
|
||||
?>
|
||||
<?js= self.partial('method.tmpl', e) ?>
|
||||
<?js
|
||||
}
|
||||
else {
|
||||
?>
|
||||
<?js= self.partial('members.tmpl', e) ?>
|
||||
<?js
|
||||
}
|
||||
}); ?></dl>
|
||||
<?js } ?>
|
||||
|
||||
<?js
|
||||
var events = self.find({kind: 'event', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
|
||||
if (events && events.length && events.forEach) {
|
||||
?>
|
||||
<h3 class="subsection-title">Events</h3>
|
||||
|
||||
<dl><?js events.forEach(function(e) { ?>
|
||||
<?js= self.partial('method.tmpl', e) ?>
|
||||
<?js }); ?></dl>
|
||||
<?js } ?>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
<?js } ?>
|
||||
|
||||
<?js }); ?>
|
98
build/doc_config/template/tmpl/details.tmpl
Normal file
98
build/doc_config/template/tmpl/details.tmpl
Normal file
|
@ -0,0 +1,98 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
var self = this;
|
||||
?>
|
||||
<dl class="details">
|
||||
<?js
|
||||
var properties = data.properties;
|
||||
if (properties && properties.length && properties.forEach) {
|
||||
?>
|
||||
|
||||
<h5 class="subsection-title">Properties:</h5>
|
||||
|
||||
<dl><?js= this.partial('properties.tmpl', properties) ?></dl>
|
||||
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.version) {?>
|
||||
<dt class="tag-version">Version:</dt>
|
||||
<dd class="tag-version"><ul class="dummy"><li><?js= version ?></li></ul></dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.since) {?>
|
||||
<dt class="tag-since">Since:</dt>
|
||||
<dd class="tag-since"><ul class="dummy"><li><?js= since ?></dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.inherited && data.inherits) { ?>
|
||||
<dt class="inherited-from">Inherited From:</dt>
|
||||
<dd class="inherited-from"><ul class="dummy"><li>
|
||||
<?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?>
|
||||
</li></dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.deprecated) { ?>
|
||||
<dt class="important tag-deprecated">Deprecated:</dt><?js
|
||||
if (data.deprecated === true) { ?><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd><?js }
|
||||
else { ?><dd><ul class="dummy"><li><?js= data.deprecated ?></li><ul></dd><?js }
|
||||
?>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.author && author.length) {?>
|
||||
<dt class="tag-author">Author:</dt>
|
||||
<dd class="tag-author">
|
||||
<ul><?js author.forEach(function(a) { ?>
|
||||
<li><?js= self.resolveAuthorLinks(a) ?></li>
|
||||
<?js }); ?></ul>
|
||||
</dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.copyright) {?>
|
||||
<dt class="tag-copyright">Copyright:</dt>
|
||||
<dd class="tag-copyright"><ul class="dummy"><li><?js= copyright ?></li></ul></dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.license) {?>
|
||||
<dt class="tag-license">License:</dt>
|
||||
<dd class="tag-license"><ul class="dummy"><li><?js= license ?></li></ul></dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.defaultvalue) {?>
|
||||
<dt class="tag-default">Default Value:</dt>
|
||||
<dd class="tag-default"><ul class="dummy"><li><?js= data.defaultvalue ?></li></ul></dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.meta) {?>
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<?js= self.linkto(meta.filename) ?><?js if (this.navOptions.linenums) {?>, <?js= self.linkto(meta.filename, 'line ' + meta.lineno, null, 'sunlight-1-line-' + meta.lineno) ?><?js } ?>
|
||||
</li></ul></dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.tutorials && tutorials.length) {?>
|
||||
<dt class="tag-tutorial">Tutorials:</dt>
|
||||
<dd class="tag-tutorial">
|
||||
<ul><?js tutorials.forEach(function(t) { ?>
|
||||
<li><?js= self.tutoriallink(t) ?></li>
|
||||
<?js }); ?></ul>
|
||||
</dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.see && see.length) {?>
|
||||
<dt class="tag-see">See:</dt>
|
||||
<dd class="tag-see">
|
||||
<ul><?js see.forEach(function(s) { ?>
|
||||
<li><?js= self.linkto(s) ?></li>
|
||||
<?js }); ?></ul>
|
||||
</dd>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.todo && todo.length) {?>
|
||||
<dt class="tag-todo">To Do:</dt>
|
||||
<dd class="tag-todo">
|
||||
<ul><?js todo.forEach(function(t) { ?>
|
||||
<li><?js= t ?></li>
|
||||
<?js }); ?></ul>
|
||||
</dd>
|
||||
<?js } ?>
|
||||
</dl>
|
2
build/doc_config/template/tmpl/example.tmpl
Normal file
2
build/doc_config/template/tmpl/example.tmpl
Normal file
|
@ -0,0 +1,2 @@
|
|||
<?js var data = obj; ?>
|
||||
<pre class="sunlight-highlight-javascript"><?js= data ?></pre>
|
11
build/doc_config/template/tmpl/examples.tmpl
Normal file
11
build/doc_config/template/tmpl/examples.tmpl
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
data.forEach(function(example) {
|
||||
if (example.caption) {
|
||||
?>
|
||||
<p class="code-caption"><?js= example.caption ?></p>
|
||||
<?js } ?>
|
||||
<pre class="sunlight-highlight-javascript"><?js= example.code ?></pre>
|
||||
<?js
|
||||
});
|
||||
?>
|
30
build/doc_config/template/tmpl/exceptions.tmpl
Normal file
30
build/doc_config/template/tmpl/exceptions.tmpl
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
?>
|
||||
<?js if (data.description && data.type && data.type.names) { ?>
|
||||
<dl>
|
||||
<dt>
|
||||
<div class="param-desc">
|
||||
<?js= data.description ?>
|
||||
</div>
|
||||
</dt>
|
||||
<dt>
|
||||
<dl>
|
||||
<dt>
|
||||
Type
|
||||
</dt>
|
||||
<dd>
|
||||
<?js= this.partial('type.tmpl', data.type.names) ?>
|
||||
</dd>
|
||||
</dl>
|
||||
</dt>
|
||||
</dl>
|
||||
<?js } else { ?>
|
||||
<div class="param-desc">
|
||||
<?js if (data.description) { ?>
|
||||
<?js= data.description ?>
|
||||
<?js } else if (data.type && data.type.names) { ?>
|
||||
<?js= this.partial('type.tmpl', data.type.names) ?>
|
||||
<?js } ?>
|
||||
</div>
|
||||
<?js } ?>
|
4
build/doc_config/template/tmpl/fires.tmpl
Normal file
4
build/doc_config/template/tmpl/fires.tmpl
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?js var data = obj; ?>
|
||||
<li>
|
||||
<?js= data ?>
|
||||
</li>
|
142
build/doc_config/template/tmpl/layout.tmpl
Normal file
142
build/doc_config/template/tmpl/layout.tmpl
Normal file
|
@ -0,0 +1,142 @@
|
|||
<!DOCTYPE html>
|
||||
<?js var that = this; ?>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><?js= this.navOptions.systemName ?> <?js= title ?></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">
|
||||
|
||||
<?js if (this.navOptions.theme === "darkstrap"){ ?>
|
||||
<link type="text/css" rel="stylesheet" href="styles/site.cyborg.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/darkstrap.css">
|
||||
<?js } else { ?>
|
||||
<link type="text/css" rel="stylesheet" href="styles/site.<?js= this.navOptions.theme ?>.css">
|
||||
<?js } ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="navbar navbar-fixed-top <?js= this.navOptions.inverseNav ? 'navbar-inverse' : '' ?>">
|
||||
<div class="navbar-inner">
|
||||
<a class="brand" href="<?js= this.nav.index.link ?>"><?js= this.nav.index.title ?></a>
|
||||
<ul class="nav">
|
||||
<?js this.nav.topLevelNav.forEach(function(entry){ ?>
|
||||
<li class="dropdown">
|
||||
<a href="<?js= entry.link ?>" class="dropdown-toggle" data-toggle="dropdown"><?js= entry.title ?><b
|
||||
class="caret"></b></a>
|
||||
|
||||
<ul class="dropdown-menu <?js= that.navOptions.navType ==='inline' ? 'inline' : '' ?>">
|
||||
<?js entry.members.forEach(function(member){ ?>
|
||||
<li>
|
||||
<?js= member ?>
|
||||
</li>
|
||||
<?js }); ?>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<?js }); ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row-fluid">
|
||||
|
||||
<?js if(docs && docs[0].kind !== "source"){ ?>
|
||||
<div class="span8">
|
||||
<?js }else{ ?>
|
||||
<div class="span12">
|
||||
<?js } ?>
|
||||
<div id="main">
|
||||
<?js= content ?>
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<footer>
|
||||
<?js if (that.navOptions.footer.length > 0){ ?>
|
||||
<?js= that.navOptions.footer ?>
|
||||
<br />
|
||||
<?js } ?>
|
||||
<?js if (that.navOptions.copyright.length > 0){ ?>
|
||||
<span class="copyright">
|
||||
<?js= that.navOptions.copyright ?>
|
||||
</span>
|
||||
<br />
|
||||
<?js } ?>
|
||||
<span class="jsdoc-message">
|
||||
Documentation generated on <?js= (new Date()) ?>.
|
||||
</span>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<?js if(docs && docs[0].kind !== "source"){ ?>
|
||||
<div class="span3">
|
||||
<div id="toc"></div>
|
||||
</div>
|
||||
<?js } ?>
|
||||
<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:<?js= this.navOptions.linenums ?>, 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>
|
||||
|
||||
<?js if (this.navOptions.collapseSymbols) { ?>
|
||||
<script>
|
||||
$( function () {
|
||||
$('#main').localScroll({
|
||||
offset: { top: 56 } //offset by the height of your header (give or take a few px, see what works for you)
|
||||
});
|
||||
$( "dt h4.name" ).each( function () {
|
||||
var $this = $( this );
|
||||
var icon = $( "<i/>" ).addClass( "icon-plus-sign" ).addClass( "pull-right" ).addClass( "icon-white" );
|
||||
var dt = $this.parents( "dt" );
|
||||
var children = dt.next( "dd" );
|
||||
|
||||
$this.append( icon ).css( {cursor : "pointer"} );
|
||||
$this.addClass( "member-collapsed" ).addClass( "member" );
|
||||
|
||||
children.hide();
|
||||
$this.toggle( function () {
|
||||
icon.addClass( "icon-minus-sign" ).removeClass( "icon-plus-sign" ).removeClass( "icon-white" );
|
||||
$this.addClass( "member-open" ).removeClass( "member-collapsed" );
|
||||
children.slideDown();
|
||||
}, function () {
|
||||
icon.addClass( "icon-plus-sign" ).removeClass( "icon-minus-sign" ).addClass( "icon-white" );
|
||||
$this.addClass( "member-collapsed" ).removeClass( "member-open" );
|
||||
children.slideUp();
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
</script>
|
||||
<?js } ?>
|
||||
|
||||
</body>
|
||||
</html>
|
15
build/doc_config/template/tmpl/mainpage.tmpl
Normal file
15
build/doc_config/template/tmpl/mainpage.tmpl
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
var self = this;
|
||||
?>
|
||||
|
||||
|
||||
<?js if (data.kind === 'package' && (data.name ||data.version)) { ?>
|
||||
<h3><?js= data.name ?> <?js= data.version ?></h3>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.readme) { ?>
|
||||
<section>
|
||||
<article><?js= data.readme ?></article>
|
||||
</section>
|
||||
<?js } ?>
|
34
build/doc_config/template/tmpl/members.tmpl
Normal file
34
build/doc_config/template/tmpl/members.tmpl
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
var self = this;
|
||||
?>
|
||||
<dt>
|
||||
<h4 class="name" id="<?js= id ?>"><?js= data.attribs + name + (data.signature ? data.signature : '') ?></h4>
|
||||
|
||||
<?js if (data.summary) { ?>
|
||||
<p class="summary"><?js= summary ?></p>
|
||||
<?js } ?>
|
||||
</dt>
|
||||
<dd>
|
||||
<?js if (data.description) { ?>
|
||||
<div class="description">
|
||||
<?js= data.description ?>
|
||||
</div>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.type && data.type.names) {?>
|
||||
<h5>Type:</h5>
|
||||
<ul>
|
||||
<li>
|
||||
<?js= self.partial('type.tmpl', data.type.names) ?>
|
||||
</li>
|
||||
</ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js= this.partial('details.tmpl', data) ?>
|
||||
|
||||
<?js if (data.examples && examples.length) { ?>
|
||||
<h5>Example<?js= examples.length > 1? 's':'' ?></h5>
|
||||
<?js= this.partial('examples.tmpl', examples) ?>
|
||||
<?js } ?>
|
||||
</dd>
|
90
build/doc_config/template/tmpl/method.tmpl
Normal file
90
build/doc_config/template/tmpl/method.tmpl
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
var self = this;
|
||||
?>
|
||||
<dt>
|
||||
<h4 class="name" id="<?js= id ?>"><?js= data.attribs + (kind === 'class' ? 'new ' : '') + name + (kind !== 'event' ? data.signature : '') ?></h4>
|
||||
|
||||
<?js if (data.summary) { ?>
|
||||
<p class="summary"><?js= summary ?></p>
|
||||
<?js } ?>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<?js if (data.description) { ?>
|
||||
<div class="description">
|
||||
<?js= data.description ?>
|
||||
</div>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (kind === 'event' && data.type && data.type.names) {?>
|
||||
<h5>Type:</h5>
|
||||
<ul>
|
||||
<li>
|
||||
<?js= self.partial('type.tmpl', data.type.names) ?>
|
||||
</li>
|
||||
</ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data['this']) { ?>
|
||||
<h5>This:</h5>
|
||||
<ul><li><?js= this.linkto(data['this'], data['this']) ?></li></ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.params && params.length) { ?>
|
||||
<h5>Parameters:</h5>
|
||||
<?js= this.partial('params.tmpl', params) ?>
|
||||
<?js } ?>
|
||||
|
||||
<?js= this.partial('details.tmpl', data) ?>
|
||||
|
||||
<?js if (data.fires && fires.length) { ?>
|
||||
<h5>Fires:</h5>
|
||||
<ul><?js fires.forEach(function(f) { ?>
|
||||
<li><?js= self.linkto(f) ?></li>
|
||||
<?js }); ?></ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.listens && listens.length) { ?>
|
||||
<h5>Listens to Events:</h5>
|
||||
<ul><?js listens.forEach(function(f) { ?>
|
||||
<li><?js= self.linkto(f) ?></li>
|
||||
<?js }); ?></ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.listeners && listeners.length) { ?>
|
||||
<h5>Listeners of This Event:</h5>
|
||||
<ul><?js listeners.forEach(function(f) { ?>
|
||||
<li><?js= self.linkto(f) ?></li>
|
||||
<?js }); ?></ul>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.exceptions && exceptions.length) { ?>
|
||||
<h5>Throws:</h5>
|
||||
<?js if (exceptions.length > 1) { ?><ul><?js
|
||||
exceptions.forEach(function(r) { ?>
|
||||
<li><?js= self.partial('exceptions.tmpl', r) ?></li>
|
||||
<?js });
|
||||
?></ul><?js } else {
|
||||
exceptions.forEach(function(r) { ?>
|
||||
<?js= self.partial('exceptions.tmpl', r) ?>
|
||||
<?js });
|
||||
} } ?>
|
||||
|
||||
<?js if (data.returns && returns.length) { ?>
|
||||
<h5>Returns:</h5>
|
||||
<?js if (returns.length > 1) { ?><ul><?js
|
||||
returns.forEach(function(r) { ?>
|
||||
<li><?js= self.partial('returns.tmpl', r) ?></li>
|
||||
<?js });
|
||||
?></ul><?js } else {
|
||||
returns.forEach(function(r) { ?>
|
||||
<?js= self.partial('returns.tmpl', r) ?>
|
||||
<?js });
|
||||
} } ?>
|
||||
|
||||
<?js if (data.examples && examples.length) { ?>
|
||||
<h5>Example<?js= examples.length > 1? 's':'' ?></h5>
|
||||
<?js= this.partial('examples.tmpl', examples) ?>
|
||||
<?js } ?>
|
||||
</dd>
|
112
build/doc_config/template/tmpl/params.tmpl
Normal file
112
build/doc_config/template/tmpl/params.tmpl
Normal file
|
@ -0,0 +1,112 @@
|
|||
<?js
|
||||
var params = obj;
|
||||
|
||||
/* sort subparams under their parent params (like opts.classname) */
|
||||
var parentParam = null;
|
||||
params.forEach(function(param, i) {
|
||||
if (!param) { return; }
|
||||
if ( parentParam && param.name && param.name.indexOf(parentParam.name + '.') === 0 ) {
|
||||
param.name = param.name.substr(parentParam.name.length+1);
|
||||
parentParam.subparams = parentParam.subparams || [];
|
||||
parentParam.subparams.push(param);
|
||||
params[i] = null;
|
||||
}
|
||||
else {
|
||||
parentParam = param;
|
||||
}
|
||||
});
|
||||
|
||||
/* determine if we need extra columns, "attributes" and "default" */
|
||||
params.hasAttributes = false;
|
||||
params.hasDefault = false;
|
||||
params.hasName = false;
|
||||
|
||||
params.forEach(function(param) {
|
||||
if (!param) { return; }
|
||||
|
||||
if (param.optional || param.nullable || param.variable) {
|
||||
params.hasAttributes = true;
|
||||
}
|
||||
|
||||
if (param.name) {
|
||||
params.hasName = true;
|
||||
}
|
||||
|
||||
if (typeof param.defaultvalue !== 'undefined') {
|
||||
params.hasDefault = true;
|
||||
}
|
||||
});
|
||||
?>
|
||||
|
||||
<table class="params table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<?js if (params.hasName) {?>
|
||||
<th>Name</th>
|
||||
<?js } ?>
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
<?js if (params.hasAttributes) {?>
|
||||
<th>Argument</th>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (params.hasDefault) {?>
|
||||
<th>Default</th>
|
||||
<?js } ?>
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?js
|
||||
var self = this;
|
||||
params.forEach(function(param) {
|
||||
if (!param) { return; }
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<?js if (params.hasName) {?>
|
||||
<td class="name"><code><?js= param.name ?></code></td>
|
||||
<?js } ?>
|
||||
|
||||
<td class="type">
|
||||
<?js if (param.type && param.type.names) {?>
|
||||
<?js= self.partial('type.tmpl', param.type.names) ?>
|
||||
<?js } ?>
|
||||
</td>
|
||||
|
||||
<?js if (params.hasAttributes) {?>
|
||||
<td class="attributes">
|
||||
<?js if (param.optional) { ?>
|
||||
<optional><br>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (param.nullable) { ?>
|
||||
<nullable><br>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (param.variable) { ?>
|
||||
<repeatable><br>
|
||||
<?js } ?>
|
||||
</td>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (params.hasDefault) {?>
|
||||
<td class="default">
|
||||
<?js if (typeof param.defaultvalue !== 'undefined') { ?>
|
||||
<?js= self.htmlsafe(param.defaultvalue) ?>
|
||||
<?js } ?>
|
||||
</td>
|
||||
<?js } ?>
|
||||
|
||||
<td class="description last"><?js= param.description ?><?js if (param.subparams) { ?>
|
||||
<h6>Properties</h6>
|
||||
<?js= self.partial('params.tmpl', param.subparams) ?>
|
||||
<?js } ?></td>
|
||||
</tr>
|
||||
|
||||
<?js }); ?>
|
||||
</tbody>
|
||||
</table>
|
107
build/doc_config/template/tmpl/properties.tmpl
Normal file
107
build/doc_config/template/tmpl/properties.tmpl
Normal file
|
@ -0,0 +1,107 @@
|
|||
<?js
|
||||
var props = obj;
|
||||
|
||||
/* sort subprops under their parent props (like opts.classname) */
|
||||
var parentProp = null;
|
||||
props.forEach(function(prop, i) {
|
||||
if (!prop) { return; }
|
||||
if ( parentProp && prop.name && prop.name.indexOf(parentProp.name + '.') === 0 ) {
|
||||
prop.name = prop.name.substr(parentProp.name.length+1);
|
||||
parentProp.subprops = parentProp.subprops || [];
|
||||
parentProp.subprops.push(prop);
|
||||
props[i] = null;
|
||||
}
|
||||
else {
|
||||
parentProp = prop;
|
||||
}
|
||||
});
|
||||
|
||||
/* determine if we need extra columns, "attributes" and "default" */
|
||||
props.hasAttributes = false;
|
||||
props.hasDefault = false;
|
||||
props.hasName = false;
|
||||
|
||||
props.forEach(function(prop) {
|
||||
if (!prop) { return; }
|
||||
|
||||
if (prop.optional || prop.nullable) {
|
||||
props.hasAttributes = true;
|
||||
}
|
||||
|
||||
if (prop.name) {
|
||||
props.hasName = true;
|
||||
}
|
||||
|
||||
if (typeof prop.defaultvalue !== 'undefined') {
|
||||
props.hasDefault = true;
|
||||
}
|
||||
});
|
||||
?>
|
||||
|
||||
<table class="props table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<?js if (props.hasName) {?>
|
||||
<th>Name</th>
|
||||
<?js } ?>
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
<?js if (props.hasAttributes) {?>
|
||||
<th>Argument</th>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (props.hasDefault) {?>
|
||||
<th>Default</th>
|
||||
<?js } ?>
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?js
|
||||
var self = this;
|
||||
props.forEach(function(prop) {
|
||||
if (!prop) { return; }
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<?js if (props.hasName) {?>
|
||||
<td class="name"><code><?js= prop.name ?></code></td>
|
||||
<?js } ?>
|
||||
|
||||
<td class="type">
|
||||
<?js if (prop.type && prop.type.names) {?>
|
||||
<?js= self.partial('type.tmpl', prop.type.names) ?>
|
||||
<?js } ?>
|
||||
</td>
|
||||
|
||||
<?js if (props.hasAttributes) {?>
|
||||
<td class="attributes">
|
||||
<?js if (prop.optional) { ?>
|
||||
<optional><br>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (prop.nullable) { ?>
|
||||
<nullable><br>
|
||||
<?js } ?>
|
||||
</td>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (props.hasDefault) {?>
|
||||
<td class="default">
|
||||
<?js if (typeof prop.defaultvalue !== 'undefined') { ?>
|
||||
<?js= self.htmlsafe(prop.defaultvalue) ?>
|
||||
<?js } ?>
|
||||
</td>
|
||||
<?js } ?>
|
||||
|
||||
<td class="description last"><?js= prop.description ?><?js if (prop.subprops) { ?>
|
||||
<h6>Properties</h6><?js= self.partial('properties.tmpl', prop.subprops) ?>
|
||||
<?js } ?></td>
|
||||
</tr>
|
||||
|
||||
<?js }); ?>
|
||||
</tbody>
|
||||
</table>
|
19
build/doc_config/template/tmpl/returns.tmpl
Normal file
19
build/doc_config/template/tmpl/returns.tmpl
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
if (data.description) {
|
||||
?>
|
||||
<div class="param-desc">
|
||||
<?js= description ?>
|
||||
</div>
|
||||
<?js } ?>
|
||||
|
||||
<?js if (data.type && data.type.names) {?>
|
||||
<dl>
|
||||
<dt>
|
||||
Type
|
||||
</dt>
|
||||
<dd>
|
||||
<?js= this.partial('type.tmpl', data.type.names) ?>
|
||||
</dd>
|
||||
</dl>
|
||||
<?js } ?>
|
5
build/doc_config/template/tmpl/sections.tmpl
Normal file
5
build/doc_config/template/tmpl/sections.tmpl
Normal file
|
@ -0,0 +1,5 @@
|
|||
<div class="hero-unit">
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
|
||||
</ul>
|
||||
</div>
|
8
build/doc_config/template/tmpl/source.tmpl
Normal file
8
build/doc_config/template/tmpl/source.tmpl
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
?>
|
||||
<section>
|
||||
<article>
|
||||
<pre class="sunlight-highlight-javascript <?js= this.navOptions.linenums ? 'linenums' : '' ?>"><?js= data.code ?></pre>
|
||||
</article>
|
||||
</section>
|
19
build/doc_config/template/tmpl/tutorial.tmpl
Normal file
19
build/doc_config/template/tmpl/tutorial.tmpl
Normal file
|
@ -0,0 +1,19 @@
|
|||
<section>
|
||||
|
||||
<header>
|
||||
<?js if (children.length > 0) { ?>
|
||||
<ul><?js
|
||||
var self = this;
|
||||
children.forEach(function(t) { ?>
|
||||
<li><?js= self.tutoriallink(t.name) ?></li>
|
||||
<?js }); ?></ul>
|
||||
<?js } ?>
|
||||
|
||||
<h2><?js= header ?></h2>
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<?js= content ?>
|
||||
</article>
|
||||
|
||||
</section>
|
7
build/doc_config/template/tmpl/type.tmpl
Normal file
7
build/doc_config/template/tmpl/type.tmpl
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?js
|
||||
var data = obj;
|
||||
var self = this;
|
||||
data.forEach(function(name, i) { ?>
|
||||
<span class="param-type"><?js= self.linkto(name, self.htmlsafe(name)) ?></span>
|
||||
<?js if (i < data.length-1) { ?>|<?js } ?>
|
||||
<?js }); ?>
|
8594
doc/Tone.Add.html
8594
doc/Tone.Add.html
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1894
doc/Tone.DryWet.html
1894
doc/Tone.DryWet.html
File diff suppressed because it is too large
Load diff
10445
doc/Tone.Envelope.html
10445
doc/Tone.Envelope.html
File diff suppressed because it is too large
Load diff
6954
doc/Tone.LFO.html
6954
doc/Tone.LFO.html
File diff suppressed because it is too large
Load diff
8465
doc/Tone.Merge.html
8465
doc/Tone.Merge.html
File diff suppressed because it is too large
Load diff
5848
doc/Tone.Meter.html
5848
doc/Tone.Meter.html
File diff suppressed because it is too large
Load diff
10493
doc/Tone.Microphone.html
10493
doc/Tone.Microphone.html
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
10998
doc/Tone.Noise.html
10998
doc/Tone.Noise.html
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
6111
doc/Tone.Panner.html
6111
doc/Tone.Panner.html
File diff suppressed because it is too large
Load diff
11485
doc/Tone.Player.html
11485
doc/Tone.Player.html
File diff suppressed because it is too large
Load diff
10313
doc/Tone.Recorder.html
10313
doc/Tone.Recorder.html
File diff suppressed because it is too large
Load diff
10310
doc/Tone.Scale.html
10310
doc/Tone.Scale.html
File diff suppressed because it is too large
Load diff
10804
doc/Tone.Signal.html
10804
doc/Tone.Signal.html
File diff suppressed because it is too large
Load diff
6304
doc/Tone.Source.html
6304
doc/Tone.Source.html
File diff suppressed because it is too large
Load diff
8393
doc/Tone.Split.html
8393
doc/Tone.Split.html
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
7919
doc/Tone.html
7919
doc/Tone.html
File diff suppressed because it is too large
Load diff
3744
doc/Tone.js.html
3744
doc/Tone.js.html
File diff suppressed because it is too large
Load diff
392
doc/index.html
392
doc/index.html
|
@ -1,63 +1,331 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Index</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Index</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3> </h3>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="Tone.html">Tone</a></li><li><a href="Tone.Add.html">Add</a></li><li><a href="Tone.AutoPanner.html">AutoPanner</a></li><li><a href="Tone.BitCrusher.html">BitCrusher</a></li><li><a href="Tone.DryWet.html">DryWet</a></li><li><a href="Tone.Envelope.html">Envelope</a></li><li><a href="Tone.LFO.html">LFO</a></li><li><a href="Tone.Merge.html">Merge</a></li><li><a href="Tone.Meter.html">Meter</a></li><li><a href="Tone.Microphone.html">Microphone</a></li><li><a href="Tone.Multiply.html">Multiply</a></li><li><a href="Tone.Noise.html">Noise</a></li><li><a href="Tone.Oscillator.html">Oscillator</a></li><li><a href="Tone.Panner.html">Panner</a></li><li><a href="Tone.Player.html">Player</a></li><li><a href="Tone.Recorder.html">Recorder</a></li><li><a href="Tone.Scale.html">Scale</a></li><li><a href="Tone.Signal.html">Signal</a></li><li><a href="Tone.Source.html">Source</a></li><li><a href="Tone.Split.html">Split</a></li><li><a href="Tone.Transport.html">Transport</a></li></ul><h3>Global</h3><ul><li><a href="global.html#for the default output">for the default output</a></li><li>{GainNode}</li></ul>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Jun 20 2014 11:03:19 GMT-0400 (EDT)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Tone.js 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.flatly.css">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="navbar navbar-fixed-top navbar-inverse">
|
||||
<div class="navbar-inner">
|
||||
<a class="brand" href="index.html">Tone.js</a>
|
||||
<ul class="nav">
|
||||
|
||||
<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="Tone.html">Tone</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Add.html">Add</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.AutoPanner.html">AutoPanner</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.BitCrusher.html">BitCrusher</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.DryWet.html">DryWet</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Effect.html">Effect</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Envelope.html">Envelope</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.FeedbackDelay.html">FeedbackDelay</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.FeedbackEffect.html">FeedbackEffect</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.LFO.html">LFO</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Merge.html">Merge</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Meter.html">Meter</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Microphone.html">Microphone</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Multiply.html">Multiply</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Noise.html">Noise</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Oscillator.html">Oscillator</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Panner.html">Panner</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.PingPongDelay.html">PingPongDelay</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Player.html">Player</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Recorder.html">Recorder</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Scale.html">Scale</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Signal.html">Signal</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Source.html">Source</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Split.html">Split</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="Tone.Transport.html">Transport</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>Tone.js</h1>
|
||||
<p>A collection of building blocks extending and wrapping the Web Audio API. </p>
|
||||
<h1>Installation</h1>
|
||||
<p>Tone.js can be used with or without require.js</p>
|
||||
<h3>require.js</h3>
|
||||
<p>There are a couple ways to use the tone library with require.js and r.js. </p>
|
||||
<p>You can include the Tone.js build (located in the build folder), as one of the deps in your require.config</p>
|
||||
<pre><code class="lang-javascript">require.config({
|
||||
baseUrl: './base',
|
||||
deps : ["../deps/Tone.js/build/Tone"],
|
||||
});</code></pre>
|
||||
<p>or alternatively, keep the directory structure the same and make a path which points to the Tone directory</p>
|
||||
<pre><code class="lang-javascript">require.config({
|
||||
baseUrl: './base',
|
||||
paths: {
|
||||
"Tone" : "../deps/Tone.js/Tone"
|
||||
}
|
||||
});</code></pre>
|
||||
<h3>without require.js</h3>
|
||||
<p>To use Tone.js without require, just add the build source (located at build/Tone.js) to the top of your html page. Tone will add itself as a global. </p>
|
||||
<pre><code class="lang-html"><script type="text/javascript" src="../build/Tone.js"></script></code></pre>
|
||||
<h1>API</h1>
|
||||
<h2>Tone()</h2>
|
||||
<p>Tone is the base-class of all ToneNode's</p>
|
||||
<h3>Properties</h3>
|
||||
<h4>.input {GainNode}</h4>
|
||||
<p>Connect all inputs to a ToneNode to the Node's input.</p>
|
||||
<h4>.output {GainNode}</h4>
|
||||
<p>A GainNode which is the output of all of the processing that occurs within the ToneNode</p>
|
||||
<h4>.context {AudioContext}</h4>
|
||||
<p>A reference to the AudioContext. It is also available globally as Tone.context</p>
|
||||
<h3>Methods</h3>
|
||||
<h4>.connect(node)</h4>
|
||||
<ul>
|
||||
<li>node - {AudioNode | AudioParam | ToneNode}</li>
|
||||
</ul>
|
||||
<p>Connects the node's output to the next node. If it is a ToneNode it will automatically connect to that Node's .input </p>
|
||||
<h4>.now() {number}</h4>
|
||||
<ul>
|
||||
<li>returns context.currentTime</li>
|
||||
</ul>
|
||||
<h2>Master</h2>
|
||||
<p>Tone.Master is a single master output which connects to context.destination (the speakers). Before going to the DestinationNode, audio is run through a limiter (a DynamicsCompressorNode with threshold of 0db and a high ratio) to reduce the chances of blowing any ear drums. </p>
|
||||
<h4>.toMaster()</h4>
|
||||
<p>.toMaster() can be called on any AudioNode or ToneNode and will send the output audio to the Master channel. </p>
|
||||
<h2>Transport</h2>
|
||||
<p>The Transport allows events to be triggered along a musical timeline. The clock-source is bound to an Oscillator which allows for smooth tempo-curving and sample-accurate timing. </p>
|
||||
<h3>Properties</h3>
|
||||
<h4>.state {string}</h4>
|
||||
<p>The current state of the transport ('stopped' | 'started' | 'paused')</p>
|
||||
<h4>.loop {boolean}</h4>
|
||||
<p>Set the transport to loop over a section</p>
|
||||
<h3>Methods</h3>
|
||||
<h4>.setBpm(bpm)</h4>
|
||||
<ul>
|
||||
<li>bpm - {number} the new tempo in beats per minute</li>
|
||||
</ul>
|
||||
<h4>.getBpm()</h4>
|
||||
<ul>
|
||||
<li>returns - {number} the current bpm</li>
|
||||
</ul>
|
||||
<h4>.setInterval(callback, interval, context) {Timeout}</h4>
|
||||
<ul>
|
||||
<li>callback - in the form: function(number)</li>
|
||||
<li>interval - {number | Notation | TransportTime} see <a href="#timing-and-musical-notation">Timing and Musical Notation</a> for more information about timing in Tone.js</li>
|
||||
<li>context - {Object=} optional context in which the callback is invoked</li>
|
||||
<li>returns - a timeout which can be used to clear the interval</li>
|
||||
</ul>
|
||||
<p>.setInterval is used for repeat events. The callback is invoked before the event will occur and is passed the exact event time as a parameter</p>
|
||||
<pre><code class="lang-javascript">Tone.Transport.setInterval(function(time){
|
||||
samplePlayer.start(time);
|
||||
}, "4n");</code></pre>
|
||||
<h4>.setTimeout(callback, timeoutTime, context) {Timeout}</h4>
|
||||
<ul>
|
||||
<li>callback - in the form: function(number)</li>
|
||||
<li>timeoutTime - {number | Notation | TransportTime} see <a href="#timing-and-musical-notation">Timing and Musical Notation</a> for more information about timing in Tone.js</li>
|
||||
<li>context - {Object=} optional context in which the callback is invoked</li>
|
||||
<li>returns - a timeout which can be used to clear the timeout</li>
|
||||
</ul>
|
||||
<p>.setTimeout is similar to .setInterval but for single occurance events. </p>
|
||||
<pre><code class="lang-javascript">Tone.Transport.setTimeout(function(time){
|
||||
samplePlayer.start(time);
|
||||
}, "1:0:2");</code></pre>
|
||||
<h1>Timing and Musical Notation</h1>
|
||||
<p>All ToneNodes that accept a time as an argument can parse that time in a few ways. </p>
|
||||
<h4>'now' relative timing</h4>
|
||||
<p>A timing value preceeded by a "+" will be now-relative meaning that the time will be added to the context's currentTime. </p>
|
||||
<pre><code class="lang-javascript">oscillator.start("+1") //starts exactly 1 second from now</code></pre>
|
||||
<h4>Notation</h4>
|
||||
<p>Timing can also be described in musical notation. A quarter-note is notated as "4n" and a sixteenth-note triplet is notated as "16t". Three measures is "3m". The tempo and time signature is set by Tone.Transport. This can be combined with now-relative timing. </p>
|
||||
<pre><code class="lang-javascript">lfo.setFrequency("4n") //oscillates at the rate of a quarter note</code></pre>
|
||||
<h4>Transport Time</h4>
|
||||
<p>Transport Time is described measures:quater-notes:sixteenth-notes. </p>
|
||||
<pre><code class="lang-javascript">//Start the chorus 32 measures after the start of the Transport
|
||||
Tone.Transport.setTimeline(startChorus, "32:0:0");</code></pre></article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<footer>
|
||||
|
||||
|
||||
<span class="copyright">
|
||||
Tone No Tone Copyright © 2014.
|
||||
</span>
|
||||
<br />
|
||||
|
||||
<span class="jsdoc-message">
|
||||
Documentation generated on Sat Jun 21 2014 22:54:27 GMT-0400 (EDT).
|
||||
</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>
|
Loading…
Reference in a new issue