json is now the default tilemap format when not defined (thanks RyanDansie, #528)

Updated docstrap
This commit is contained in:
photonstorm 2014-03-10 00:50:06 +00:00
parent ab6a9aab41
commit c73b4eaea0
24 changed files with 171 additions and 909 deletions

View file

@ -87,6 +87,7 @@ Significant API changes:
* All the Debug methods have had the word 'render' removed from the start. So where you did `debug.renderSpriteInfo` before, it's now just `debug.spriteInfo`.
* Debug methods that rendered geometry (Rectangle, Circle, Line, Point) have been merged into the single method: `Debug.geom`.
* Animation.looped has been renamed to Animation.loop. It's a boolean you can toggle at run-time to turn on/off animation looping.
* Sprite.damage will now kill the Sprite if health is less than or equal to 0 (before it would only kill if less than zero)
New features:
@ -144,6 +145,7 @@ New features:
* Group.xy(index, x, y) allows you to set the x and y coordinates of a Group child at the given index.
* Group.reverse() reverses the display order of all children in the Group.
* Tweens are now bound to their own TweenManager, not always the global game one. So you can create your own managers now (for you clark :)
* json is now the default tilemap format when not defined (thanks RyanDansie, #528)
Updates:

View file

@ -1,12 +1,12 @@
{
"name": "phaser",
"version": "1.1.5",
"version": "2.0.0",
"homepage": "http://phaser.io",
"authors": [
"photonstorm <rich@photonstorm.com>"
],
"description": "A fun, free and fast 2D game framework for making HTML5 games for desktop and mobile, supporting Canvas and WebGL.",
"main": "build/phaser.min.js",
"main": "build/phaser.js",
"keywords": [
"html5",
"game",

View file

@ -1,11 +0,0 @@
node_modules*
components*
*.map
.idea*
ringojs-0.9*
dox*
testdocs*
themes*

View file

@ -1,6 +0,0 @@
node_modules*
components*
*.map
.idea*
npm-debug.log

View file

@ -1,364 +0,0 @@
"use strict";
/**
* @fileOverview Gruntfile tasks. These tasks are intended to help you when modifying the template. If you are
* just using the template, don't sweat this stuff. To use these tasks, you must install grunt, if you haven't already,
* and install the dependencies. All of this requires node.js, of course.
*
* Install grunt:
*
* npm install -g grunt-cli
*
* Then in the directory where you found this file:
*
* npm install
*
* And you are all set. See the individual tasks for details.
*
* @module Gruntfile
* @requires path
* @requires lodash
* @requires http
* @requires async
* @requires fs
*/
var path = require( "path" );
var sys = require( "lodash" );
var http = require( "http" );
var async = require( "async" );
var fs = require( "fs" );
// this rather odd arrangement of composing tasks like this to make sure this works on both
// windows and linux correctly. We can't depend on Grunt or Node to normalize
// paths for us because we shell out to make this work. So we gather up
// our relative paths here, normalize them later and then pass them into
// the shell to be run by JSDoc3.
/**
* The definition to run the development test files. This runs the files in `fixtures` with the
* project's `conf.json` file.
* @private
*/
var jsdocTestPages = {
src : ["./fixtures/*.js", "./README.md"],
dest : "./testdocs",
tutorials : "./fixtures/tutorials",
template : "./template",
config : "./template/jsdoc.conf.json",
options : " --lenient --verbose"
};
/**
* The definition to run the sample files. This runs the files in `fixtures` with the
* sample's `conf.json` file. No task directly exposes this configuration. The `fixtures` task
* modifies this for each swatch it finds and then run the docs command against it.
* @private
*/
var jsdocExamplePages = {
src : ["./fixtures/*.js", "./README.md"],
dest : "./themes",
tutorials : "",
template : "./template",
config : "./fixtures/example.conf.json",
options : " --lenient --verbose --recurse"
};
/**
* This definition provides the project's main, published documentation.
* @private
*/
var projectDocs = {
src : ["./Gruntfile*.js", "./README.md", "./template/publish.js"],
dest : "./dox",
tutorials : "",
template : "./template",
config : "./template/jsdoc.conf.json",
options : " --lenient --verbose --recurse --private"
};
/**
* Normalizes all paths from a JSDoc task definition and and returns an executable string that can be passed to the shell.
* @param {object} jsdoc A JSDoc definition
* @returns {string}
*/
function jsdocCommand( jsdoc ) {
var cmd = [];
cmd.unshift( jsdoc.options );
if ( jsdoc.tutorials.length > 0 ) {
cmd.push( "-u " + path.resolve( jsdoc.tutorials ) );
}
cmd.push( "-d " + path.resolve( jsdoc.dest ) );
cmd.push( "-t " + path.resolve( jsdoc.template ) );
cmd.push( "-c " + path.resolve( jsdoc.config ) );
sys.each( jsdoc.src, function ( src ) {
cmd.push( path.resolve( src ) );
} );
cmd.unshift( path.resolve( "./node_modules/jsdoc/jsdoc" ) );
return cmd.join( " " );
}
var tasks = {
shell : {
options : {
stdout : true,
stderr : true
},
/**
* TASK: Create the a documentation set for testing changes to the template
* @name shell:testdocs
* @memberOf module:Gruntfile
*/
testdocs : {
command : jsdocCommand( jsdocTestPages )
},
/**
* TASK: Create project documentation
* @name shell:dox
* @memberOf module:Gruntfile
*/
dox : {
command : jsdocCommand( projectDocs )
}
},
/**
* TASK: The less task creates the themed css file from main.less. The file is written to the template styles
* directory as site.[name of theme].css. Later the .conf file will look for the theme to apply based
* on this naming convention.
* @name less
* @memberOf module:Gruntfile
*/
less : {
dev : {
files : {
"template/static/styles/site.<%= jsdocConf.templates.theme %>.css" : "styles/main.less"
}
}
},
copy : {
docs : {
files : [
{expand : true, cwd : "dox/", src : ['**'], dest : '../docstrap-dox/'},
{expand : true, cwd : "themes/", src : ['**'], dest : '../docstrap-dox/themes'}
]
}
}
};
module.exports = function ( grunt ) {
tasks.jsdocConf = grunt.file.readJSON( 'template/jsdoc.conf.json' );
grunt.initConfig( tasks );
grunt.loadNpmTasks( 'grunt-contrib-less' );
grunt.loadNpmTasks( 'grunt-shell' );
grunt.loadNpmTasks( 'grunt-contrib-copy' );
grunt.registerTask( "default", ["docs"] );
/**
* Builds the project's documentation
* @name docs
* @memberof module:Gruntfile
*/
grunt.registerTask( "docs", "Create the project documentation", ["shell:dox"] );
/**
* Compile the CSS and create the project documentation
* @name dev
* @memberof module:Gruntfile
*/
grunt.registerTask( "dev", "Compile the CSS and create the project documentation", ["less","shell:dox"] );
/**
* TASK: Builds the main less file and then generates the test documents
* @name testdocs
* @memberof module:Gruntfile
*/
grunt.registerTask( "testdocs", "Builds the main less file and then generates the test documents", ["less:dev", "shell:testdocs"] );
/**
* TASK: Builds the whole shebang. Which means creating testdocs, the bootswatch fixtures and then resetting the
* styles directory.
* @name build
* @memberof module:Gruntfile
*/
grunt.registerTask( "build", "Builds the whole shebang. Which means creating testdocs, the bootswatch samples and then resetting the styles directory", ["testdocs", "shell:dox", "bootswatch", "examples", "apply", "copy"] );
/**
* TASK: Applies the theme in the conf file and applies it to the styles directory.
* @name apply
* @memberof module:Gruntfile
*/
grunt.registerTask( "apply", "Applies the theme in the conf file and applies it to the styles directory", function () {
var def = {
less : "http://bootswatch.com/" + tasks.jsdocConf.templates.theme + "/bootswatch.less",
lessVariables : "http://bootswatch.com/" + tasks.jsdocConf.templates.theme + "/variables.less"
};
grunt.registerTask( "swatch-apply", sys.partial( applyTheme, grunt, def ) );
grunt.task.run( ["swatch-apply"] );
} );
/**
* TASK: Grab all Bootswatch themes and create css from each one based on the main.less in the styles directory. NOTE that this will
* leave the last swatch downloaded in the styles directory, you will want to call "apply" afterwards
* @name bootswatch
* @memberof module:Gruntfile
*/
grunt.registerTask( "bootswatch", "Grab all Bootswatch themes and create css from each one based on the main.less in the styles directory", function () {
var toRun = [];
var done = this.async();
getBootSwatchList( function ( err, list ) {
if ( err ) {return done( err );}
sys.each( list.themes, function ( entry ) {
toRun.push( "swatch" + entry.name );
grunt.registerTask( "swatch" + entry.name, sys.partial( applyTheme, grunt, entry ) );
var key = "template/static/styles/site." + entry.name.toLowerCase() + ".css";
var def = {};
def[key] = "styles/main.less";
tasks.less["swatch" + entry.name] = {
files : def
};
toRun.push( "less:swatch" + entry.name );
} );
grunt.task.run( toRun );
done();
} );
} );
/**
* TASK:Create fixtures from the themes. The files must have been built first from the bootswatch task.
* @name examples
* @memberof module:Gruntfile
*/
grunt.registerTask( "examples", "Create samples from the themes", function () {
var toRun = [];
var done = this.async();
getBootSwatchList( function ( err, list ) {
if ( err ) {return done( err );}
sys.each( list.themes, function ( entry ) {
var conf = grunt.file.readJSON( './fixtures/example.conf.json' );
conf.templates.theme = entry.name.toLowerCase();
grunt.file.write( "tmp/example.conf." + conf.templates.theme + ".json", JSON.stringify( conf, null, 4 ) );
var jsdenv = sys.cloneDeep( jsdocExamplePages );
jsdenv.config = "./tmp/example.conf." + conf.templates.theme + ".json";
jsdenv.dest = "./themes/" + conf.templates.theme;
tasks.shell["example" + conf.templates.theme] = {
command : jsdocCommand( jsdenv )
};
toRun.push( "shell:example" + conf.templates.theme );
} );
grunt.registerTask( "cleanup", "", function () {
grunt.file["delete"]( "tmp/" );
} );
toRun.push( "cleanup" );
grunt.task.run( toRun );
done();
} );
} );
};
/**
* Applies one of the Bootswatch themes to the working `styles` directory. When you want to modify a particular theme, this where you
* get the basis for it. The files are written to `./styles/variables.less` and `./styles/bootswatch.less`. The `./styles/main.less`
* file includes them directly, so after you apply the theme, modify `main.less` to your heart's content and then run the `less` task
* as in
*
* grunt less
*
* @param {object} grunt The grunt object reference
* @param {object} definition The swatch definition files
* @param {string} definition.less The url to the `bootswatch.less` file
* @param {string} definition.lessVariables The url to the `variables.less` file
* @private
*/
function applyTheme( grunt, definition ) {
//noinspection JSHint
var done = this.async();
async.waterfall( [
function ( cb ) {
getBootSwatchComponent( definition.less, function ( err, swatch ) {
if ( err ) {return cb( err );}
var fullPath = path.join( __dirname, "styles/bootswatch.less" );
fs.writeFile( fullPath, swatch.replace("http://", "//"), cb );
} );
},
function ( cb ) {
getBootSwatchComponent( definition.lessVariables, function ( err, swatch ) {
if ( err ) {return cb( err );}
var fullPath = path.join( __dirname, "styles/variables.less" );
fs.writeFile( fullPath, swatch.replace("http://", "//"), cb );
} );
}
], done );
}
/**
* Gets the list of available Bootswatches from, well, Bootswatch.
*
* @see http://news.bootswatch.com/post/22193315172/bootswatch-api
* @param {function(err, responseBody)} done The callback when complete
* @param {?object} done.err If an error occurred, you will find it here.
* @param {object} done.responseBody This is a parsed edition of the bootswatch server's response. It's format it defined
* by the return message from [here](http://api.bootswatch.com/)
* @private
*/
function getBootSwatchList( done ) {
var options = {
hostname : 'api.bootswatch.com',
port : 80,
path : '/',
method : 'GET'
};
var body = "";
var req = http.request( options, function ( res ) {
res.setEncoding( 'utf8' );
res.on( 'data', function ( chunk ) {
body += chunk;
} );
res.on( 'end', function () {
done( null, JSON.parse( body ) );
} );
res.on( 'error', function ( e ) {
done( 'problem with response: ' + e.message );
} );
} );
req.on( 'error', function ( e ) {
done( 'problem with request: ' + e.message );
} );
req.end();
}
/**
* This method will get one of the components from Bootswatch, which is generally a `less` file or a `lessVariables` file.
*
* @see http://news.bootswatch.com/post/22193315172/bootswatch-api
* @param {string} url The url to retreive from
* @param {function(err, responseText)} done The callback when complete
* @param {?object} done.err If an error occurred, you will find it here.
* @param {string} done.responseText The body of whatever was returned
* @private
*/
function getBootSwatchComponent( url, done ) {
var body = "";
var req = http.request( url, function ( res ) {
res.setEncoding( 'utf8' );
res.on( 'data', function ( chunk ) {
body += chunk;
} );
res.on( 'end', function () {
done( null, body );
} );
res.on( 'error', function ( e ) {
done( 'problem with response: ' + e.message );
} );
} );
req.on( 'error', function ( e ) {
done( 'problem with request: ' + e.message );
} );
req.end();
}

View file

@ -1,22 +0,0 @@
Copyright (c) 2012-13 Terry Weiss. All rights reserved.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

View file

@ -1,200 +0,0 @@
# DocStrap #
DocStrap is [Bootstrap](http://twitter.github.io/bootstrap/index.html) based template for [JSDoc3](http://usejsdoc.org/).
In addition, it includes all of the themes from [Bootswatch](http://bootswatch.com/) giving you a great deal of look
and feel options for your documentation. Additionally, it adds some options to the conf.json file that gives
you even more flexibility to tweak the template to your needs. It will also make your teeth whiter.
## Features ##
* Fixed navigation at page top
* Right side TOC for navigation in pages
* Themed
* Customizable
### What It Looks Like ###
Here are examples of this template with the different Bootswatch themes:
+ [Amelia](http://terryweiss.github.io/docstrap/themes/amelia)
+ [Cerulean](http://terryweiss.github.io/docstrap/themes/cerulean)
+ [Cosmo](http://terryweiss.github.io/docstrap/themes/cosmo)
+ [Cyborg](http://terryweiss.github.io/docstrap/themes/cyborg)
+ [Flatly](http://terryweiss.github.io/docstrap/themes/flatly)
+ [Journal](http://terryweiss.github.io/docstrap/themes/journal)
+ [Readable](http://terryweiss.github.io/docstrap/themes/readable)
+ [Simplex](http://terryweiss.github.io/docstrap/themes/simplex)
+ [Slate](http://terryweiss.github.io/docstrap/themes/slate)
+ [Spacelab](http://terryweiss.github.io/docstrap/themes/spacelab)
+ [Spruce](http://terryweiss.github.io/docstrap/themes/spruce)
+ [Superhero](http://terryweiss.github.io/docstrap/themes/superhero)
+ [United](http://terryweiss.github.io/docstrap/themes/united)
To change your theme, just change it in the `conf.json` file. See below for details.
## Ooooh, I want it! How do I get it?##
First grab the [zip file from github.](https://github.com/terryweiss/docstrap/archive/master.zip) Unzip it
to your favorite hard drive and ask JSDoc to use it. Like so:
<path/to/jsdoc>/jsoc mysourcefiles/* -t <path.to.unzipped>/template -c <path.to.unzipped>/conf.json -d <path.to.output>/
Also take a gander at [JSDoc's command line options](http://usejsdoc.org/about-commandline.html).
## Configuring the template ##
DocStrap ships with a `conf.json` file in the template/ directory. It is just a regular old
[JSDoc configuration file](http://usejsdoc.org/about-configuring-jsdoc.html), but with the following new options:
```
"templates": {
"systemName" : "{string}",
"footer" : "{string}",
"copyright" : "{string}",
"navType" : "{vertical|inline}",
"theme" : "{theme}",
"linenums" : {boolean},
"collapseSymbols" : {boolean},
"inverseNav" : {boolean}
}
```
### Options ###
* __systemName__
The name of the system being documented. This will appear in the page title for each page
* __footer__
Any markup want to appear in the footer of each page. This is not processed at all, just printed exactly as you enter it
* __copyright__
You can add a copyright message below the _footer_ and above the JSDoc timestamp at the bottom of the page
* __navType__
The template uses top level navigation with dropdowns for the contents of each category. On large systems these dropdowns
can get large enough to expand beyond the page. To make the dropdowns render wider and stack the entries vertically, set this
option to `"inline"`. Otherwise set it to `"vertical"` to make them regular stacked dropdowns.
* __theme__
This is the name of the them you want to use **in all lowercase**. The valid options are
+ `amelia`
+ `cerulean`
+ `cosmo`
+ `cyborg`
+ `flatly`
+ `journal`
+ `readable`
+ `simplex`
+ `slate`
+ `spacelab`
+ `spruce`
+ `superhero`
+ `united`
* __linenums__
When true, line numbers will appear in the source code listing. If you have
[also turned that on](http://usejsdoc.org/about-configuring-jsdoc.html).
* __collapseSymbols__
If your pages have a large number of symbols, it can be easy to get lost in all the text. If you turn this to `true`
all of the symbols in the page will roll their contents up so that you just get a list of symbols that can be expanded
and collapsed.
* __inverseNav__
Bootstrap navbars come in two flavors, regular and inverse where inverse is generally higher contrast. Set this to `true` to
use the inverse header.
## Customizing DocStrap ##
No template can meet every need and customizing templates is a favorite pastime of....well, no-one, but you may need to anyway.
First make sure you have [bower](https://github.com/bower/bower) and [grunt-cli](https://github.com/gruntjs/grunt-cli) installed.
Fetch the source using `git` or grab the [zip file from github.](https://github.com/terryweiss/docstrap/archive/master.zip) and unzip
it somewhere. Everything that follows happens in the unzip directory.
Next, prepare the environment:
bower install
and
grunt install
When that is done, you have all of the tools to start modifying the template. The template, like Bootstrap, used [less](http://lesscss.org/).
The way it works is that `./styles/main.less` pulls in the bootstrap files uncompiled so that you have access to all of bootstraps mixins, colors,
etc, that you would want. There are two more files in that directory, `variables.less`, `bootswatch.less`. These are the
theme files and you can modify them, but keep in mind that if you apply a new theme (see below) those files will be overwritten. It is best
to keep your changes to the `main.less` file.
To compile your changes to `main.less` and any other files it loads up,
grunt less
The output is will be put in `./template/static/styles/site.<theme-name>.css`. The next time you create your documentation, it
will have the new css file included.
To apply a different template to the `styles` directory to modify, open up the `conf.json` in the template directory and
change the `theme` option to the theme you want. Then
grunt apply
And the new theme will be in `variables.less`, `bootswatch.less`. Don't forget to compile your changes using `grunt apply` to
get that change into the template.
**NOTE** that these steps are not necessary to just change the theme, this is only to modify the theme. If all you want to do is
change the theme, just update conf.json with the new theme and build your docs!
## Contributing ##
Yes! Contribute! Test! Share your ideas! Report Bugs!
## Roadmap ##
* Integrate Darkstrap
* Make plain old bootstrap an option (doh!)
* ~~Jump to source line numbers~~
* Document publish.js
## History ##
### v0.2.0 ###
* Added jump to source linenumers - still a problem scrolling with fixed header
* changed syntax highlighter to [sunlight](http://sunlightjs.com/)
* Modify incoming bootswatch files to make font calls without protocol.
### v0.1.0 ###
Initial release
## Notices ##
If you like DocStrap, be sure and check out these excellent projects and support them!
[JSDoc3 is licensed under the Apache License](https://github.com/jsdoc3/jsdoc/blob/master/LICENSE.md)
[So is Bootstrap](https://github.com/twitter/bootstrap/blob/master/LICENSE)
[And Bootswatch](https://github.com/thomaspark/bootswatch/blob/gh-pages/LICENSE)
[TOC is licensed under MIT](https://github.com/jgallen23/toc/blob/master/LICENSE)
[Grunt is also MIT](https://github.com/gruntjs/grunt-cli/blob/master/LICENSE-MIT)
DocStrap [is licensed under the MIT license.](https://github.com/terryweiss/docstrap/blob/master/LICENSE.md)
[Sunlight uses the WTFPL](http://sunlightjs.com/)
## License ##
DocStrap Copyright (c) 2012-2013Terry Weiss. All rights reserved.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

View file

@ -1,12 +0,0 @@
{
"name": "ink-docstrap",
"version": "0.1.0",
"dependencies": {
"bootstrap": "~2.3.1",
"jquery": "~2.0.0",
"darkstrap": "git://github.com/danneu/darkstrap.git#~0.9.2",
"toc": "~0.1.2",
"sunlight": "https://github.com/tmont/sunlight.git",
"jquery.localScroll": "~1.2.8"
}
}

View file

@ -1,10 +0,0 @@
{
"name": "ink-docstrap",
"version": "0.1.0",
"dependencies": {
"bootstrap": "~2.3.1",
"jquery": "~2.0.0",
"darkstrap": "git://github.com/danneu/darkstrap.git#~0.9.2",
"toc": "~0.1.2"
}
}

View file

@ -1,45 +0,0 @@
"use strict"
/**
@fileOverview Donec sed sapien enim. Duis elementum arcu id velit mattis sed tincidunt dolor posuere. Cras dapibus varius metus et sollicitudin. Quisque egestas placerat lacus, at lobortis mauris volutpat in. Morbi eleifend, sapien ut lobortis malesuada, nulla arcu blandit risus, quis fringilla nunc leo ac turpis. Donec vitae gravida dolor. Pellentesque accumsan, erat ac rutrum sodales, neque odio pellentesque est, vitae rutrum lorem mauris vitae justo. Sed blandit egestas mi at fringilla. Morbi at metus feugiat magna tempor vulputate. Duis dictum sagittis neque quis tempor. Morbi id est ac orci dictum porta. Phasellus tempus adipiscing convallis.
@module docstrap/car
@author Gloria Swanson
@requires lodash
*/
/**
* Integer quis ante ut nulla cursus vehicula id eu dolor. Phasellus ut facilisis felis. Praesent eget metus id massa pretium lobortis a et metus. Aliquam erat volutpat. Nulla ac tortor odio, quis facilisis augue. In hendrerit, lectus mollis elementum vestibulum, velit nisi aliquet orci, vitae luctus risus dui sed nisi. Donec aliquam pretium leo sed ultrices. Duis porttitor pharetra vulputate. Aenean sed neque sit amet arcu auctor placerat eget ac tellus. Proin porttitor fringilla eros quis scelerisque. Aliquam erat volutpat.
* @constructor
* @param {Boolean} hybrid Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
* @example
* // Duis elementum arcu id velit mattis sed tincidunt dolor posuere.
* if (!(key in this.visited)) {
this.visited[key] = true;
if (this.dependencies[key]) {
Object.keys(this.dependencies[key]).forEach(function(path) {
self.visit(path);
});
}
this.sorted.push(key);
}
*/
exports.Car = function (hybrid) {
/**
* Aenean commodo lorem nec sapien suscipit quis hendrerit dui feugiat. Curabitur pretium congue sollicitudin. Nam eleifend ultricies libero vel iaculis. Maecenas vel elit vel lorem lacinia pellentesque. Vestibulum posuere suscipit lacus, sit amet volutpat erat sagittis vitae. Ut eleifend pretium nulla vitae tempor.
* @type {string}
*/
this.color = null;
};
/**
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi congue viverra placerat. Mauris mi nibh, pulvinar ut placerat sit amet, aliquam a diam. Maecenas vitae suscipit nulla. Sed at justo nec ante lobortis fermentum. Quisque sodales libero suscipit mi malesuada pretium. Cras a lectus vitae risus semper sagittis. Sed ultrices aliquet tempus. Nulla id nisi metus, sit amet elementum tortor. Nunc tempor sem quis augue tempor sed posuere nulla volutpat. Phasellus fringilla pulvinar lorem quis venenatis.
* @param {integer} speed Phasellus ut facilisis felis.
*/
exports.Car.prototype.drive = function ( speed ) {
};

View file

@ -1,22 +0,0 @@
{
"tags": {
"allowUnknownTags": true
},
"plugins": ["plugins/markdown"],
"templates": {
"cleverLinks": false,
"monospaceLinks": false,
"default": {
"outputSourceFiles": true
},
"systemName": "DocStrap",
"footer": "",
"copyright": "Copyright &copy; 2012-2103 Terry Weiss, Eery Wrists. All rights reserved.",
"navType": "vertical",
"theme": "cerulean"
} ,
"markdown": {
"parser": "gfm",
"hardwrap": true
}
}

View file

@ -1,50 +0,0 @@
/**
* Suspendisse orci massa, hendrerit sagittis lacinia consectetur, sagittis vitae purus. Aliquam id eros diam, eget elementum turpis. Nullam tellus magna, mollis in molestie id, venenatis rhoncus est. Proin id diam justo. Nunc tempus gravida justo at lobortis. Nam vitae venenatis nisi. Donec vel odio massa. Quisque interdum metus sit amet est iaculis tincidunt. Donec bibendum blandit purus, id semper orci aliquam quis. Nam tincidunt dolor eu felis ultricies tempor. Nulla non consectetur erat.
*/
function drift() {
}
/**
* Suspendisse orci massa, hendrerit sagittis lacinia consectetur, sagittis vitae purus. Aliquam id eros diam, eget elementum turpis. Nullam tellus magna, mollis in molestie id, venenatis rhoncus est. Proin id diam justo. Nunc tempus gravida justo at lobortis. Nam vitae venenatis nisi. Donec vel odio massa. Quisque interdum metus sit amet est iaculis tincidunt. Donec bibendum blandit purus, id semper orci aliquam quis. Nam tincidunt dolor eu felis ultricies tempor. Nulla non consectetur erat.
*/
function trailBrake() {
}
/**
* Suspendisse orci massa, hendrerit sagittis lacinia consectetur, sagittis vitae purus. Aliquam id eros diam, eget elementum turpis. Nullam tellus magna, mollis in molestie id, venenatis rhoncus est. Proin id diam justo. Nunc tempus gravida justo at lobortis. Nam vitae venenatis nisi. Donec vel odio massa. Quisque interdum metus sit amet est iaculis tincidunt. Donec bibendum blandit purus, id semper orci aliquam quis. Nam tincidunt dolor eu felis ultricies tempor. Nulla non consectetur erat.
* @param {integer} bias Nulla ultricies justo ac nisi consectetur posuere. Donec ornare pharetra erat, nec facilisis dui cursus quis. Quisque porttitor porttitor orci, sed facilisis urna facilisis sed. Sed tincidunt adipiscing turpis et hendrerit. Cras posuere orci ut mauris ullamcorper vitae laoreet nisi luctus. In rutrum tristique augue. Nam eleifend dignissim dui.
*/
function brakeBias( bias ) {
}
/**
* Suspendisse orci massa, hendrerit sagittis lacinia consectetur, sagittis vitae purus. Aliquam id eros diam, eget elementum turpis. Nullam tellus magna, mollis in molestie id, venenatis rhoncus est. Proin id diam justo. Nunc tempus gravida justo at lobortis. Nam vitae venenatis nisi. Donec vel odio massa. Quisque interdum metus sit amet est iaculis tincidunt. Donec bibendum blandit purus, id semper orci aliquam quis. Nam tincidunt dolor eu felis ultricies tempor. Nulla non consectetur erat.
* @param {module:docstrap/car.Car} car Nulla ultricies justo ac nisi consectetur posuere. Donec ornare pharetra erat, nec facilisis dui cursus quis. Quisque porttitor porttitor orci, sed facilisis urna facilisis sed. Sed tincidunt adipiscing turpis et hendrerit. Cras posuere orci ut mauris ullamcorper vitae laoreet nisi luctus. In rutrum tristique augue. Nam eleifend dignissim dui.
* @param {string} tires Donec viverra egestas tellus non viverra. Aenean est ante, egestas sed scelerisque quis, aliquet sed lacus. Praesent non mauris neque, et adipiscing ante. Vestibulum quis quam vitae ipsum aliquet blandit. Vivamus condimentum euismod orci, in tincidunt justo rutrum faucibus. Phasellus nec lorem arcu. Donec tortor dui, facilisis in rutrum sit amet, pulvinar vitae lacus.
* @param {number} fuel Proin sodales, mi at tincidunt ornare, mi dui sagittis velit, sed dictum risus orci eu erat. Sed nunc leo, congue sed rutrum eget, lobortis ac lectus. Etiam non arcu nulla.
*/
function start( car, tires, fuel ) {}
/**
* Sed id tristique lorem. Ut sodales turpis nec mauris gravida interdum. Cras pellentesque, purus at suscipit euismod, elit nunc cursus nisi, ut venenatis metus sapien id velit. Sed lectus orci, pharetra non pulvinar vel, ullamcorper id lorem. Donec vulputate tincidunt ipsum, ut lacinia tortor sollicitudin id. Nunc nec nibh ut felis venenatis egestas. Proin risus mauris, eleifend eget interdum in, venenatis sed velit. Praesent sodales elit ut odio viverra posuere. Donec sapien lorem, molestie in egestas eget, vulputate sed orci. Aenean elit sapien, pellentesque vitae tempor sit amet, sagittis et ligula. Mauris aliquam sapien sit amet lacus ultrices rutrum. Curabitur nec dolor sed elit varius dignissim a a lacus. Aliquam ac convallis enim.
* @namespace
*/
var teams = {};
/**
* Nunc faucibus lacus eget odio ultricies nec ullamcorper risus pharetra.
* @mixin
*/
var insanity = {
/**
* ras ac justo dui, at faucibus urna. Nunc tristique, velit id feugiat fermentum, dolor enim egestas erat, at vestibulum ante ipsum vel orci. Duis quis ante id justo vehicula eleifend sed et urna. Sed sapien tortor, rutrum id ultrices eu, tincidunt tincidunt mi
*/
goCrazy : function () {},
/**
* Donec viverra egestas tellus non viverra. Aenean est ante, egestas sed scelerisque quis, aliquet sed lacus. Praesent non mauris neque, et adipiscing ante. Vestibulum quis quam vitae ipsum aliquet blandit.
*/
goSane : function () {}
};

View file

@ -1,74 +0,0 @@
"use strict"
/**
@fileOverview Donec sed sapien enim. Duis elementum arcu id velit mattis sed tincidunt dolor posuere. Cras dapibus varius metus et sollicitudin. Quisque egestas placerat lacus, at lobortis mauris volutpat in. Morbi eleifend, sapien ut lobortis malesuada, nulla arcu blandit risus, quis fringilla nunc leo ac turpis. Donec vitae gravida dolor. Pellentesque accumsan, erat ac rutrum sodales, neque odio pellentesque est, vitae rutrum lorem mauris vitae justo. Sed blandit egestas mi at fringilla. Morbi at metus feugiat magna tempor vulputate. Duis dictum sagittis neque quis tempor. Morbi id est ac orci dictum porta. Phasellus tempus adipiscing convallis.
@module docstrap/person
@author Fred Flinstone
@requires lodash
@requires docstrap/person
*/
/**
* Integer quis ante ut nulla cursus vehicula id eu dolor. Phasellus ut facilisis felis. Praesent eget metus id massa pretium lobortis a et metus. Aliquam erat volutpat. Nulla ac tortor odio, quis facilisis augue. In hendrerit, lectus mollis elementum vestibulum, velit nisi aliquet orci, vitae luctus risus dui sed nisi. Donec aliquam pretium leo sed ultrices. Duis porttitor pharetra vulputate. Aenean sed neque sit amet arcu auctor placerat eget ac tellus. Proin porttitor fringilla eros quis scelerisque. Aliquam erat volutpat.
* @constructor
*/
exports.Person = function () {
/**
* Aenean commodo lorem nec sapien suscipit quis hendrerit dui feugiat. Curabitur pretium congue sollicitudin. Nam eleifend ultricies libero vel iaculis. Maecenas vel elit vel lorem lacinia pellentesque. Vestibulum posuere suscipit lacus, sit amet volutpat erat sagittis vitae. Ut eleifend pretium nulla vitae tempor.
* @type {number}
*/
this.eyes = 2;
/**
* Donec tempus vestibulum nunc. Fusce at eleifend nisi. Proin nisl odio, ultrices fermentum eleifend nec, pellentesque in massa. Cras id turpis diam, vitae fringilla turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam tempus urna in lacus semper sodales. Etiam a erat in augue rhoncus porta. Aenean nec odio lorem, a tristique dui.
* @type {number}
*/
this.nose = 1;
/**
* Vestibulum viverra magna nec lectus imperdiet in lacinia ante iaculis. Cras nec urna tellus, eget convallis mauris. Fusce volutpat elementum enim, vel fringilla orci elementum vehicula. Nunc in ultrices sem. Sed augue tortor, pellentesque sed suscipit sed, vehicula eu enim.
* @type {number}
*/
this.mouth = 1;
};
/**
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi congue viverra placerat. Mauris mi nibh, pulvinar ut placerat sit amet, aliquam a diam. Maecenas vitae suscipit nulla. Sed at justo nec ante lobortis fermentum. Quisque sodales libero suscipit mi malesuada pretium. Cras a lectus vitae risus semper sagittis. Sed ultrices aliquet tempus. Nulla id nisi metus, sit amet elementum tortor. Nunc tempor sem quis augue tempor sed posuere nulla volutpat. Phasellus fringilla pulvinar lorem quis venenatis.
* @param {boolean} speed Phasellus ut facilisis felis.
*/
exports.Person.prototype.walk = function ( speed ) {
};
/**
* Aliquam interdum lectus ac diam tincidunt vitae fringilla justo faucibus.
* @param {Boolean} well Morbi sit amet tellus at justo tempus tristique.
* @param {function(err)} done Curabitur id nulla mauris, id hendrerit magna.
* @param {object=} done.err Sed pulvinar mollis arcu, at tempus dui egestas cursus.
*/
exports.Person.prototype.think = function ( well, done ) {
};
/**
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi congue viverra placerat. Mauris mi nibh, pulvinar ut placerat sit amet, aliquam a diam. Maecenas vitae suscipit nulla. Sed at justo nec ante lobortis fermentum. Quisque sodales libero suscipit mi malesuada pretium. Cras a lectus vitae risus semper sagittis. Sed ultrices aliquet tempus. Nulla id nisi metus, sit amet elementum tortor. Nunc tempor sem quis augue tempor sed posuere nulla volutpat. Phasellus fringilla pulvinar lorem quis venenatis.
* @returns {boolean} Sed id erat ut ipsum scelerisque venenatis at nec mauris.
* @fires module:docstrap/person.Person#sneeze
*/
exports.Person.prototype.tickle = function () {
};
/**
* Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.
*
* @event module:docstrap/person.Person#sneeze
* @type {object}
* @property {boolean} tissue Phasellus non justo a neque pharetra sagittis.
*/
/**
* Nulla ultricies justo ac nisi consectetur posuere. Donec ornare pharetra erat, nec facilisis dui cursus quis. Quisque porttitor porttitor orci, sed facilisis urna facilisis sed. Sed tincidunt adipiscing turpis et hendrerit. Cras posuere orci ut mauris ullamcorper vitae laoreet nisi luctus. In rutrum tristique augue. Nam eleifend dignissim dui.
* @returns {exports.Person}
*/
exports.create = function(){
};

View file

@ -1,21 +0,0 @@
#Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec viverra, tellus et fermentum tincidunt, massa ligula dignissim augue, ut aliquam tortor odio in odio. In faucibus metus metus. Curabitur est mi, fermentum lacinia tincidunt vitae, mattis sit amet neque. Quisque diam nisl, accumsan ac porta tincidunt, iaculis facilisis ipsum. Nulla facilisi. Aenean a metus tortor. Pellentesque congue, mauris vitae viverra varius, elit nunc dictum nisl, rhoncus ultrices nulla sapien at leo. Duis ultricies porttitor diam. Nulla facilisi. Nullam elementum, lorem eu imperdiet laoreet, est turpis sollicitudin velit, in porttitor justo dolor vel urna. Mauris in ante magna. Curabitur vitae lacus in magna mollis commodo.
Fusce lacinia, mauris ac aliquam consequat, lacus urna feugiat erat, id viverra mi mi sit amet tortor. Etiam ac ornare erat. Pellentesque et neque lacus, quis posuere orci. Fusce molestie blandit velit, sit amet dictum eros pharetra vitae. In erat urna, condimentum ac feugiat id, rutrum et nisi. Cras ac velit lorem. Nulla facilisi. Maecenas dignissim nulla in turpis tempus sed rhoncus augue dapibus. Nulla feugiat, urna non sagittis laoreet, dolor metus rhoncus justo, sed semper ante lacus eget quam. Sed ac ligula magna. Sed tincidunt pulvinar neque in porta. Nullam quis lacus orci. Pellentesque ornare viverra lacus, id aliquam magna venenatis a.
Sed id tristique lorem. Ut sodales turpis nec mauris gravida interdum. Cras pellentesque, purus at suscipit euismod, elit nunc cursus nisi, ut venenatis metus sapien id velit. Sed lectus orci, pharetra non pulvinar vel, ullamcorper id lorem. Donec vulputate tincidunt ipsum, ut lacinia tortor sollicitudin id. Nunc nec nibh ut felis venenatis egestas. Proin risus mauris, eleifend eget interdum in, venenatis sed velit. Praesent sodales elit ut odio viverra posuere. Donec sapien lorem, molestie in egestas eget, vulputate sed orci. Aenean elit sapien, pellentesque vitae tempor sit amet, sagittis et ligula. Mauris aliquam sapien sit amet lacus ultrices rutrum. Curabitur nec dolor sed elit varius dignissim a a lacus. Aliquam ac convallis enim.
Suspendisse orci massa, hendrerit sagittis lacinia consectetur, sagittis vitae purus. Aliquam id eros diam, eget elementum turpis. Nullam tellus magna, mollis in molestie id, venenatis rhoncus est. Proin id diam justo. Nunc tempus gravida justo at lobortis. Nam vitae venenatis nisi. Donec vel odio massa. Quisque interdum metus sit amet est iaculis tincidunt. Donec bibendum blandit purus, id semper orci aliquam quis. Nam tincidunt dolor eu felis ultricies tempor. Nulla non consectetur erat.
Nunc faucibus lacus eget odio ultricies nec ullamcorper risus pharetra. Nunc nec consequat urna. Curabitur condimentum ante vitae erat tristique vitae gravida quam dapibus. Cras ac justo dui, at faucibus urna. Nunc tristique, velit id feugiat fermentum, dolor enim egestas erat, at vestibulum ante ipsum vel orci. Duis quis ante id justo vehicula eleifend sed et urna. Sed sapien tortor, rutrum id ultrices eu, tincidunt tincidunt mi. Etiam blandit, neque eget interdum dignissim, lacus ante facilisis dolor, non viverra dui lorem vitae nibh. Morbi volutpat augue eget nulla luctus eu aliquam sem facilisis. Pellentesque sollicitudin commodo dolor sit amet vestibulum. Nam dictum posuere quam, in tincidunt erat rutrum eu.
Etiam nec turpis purus, at lacinia sem. In commodo lacinia euismod. Curabitur tincidunt congue leo, eget iaculis orci volutpat pharetra. Fusce dignissim lacus lacus. Integer consectetur lacus rutrum risus malesuada at consectetur erat rutrum. Sed magna ipsum, fringilla eget auctor non, fringilla nec massa. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum nec tortor id nisi luctus aliquam. Maecenas cursus tincidunt ornare. Nulla a vestibulum odio. Mauris malesuada commodo justo quis mattis. Suspendisse mauris ligula, placerat at egestas in, tincidunt quis nibh. Aliquam ullamcorper elit at augue cursus quis pellentesque purus viverra.
Nulla ultricies justo ac nisi consectetur posuere. Donec ornare pharetra erat, nec facilisis dui cursus quis. Quisque porttitor porttitor orci, sed facilisis urna facilisis sed. Sed tincidunt adipiscing turpis et hendrerit. Cras posuere orci ut mauris ullamcorper vitae laoreet nisi luctus. In rutrum tristique augue. Nam eleifend dignissim dui.
Donec viverra egestas tellus non viverra. Aenean est ante, egestas sed scelerisque quis, aliquet sed lacus. Praesent non mauris neque, et adipiscing ante. Vestibulum quis quam vitae ipsum aliquet blandit. Vivamus condimentum euismod orci, in tincidunt justo rutrum faucibus. Phasellus nec lorem arcu. Donec tortor dui, facilisis in rutrum sit amet, pulvinar vitae lacus. Nam sodales sem eu nunc scelerisque vitae ullamcorper dolor facilisis. Duis imperdiet nisi in magna tempor convallis. Fusce at metus augue. Quisque dictum tempus mauris, in mattis ligula dignissim ut.
Proin sodales, mi at tincidunt ornare, mi dui sagittis velit, sed dictum risus orci eu erat. Sed nunc leo, congue sed rutrum eget, lobortis ac lectus. Etiam non arcu nulla. Vestibulum rutrum dolor pulvinar lorem posuere blandit. Sed quis sapien dui. Nunc sagittis erat commodo quam porta cursus in non erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin a molestie neque. Aliquam iaculis lacus sed neque hendrerit at dignissim ligula imperdiet. Suspendisse venenatis, lorem at luctus scelerisque, sem purus pellentesque sapien, vitae ornare ipsum quam nec dui. Mauris neque est, interdum nec pulvinar eget, dapibus eleifend tellus. Fusce non lorem tortor. Nullam eget nunc quis felis aliquam consectetur. Aliquam tristique, turpis in feugiat blandit, lectus erat condimentum tortor, non egestas nisl sapien eget nibh.
Aliquam elit turpis, faucibus et porta et, egestas nec nibh. Sed nisl est, pharetra a eleifend a, pretium ac eros. Sed leo eros, pulvinar vel faucibus dictum, aliquet ut quam. Maecenas et felis non ligula fringilla pretium fringilla sit amet ante. Nam varius imperdiet interdum. Ut non metus mauris, vel volutpat lorem. Nullam sagittis est quis lacus feugiat fringilla. Quisque orci lorem, semper ac accumsan vitae, blandit quis velit. Proin luctus sodales ultrices. Fusce mauris erat, facilisis ut consectetur at, fringilla feugiat orci. Aliquam a nisi a neque interdum suscipit id eget purus. Pellentesque tincidunt justo ut urna posuere non molestie quam auctor.

View file

@ -1,10 +0,0 @@
#Lorem ipsum dolor sit amet
Curabitur est mi, fermentum lacinia tincidunt vitae, mattis sit amet neque. Quisque diam nisl, accumsan ac porta tincidunt, iaculis facilisis ipsum. Nulla facilisi. Aenean a metus tortor. Pellentesque congue, mauris vitae viverra varius, elit nunc dictum nisl, rhoncus ultrices nulla sapien at leo. Duis ultricies porttitor diam. Nulla facilisi. Nullam elementum, lorem eu imperdiet laoreet, est turpis sollicitudin velit, in porttitor justo dolor vel urna. Mauris in ante magna. Curabitur vitae lacus in magna mollis commodo.
##Fusce lacinia, mauris ac aliquam consequat
Fusce molestie blandit velit, sit amet dictum eros pharetra vitae. In erat urna, condimentum ac feugiat id, rutrum et nisi. Cras ac velit lorem. Nulla facilisi. Maecenas dignissim nulla in turpis tempus sed rhoncus augue dapibus. Nulla feugiat, urna non sagittis laoreet, dolor metus rhoncus justo, sed semper ante lacus eget quam. Sed ac ligula magna. Sed tincidunt pulvinar neque in porta. Nullam quis lacus orci. Pellentesque ornare viverra lacus, id aliquam magna venenatis a.
Sed id tristique lorem. Ut sodales turpis nec mauris gravida interdum. Cras pellentesque, purus at suscipit euismod, elit nunc cursus nisi, ut venenatis metus sapien id velit. Sed lectus orci, pharetra non pulvinar vel, ullamcorper id lorem. Donec vulputate tincidunt ipsum, ut lacinia tortor sollicitudin id. Nunc nec nibh ut felis venenatis egestas. Proin risus mauris, eleifend eget interdum in, venenatis sed velit. Praesent sodales elit ut odio viverra posuere. Donec sapien lorem, molestie in egestas eget, vulputate sed orci. Aenean elit sapien, pellentesque vitae tempor sit amet, sagittis et ligula. Mauris aliquam sapien sit amet lacus ultrices rutrum. Curabitur nec dolor sed elit varius dignissim a a lacus. Aliquam ac convallis enim.
Suspendisse orci massa, hendrerit sagittis lacinia consectetur, sagittis vitae purus. Aliquam id eros diam, eget elementum turpis. Nullam tellus magna, mollis in molestie id, venenatis rhoncus est. Proin id diam justo. Nunc tempus gravida justo at lobortis. Nam vitae venenatis nisi. Donec vel odio massa. Quisque interdum metus sit amet est iaculis tincidunt. Donec bibendum blandit purus, id semper orci aliquam quis. Nam tincidunt dolor eu felis ultricies tempor. Nulla non consectetur erat.

View file

@ -1,36 +0,0 @@
{
"name": "ink-docstrap",
"version": "0.2.0-0",
"decription": "A template for JSDoc3 based on Bootstrap and Bootswatch",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-less": "~0.5.1",
"jsdoc": "git://github.com/jsdoc3/jsdoc.git",
"grunt-shell": "~0.2.2",
"async": "~0.2.8",
"lodash": "~1.2.1",
"grunt-contrib-copy": "~0.4.1"
},
"license": "MIT",
"keywords": [
"docstrap",
"jsdoc3",
"bootstrap",
"bootswatch",
"theme",
"documentation",
"jsdoc"
],
"author": {
"name": "Terry Weiss",
"email": "me@terryweiss.net"
},
"bugs": {
"url": "https://github.com/terryweiss/docstrap/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/terryweiss/docstrap.git"
},
"main": "./template/publish.js"
}

View file

@ -1,4 +1,4 @@
@import "../components/bootstrap/less/bootstrap.less";
@import "../bower_components/bootstrap/less/bootstrap.less";
@import "variables.less";
@import "bootswatch.less";
@ -149,4 +149,19 @@ code {
padding : 10px;
}
.sunlight-highlighted {
margin: 0;
line-height: auto;
word-break: normal;
word-wrap: normal;
white-space: pre;
background-color: transparent;
border: none;
}
.sunlight-line-number-margin {
border-radius: 0;
border-width: 0 1px 0 0;
font-size: 12px;
line-height: 15px;
padding: 12px 4px !important;
}

View file

@ -163,20 +163,14 @@ function shortenPaths( files, commonPrefix ) {
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' ?
return 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 ) {
@ -201,7 +195,7 @@ function generate( docType, title, docs, filename, resolveLinks ) {
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
// links are keyed to the shortened path in each doclet's `meta.shortpath` property
var sourceOutfile = helper.getUniqueFilename( sourceFiles[file].shortened );
helper.registerLink( sourceFiles[file].shortened, sourceOutfile );
@ -425,16 +419,14 @@ exports.publish = function ( taffyData, opts, tutorials ) {
// build a list of source files
var sourcePath;
var resolvedSourcePath;
if ( doclet.meta ) {
sourcePath = getPathFromDoclet( doclet );
resolvedSourcePath = resolveSourcePath( sourcePath );
sourceFiles[sourcePath] = {
resolved : resolvedSourcePath,
resolved : sourcePath,
shortened : null
};
sourceFilePaths.push( resolvedSourcePath );
sourceFilePaths.push( sourcePath );
}
} );
@ -462,13 +454,13 @@ exports.publish = function ( taffyData, opts, tutorials ) {
var url = helper.createLink( doclet );
helper.registerLink( doclet.longname, url );
// replace the filename with a shortened version of the full path
// add 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;
doclet.meta.shortpath = docletPath;
}
}
} );

View file

@ -46,9 +46,71 @@ $.fn.toc = function(options) {
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);
@ -73,6 +135,53 @@ $.fn.toc = function(options) {
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');
});
};

View file

@ -1,12 +1,12 @@
@import url(http://fonts.googleapis.com/css?family=Telex);
@import url(//fonts.googleapis.com/css?family=Telex);
/*!
* Bootstrap v2.3.1
* Bootstrap v2.3.2
*
* Copyright 2012 Twitter, Inc
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
* Designed and built with all the love in the world by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
@ -2521,6 +2521,14 @@ table th[class*="span"],
.open > .dropdown-menu {
display: block;
}
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 990;
}
.pull-right > .dropdown-menu {
right: 0;
left: auto;
@ -5673,3 +5681,19 @@ code {
border-radius: 5px;
padding: 10px;
}
.sunlight-highlighted {
margin: 0;
line-height: auto;
word-break: normal;
word-wrap: normal;
white-space: pre;
background-color: transparent;
border: none;
}
.sunlight-line-number-margin {
border-radius: 0;
border-width: 0 1px 0 0;
font-size: 12px;
line-height: 15px;
padding: 12px 4px !important;
}

View file

@ -65,7 +65,7 @@ var self = this;
<?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 } ?>
<?js= self.linkto(meta.shortpath) ?><?js if (this.navOptions.linenums) {?>, <?js= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'sunlight-1-line-' + meta.lineno) ?><?js } ?>
</li></ul></dd>
<?js } ?>

View file

@ -99,6 +99,9 @@
<script>
$( function () {
$( "#toc" ).toc( {
anchorName : function(i, heading, prefix) {
return $(heading).attr("id") || ( prefix + i );
},
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : 60

View file

@ -567,7 +567,7 @@ Phaser.Sprite.prototype.destroy = function(destroyChildren) {
/**
* Damages the Sprite, this removes the given amount from the Sprites health property.
* If health is then taken below zero Sprite.kill is called.
* If health is then taken below or is equal to zero `Sprite.kill` is called.
*
* @method Phaser.Sprite#damage
* @memberof Phaser.Sprite
@ -580,7 +580,7 @@ Phaser.Sprite.prototype.damage = function(amount) {
{
this.health -= amount;
if (this.health < 0)
if (this.health <= 0)
{
this.kill();
}

View file

@ -102,7 +102,7 @@ Phaser.TilemapParser = {
{
return this.parseCSV(key, map.data, tileWidth, tileHeight);
}
else if (map.format === Phaser.Tilemap.TILED_JSON)
else if (!map.format || map.format === Phaser.Tilemap.TILED_JSON)
{
return this.parseTiledJSON(map.data);
}