155 Commits
Author SHA1 Message Date
photonstorm f1f42e4d41 New Examples area finished, README updated. Getting closer to 1.1 release. 2013-10-23 04:15:44 +01:00
photonstorm cab3b53cf0 SideView example viewer finished. 2013-10-23 02:14:51 +01:00
photonstorm e5c3ca27c5 Making dependancies local for offline access to examples. 2013-10-22 21:29:58 +01:00
Richard Davey 84b837f56c View 2013-10-22 16:38:40 +01:00
photonstorm 77fd15bf3c Preparing new static examples viewer. 2013-10-22 14:59:43 +01:00
photonstorm 07724e5001 Revamping the examples area. 2013-10-22 03:58:20 +01:00
Richard Davey 82df8c9f54 Merge pull request #108 from alvinsight/dev
All the names now fit
2013-10-18 08:36:13 -07:00
Webeled 97423a9d8d All the names now fit 2013-10-18 16:27:55 +01:00
photonstorm 8ed783802e New examples page 2013-10-18 15:12:32 +01:00
photonstorm dabda516c2 Compiled build. 2013-10-17 22:56:20 +01:00
photonstorm 7e8b79adf4 Tilemap painting example and other smaller updates. 2013-10-17 21:10:00 +01:00
photonstorm 275fa4641e Added Text.destroy and BitmapText.destroy. 2013-10-17 15:40:44 +01:00
photonstorm 4b2ac6c6c6 More tilemap examples 2013-10-16 21:25:51 +01:00
photonstorm 9c1fdb371c Nearly finished Tilemap integration into the core. 2013-10-16 06:33:39 +01:00
photonstorm 31018b9295 Star Struck game back and working again, plus finished the level design. 2013-10-16 03:37:15 +01:00
photonstorm a97f271de7 Fixed Animation index 0 issue and hooked TilemapLayer to camera. 2013-10-16 02:09:12 +01:00
photonstorm fd5eeb9088 Fixed Rectangle intersection issue and tilemap collision is working again. Win! 2013-10-15 15:24:07 +01:00
photonstorm f3ea68aad3 Extracting the correct area from a layer, debug displaying it and preparing for collision. 2013-10-15 05:41:42 +01:00
photonstorm dd695e066f More tilemap tweaks. 2013-10-14 19:37:52 +01:00
Richard Davey 6147e07a5f Merge pull request #104 from alvinsight/dev
Loads of new examples, some more bug fixes, all of them work beautifully
2013-10-14 11:37:18 -07:00
Webeled 969fa46484 Loads of new examples, some more bug fixes, all of them work beautifully 2013-10-14 19:32:07 +01:00
Richard Davey faf432bdb0 Merge pull request #102 from alvinsight/dev
Well, almost every example works with 1.0.7 except multiple anims, plus some funky tweens examples, and renamed a lot of files
2013-10-14 05:47:38 -07:00
Webeled 44613f7140 Should resolve the conflict 2013-10-14 13:40:02 +01:00
photonstorm 78dbb1aa59 Tidying up the repo. 2013-10-14 13:20:52 +01:00
photonstorm c6bf67c392 Group.alpha exposed and instance returns added to Loader functions. 2013-10-13 20:28:06 +01:00
photonstorm e98aa205ea Sprite.destroy is back in business. 2013-10-13 01:29:57 +01:00
Webeled 786aa2900e Final commit of the day 2013-10-11 22:49:51 +01:00
Webeled eb98998046 Testing 2013-10-11 22:29:50 +01:00
Webeled 3acdad92cb First commi using the new software 2013-10-11 22:26:27 +01:00
photonstorm 574f4f351b Github Issue #101 fixed. Plus more Tilemap updates. 2013-10-11 20:02:12 +01:00
photonstorm 0201baef11 And Tilemaps are rendering again - and much better than ever before :) Just one final optimisation pass to do and then it's on to collision. 2013-10-11 18:18:27 +01:00
photonstorm cf414394c3 Tileset working, map coming next. 2013-10-11 06:30:28 +01:00
photonstorm b868c2cb1b Started revamp of the Tilemap system. Also removed old 'Advanced Physics' and dropped in p2.js which is what I hope we'll eventually use. 2013-10-11 04:42:11 +01:00
photonstorm a7230aa769 Sprite.loadTexture added. 2013-10-10 09:03:38 +01:00
photonstorm f10f9324ad Animation.killOnComplete added and fixed a few issues in the Tanks game. 2013-10-09 13:36:57 +01:00
photonstorm 29acf7fb4b Enemy tanks, now firing. 2013-10-09 07:11:36 +01:00
photonstorm ca9321ef42 Updated physics body to use localTransform. Updated tanks demo. 2013-10-09 05:13:38 +01:00
photonstorm 83a00862be Lots of new examples and updates. 2013-10-09 04:31:08 +01:00
Richard Davey 1c577d3674 Fixed RandomDataGenerator.sow 2013-10-08 22:55:27 +01:00
photonstorm f5584bdfe5 Lots of fixes and updates to ArcadePhysics and Group, plus more examples. 2013-10-08 21:09:46 +01:00
photonstorm ebc4e5dc3d New examples HTML page added. 2013-10-08 12:52:20 +01:00
photonstorm fa692653e3 Final commit before rebuilding the Tilemap system. 2013-10-08 10:52:15 +01:00
photonstorm c307f79102 Added Sprite.fixedToCamera, fixed Angular Velocity and Acceleration, fixed jittery Camera, added skipQuadTree flag and created lots more examples. 2013-10-08 00:58:20 +01:00
photonstorm 1bc6ac25fa Preparing to merge new examples. 2013-10-07 22:15:28 +01:00
Richard Davey d4149a8f9a Setting up for this weeks work. 2013-10-07 22:15:28 +01:00
Richard Davey 9ed2dc8e89 Merge pull request #93 from alvinsight/dev
Changed all the examples I could so most of them now work with 1.0.7, and removed the self executing anonymous functions
2013-10-07 14:15:00 -07:00
Webeled 1a522ea786 Removed the self-executing functions 2013-10-07 21:32:34 +01:00
Webeled 77b553ac2a Test 2013-10-07 20:56:44 +01:00
Richard Davey 664c512a99 Fixed small typo. 2013-10-06 16:27:39 +01:00
Richard Davey 47e1b1b54b Sprite optimisations. 2013-10-04 19:00:55 +01:00
Richard Davey 455b18b7ec Sprite optimisations :) 2013-10-04 18:09:56 +01:00
Richard Davey c00bf96603 World and Camera updates nearly complete. 2013-10-04 16:51:24 +01:00
Richard Davey e8bed83ac3 Making some major changes to Camera and World. 2013-10-04 14:41:15 +01:00
Richard Davey 54f073e5cb Testing some new Camera tricks. 2013-10-03 23:20:24 +01:00
Richard Davey c8760b4341 Docs update. 2013-10-03 04:17:44 +01:00
Richard Davey 96da57cac0 Fixed up the namespace in the documentation and finished off all sections other than Game Objects and Physics (yuck). 2013-10-03 02:38:35 +01:00
Richard Davey f832bacfd6 More Docs! 2013-10-03 01:21:08 +01:00
Richard Davey e85643abf4 Yet more documentation done. 2013-10-02 20:18:24 +01:00
Richard Davey 868ae81bab Input, Loader and Math docs tidied up. 2013-10-02 15:05:55 +01:00
Richard Davey 1a2dc05609 Input and keyboard docs. 2013-10-02 13:18:58 +01:00
Richard Davey 852e82d0ca More docs. 2013-10-02 12:11:22 +01:00
Richard Davey 2a01fbb0e8 Merge pull request #87 from STuFF/patch-1
fix typo
2013-10-02 03:23:53 -07:00
Richard Davey 6ce6330f50 More docs. 2013-10-02 11:22:48 +01:00
Nicolas Challeil d2bd2e1600 fix typo
small contribution is small :)
2013-10-02 09:46:42 +02:00
Richard Davey 82325ecc8a Finished Group documentation. 2013-10-02 01:51:30 +01:00
Richard Davey e5b1faace6 Preparing more documentation. 2013-10-02 01:16:40 +01:00
Richard Davey 7c7cd8b01d More docs and quick patch to stop the body.allowRotation messing things up. 2013-10-01 16:56:47 +01:00
Richard Davey ca113b85aa More docs coming on. 2013-10-01 16:39:39 +01:00
Richard Davey a38ad2d1a9 Merge pull request #85 from onedayitwillmake/dev
Fixed accidentally overwroting remove function with a prepend function
2013-10-01 08:16:16 -07:00
Richard Davey 9b4b267e7a Working through building the docs. 2013-10-01 16:15:45 +01:00
Mario Gonzalez f593afd164 Fixed accidentally overwroting remove function with a prepend function 2013-10-01 10:08:09 -04:00
Richard Davey 0a98bb67d8 jsdoc blocks added to every file and tidied up. 2013-10-01 15:05:30 +01:00
Richard Davey 305b12d76b Adding docs. 2013-10-01 15:01:46 +01:00
Richard Davey fa15f8015d Fixed bug in LinkedList#remove that could cause first to point to a dead node 2013-10-01 11:28:57 +01:00
Richard Davey 3740ea05ee Merge pull request #84 from onedayitwillmake/dev
Fixed bug in LinkedList#remove that could cause first to point to a dead node
2013-10-01 03:01:38 -07:00
Mario Gonzalez fa8ad51c79 Fixed bug in LinkedList#remove that could cause first/tail to be have pointers to dead node 2013-09-30 22:06:48 -04:00
Richard Davey 480d90b009 * Removed the callbackContext parameter from Group.callAll because it's no longer needed.
* Updated Group.forEach, forEachAlive and forEachDead so you can now pass as many parameters as you want, which will all be given to the callback after the child.
* Updated build script so it can be run from the command-line and includes UMD wrappers (thanks iaincarsberg)
2013-10-01 02:19:08 +01:00
Richard Davey 8668b82ef6 * Fixed issue causing Keyboard.justPressed to always fire (thanks stemkoski)
* Added Keyboard.addKey() which creates a new Phaser.Key object that can be polled for updates, pressed states, etc. See the 2 new examples showing use.
2013-10-01 01:18:29 +01:00
Richard Davey fa1ed04aa8 Build 2013-09-30 19:54:43 +01:00
Richard Davey 83fc38344c Merge pull request #80 from webeled/dev
Tons of new examples
2013-09-30 11:53:55 -07:00
Webeled 5afce4bf8e Revert "Manual update"
This reverts commit 4b177e0a9b.
2013-09-30 19:18:33 +01:00
Webeled 933edb203f Final Commit of the day,
Final commit, the wip/examples folder can be removed,
2013-09-30 19:13:01 +01:00
Webeled bdc8edea9d Lots of new examples :)
Lots of new examples, the wip/examples folder can be destoryed I think
2013-09-30 17:31:03 +01:00
Richard Davey 16b1913de1 * Fixed issue in Sound.play where if you gave a missing marker it would play the whole sound sprite instead.
* Button.setFrames will set the current frame based on the button state immediately.
* InputHandler now creates the _pointerData array on creation and populates with one empty set of values, so pointerOver etc all work before a start call.
* Added Canvas.setUserSelect() to disable touchCallouts and user selections within the canvas.
* When the game boots it will now by default disable user-select and touch action events on the game canvas.
* Loaded.setPreloadSprite now rounds the width/height values and starts from 1. This fixes canvas draw errors in IE9/10 and Firefox.
2013-09-30 17:12:22 +01:00
Webeled 4b177e0a9b Manual update 2013-09-30 13:26:56 +01:00
Richard Davey 8d17e1f963 Sound duration fixes. 2013-09-30 12:17:21 +01:00
Richard Davey e846f3cbac Fix for incorrect new particle positioning (issue #73) 2013-09-30 12:17:21 +01:00
Richard Davey e3384b7ff7 Merge pull request #71 from webeled/dev
More examples migrated across.
2013-09-30 04:16:44 -07:00
Richard Davey c5d90a7722 Merge pull request #74 from cottonflop/dev
Fix for incorrect new particle positioning (issue #73)
2013-09-30 03:20:11 -07:00
Richard Davey b0a9c646c9 Merge pull request #76 from XekeDeath/dev
Fix for particles emitting in the wrong area when using emitter.width/height. And small change to make animation looping more robust.
2013-09-30 03:16:33 -07:00
Richard Davey 31bbf05ace * Fixed small bug stopping Tween.pause / resume from resuming correctly when called directly.
* Fixed an issue where Tweens.removeAll wasn't clearing tweens in the addition queue.
* Change: When you swap State all active tweens are now purged.
2013-09-30 11:15:50 +01:00
XekeDeath 62b5aa9bd9 Removed redundant assignment. 2013-09-30 13:28:17 +10:00
XekeDeath ce3e1708e0 Merge branch 'dev' of https://github.com/XekeDeath/phaser into dev 2013-09-30 13:04:29 +10:00
XekeDeath 80e80ddccb Make animation looping robust when skipping frames. 2013-09-30 13:04:22 +10:00
XekeDeath 29dbbcae52 Fix Particle Emitters when using Emitter width/height 2013-09-30 13:02:22 +10:00
Betsy Cottonflop 40b968028a Fix for incorrect new particle positioning 2013-09-28 16:52:37 -07:00
Webeled 8096dc67f5 Corrected few typos and added a keyboard exampl 2013-09-27 18:25:18 +01:00
Webeled efa01dcaa3 Final commit of the day more groups examples 2013-09-27 18:06:36 +01:00
Richard Davey 497d15b5bc Sprite.play 2013-09-27 13:47:22 +01:00
Webeled 903b11b730 Groups examples and some boolean checks corrected 2013-09-27 13:27:15 +01:00
Richard Davey 18c695e9dd PixiPatch and other 1.0.7 features 2013-09-27 09:57:08 +01:00
Richard Davey 6353d8c7ab Fixed some eases. 2013-09-26 15:22:49 +01:00
Richard Davey 3a369d5485 Added zwoptex Phaser template. 2013-09-26 11:25:43 +01:00
Richard Davey e77dba402c Beta warning added. 2013-09-24 16:02:58 +01:00
Richard Davey 891369b197 Preparing for 1.0.6 release, but moving physics changes to dev. 2013-09-24 15:28:29 +01:00
Richard Davey 51049128f5 Collision fixes for testing 2013-09-23 22:23:17 +01:00
Richard Davey 257cbe3be8 Much more stable collision, just need to refactor the Tilemap handling - see if I can optimise it a bit too. 2013-09-23 03:26:08 +01:00
Richard Davey bc02a1a05e Fixing collision issues 2013-09-23 01:06:09 +01:00
Richard Davey b69b3db486 1.0.6a 2013-09-22 23:07:12 +01:00
Richard Davey 093bf8343d Graphics fixes and other changes 2013-09-22 22:55:34 +01:00
Richard Davey 02723d4774 Merge pull request #62 from TheJare/fixbmtext
BitmapText fixes
2013-09-22 14:33:16 -07:00
Richard Davey 6b9484aa80 Merge pull request #60 from TheJare/master
Fix bug in StateManager...
2013-09-22 14:32:25 -07:00
Richard Davey f66e6326e3 Merge pull request #61 from powerfear/master
make tweens chainable with .to
2013-09-22 14:13:30 -07:00
Richard Davey 20f63c0af2 Fixed Graphics not working correctly. 2013-09-22 15:22:45 +01:00
Richard Davey 9479c79d79 Merge pull request #63 from luizbills/master
fix antialias bug
2013-09-22 02:14:15 -07:00
TheJare 557160c3c2 Fixes to math library 2013-09-22 03:43:10 +02:00
Luiz "Bills" 8132427870 fix antialias bug 2013-09-21 21:40:36 -03:00
TheJare 15ad941908 Alternative way to specify tile size in spritesheets: negative means how many tiles there are 2013-09-21 19:23:25 +02:00
Richard Davey d1ea96fd83 Input updates 2013-09-21 13:07:06 +01:00
powerfear c36543a261 make tweens chain loopable 2013-09-20 21:47:58 -04:00
TheJare e4595d2a41 Fix box dimensions in PIXI.BitmapText. Support anchor in Phaser.BitmapText 2013-09-21 02:29:14 +02:00
TheJare a4bc69c2f7 Fix box dimensions in PIXI.BitmapText. Support anchor in Phaser.BitmapText 2013-09-21 01:03:19 +01:00
powerfear f31d56584d make tweens chainable with .to
Allow successive .to calls to chain tweens, and an example using it.
2013-09-20 19:14:50 -04:00
Richard Davey 45426be0bc Assets update 2013-09-20 23:21:12 +01:00
TheJare 4b6147d3e3 Fix bug in StateManager where a state's update function might not get called if it has an empty preload function 2013-09-20 22:42:04 +01:00
Richard Davey 8452fa0fd4 Missing assets merged back in! 2013-09-20 17:13:26 +01:00
Richard Davey 68f45709d8 Merge pull request #56 from cocoademon/master
Some small animation fixes
2013-09-20 08:56:49 -07:00
Richard Davey 8c41b3253c 1.0.5 package 2013-09-20 14:00:49 +01:00
Richard Davey a415e779d1 Final 1.0.5 release. 2013-09-20 13:55:33 +01:00
Cameron Foale 61b9e119cb Incorrect input array in FrameData.getFrames 2013-09-20 17:48:38 +10:00
Cameron Foale ec3fc8f307 Fixes numeric frame indexes on animations 2013-09-20 17:39:02 +10:00
Richard Davey 9e88da5c66 Multiple animation fixes in place. 2013-09-19 23:47:50 +01:00
Richard Davey e938e41c73 Merge pull request #54 from webeled/master
Lots of JSDdocs done, and some camera examples
2013-09-19 12:15:26 -07:00
Webeled 1b5c1f18fe More camera examples 2013-09-19 17:47:12 +02:00
Webeled 26a595cd44 JSDocs update ;) 2013-09-19 16:34:48 +02:00
Richard Davey 3f1cafe21f Put the famous idnetityMatrix typo back in so it doesn't break Pixi 2013-09-19 13:33:51 +01:00
Richard Davey 7dd63df087 Merge pull request #52 from cocoademon/master
Make Phaser.Text play nicely with scrolling, by using an explicit x, y
2013-09-19 05:26:22 -07:00
Webeled 78a062dfb6 Updated my files and the documentation checklist 2013-09-19 13:17:49 +02:00
Webeled 6e4631a849 First commit of the day 2013-09-19 10:36:15 +02:00
Cameron Foale 6fde862f61 Make Phaser.Text play nicely with scrolling, by using an explicit x, y 2013-09-19 16:57:19 +10:00
Cameron FoaleandCameron Foale 4f969901da Fixed typo 'indetityMatrix' in RenderTexture 2013-09-19 16:41:34 +10:00
Richard Davey c5fc5e3394 Fixed various issues in the TweenManager, added length property to Group and improved the build script. 2013-09-19 04:45:08 +01:00
Richard Davey cf26f68693 Added Math.numberArray 2013-09-18 14:08:26 +01:00
Richard Davey 47834ad478 Fixed issue in FrameData.getFrameIndexes where the input array was being ignored. 2013-09-18 14:02:31 +01:00
Richard Davey 91c07ea37d Animation delay put back to normal 2013-09-18 06:41:41 +01:00
Richard Davey d9a49797c4 1.0.4 release 2013-09-18 06:34:56 +01:00
Richard Davey a102859622 Added some links to the readme. 2013-09-17 16:59:04 +01:00
Richard Davey a899d24d4c Small readme update 2013-09-17 16:54:46 +01:00
Richard Davey 3c5ea01e09 1.0.3 release - fixed Text and Bitmap Fonts, Animation documentation and more examples 2013-09-17 16:50:47 +01:00
Richard Davey f4734b1143 Merge pull request #46 from webeled/master
jsdocs update plus some audio, button and camera examples.
2013-09-16 13:25:17 -07:00
Webeled bb9761aaf4 It loops but still problems on the constructor 2013-09-16 17:40:56 +02:00
Webeled fc584cf6bc Examples (audio, button,camera), and docs
Created some examples (audio, button,camera), and documented the source
code along the way
2013-09-16 16:37:30 +02:00
Richard Davey 17e208a95e 1.0.2 build 2013-09-16 01:53:53 +01:00
Richard Davey e3869ff3ac * Fixed a bug in the AnimationManager where useNumericIndex was always set to true
* Added in lots of Particle examples
* Added in the start of a Breakout game
* Added in the start of a Platformer game
2013-09-16 01:52:15 +01:00
Richard Davey e705509d29 Added lots of particles examples. 2013-09-16 01:08:06 +01:00
1119 changed files with 480806 additions and 72883 deletions
+2 -1
View File
@@ -3,4 +3,5 @@
Phaser OSX.sublime-project
Phaser OSX.sublime-workspace
Phaser.sublime-project
Phaser.sublime-workspace
Phaser.sublime-workspace
node_modules
-16
View File
@@ -1,16 +0,0 @@
YUI.add("yuidoc-meta", function(Y) {
Y.YUIDoc = { meta: {
"classes": [
"TimeManager"
],
"modules": [
"Phaser"
],
"allModules": [
{
"displayName": "Phaser",
"name": "Phaser"
}
]
} };
});
Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

-783
View File
@@ -1,783 +0,0 @@
/*
Font sizes for all selectors other than the body are given in percentages,
with 100% equal to 13px. To calculate a font size percentage, multiply the
desired size in pixels by 7.6923076923.
Here's a quick lookup table:
10px - 76.923%
11px - 84.615%
12px - 92.308%
13px - 100%
14px - 107.692%
15px - 115.385%
16px - 123.077%
17px - 130.769%
18px - 138.462%
19px - 146.154%
20px - 153.846%
*/
html {
background: #fff;
color: #333;
overflow-y: scroll;
}
body {
/*font: 13px/1.4 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', 'Bitstream Vera Sans', 'Helvetica', 'Arial', sans-serif;*/
font: 13px/1.4 'Helvetica', 'Arial', sans-serif;
margin: 0;
padding: 0;
}
/* -- Links ----------------------------------------------------------------- */
a {
color: #356de4;
text-decoration: none;
}
.hidden {
display: none;
}
a:hover { text-decoration: underline; }
/* "Jump to Table of Contents" link is shown to assistive tools, but hidden from
sight until it's focused. */
.jump {
position: absolute;
padding: 3px 6px;
left: -99999px;
top: 0;
}
.jump:focus { left: 40%; }
/* -- Paragraphs ------------------------------------------------------------ */
p { margin: 1.3em 0; }
dd p, td p { margin-bottom: 0; }
dd p:first-child, td p:first-child { margin-top: 0; }
/* -- Headings -------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
color: #D98527;/*was #f80*/
font-family: 'Trebuchet MS', sans-serif;
font-weight: bold;
line-height: 1.1;
margin: 1.1em 0 0.5em;
}
h1 {
font-size: 184.6%;
color: #30418C;
margin: 0.75em 0 0.5em;
}
h2 {
font-size: 153.846%;
color: #E48A2B;
}
h3 { font-size: 138.462%; }
h4 {
border-bottom: 1px solid #DBDFEA;
color: #E48A2B;
font-size: 115.385%;
font-weight: normal;
padding-bottom: 2px;
}
h5, h6 { font-size: 107.692%; }
/* -- Code and examples ----------------------------------------------------- */
code, kbd, pre, samp {
font-family: Menlo, Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;
font-size: 92.308%;
line-height: 1.35;
}
p code, p kbd, p samp {
background: #FCFBFA;
border: 1px solid #EFEEED;
padding: 0 3px;
}
a code, a kbd, a samp,
pre code, pre kbd, pre samp,
table code, table kbd, table samp,
.intro code, .intro kbd, .intro samp,
.toc code, .toc kbd, .toc samp {
background: none;
border: none;
padding: 0;
}
pre.code, pre.terminal, pre.cmd {
overflow-x: auto;
*overflow-x: scroll;
padding: 0.3em 0.6em;
}
pre.code {
background: #FCFBFA;
border: 1px solid #EFEEED;
border-left-width: 5px;
}
pre.terminal, pre.cmd {
background: #F0EFFC;
border: 1px solid #D0CBFB;
border-left: 5px solid #D0CBFB;
}
/* Don't reduce the font size of <code>/<kbd>/<samp> elements inside <pre>
blocks. */
pre code, pre kbd, pre samp { font-size: 100%; }
/* Used to denote text that shouldn't be selectable, such as line numbers or
shell prompts. Guess which browser this doesn't work in. */
.noselect {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
user-select: none;
}
/* -- Lists ----------------------------------------------------------------- */
dd { margin: 0.2em 0 0.7em 1em; }
dl { margin: 1em 0; }
dt { font-weight: bold; }
/* -- Tables ---------------------------------------------------------------- */
caption, th { text-align: left; }
table {
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #fff;
padding: 5px 12px;
vertical-align: top;
}
td { background: #E6E9F5; }
td dl { margin: 0; }
td dl dl { margin: 1em 0; }
td pre:first-child { margin-top: 0; }
th {
background: #D2D7E6;/*#97A0BF*/
border-bottom: none;
border-top: none;
color: #000;/*#FFF1D5*/
font-family: 'Trebuchet MS', sans-serif;
font-weight: bold;
line-height: 1.3;
white-space: nowrap;
}
/* -- Layout and Content ---------------------------------------------------- */
#doc {
margin: auto;
min-width: 1024px;
}
.content { padding: 0 20px 0 25px; }
.sidebar {
padding: 0 15px 0 10px;
}
#bd {
padding: 7px 0 130px;
position: relative;
width: 99%;
}
/* -- Table of Contents ----------------------------------------------------- */
/* The #toc id refers to the single global table of contents, while the .toc
class refers to generic TOC lists that could be used throughout the page. */
.toc code, .toc kbd, .toc samp { font-size: 100%; }
.toc li { font-weight: bold; }
.toc li li { font-weight: normal; }
/* -- Intro and Example Boxes ----------------------------------------------- */
/*
.intro, .example { margin-bottom: 2em; }
.example {
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
-moz-box-shadow: 0 0 5px #bfbfbf;
-webkit-box-shadow: 0 0 5px #bfbfbf;
box-shadow: 0 0 5px #bfbfbf;
padding: 1em;
}
.intro {
background: none repeat scroll 0 0 #F0F1F8; border: 1px solid #D4D8EB; padding: 0 1em;
}
*/
/* -- Other Styles ---------------------------------------------------------- */
/* These are probably YUI-specific, and should be moved out of Selleck's default
theme. */
.button {
border: 1px solid #dadada;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
color: #444;
display: inline-block;
font-family: Helvetica, Arial, sans-serif;
font-size: 92.308%;
font-weight: bold;
padding: 4px 13px 3px;
-moz-text-shadow: 1px 1px 0 #fff;
-webkit-text-shadow: 1px 1px 0 #fff;
text-shadow: 1px 1px 0 #fff;
white-space: nowrap;
background: #EFEFEF; /* old browsers */
background: -moz-linear-gradient(top, #f5f5f5 0%, #efefef 50%, #e5e5e5 51%, #dfdfdf 100%); /* firefox */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(50%,#efefef), color-stop(51%,#e5e5e5), color-stop(100%,#dfdfdf)); /* webkit */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dfdfdf',GradientType=0 ); /* ie */
}
.button:hover {
border-color: #466899;
color: #fff;
text-decoration: none;
-moz-text-shadow: 1px 1px 0 #222;
-webkit-text-shadow: 1px 1px 0 #222;
text-shadow: 1px 1px 0 #222;
background: #6396D8; /* old browsers */
background: -moz-linear-gradient(top, #6396D8 0%, #5A83BC 50%, #547AB7 51%, #466899 100%); /* firefox */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6396D8), color-stop(50%,#5A83BC), color-stop(51%,#547AB7), color-stop(100%,#466899)); /* webkit */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6396D8', endColorstr='#466899',GradientType=0 ); /* ie */
}
.newwindow { text-align: center; }
.header .version em {
display: block;
text-align: right;
}
#classdocs .item {
border-bottom: 1px solid #466899;
margin: 1em 0;
padding: 1.5em;
}
#classdocs .item .params p,
#classdocs .item .returns p,{
display: inline;
}
#classdocs .item em code, #classdocs .item em.comment {
color: green;
}
#classdocs .item em.comment a {
color: green;
text-decoration: underline;
}
#classdocs .foundat {
font-size: 11px;
font-style: normal;
}
.attrs .emits {
margin-left: 2em;
padding: .5em;
border-left: 1px dashed #ccc;
}
abbr {
border-bottom: 1px dashed #ccc;
font-size: 80%;
cursor: help;
}
.prettyprint li.L0,
.prettyprint li.L1,
.prettyprint li.L2,
.prettyprint li.L3,
.prettyprint li.L5,
.prettyprint li.L6,
.prettyprint li.L7,
.prettyprint li.L8 {
list-style: decimal;
}
ul li p {
margin-top: 0;
}
.method .name {
font-size: 110%;
}
.apidocs .methods .extends .method,
.apidocs .properties .extends .property,
.apidocs .attrs .extends .attr,
.apidocs .events .extends .event {
font-weight: bold;
}
.apidocs .methods .extends .inherited,
.apidocs .properties .extends .inherited,
.apidocs .attrs .extends .inherited,
.apidocs .events .extends .inherited {
font-weight: normal;
}
#hd {
background: whiteSmoke;
background: -moz-linear-gradient(top,#DCDBD9 0,#F6F5F3 100%);
background: -webkit-gradient(linear,left top,left bottom,color-stop(0%,#DCDBD9),color-stop(100%,#F6F5F3));
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdbd9',endColorstr='#F6F5F3',GradientType=0);
border-bottom: 1px solid #DFDFDF;
padding: 0 15px 1px 20px;
margin-bottom: 15px;
}
#hd img {
margin-right: 10px;
vertical-align: middle;
}
/* -- API Docs CSS ---------------------------------------------------------- */
/*
This file is organized so that more generic styles are nearer the top, and more
specific styles are nearer the bottom of the file. This allows us to take full
advantage of the cascade to avoid redundant style rules. Please respect this
convention when making changes.
*/
/* -- Generic TabView styles ------------------------------------------------ */
/*
These styles apply to all API doc tabviews. To change styles only for a
specific tabview, see the other sections below.
*/
.yui3-js-enabled .apidocs .tabview {
visibility: hidden; /* Hide until the TabView finishes rendering. */
_visibility: visible;
}
.apidocs .tabview.yui3-tabview-content { visibility: visible; }
.apidocs .tabview .yui3-tabview-panel { background: #fff; }
/* -- Generic Content Styles ------------------------------------------------ */
/* Headings */
h2, h3, h4, h5, h6 {
border: none;
color: #30418C;
font-weight: bold;
text-decoration: none;
}
.link-docs {
float: right;
font-size: 15px;
margin: 4px 4px 6px;
padding: 6px 30px 5px;
}
.apidocs { zoom: 1; }
/* Generic box styles. */
.apidocs .box {
border: 1px solid;
border-radius: 3px;
margin: 1em 0;
padding: 0 1em;
}
/* A flag is a compact, capsule-like indicator of some kind. It's used to
indicate private and protected items, item return types, etc. in an
attractive and unobtrusive way. */
.apidocs .flag {
background: #bababa;
border-radius: 3px;
color: #fff;
font-size: 11px;
margin: 0 0.5em;
padding: 2px 4px 1px;
}
/* Class/module metadata such as "Uses", "Extends", "Defined in", etc. */
.apidocs .meta {
background: #f9f9f9;
border-color: #efefef;
color: #555;
font-size: 11px;
padding: 3px 6px;
}
.apidocs .meta p { margin: 0; }
/* Deprecation warning. */
.apidocs .box.deprecated,
.apidocs .flag.deprecated {
background: #fdac9f;
border: 1px solid #fd7775;
}
.apidocs .box.deprecated p { margin: 0.5em 0; }
.apidocs .flag.deprecated { color: #333; }
/* Module/Class intro description. */
.apidocs .intro {
background: #f0f1f8;
border-color: #d4d8eb;
}
/* Loading spinners. */
#bd.loading .apidocs,
#api-list.loading .yui3-tabview-panel {
background: #fff url(../img/spinner.gif) no-repeat center 70px;
min-height: 150px;
}
#bd.loading .apidocs .content,
#api-list.loading .yui3-tabview-panel .apis {
display: none;
}
.apidocs .no-visible-items { color: #666; }
/* Generic inline list. */
.apidocs ul.inline {
display: inline;
list-style: none;
margin: 0;
padding: 0;
}
.apidocs ul.inline li { display: inline; }
/* Comma-separated list. */
.apidocs ul.commas li:after { content: ','; }
.apidocs ul.commas li:last-child:after { content: ''; }
/* Keyboard shortcuts. */
kbd .cmd { font-family: Monaco, Helvetica; }
/* -- Generic Access Level styles ------------------------------------------- */
.apidocs .item.protected,
.apidocs .item.private,
.apidocs .index-item.protected,
.apidocs .index-item.deprecated,
.apidocs .index-item.private {
display: none;
}
.show-deprecated .item.deprecated,
.show-deprecated .index-item.deprecated,
.show-protected .item.protected,
.show-protected .index-item.protected,
.show-private .item.private,
.show-private .index-item.private {
display: block;
}
.hide-inherited .item.inherited,
.hide-inherited .index-item.inherited {
display: none;
}
/* -- Generic Item Index styles --------------------------------------------- */
.apidocs .index { margin: 1.5em 0 3em; }
.apidocs .index h3 {
border-bottom: 1px solid #efefef;
color: #333;
font-size: 13px;
margin: 2em 0 0.6em;
padding-bottom: 2px;
}
.apidocs .index .no-visible-items { margin-top: 2em; }
.apidocs .index-list {
border-color: #efefef;
font-size: 12px;
list-style: none;
margin: 0;
padding: 0;
-moz-column-count: 4;
-moz-column-gap: 10px;
-moz-column-width: 170px;
-ms-column-count: 4;
-ms-column-gap: 10px;
-ms-column-width: 170px;
-o-column-count: 4;
-o-column-gap: 10px;
-o-column-width: 170px;
-webkit-column-count: 4;
-webkit-column-gap: 10px;
-webkit-column-width: 170px;
column-count: 4;
column-gap: 10px;
column-width: 170px;
}
.apidocs .no-columns .index-list {
-moz-column-count: 1;
-ms-column-count: 1;
-o-column-count: 1;
-webkit-column-count: 1;
column-count: 1;
}
.apidocs .index-item { white-space: nowrap; }
.apidocs .index-item .flag {
background: none;
border: none;
color: #afafaf;
display: inline;
margin: 0 0 0 0.2em;
padding: 0;
}
/* -- Generic API item styles ----------------------------------------------- */
.apidocs .args {
display: inline;
margin: 0 0.5em;
}
.apidocs .flag.chainable { background: #46ca3b; }
.apidocs .flag.protected { background: #9b86fc; }
.apidocs .flag.private { background: #fd6b1b; }
.apidocs .flag.async { background: #356de4; }
.apidocs .flag.required { background: #e60923; }
.apidocs .item {
border-bottom: 1px solid #efefef;
margin: 1.5em 0 2em;
padding-bottom: 2em;
}
.apidocs .item h4,
.apidocs .item h5,
.apidocs .item h6 {
color: #333;
font-family: inherit;
font-size: 100%;
}
.apidocs .item .description p,
.apidocs .item pre.code {
margin: 1em 0 0;
}
.apidocs .item .meta {
background: none;
border: none;
padding: 0;
}
.apidocs .item .name {
display: inline;
font-size: 14px;
}
.apidocs .item .type,
.apidocs .item .type a,
.apidocs .returns-inline {
color: #555;
}
.apidocs .item .type,
.apidocs .returns-inline {
font-size: 11px;
margin: 0 0 0 0;
}
.apidocs .item .type a { border-bottom: 1px dotted #afafaf; }
.apidocs .item .type a:hover { border: none; }
/* -- Item Parameter List --------------------------------------------------- */
.apidocs .params-list {
list-style: square;
margin: 1em 0 0 2em;
padding: 0;
}
.apidocs .param { margin-bottom: 1em; }
.apidocs .param .type,
.apidocs .param .type a {
color: #666;
}
.apidocs .param .type {
margin: 0 0 0 0.5em;
*margin-left: 0.5em;
}
.apidocs .param-name { font-weight: bold; }
/* -- Item "Emits" block ---------------------------------------------------- */
.apidocs .item .emits {
background: #f9f9f9;
border-color: #eaeaea;
}
/* -- Item "Returns" block -------------------------------------------------- */
.apidocs .item .returns .type,
.apidocs .item .returns .type a {
font-size: 100%;
margin: 0;
}
/* -- Class Constructor block ----------------------------------------------- */
.apidocs .constructor .item {
border: none;
padding-bottom: 0;
}
/* -- File Source View ------------------------------------------------------ */
.apidocs .file pre.code,
#doc .apidocs .file pre.prettyprint {
background: inherit;
border: none;
overflow: visible;
padding: 0;
}
.apidocs .L0,
.apidocs .L1,
.apidocs .L2,
.apidocs .L3,
.apidocs .L4,
.apidocs .L5,
.apidocs .L6,
.apidocs .L7,
.apidocs .L8,
.apidocs .L9 {
background: inherit;
}
/* -- Submodule List -------------------------------------------------------- */
.apidocs .module-submodule-description {
font-size: 12px;
margin: 0.3em 0 1em;
}
.apidocs .module-submodule-description p:first-child { margin-top: 0; }
/* -- Sidebar TabView ------------------------------------------------------- */
#api-tabview { margin-top: 0.6em; }
#api-tabview-filter,
#api-tabview-panel {
border: 1px solid #dfdfdf;
}
#api-tabview-filter {
border-bottom: none;
border-top: none;
padding: 0.6em 10px 0 10px;
}
#api-tabview-panel { border-top: none; }
#api-filter { width: 97%; }
/* -- Content TabView ------------------------------------------------------- */
#classdocs .yui3-tabview-panel { border: none; }
/* -- Source File Contents -------------------------------------------------- */
.prettyprint li.L0,
.prettyprint li.L1,
.prettyprint li.L2,
.prettyprint li.L3,
.prettyprint li.L5,
.prettyprint li.L6,
.prettyprint li.L7,
.prettyprint li.L8 {
list-style: decimal;
}
/* -- API options ----------------------------------------------------------- */
#api-options {
font-size: 11px;
margin-top: 2.2em;
position: absolute;
right: 1.5em;
}
/*#api-options label { margin-right: 0.6em; }*/
/* -- API list -------------------------------------------------------------- */
#api-list {
margin-top: 1.5em;
*zoom: 1;
}
.apis {
font-size: 12px;
line-height: 1.4;
list-style: none;
margin: 0;
padding: 0.5em 0 0.5em 0.4em;
}
.apis a {
border: 1px solid transparent;
display: block;
margin: 0 0 0 -4px;
padding: 1px 4px 0;
text-decoration: none;
_border: none;
_display: inline;
}
.apis a:hover,
.apis a:focus {
background: #E8EDFC;
background: -moz-linear-gradient(top, #e8edfc 0%, #becef7 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#E8EDFC), color-stop(100%,#BECEF7));
border-color: #AAC0FA;
border-radius: 3px;
color: #333;
outline: none;
}
.api-list-item a:hover,
.api-list-item a:focus {
font-weight: bold;
text-shadow: 1px 1px 1px #fff;
}
.apis .message { color: #888; }
.apis .result a { padding: 3px 5px 2px; }
.apis .result .type {
right: 4px;
top: 7px;
}
.api-list-item .yui3-highlight {
font-weight: bold;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

-10
View File
@@ -1,10 +0,0 @@
<!doctype html>
<html>
<head>
<title>Redirector</title>
<meta http-equiv="refresh" content="0;url=../">
</head>
<body>
<a href="../">Click here to redirect</a>
</body>
</html>
-52
View File
@@ -1,52 +0,0 @@
YUI.add('api-filter', function (Y) {
Y.APIFilter = Y.Base.create('apiFilter', Y.Base, [Y.AutoCompleteBase], {
// -- Initializer ----------------------------------------------------------
initializer: function () {
this._bindUIACBase();
this._syncUIACBase();
},
getDisplayName: function(name) {
Y.each(Y.YUIDoc.meta.allModules, function(i) {
if (i.name === name && i.displayName) {
name = i.displayName;
}
});
return name;
}
}, {
// -- Attributes -----------------------------------------------------------
ATTRS: {
resultHighlighter: {
value: 'phraseMatch'
},
// May be set to "classes" or "modules".
queryType: {
value: 'classes'
},
source: {
valueFn: function() {
var self = this;
return function(q) {
var data = Y.YUIDoc.meta[self.get('queryType')],
out = [];
Y.each(data, function(v) {
if (v.toLowerCase().indexOf(q.toLowerCase()) > -1) {
out.push(v);
}
});
return out;
};
}
}
}
});
}, '3.4.0', {requires: [
'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources'
]});
-251
View File
@@ -1,251 +0,0 @@
YUI.add('api-list', function (Y) {
var Lang = Y.Lang,
YArray = Y.Array,
APIList = Y.namespace('APIList'),
classesNode = Y.one('#api-classes'),
inputNode = Y.one('#api-filter'),
modulesNode = Y.one('#api-modules'),
tabviewNode = Y.one('#api-tabview'),
tabs = APIList.tabs = {},
filter = APIList.filter = new Y.APIFilter({
inputNode : inputNode,
maxResults: 1000,
on: {
results: onFilterResults
}
}),
search = APIList.search = new Y.APISearch({
inputNode : inputNode,
maxResults: 100,
on: {
clear : onSearchClear,
results: onSearchResults
}
}),
tabview = APIList.tabview = new Y.TabView({
srcNode : tabviewNode,
panelNode: '#api-tabview-panel',
render : true,
on: {
selectionChange: onTabSelectionChange
}
}),
focusManager = APIList.focusManager = tabviewNode.plug(Y.Plugin.NodeFocusManager, {
circular : true,
descendants: '#api-filter, .yui3-tab-panel-selected .api-list-item a, .yui3-tab-panel-selected .result a',
keys : {next: 'down:40', previous: 'down:38'}
}).focusManager,
LIST_ITEM_TEMPLATE =
'<li class="api-list-item {typeSingular}">' +
'<a href="{rootPath}{typePlural}/{name}.html">{displayName}</a>' +
'</li>';
// -- Init ---------------------------------------------------------------------
// Duckpunch FocusManager's key event handling to prevent it from handling key
// events when a modifier is pressed.
Y.before(function (e, activeDescendant) {
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
return new Y.Do.Prevent();
}
}, focusManager, '_focusPrevious', focusManager);
Y.before(function (e, activeDescendant) {
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
return new Y.Do.Prevent();
}
}, focusManager, '_focusNext', focusManager);
// Create a mapping of tabs in the tabview so we can refer to them easily later.
tabview.each(function (tab, index) {
var name = tab.get('label').toLowerCase();
tabs[name] = {
index: index,
name : name,
tab : tab
};
});
// Switch tabs on Ctrl/Cmd-Left/Right arrows.
tabviewNode.on('key', onTabSwitchKey, 'down:37,39');
// Focus the filter input when the `/` key is pressed.
Y.one(Y.config.doc).on('key', onSearchKey, 'down:83');
// Keep the Focus Manager up to date.
inputNode.on('focus', function () {
focusManager.set('activeDescendant', inputNode);
});
// Update all tabview links to resolved URLs.
tabview.get('panelNode').all('a').each(function (link) {
link.setAttribute('href', link.get('href'));
});
// -- Private Functions --------------------------------------------------------
function getFilterResultNode() {
return filter.get('queryType') === 'classes' ? classesNode : modulesNode;
}
// -- Event Handlers -----------------------------------------------------------
function onFilterResults(e) {
var frag = Y.one(Y.config.doc.createDocumentFragment()),
resultNode = getFilterResultNode(),
typePlural = filter.get('queryType'),
typeSingular = typePlural === 'classes' ? 'class' : 'module';
if (e.results.length) {
YArray.each(e.results, function (result) {
frag.append(Lang.sub(LIST_ITEM_TEMPLATE, {
rootPath : APIList.rootPath,
displayName : filter.getDisplayName(result.highlighted),
name : result.text,
typePlural : typePlural,
typeSingular: typeSingular
}));
});
} else {
frag.append(
'<li class="message">' +
'No ' + typePlural + ' found.' +
'</li>'
);
}
resultNode.empty(true);
resultNode.append(frag);
focusManager.refresh();
}
function onSearchClear(e) {
focusManager.refresh();
}
function onSearchKey(e) {
var target = e.target;
if (target.test('input,select,textarea')
|| target.get('isContentEditable')) {
return;
}
e.preventDefault();
inputNode.focus();
focusManager.refresh();
}
function onSearchResults(e) {
var frag = Y.one(Y.config.doc.createDocumentFragment());
if (e.results.length) {
YArray.each(e.results, function (result) {
frag.append(result.display);
});
} else {
frag.append(
'<li class="message">' +
'No results found. Maybe you\'ll have better luck with a ' +
'different query?' +
'</li>'
);
}
focusManager.refresh();
}
function onTabSelectionChange(e) {
var tab = e.newVal,
name = tab.get('label').toLowerCase();
tabs.selected = {
index: tab.get('index'),
name : name,
tab : tab
};
switch (name) {
case 'classes': // fallthru
case 'modules':
filter.setAttrs({
minQueryLength: 0,
queryType : name
});
search.set('minQueryLength', -1);
// Only send a request if this isn't the initially-selected tab.
if (e.prevVal) {
filter.sendRequest(filter.get('value'));
}
break;
case 'everything':
filter.set('minQueryLength', -1);
search.set('minQueryLength', 1);
if (search.get('value')) {
search.sendRequest(search.get('value'));
} else {
inputNode.focus();
}
break;
default:
// WTF? We shouldn't be here!
filter.set('minQueryLength', -1);
search.set('minQueryLength', -1);
}
if (focusManager) {
setTimeout(function () {
focusManager.refresh();
}, 1);
}
}
function onTabSwitchKey(e) {
var currentTabIndex = tabs.selected.index;
if (!(e.ctrlKey || e.metaKey)) {
return;
}
e.preventDefault();
switch (e.keyCode) {
case 37: // left arrow
if (currentTabIndex > 0) {
tabview.selectChild(currentTabIndex - 1);
inputNode.focus();
}
break;
case 39: // right arrow
if (currentTabIndex < (Y.Object.size(tabs) - 2)) {
tabview.selectChild(currentTabIndex + 1);
inputNode.focus();
}
break;
}
}
}, '3.4.0', {requires: [
'api-filter', 'api-search', 'event-key', 'node-focusmanager', 'tabview'
]});
-98
View File
@@ -1,98 +0,0 @@
YUI.add('api-search', function (Y) {
var Lang = Y.Lang,
Node = Y.Node,
YArray = Y.Array;
Y.APISearch = Y.Base.create('apiSearch', Y.Base, [Y.AutoCompleteBase], {
// -- Public Properties ----------------------------------------------------
RESULT_TEMPLATE:
'<li class="result {resultType}">' +
'<a href="{url}">' +
'<h3 class="title">{name}</h3>' +
'<span class="type">{resultType}</span>' +
'<div class="description">{description}</div>' +
'<span class="className">{class}</span>' +
'</a>' +
'</li>',
// -- Initializer ----------------------------------------------------------
initializer: function () {
this._bindUIACBase();
this._syncUIACBase();
},
// -- Protected Methods ----------------------------------------------------
_apiResultFilter: function (query, results) {
// Filter components out of the results.
return YArray.filter(results, function (result) {
return result.raw.resultType === 'component' ? false : result;
});
},
_apiResultFormatter: function (query, results) {
return YArray.map(results, function (result) {
var raw = Y.merge(result.raw), // create a copy
desc = raw.description || '';
// Convert description to text and truncate it if necessary.
desc = Node.create('<div>' + desc + '</div>').get('text');
if (desc.length > 65) {
desc = Y.Escape.html(desc.substr(0, 65)) + ' &hellip;';
} else {
desc = Y.Escape.html(desc);
}
raw['class'] || (raw['class'] = '');
raw.description = desc;
// Use the highlighted result name.
raw.name = result.highlighted;
return Lang.sub(this.RESULT_TEMPLATE, raw);
}, this);
},
_apiTextLocator: function (result) {
return result.displayName || result.name;
}
}, {
// -- Attributes -----------------------------------------------------------
ATTRS: {
resultFormatter: {
valueFn: function () {
return this._apiResultFormatter;
}
},
resultFilters: {
valueFn: function () {
return this._apiResultFilter;
}
},
resultHighlighter: {
value: 'phraseMatch'
},
resultListLocator: {
value: 'data.results'
},
resultTextLocator: {
valueFn: function () {
return this._apiTextLocator;
}
},
source: {
value: '/api/v1/search?q={query}&count={maxResults}'
}
}
});
}, '3.4.0', {requires: [
'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources',
'escape'
]});
-370
View File
@@ -1,370 +0,0 @@
YUI().use(
'yuidoc-meta',
'api-list', 'history-hash', 'node-screen', 'node-style', 'pjax',
function (Y) {
var win = Y.config.win,
localStorage = win.localStorage,
bdNode = Y.one('#bd'),
pjax,
defaultRoute,
classTabView,
selectedTab;
// Kill pjax functionality unless serving over HTTP.
if (!Y.getLocation().protocol.match(/^https?\:/)) {
Y.Router.html5 = false;
}
// Create the default route with middleware which enables syntax highlighting
// on the loaded content.
defaultRoute = Y.Pjax.defaultRoute.concat(function (req, res, next) {
prettyPrint();
bdNode.removeClass('loading');
next();
});
pjax = new Y.Pjax({
container : '#docs-main',
contentSelector: '#docs-main > .content',
linkSelector : '#bd a',
titleSelector : '#xhr-title',
navigateOnHash: true,
root : '/',
routes : [
// -- / ----------------------------------------------------------------
{
path : '/(index.html)?',
callbacks: defaultRoute
},
// -- /classes/* -------------------------------------------------------
{
path : '/classes/:class.html*',
callbacks: [defaultRoute, 'handleClasses']
},
// -- /files/* ---------------------------------------------------------
{
path : '/files/*file',
callbacks: [defaultRoute, 'handleFiles']
},
// -- /modules/* -------------------------------------------------------
{
path : '/modules/:module.html*',
callbacks: defaultRoute
}
]
});
// -- Utility Functions --------------------------------------------------------
pjax.checkVisibility = function (tab) {
tab || (tab = selectedTab);
if (!tab) { return; }
var panelNode = tab.get('panelNode'),
visibleItems;
// If no items are visible in the tab panel due to the current visibility
// settings, display a message to that effect.
visibleItems = panelNode.all('.item,.index-item').some(function (itemNode) {
if (itemNode.getComputedStyle('display') !== 'none') {
return true;
}
});
panelNode.all('.no-visible-items').remove();
if (!visibleItems) {
if (Y.one('#index .index-item')) {
panelNode.append(
'<div class="no-visible-items">' +
'<p>' +
'Some items are not shown due to the current visibility ' +
'settings. Use the checkboxes at the upper right of this ' +
'page to change the visibility settings.' +
'</p>' +
'</div>'
);
} else {
panelNode.append(
'<div class="no-visible-items">' +
'<p>' +
'This class doesn\'t provide any methods, properties, ' +
'attributes, or events.' +
'</p>' +
'</div>'
);
}
}
// Hide index sections without any visible items.
Y.all('.index-section').each(function (section) {
var items = 0,
visibleItems = 0;
section.all('.index-item').each(function (itemNode) {
items += 1;
if (itemNode.getComputedStyle('display') !== 'none') {
visibleItems += 1;
}
});
section.toggleClass('hidden', !visibleItems);
section.toggleClass('no-columns', visibleItems < 4);
});
};
pjax.initClassTabView = function () {
if (!Y.all('#classdocs .api-class-tab').size()) {
return;
}
if (classTabView) {
classTabView.destroy();
selectedTab = null;
}
classTabView = new Y.TabView({
srcNode: '#classdocs',
on: {
selectionChange: pjax.onTabSelectionChange
}
});
pjax.updateTabState();
classTabView.render();
};
pjax.initLineNumbers = function () {
var hash = win.location.hash.substring(1),
container = pjax.get('container'),
hasLines, node;
// Add ids for each line number in the file source view.
container.all('.linenums>li').each(function (lineNode, index) {
lineNode.set('id', 'l' + (index + 1));
lineNode.addClass('file-line');
hasLines = true;
});
// Scroll to the desired line.
if (hasLines && /^l\d+$/.test(hash)) {
if ((node = container.getById(hash))) {
win.scroll(0, node.getY());
}
}
};
pjax.initRoot = function () {
var terminators = /^(?:classes|files|modules)$/,
parts = pjax._getPathRoot().split('/'),
root = [],
i, len, part;
for (i = 0, len = parts.length; i < len; i += 1) {
part = parts[i];
if (part.match(terminators)) {
// Makes sure the path will end with a "/".
root.push('');
break;
}
root.push(part);
}
pjax.set('root', root.join('/'));
};
pjax.updateTabState = function (src) {
var hash = win.location.hash.substring(1),
defaultTab, node, tab, tabPanel;
function scrollToNode() {
if (node.hasClass('protected')) {
Y.one('#api-show-protected').set('checked', true);
pjax.updateVisibility();
}
if (node.hasClass('private')) {
Y.one('#api-show-private').set('checked', true);
pjax.updateVisibility();
}
setTimeout(function () {
// For some reason, unless we re-get the node instance here,
// getY() always returns 0.
var node = Y.one('#classdocs').getById(hash);
win.scrollTo(0, node.getY() - 70);
}, 1);
}
if (!classTabView) {
return;
}
if (src === 'hashchange' && !hash) {
defaultTab = 'index';
} else {
if (localStorage) {
defaultTab = localStorage.getItem('tab_' + pjax.getPath()) ||
'index';
} else {
defaultTab = 'index';
}
}
if (hash && (node = Y.one('#classdocs').getById(hash))) {
if ((tabPanel = node.ancestor('.api-class-tabpanel', true))) {
if ((tab = Y.one('#classdocs .api-class-tab.' + tabPanel.get('id')))) {
if (classTabView.get('rendered')) {
Y.Widget.getByNode(tab).set('selected', 1);
} else {
tab.addClass('yui3-tab-selected');
}
}
}
// Scroll to the desired element if this is a hash URL.
if (node) {
if (classTabView.get('rendered')) {
scrollToNode();
} else {
classTabView.once('renderedChange', scrollToNode);
}
}
} else {
tab = Y.one('#classdocs .api-class-tab.' + defaultTab);
// When the `defaultTab` node isn't found, `localStorage` is stale.
if (!tab && defaultTab !== 'index') {
tab = Y.one('#classdocs .api-class-tab.index');
}
if (classTabView.get('rendered')) {
Y.Widget.getByNode(tab).set('selected', 1);
} else {
tab.addClass('yui3-tab-selected');
}
}
};
pjax.updateVisibility = function () {
var container = pjax.get('container');
container.toggleClass('hide-inherited',
!Y.one('#api-show-inherited').get('checked'));
container.toggleClass('show-deprecated',
Y.one('#api-show-deprecated').get('checked'));
container.toggleClass('show-protected',
Y.one('#api-show-protected').get('checked'));
container.toggleClass('show-private',
Y.one('#api-show-private').get('checked'));
pjax.checkVisibility();
};
// -- Route Handlers -----------------------------------------------------------
pjax.handleClasses = function (req, res, next) {
var status = res.ioResponse.status;
// Handles success and local filesystem XHRs.
if (!status || (status >= 200 && status < 300)) {
pjax.initClassTabView();
}
next();
};
pjax.handleFiles = function (req, res, next) {
var status = res.ioResponse.status;
// Handles success and local filesystem XHRs.
if (!status || (status >= 200 && status < 300)) {
pjax.initLineNumbers();
}
next();
};
// -- Event Handlers -----------------------------------------------------------
pjax.onNavigate = function (e) {
var hash = e.hash,
originTarget = e.originEvent && e.originEvent.target,
tab;
if (hash) {
tab = originTarget && originTarget.ancestor('.yui3-tab', true);
if (hash === win.location.hash) {
pjax.updateTabState('hashchange');
} else if (!tab) {
win.location.hash = hash;
}
e.preventDefault();
return;
}
// Only scroll to the top of the page when the URL doesn't have a hash.
this.set('scrollToTop', !e.url.match(/#.+$/));
bdNode.addClass('loading');
};
pjax.onOptionClick = function (e) {
pjax.updateVisibility();
};
pjax.onTabSelectionChange = function (e) {
var tab = e.newVal,
tabId = tab.get('contentBox').getAttribute('href').substring(1);
selectedTab = tab;
// If switching from a previous tab (i.e., this is not the default tab),
// replace the history entry with a hash URL that will cause this tab to
// be selected if the user navigates away and then returns using the back
// or forward buttons.
if (e.prevVal && localStorage) {
localStorage.setItem('tab_' + pjax.getPath(), tabId);
}
pjax.checkVisibility(tab);
};
// -- Init ---------------------------------------------------------------------
pjax.on('navigate', pjax.onNavigate);
pjax.initRoot();
pjax.upgrade();
pjax.initClassTabView();
pjax.initLineNumbers();
pjax.updateVisibility();
Y.APIList.rootPath = pjax.get('root');
Y.one('#api-options').delegate('click', pjax.onOptionClick, 'input');
Y.on('hashchange', function (e) {
pjax.updateTabState('hashchange');
}, win);
});
-17
View File
@@ -1,17 +0,0 @@
YUI().use('node', function(Y) {
var code = Y.all('.prettyprint.linenums');
if (code.size()) {
code.each(function(c) {
var lis = c.all('ol li'),
l = 1;
lis.each(function(n) {
n.prepend('<a name="LINENUM_' + l + '"></a>');
l++;
});
});
var h = location.hash;
location.hash = '';
h = h.replace('LINE_', 'LINENUM_');
location.hash = h;
}
});
-130
View File
@@ -1,130 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Change Log</title>
</head>
<body bgcolor="white">
<a style="float:right" href="README.html">README</a>
<h1>Known Issues</h1>
<ul>
<li>Perl formatting is really crappy. Partly because the author is lazy and
partly because Perl is
<a href="http://www.perlmonks.org/?node_id=663393">hard</a> to parse.
<li>On some browsers, <code>&lt;code&gt;</code> elements with newlines in the text
which use CSS to specify <code>white-space:pre</code> will have the newlines
improperly stripped if the element is not attached to the document at the time
the stripping is done. Also, on IE 6, all newlines will be stripped from
<code>&lt;code&gt;</code> elements because of the way IE6 produces
<code>innerHTML</code>. Workaround: use <code>&lt;pre&gt;</code> for code with
newlines.
</ul>
<h1>Change Log</h1>
<h2>29 March 2007</h2>
<ul>
<li>Added <a href="tests/prettify_test.html#PHP">tests</a> for PHP support
to address
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=3"
>issue 3</a>.
<li>Fixed
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=6"
>bug</a>: <code>prettyPrintOne</code> was not halting. This was not
reachable through the normal entry point.
<li>Fixed
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
>bug</a>: recursing into a script block or PHP tag that was not properly
closed would not silently drop the content.
(<a href="tests/prettify_test.html#issue4">test</a>)
<li>Fixed
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=8"
>bug</a>: was eating tabs
(<a href="tests/prettify_test.html#issue8">test</a>)
<li>Fixed entity handling so that the caveat
<blockquote>
<p>Caveats: please properly escape less-thans. <tt>x&amp;lt;y</tt>
instead of <tt>x&lt;y</tt>, and use <tt>&quot;</tt> instead of
<tt>&amp;quot;</tt> for string delimiters.</p>
</blockquote>
is no longer applicable.
<li>Added noisefree's C#
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
>patch</a>
<li>Added a <a href="http://google-code-prettify.googlecode.com/files/prettify-small.zip">distribution</a> that has comments and
whitespace removed to reduce download size from 45.5kB to 12.8kB.
</ul>
<h2>4 Jul 2008</h2>
<ul>
<li>Added <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=17">language specific formatters</a> that are triggered by the presence
of a <code>lang-&lt;language-file-extension&gt;</code></li>
<li>Fixed <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=29">bug</a>: python handling of <code>'''string'''</code>
<li>Fixed bug: <code>/</code> in regex <code>[charsets] should not end regex</code>
</ul>
<h2>5 Jul 2008</h2>
<ul>
<li>Defined language extensions for Lisp and Lua</code>
</ul>
<h2>14 Jul 2008</h2>
<ul>
<li>Language handlers for F#, OCAML, SQL</code>
<li>Support for <code>nocode</code> spans to allow embedding of line
numbers and code annotations which should not be styled or otherwise
affect the tokenization of prettified code.
See the issue 22
<a href="tests/prettify_test.html#issue22">testcase</a>.</code>
</ul>
<h2>6 Jan 2009</h2>
<ul>
<li>Language handlers for Visual Basic, Haskell, CSS, and WikiText</li>
<li>Added <tt>.mxml</tt> extension to the markup style handler for
Flex <a href="http://en.wikipedia.org/wiki/MXML">MXML files</a>. See
<a
href="http://code.google.com/p/google-code-prettify/issues/detail?id=37"
>issue 37</a>.
<li>Added <tt>.m</tt> extension to the C style handler so that Objective
C source files properly highlight. See
<a
href="http://code.google.com/p/google-code-prettify/issues/detail?id=58"
>issue 58</a>.
<li>Changed HTML lexer to use the same embedded source mechanism as the
wiki language handler, and changed to use the registered
CSS handler for STYLE element content.
</ul>
<h2>21 May 2009</h2>
<ul>
<li>Rewrote to improve performance on large files.
See <a href="http://mikesamuel.blogspot.com/2009/05/efficient-parsing-in-javascript.html">benchmarks</a>.</li>
<li>Fixed bugs with highlighting of Haskell line comments, Lisp
number literals, Lua strings, C preprocessor directives,
newlines in Wiki code on Windows, and newlines in IE6.</li>
</ul>
<h2>14 August 2009</h2>
<ul>
<li>Fixed prettifying of <code>&lt;code&gt;</code> blocks with embedded newlines.
</ul>
<h2>3 October 2009</h2>
<ul>
<li>Fixed prettifying of XML/HTML tags that contain uppercase letters.
</ul>
<h2>19 July 2010</h2>
<ul>
<li>Added support for line numbers. Bug
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=22"
>22</a></li>
<li>Added YAML support. Bug
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=123"
>123</a></li>
<li>Added VHDL support courtesy Le Poussin.</li>
<li>IE performance improvements. Bug
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=102"
>102</a> courtesy jacobly.</li>
<li>A variety of markup formatting fixes courtesy smain and thezbyg.</li>
<li>Fixed copy and paste in IE[678].
<li>Changed output to use <code>&amp;#160;</code> instead of
<code>&amp;nbsp;</code> so that the output works when embedded in XML.
Bug
<a href="http://code.google.com/p/google-code-prettify/issues/detail?id=108"
>108</a>.</li>
</ul>
</body>
</html>
-203
View File
@@ -1,203 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Javascript code prettifier</title>
<link href="src/prettify.css" type="text/css" rel="stylesheet" />
<script src="src/prettify.js" type="text/javascript"></script>
<style type="text/css">
body { margin-left: .5in }
h1, h2, h3, h4, .footer { margin-left: -.4in; }
</style>
</head>
<body onload="prettyPrint()" bgcolor="white">
<small style="float: right">Languages : <a href="README-zh-Hans.html">CH</a></small>
<h1>Javascript code prettifier</h1>
<h2>Setup</h2>
<ol>
<li><a href="http://code.google.com/p/google-code-prettify/downloads/list">Download</a> a distribution
<li>Include the script and stylesheets in your document
(you will need to make sure the css and js file are on your server, and
adjust the paths in the <tt>script</tt> and <tt>link</tt> tag)
<pre class="prettyprint">
&lt;link href="prettify.css" type="text/css" rel="stylesheet" />
&lt;script type="text/javascript" src="prettify.js">&lt;/script></pre>
<li>Add <code class="prettyprint lang-html">onload="prettyPrint()"</code> to your
document's body tag.
<li>Modify the stylesheet to get the coloring you prefer</li>
</ol>
<h2>Usage</h2>
<p>Put code snippets in
<tt>&lt;pre class="prettyprint"&gt;...&lt;/pre&gt;</tt>
or <tt>&lt;code class="prettyprint"&gt;...&lt;/code&gt;</tt>
and it will automatically be pretty printed.
<table summary="code examples">
<tr>
<th>The original
<th>Prettier
<tr>
<td><pre style="border: 1px solid #888;padding: 2px"
><a name="voila1"></a>class Voila {
public:
// Voila
static const string VOILA = "Voila";
// will not interfere with embedded <a href="#voila1">tags</a>.
}</pre>
<td><pre class="prettyprint"><a name="voila2"></a>class Voila {
public:
// Voila
static const string VOILA = "Voila";
// will not interfere with embedded <a href="#voila2">tags</a>.
}</pre>
</table>
<h2>FAQ</h2>
<h3 id="langs">Which languages does it work for?</h3>
<p>The comments in <tt>prettify.js</tt> are authoritative but the lexer
should work on a number of languages including C and friends,
Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, and Makefiles.
It works passably on Ruby, PHP, VB, and Awk and a decent subset of Perl
and Ruby, but, because of commenting conventions, doesn't work on
Smalltalk, or CAML-like languages.</p>
<p>LISPy languages are supported via an extension:
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lisp.js"
><code>lang-lisp.js</code></a>.</p>
<p>And similarly for
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-css.js"
><code>CSS</code></a>,
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-hs.js"
><code>Haskell</code></a>,
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lua.js"
><code>Lua</code></a>,
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-ml.js"
><code>OCAML, SML, F#</code></a>,
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-vb.js"
><code>Visual Basic</code></a>,
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-sql.js"
><code>SQL</code></a>,
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-proto.js"
><code>Protocol Buffers</code></a>, and
<a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-wiki.js"
><code>WikiText</code></a>..
<p>If you'd like to add an extension for your favorite language, please
look at <tt>src/lang-lisp.js</tt> and file an
<a href="http://code.google.com/p/google-code-prettify/issues/list"
>issue</a> including your language extension, and a testcase.</p>
<h3>How do I specify which language my code is in?</h3>
<p>You don't need to specify the language since <code>prettyprint()</code>
will guess. You can specify a language by specifying the language extension
along with the <code>prettyprint</code> class like so:</p>
<pre class="prettyprint lang-html"
>&lt;pre class=&quot;prettyprint <b>lang-html</b>&quot;&gt;
The lang-* class specifies the language file extensions.
File extensions supported by default include
"bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html",
"java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh",
"xhtml", "xml", "xsl".
&lt;/pre&gt;</pre>
<h3>It doesn't work on <tt>&lt;obfuscated code sample&gt;</tt>?</h3>
<p>Yes. Prettifying obfuscated code is like putting lipstick on a pig
&mdash; i.e. outside the scope of this tool.</p>
<h3>Which browsers does it work with?</h3>
<p>It's been tested with IE 6, Firefox 1.5 &amp; 2, and Safari 2.0.4.
Look at <a href="tests/prettify_test.html">the test page</a> to see if it
works in your browser.</p>
<h3>What's changed?</h3>
<p>See the <a href="CHANGES.html">change log</a></p>
<h3>Why doesn't Prettyprinting of strings work on WordPress?</h3>
<p>Apparently wordpress does "smart quoting" which changes close quotes.
This causes end quotes to not match up with open quotes.
<p>This breaks prettifying as well as copying and pasting of code samples.
See
<a href="http://wordpress.org/support/topic/125038"
>WordPress's help center</a> for info on how to stop smart quoting of code
snippets.</p>
<h3 id="linenums">How do I put line numbers in my code?</h3>
<p>You can use the <code>linenums</code> class to turn on line
numbering. If your code doesn't start at line number 1, you can
add a colon and a line number to the end of that class as in
<code>linenums:52</code>.
<p>For example
<pre class="prettyprint">&lt;pre class="prettyprint linenums:<b>4</b>"
&gt;// This is line 4.
foo();
bar();
baz();
boo();
far();
faz();
&lt;pre&gt;</pre>
produces
<pre class="prettyprint linenums:4"
>// This is line 4.
foo();
bar();
baz();
boo();
far();
faz();
</pre>
<h3>How do I prevent a portion of markup from being marked as code?</h3>
<p>You can use the <code>nocode</code> class to identify a span of markup
that is not code.
<pre class="prettyprint">&lt;pre class=prettyprint&gt;
int x = foo(); /* This is a comment &lt;span class="nocode"&gt;This is not code&lt;/span&gt;
Continuation of comment */
int y = bar();
&lt;/pre&gt;</pre>
produces
<pre class="prettyprint">
int x = foo(); /* This is a comment <span class="nocode">This is not code</span>
Continuation of comment */
int y = bar();
</pre>
<p>For a more complete example see the issue22
<a href="tests/prettify_test.html#issue22">testcase</a>.</p>
<h3>I get an error message "a is not a function" or "opt_whenDone is not a function"</h3>
<p>If you are calling <code>prettyPrint</code> via an event handler, wrap it in a function.
Instead of doing
<blockquote>
<code class="prettyprint lang-js"
>addEventListener('load', prettyPrint, false);</code>
</blockquote>
wrap it in a closure like
<blockquote>
<code class="prettyprint lang-js"
>addEventListener('load', function (event) { prettyPrint() }, false);</code>
</blockquote>
so that the browser does not pass an event object to <code>prettyPrint</code> which
will confuse it.
<br><br><br>
<div class="footer">
<!-- Created: Tue Oct 3 17:51:56 PDT 2006 -->
<!-- hhmts start -->
Last modified: Wed Jul 19 13:56:00 PST 2010
<!-- hhmts end -->
</div>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
-364
View File
@@ -1,364 +0,0 @@
{
"project": {
"name": "Phaser",
"description": "HTML5 Game Framework",
"version": "1.0.0",
"url": "http://www.phaser.io/"
},
"files": {
"..\\Phaser\\time\\TimeManager.ts": {
"name": "..\\Phaser\\time\\TimeManager.ts",
"modules": {
"Phaser": 1
},
"classes": {
"TimeManager": 1
},
"fors": {},
"namespaces": {}
}
},
"modules": {
"Phaser": {
"name": "Phaser",
"submodules": {},
"classes": {
"TimeManager": 1
},
"fors": {},
"namespaces": {},
"tag": "module",
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 13,
"author": "Richard Davey <rich@photonstorm.com>",
"copyright": "2013 Photon Storm Ltd.",
"license": "https://github.com/photonstorm/phaser/blob/master/license.txt MIT License"
}
},
"classes": {
"TimeManager": {
"name": "TimeManager",
"shortname": "TimeManager",
"classitems": [],
"plugins": [],
"extensions": [],
"plugin_for": [],
"extension_for": [],
"module": "Phaser",
"namespace": "",
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 13,
"description": "This is the core internal game clock. It manages the elapsed time and calculation of delta values,\nused for game object motion and tweens.",
"is_constructor": 1,
"params": [
{
"name": "game",
"description": "A reference to the currently running game.",
"type": "Phaser.Game"
}
]
}
},
"classitems": [
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 34,
"description": "A reference to the currently running Game.",
"itemtype": "property",
"name": "game",
"type": "{Phaser.Game}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 41,
"description": "The time at which the Game instance started.",
"itemtype": "property",
"name": "_started",
"access": "private",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 49,
"description": "Number of milliseconds elapsed since the last frame update.",
"itemtype": "property",
"name": "elapsed",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 57,
"description": "Game time counter.",
"itemtype": "property",
"name": "time",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 65,
"description": "Records how long the game has been paused for. Is reset each time the game pauses.",
"itemtype": "property",
"name": "pausedTime",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 73,
"description": "The time right now.",
"itemtype": "property",
"name": "now",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 81,
"description": "Elapsed time since the last frame.",
"itemtype": "property",
"name": "delta",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 89,
"description": "The number of seconds that have elapsed since the game was started.",
"itemtype": "method",
"name": "totalElapsedSeconds",
"return": {
"description": "",
"type": "Number"
},
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 100,
"description": "Frames per second.",
"itemtype": "property",
"name": "fps",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 108,
"description": "The lowest rate the fps has dropped to.",
"itemtype": "property",
"name": "fpsMin",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 116,
"description": "The highest rate the fps has reached (usually no higher than 60fps).",
"itemtype": "property",
"name": "fpsMax",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 124,
"description": "The minimum amount of time the game has taken between two frames.",
"itemtype": "property",
"name": "msMin",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 132,
"description": "The maximum amount of time the game has taken between two frames.",
"itemtype": "property",
"name": "msMax",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 140,
"description": "The number of frames record in the last second.",
"itemtype": "property",
"name": "frames",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 148,
"description": "The time (in ms) that the last second counter ticked over.",
"itemtype": "property",
"name": "_timeLastSecond",
"access": "private",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 156,
"description": "Update clock and calculate the fps.\nThis is called automatically by Game._raf",
"itemtype": "method",
"name": "update",
"params": [
{
"name": "raf",
"description": "The current timestamp, either performance.now or Date.now",
"type": "Number"
}
],
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 192,
"description": "Called when the game enters a paused state.",
"itemtype": "method",
"name": "gamePaused",
"access": "private",
"tagname": "",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 201,
"description": "Called when the game resumes from a paused state.",
"itemtype": "method",
"name": "gameResumed",
"access": "private",
"tagname": "",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 211,
"description": "Records how long the game was paused for in miliseconds.",
"itemtype": "property",
"name": "pauseDuration",
"access": "public",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 219,
"description": "The time the game started being paused.",
"itemtype": "property",
"name": "_pauseStarted",
"access": "private",
"tagname": "",
"type": "{Number}",
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 227,
"description": "How long has passed since the given time.",
"itemtype": "method",
"name": "elapsedSince",
"params": [
{
"name": "since",
"description": "The time you want to measure against.",
"type": "Number"
}
],
"return": {
"description": "The difference between the given time and now.",
"type": "Number"
},
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 239,
"description": "How long has passed since the given time (in seconds).",
"itemtype": "method",
"name": "elapsedSecondsSince",
"params": [
{
"name": "since",
"description": "The time you want to measure (in seconds).",
"type": "Number"
}
],
"return": {
"description": "Duration between given time and now (in seconds).",
"type": "Number"
},
"class": "TimeManager",
"module": "Phaser"
},
{
"file": "..\\Phaser\\time\\TimeManager.ts",
"line": 251,
"description": "Resets the private _started value to now.",
"itemtype": "method",
"name": "reset",
"class": "TimeManager",
"module": "Phaser"
}
],
"warnings": [
{
"message": "unknown tag: copyright",
"line": " ..\\Phaser\\time\\TimeManager.ts:3"
},
{
"message": "unknown tag: license",
"line": " ..\\Phaser\\time\\TimeManager.ts:3"
}
]
}
@@ -1,372 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>..\Phaser\time\TimeManager.ts - Phaser</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="../assets/css/logo.png" title="Phaser"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 1.0.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="../classes/TimeManager.html">TimeManager</a></li>
</ul>
<ul id="api-modules" class="apis modules">
<li><a href="../modules/Phaser.html">Phaser</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<h1 class="file-heading">File: ..\Phaser\time\TimeManager.ts</h1>
<div class="file">
<pre class="code prettyprint linenums">
/// &lt;reference path=&quot;../_definitions.ts&quot; /&gt;
/**
* @author Richard Davey &lt;rich@photonstorm.com&gt;
* @copyright 2013 Photon Storm Ltd.
* @license https://github.com/photonstorm/phaser/blob/master/license.txt MIT License
* @module Phaser
*/
module Phaser {
export class TimeManager {
/**
* This is the core internal game clock. It manages the elapsed time and calculation of delta values,
* used for game object motion and tweens.
*
* @class TimeManager
* @constructor
* @param {Phaser.Game} game A reference to the currently running game.
*/
constructor(game: Phaser.Game) {
this.game = game;
this._started = 0;
this._timeLastSecond = this._started;
this.time = this._started;
this.game.onPause.add(this.gamePaused, this);
this.game.onResume.add(this.gameResumed, this);
}
/**
* A reference to the currently running Game.
* @property game
* @type {Phaser.Game}
*/
public game: Phaser.Game;
/**
* The time at which the Game instance started.
* @property _started
* @private
* @type {Number}
*/
private _started: number;
/**
* Number of milliseconds elapsed since the last frame update.
* @property elapsed
* @public
* @type {Number}
*/
public elapsed: number = 0;
/**
* Game time counter.
* @property time
* @public
* @type {Number}
*/
public time: number = 0;
/**
* Records how long the game has been paused for. Is reset each time the game pauses.
* @property pausedTime
* @public
* @type {Number}
*/
public pausedTime: number = 0;
/**
* The time right now.
* @property now
* @public
* @type {Number}
*/
public now: number = 0;
/**
* Elapsed time since the last frame.
* @property delta
* @public
* @type {Number}
*/
public delta: number = 0;
/**
* The number of seconds that have elapsed since the game was started.
* @method totalElapsedSeconds
* @return {Number}
*/
public get totalElapsedSeconds(): number {
return (this.now - this._started) * 0.001;
}
/**
* Frames per second.
* @property fps
* @public
* @type {Number}
*/
public fps: number = 0;
/**
* The lowest rate the fps has dropped to.
* @property fpsMin
* @public
* @type {Number}
*/
public fpsMin: number = 1000;
/**
* The highest rate the fps has reached (usually no higher than 60fps).
* @property fpsMax
* @public
* @type {Number}
*/
public fpsMax: number = 0;
/**
* The minimum amount of time the game has taken between two frames.
* @property msMin
* @public
* @type {Number}
*/
public msMin: number = 1000;
/**
* The maximum amount of time the game has taken between two frames.
* @property msMax
* @public
* @type {Number}
*/
public msMax: number = 0;
/**
* The number of frames record in the last second.
* @property frames
* @public
* @type {Number}
*/
public frames: number = 0;
/**
* The time (in ms) that the last second counter ticked over.
* @property _timeLastSecond
* @private
* @type {Number}
*/
private _timeLastSecond: number = 0;
/**
* Update clock and calculate the fps.
* This is called automatically by Game._raf
* @method update
* @param {Number} raf The current timestamp, either performance.now or Date.now
*/
public update(raf: number) {
this.now = raf; // mark
this.delta = this.now - this.time; // elapsedMS
this.msMin = Math.min(this.msMin, this.delta);
this.msMax = Math.max(this.msMax, this.delta);
this.frames++;
if (this.now &gt; this._timeLastSecond + 1000)
{
this.fps = Math.round((this.frames * 1000) / (this.now - this._timeLastSecond));
this.fpsMin = Math.min(this.fpsMin, this.fps);
this.fpsMax = Math.max(this.fpsMax, this.fps);
this._timeLastSecond = this.now;
this.frames = 0;
}
this.time = this.now; // _total
// Paused?
if (this.game.paused)
{
this.pausedTime = this.now - this._pauseStarted;
}
}
/**
* Called when the game enters a paused state.
* @method gamePaused
* @private
*/
private gamePaused() {
this._pauseStarted = this.now;
}
/**
* Called when the game resumes from a paused state.
* @method gameResumed
* @private
*/
private gameResumed() {
// Level out the delta timer to avoid spikes
this.pauseDuration = this.pausedTime;
}
/**
* Records how long the game was paused for in miliseconds.
* @property pauseDuration
* @public
* @type {Number}
*/
public pauseDuration: number = 0;
/**
* The time the game started being paused.
* @property _pauseStarted
* @private
* @type {Number}
*/
private _pauseStarted: number = 0;
/**
* How long has passed since the given time.
* @method elapsedSince
* @param {Number} since The time you want to measure against.
* @return {Number} The difference between the given time and now.
*/
public elapsedSince(since: number): number {
return this.now - since;
}
/**
* How long has passed since the given time (in seconds).
* @method elapsedSecondsSince
* @param {Number} since The time you want to measure (in seconds).
* @return {Number} Duration between given time and now (in seconds).
*/
public elapsedSecondsSince(since: number): number {
return (this.now - since) * 0.001;
}
/**
* Resets the private _started value to now.
* @method reset
*/
public reset() {
this._started = this.now;
}
}
}
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="../assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="../assets/js/yui-prettify.js"></script>
<script src="../assets/../api.js"></script>
<script src="../assets/js/api-filter.js"></script>
<script src="../assets/js/api-list.js"></script>
<script src="../assets/js/api-search.js"></script>
<script src="../assets/js/apidocs.js"></script>
</body>
</html>
-124
View File
@@ -1,124 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Phaser</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
<link rel="stylesheet" href="./assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="./assets/css/main.css" id="site_styles">
<link rel="shortcut icon" type="image/png" href="./assets/favicon.png">
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="./assets/css/logo.png" title="Phaser"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 1.0.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="./classes/TimeManager.html">TimeManager</a></li>
</ul>
<ul id="api-modules" class="apis modules">
<li><a href="./modules/Phaser.html">Phaser</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<div class="apidocs">
<div id="docs-main" class="content">
<p>
Browse to a module or class using the sidebar to view its API documentation.
</p>
<h2>Keyboard Shortcuts</h2>
<ul>
<li><p>Press <kbd>s</kbd> to focus the API search box.</p></li>
<li><p>Use <kbd>Up</kbd> and <kbd>Down</kbd> to select classes, modules, and search results.</p></li>
<li class="mac-only"><p>With the API search box or sidebar focused, use <kbd><span class="cmd">&#x2318;</span>-Left</kbd> or <kbd><span class="cmd">&#x2318;</span>-Right</kbd> to switch sidebar tabs.</p></li>
<li class="pc-only"><p>With the API search box or sidebar focused, use <kbd>Ctrl+Left</kbd> and <kbd>Ctrl+Right</kbd> to switch sidebar tabs.</p></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="./assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="./assets/js/yui-prettify.js"></script>
<script src="./assets/../api.js"></script>
<script src="./assets/js/api-filter.js"></script>
<script src="./assets/js/api-list.js"></script>
<script src="./assets/js/api-search.js"></script>
<script src="./assets/js/apidocs.js"></script>
</body>
</html>
-147
View File
@@ -1,147 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Phaser - Phaser</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="../assets/css/logo.png" title="Phaser"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 1.0.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="../classes/TimeManager.html">TimeManager</a></li>
</ul>
<ul id="api-modules" class="apis modules">
<li><a href="../modules/Phaser.html">Phaser</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<h1>Phaser Module</h1>
<div class="box clearfix meta">
<div class="foundat">
Defined in: <a href="../files/.._Phaser_time_TimeManager.ts.html#l13"><code>..\Phaser\time\TimeManager.ts:13</code></a>
</div>
</div>
<div class="box intro">
</div>
<div class="yui3-g">
<div class="yui3-u-1-2">
<p>This module provides the following classes:</p>
<ul class="module-classes">
<li class="module-class">
<a href="../classes/TimeManager.html">
TimeManager
</a>
</li>
</ul>
</div>
<div class="yui3-u-1-2">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="../assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="../assets/js/yui-prettify.js"></script>
<script src="../assets/../api.js"></script>
<script src="../assets/js/api-filter.js"></script>
<script src="../assets/js/api-list.js"></script>
<script src="../assets/js/api-search.js"></script>
<script src="../assets/js/apidocs.js"></script>
</body>
</html>
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 809 B

After

Width:  |  Height:  |  Size: 809 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

+39
View File
@@ -0,0 +1,39 @@
{
"tags": {
"allowUnknownTags": true
},
"source": {
"include": [ "../src/Phaser.js", "../src/Intro.js", "../src/animation/", "../src/core/", "../src/geom/", "../src/input/", "../src/loader/", "../src/math/", "../src/net/", "../src/particles/", "../src/sound/", "../src/system/", "../src/time/", "../src/tween/", "../src/utils/" ],
"exclude": [],
"includePattern": ".+\\.js(doc)?$",
"excludePattern": "(^|\\/|\\\\)_"
},
"plugins" : ["plugins/markdown"],
"templates": {
"cleverLinks" : false,
"monospaceLinks" : false,
"default" : {
"outputSourceFiles" : true
},
"systemName" : "Phaser",
"footer" : "",
"copyright" : "Phaser Copyright © 2012-2013 Photon Storm Ltd.",
"navType" : "vertical",
"theme" : "cerulean",
"linenums" : true,
"collapseSymbols" : false,
"inverseNav" : true
},
"markdown" : {
"parser" : "gfm",
"hardwrap" : true
},
"opts": {
"template": "docstrap-master/template/",
"encoding": "utf8",
"destination": "./out/",
"recurse": true,
"private": false,
"lenient": true
}
}
-1
View File
@@ -1 +0,0 @@
yuidoc -c ../Phaser/yuidoc.json -o API/ -t yuidoc-theme-dana -e .ts ../Phaser/time
-1
View File
@@ -1 +0,0 @@
yuidoc -n -e .ts --server 3000 ../Phaser/time
+11
View File
@@ -0,0 +1,11 @@
node_modules*
components*
*.map
.idea*
ringojs-0.9*
dox*
testdocs*
themes*
+6
View File
@@ -0,0 +1,6 @@
node_modules*
components*
*.map
.idea*
npm-debug.log
+364
View File
@@ -0,0 +1,364 @@
"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();
}
+22
View File
@@ -0,0 +1,22 @@
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.
+200
View File
@@ -0,0 +1,200 @@
# 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.
+12
View File
@@ -0,0 +1,12 @@
{
"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"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"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"
}
}
+45
View File
@@ -0,0 +1,45 @@
"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 ) {
};
@@ -0,0 +1,22 @@
{
"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
}
}
+50
View File
@@ -0,0 +1,50 @@
/**
* 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 () {}
};
+74
View File
@@ -0,0 +1,74 @@
"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(){
};
@@ -0,0 +1,21 @@
#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.
@@ -0,0 +1,10 @@
#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.
+36
View File
@@ -0,0 +1,36 @@
{
"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"
}
+180
View File
@@ -0,0 +1,180 @@
// Cerulean 2.3.2
// Bootswatch
// -----------------------------------------------------
// TYPOGRAPHY
// -----------------------------------------------------
@import url(//fonts.googleapis.com/css?family=Telex);
// SCAFFOLDING
// -----------------------------------------------------
// NAVBAR
// -----------------------------------------------------
.navbar {
.brand {
padding: 14px 20px 16px;
font-family: @headingsFontFamily;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
}
li {
line-height: 20px;
}
.nav > li > a {
padding: 16px 10px 14px;
font-family: @headingsFontFamily;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
}
.search-query {
border: 1px solid darken(@linkColor, 10%);
line-height: normal;
}
.navbar-text {
padding: 19px 10px 18px;
line-height: 13px;
color: rgba(0, 0, 0, 0.5);
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
}
&-inverse {
.navbar-search .search-query {
color: @textColor;
}
}
}
@media (max-width: @navbarCollapseWidth) {
.navbar .nav-collapse {
.nav li > a {
font-family: @headingsFontFamily;
font-weight: normal;
color: @white;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
&:hover {
background-color: #2B7CAC;
}
}
.nav .active > a {
.box-shadow(none);
background-color: #2B7CAC;
}
.dropdown-menu li > a:hover,
.dropdown-menu li > a:focus,
.dropdown-submenu:hover > a {
background-image: none;
}
.navbar-form,
.navbar-search {
border: none;
}
.nav-header {
color: #2B7CAC;
}
}
.navbar-inverse .nav-collapse {
.nav li > a {
color: @navbarInverseLinkColor;
&:hover {
background-color: rgba(0, 0, 0, 0.1);
}
}
.nav .active > a,
.nav > li > a:hover,
.dropdown-menu a:hover {
background-color: rgba(0, 0, 0, 0.1) !important;
}
}
}
div.subnav {
font-family: @headingsFontFamily;
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2);
&-fixed {
top: @navbarHeight + 1;
}
}
// NAV
// -----------------------------------------------------
// BUTTONS
// -----------------------------------------------------
.btn {
#gradient > .vertical-three-colors(@white, @white, 5%, darken(@white, 0%));
@shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
.box-shadow(@shadow);
&:hover {
background-position: 0 0;
}
}
.btn-primary {
.buttonBackground(lighten(@btnPrimaryBackground, 5%), @btnPrimaryBackground);
}
.btn-info {
.buttonBackground(lighten(@btnInfoBackground, 5%), @btnInfoBackground);
}
.btn-success {
.buttonBackground(lighten(@btnSuccessBackground, 5%), @btnSuccessBackground);
}
.btn-warning {
.buttonBackground(lighten(@btnWarningBackground, 5%), @btnWarningBackground);
}
.btn-danger {
.buttonBackground(lighten(@btnDangerBackground, 5%), @btnDangerBackground);
}
.btn-inverse {
.buttonBackground(lighten(@btnInverseBackground, 5%), @btnInverseBackground);
}
// TABLES
// -----------------------------------------------------
// FORMS
// -----------------------------------------------------
// DROPDOWNS
// -----------------------------------------------------
// ALERTS, LABELS, BADGES
// -----------------------------------------------------
// MISC
// -----------------------------------------------------
i[class^="icon-"]{
opacity: 0.8;
}
// MEDIA QUERIES
// -----------------------------------------------------
+152
View File
@@ -0,0 +1,152 @@
@import "../components/bootstrap/less/bootstrap.less";
@import "variables.less";
@import "bootswatch.less";
@headerHeight: 56px;
#main {
margin-top : @headerHeight;
}
.navbar-fixed-top {
.navbar-inner {
padding-left : 20px;
padding-right : 20px;
}
}
.navbar {
.dropdown-menu {
padding : 20px;
max-height : 300px;
overflow : auto;
width : 300px;
background-color : @navbarInverseBackground;
a, a:visited {
color : @navbarInverseLinkColor;
}
a:hover {
color : @navbarInverseLinkColorHover;
background-color : @navbarInverseLinkBackgroundHover;
}
a:active {
color : @navbarInverseLinkColorActive;
background-color : @navbarInverseLinkBackgroundActive;
}
a {
padding-left : 0;
padding-right : 5px;
font-weight : 500;
font-size : 115%;
}
}
}
#toc {
position : fixed;
top : @headerHeight;
width : 29%;
max-height : 90%;
overflow : auto;
.border-radius(5px);
border : 1px @navbarBackground solid;
padding : 5px;
.toc-active {
background-color : @navbarLinkBackgroundActive;
color : @navbarLinkColorActive;
.border-radius(3px);
a, a:hover, a:active, a:visited {
background-color : @navbarLinkBackgroundActive;
color : @navbarLinkColorActive;
}
}
}
.toc-shim {
padding-top : @headerHeight;
margin-top : -@headerHeight;
display : block;
}
.toc-h1 {
margin-left : 2px;
margin-right : 2px;
}
.toc-h2 {
margin-left : 7px;
margin-right : 7px;
}
.toc-h3 {
margin-left : 14px;
margin-right : 7px;
}
.toc-h4 {
margin-left : 21px;
margin-right : 7px;
}
.copyright {
font-size : 90%;
text-align : center;
color : @navbarInverseBackground;
width : 100%;
display : block;
}
.jsdoc-message {
font-size : 90%;
text-align : center;
color : @navbarInverseBackground;
width : 100%;
display : block;
}
.page-title {
font-size : 220%;
color : @navbarInverseBackground;
font-weight : 700;
padding-top : 10px;
display : block;
}
footer {
border-top : 1px solid @navbarInverseBackgroundHighlight;
padding-top : 15px;
}
code {
background-color : none;
border : none;
color : @orange;
}
.buffered-name {
padding-top : @headerHeight;
margin-top : -@headerHeight;
}
.member-collapsed {
background-color : @navbarInverseBackground;
color : @navbarInverseText;
}
.member-open {
background-color : inherit;
color : inherit;
}
.member {
.transition(background-color 0.5s linear);
.transition(color 0.5s linear);
.border-radius(5px);
padding : 10px;
}
+301
View File
@@ -0,0 +1,301 @@
// Cerulean 2.3.2
// Variables
// --------------------------------------------------
// GLOBAL VALUES
// --------------------------------------------------
// Grays
// -------------------------
@black: #000;
@grayDarker: #222;
@grayDark: #333;
@gray: #555;
@grayLight: #999;
@grayLighter: #F5F5F5;
@white: #fff;
// Accent colors
// -------------------------
@blue: #2FA4E7;
@blueDark: #033C73;
@green: #73A839;
@red: #C71C22;
@yellow: #F7B42C;
@orange: #DD5600;
@pink: #F49AC1;
@purple: #9760B3;
// Scaffolding
// -------------------------
@bodyBackground: @white;
@textColor: @gray;
// Links
// -------------------------
@linkColor: @blue;
@linkColorHover: darken(@linkColor, 15%);
// Typography
// -------------------------
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
@baseFontSize: 14px;
@baseFontFamily: @sansFontFamily;
@baseLineHeight: 20px;
@altFontFamily: @monoFontFamily;
@headingsFontFamily: 'Telex', sans-serif; // empty to use BS default, @baseFontFamily
@headingsFontWeight: bold; // instead of browser default, bold
@headingsColor: #317EAC; // empty to use BS default, @textColor
// Component sizing
// -------------------------
// Based on 14px font-size and 20px line-height
@fontSizeLarge: @baseFontSize * 1.25; // ~18px
@fontSizeSmall: @baseFontSize * 0.85; // ~12px
@fontSizeMini: @baseFontSize * 0.75; // ~11px
@paddingLarge: 11px 19px; // 44px
@paddingSmall: 2px 10px; // 26px
@paddingMini: 0px 6px; // 22px
@baseBorderRadius: 4px;
@borderRadiusLarge: 6px;
@borderRadiusSmall: 3px;
// Tables
// -------------------------
@tableBackground: transparent; // overall background-color
@tableBackgroundAccent: #f9f9f9; // for striping
@tableBackgroundHover: #f5f5f5; // for hover
@tableBorder: #ddd; // table and cell border
// Buttons
// -------------------------
@btnBackground: @white;
@btnBackgroundHighlight: darken(@white, 10%);
@btnBorder: darken(@white, 20%);
@btnPrimaryBackground: @linkColor;
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
@btnInfoBackground: @purple;
@btnInfoBackgroundHighlight: #2f96b4;
@btnSuccessBackground: @green;
@btnSuccessBackgroundHighlight: #51a351;
@btnWarningBackground: @orange;
@btnWarningBackgroundHighlight: @orange;
@btnDangerBackground: @red;
@btnDangerBackgroundHighlight: #bd362f;
@btnInverseBackground: @blueDark;
@btnInverseBackgroundHighlight: @grayDarker;
// Forms
// -------------------------
@inputBackground: @white;
@inputBorder: #ccc;
@inputBorderRadius: @baseBorderRadius;
@inputDisabledBackground: @grayLighter;
@formActionsBackground: #f5f5f5;
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
// Dropdowns
// -------------------------
@dropdownBackground: @white;
@dropdownBorder: rgba(0,0,0,.2);
@dropdownDividerTop: #e5e5e5;
@dropdownDividerBottom: @white;
@dropdownLinkColor: @grayDark;
@dropdownLinkColorHover: @white;
@dropdownLinkColorActive: @white;
@dropdownLinkBackgroundActive: @linkColor;
@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive;
// COMPONENT VARIABLES
// --------------------------------------------------
// Z-index master list
// -------------------------
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
@zindexDropdown: 1000;
@zindexPopover: 1010;
@zindexTooltip: 1020;
@zindexFixedNavbar: 1030;
@zindexModalBackdrop: 1040;
@zindexModal: 1050;
// Sprite icons path
// -------------------------
@iconSpritePath: "../img/glyphicons-halflings.png";
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
// Input placeholder text color
// -------------------------
@placeholderText: @grayLight;
// Hr border color
// -------------------------
@hrBorder: @grayLighter;
// Horizontal forms & lists
// -------------------------
@horizontalComponentOffset: 180px;
// Wells
// -------------------------
@wellBackground: #f5f5f5;
// Navbar
// -------------------------
@navbarCollapseWidth: 979px;
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
@navbarHeight: 50px;
@navbarBackgroundHighlight: lighten(@navbarBackground, 8%);
@navbarBackground: @blue;
@navbarBorder: darken(@navbarBackground, 8%);
@navbarText: @grayLighter;
@navbarLinkColor: @white;
@navbarLinkColorHover: @white;
@navbarLinkColorActive: @navbarLinkColorHover;
@navbarLinkBackgroundHover: darken(@navbarBackground, 12%);
@navbarLinkBackgroundActive: darken(@navbarBackground, 12%);
@navbarBrandColor: @navbarLinkColor;
// Inverted navbar
@navbarInverseBackground: @blueDark;
@navbarInverseBackgroundHighlight: lighten(@navbarInverseBackground, 5%);
@navbarInverseBorder: darken(@navbarInverseBackground, 3%);
@navbarInverseText: @white;
@navbarInverseLinkColor: @white;
@navbarInverseLinkColorHover: @white;
@navbarInverseLinkColorActive: @white;
@navbarInverseLinkBackgroundHover: darken(@navbarInverseBackground, 6%);
@navbarInverseLinkBackgroundActive: darken(@navbarInverseBackground, 6%);
@navbarInverseSearchBackground: @white;
@navbarInverseSearchBackgroundFocus: @white;
@navbarInverseSearchBorder: @navbarInverseBackground;
@navbarInverseSearchPlaceholderColor: @grayLight;
@navbarInverseBrandColor: @navbarInverseLinkColor;
// Pagination
// -------------------------
@paginationBackground: #fff;
@paginationBorder: #ddd;
@paginationActiveBackground: #f5f5f5;
// Hero unit
// -------------------------
@heroUnitBackground: @grayLighter;
@heroUnitHeadingColor: inherit;
@heroUnitLeadColor: inherit;
// Form states and alerts
// -------------------------
@warningText: @orange;
@warningBackground: #F1CEAB;
@warningBorder: darken(spin(@warningBackground, -10), 3%);
@errorText: darken(#C45559, 5%);
@errorBackground: #F2BDB1;
@errorBorder: darken(spin(@errorBackground, -10), 3%);
@successText: darken(@green, 5%);
@successBackground: #D5ECBF;
@successBorder: darken(spin(@successBackground, -10), 5%);
@infoText: darken(@blue, 10%);
@infoBackground: #A7DFF1;
@infoBorder: darken(spin(@infoBackground, -10), 7%);
// Tooltips and popovers
// -------------------------
@tooltipColor: #fff;
@tooltipBackground: #000;
@tooltipArrowWidth: 5px;
@tooltipArrowColor: @tooltipBackground;
@popoverBackground: #fff;
@popoverArrowWidth: 10px;
@popoverArrowColor: #fff;
@popoverTitleBackground: darken(@popoverBackground, 3%);
// Special enhancement for popovers
@popoverArrowOuterWidth: @popoverArrowWidth + 1;
@popoverArrowOuterColor: rgba(0,0,0,.25);
// GRID
// --------------------------------------------------
// Default 940px grid
// -------------------------
@gridColumns: 12;
@gridColumnWidth: 60px;
@gridGutterWidth: 20px;
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
// 1200px min
@gridColumnWidth1200: 70px;
@gridGutterWidth1200: 30px;
@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
// 768px-979px
@gridColumnWidth768: 42px;
@gridGutterWidth768: 20px;
@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
// Fluid grid
// -------------------------
@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);
// 1200px min
@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);
// 768px-979px
@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);
@@ -0,0 +1,25 @@
{
"tags" : {
"allowUnknownTags" : true
},
"plugins" : ["plugins/markdown"],
"templates" : {
"cleverLinks" : false,
"monospaceLinks" : false,
"default" : {
"outputSourceFiles" : true
},
"systemName" : "DocStrap",
"footer" : "",
"copyright" : "DocStrap Copyright © 2012-2013 The contributors to the JSDoc3 and DocStrap projects.",
"navType" : "vertical",
"theme" : "cerulean",
"linenums" : true,
"collapseSymbols" : false,
"inverseNav" : true
},
"markdown" : {
"parser" : "gfm",
"hardwrap" : true
}
}
+651
View 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 ? ' &rarr; {' + 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because it is too large Load Diff
@@ -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);
@@ -0,0 +1,144 @@
/* ========================================================
* bootstrap-tab.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* TAB CLASS DEFINITION
* ==================== */
var Tab = function (element) {
this.element = $(element)
}
Tab.prototype = {
constructor: Tab
, show: function () {
var $this = this.element
, $ul = $this.closest('ul:not(.dropdown-menu)')
, selector = $this.attr('data-target')
, previous
, $target
, e
if (!selector) {
selector = $this.attr('href')
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
if ( $this.parent('li').hasClass('active') ) return
previous = $ul.find('.active:last a')[0]
e = $.Event('show', {
relatedTarget: previous
})
$this.trigger(e)
if (e.isDefaultPrevented()) return
$target = $(selector)
this.activate($this.parent('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown'
, relatedTarget: previous
})
})
}
, activate: function ( element, container, callback) {
var $active = container.find('> .active')
, transition = callback
&& $.support.transition
&& $active.hasClass('fade')
function next() {
$active
.removeClass('active')
.find('> .dropdown-menu > .active')
.removeClass('active')
element.addClass('active')
if (transition) {
element[0].offsetWidth // reflow for transition
element.addClass('in')
} else {
element.removeClass('fade')
}
if ( element.parent('.dropdown-menu') ) {
element.closest('li.dropdown').addClass('active')
}
callback && callback()
}
transition ?
$active.one($.support.transition.end, next) :
next()
$active.removeClass('in')
}
}
/* TAB PLUGIN DEFINITION
* ===================== */
var old = $.fn.tab
$.fn.tab = function ( option ) {
return this.each(function () {
var $this = $(this)
, data = $this.data('tab')
if (!data) $this.data('tab', (data = new Tab(this)))
if (typeof option == 'string') data[option]()
})
}
$.fn.tab.Constructor = Tab
/* TAB NO CONFLICT
* =============== */
$.fn.tab.noConflict = function () {
$.fn.tab = old
return this
}
/* TAB DATA-API
* ============ */
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
$(this).tab('show')
})
}(window.jQuery);
@@ -0,0 +1,130 @@
/*!
* jQuery.LocalScroll
* Copyright (c) 2007-2013 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* http://flesler.blogspot.com/2007/10/jquerylocalscroll-10.html
* @author Ariel Flesler
* @version 1.2.8
*
* @id jQuery.fn.localScroll
* @param {Object} settings Hash of settings, it is passed in to jQuery.ScrollTo, none is required.
* @return {jQuery} Returns the same jQuery object, for chaining.
*
* @example $('ul.links').localScroll();
*
* @example $('ul.links').localScroll({ filter:'.animated', duration:400, axis:'x' });
*
* @example $.localScroll({ target:'#pane', axis:'xy', queue:true, event:'mouseover' });
*
* Notes:
* - The plugin requires jQuery.ScrollTo.
* - The hash of settings, is passed to jQuery.ScrollTo, so the settings are valid for that plugin as well.
* - jQuery.localScroll can be used if the desired links, are all over the document, it accepts the same settings.
* - If the setting 'lazy' is set to true, then the binding will still work for later added anchors.
* - If onBefore returns false, the event is ignored.
*/
;(function( $ ){
var URI = location.href.replace(/#.*/,''); // local url without hash
var $localScroll = $.localScroll = function( settings ){
$('body').localScroll( settings );
};
// Many of these defaults, belong to jQuery.ScrollTo, check it's demo for an example of each option.
// @see http://flesler.demos.com/jquery/scrollTo/
// The defaults are public and can be overriden.
$localScroll.defaults = {
duration:1000, // How long to animate.
axis:'y', // Which of top and left should be modified.
event:'click', // On which event to react.
stop:true, // Avoid queuing animations
target: window, // What to scroll (selector or element). The whole window by default.
reset: true // Used by $.localScroll.hash. If true, elements' scroll is resetted before actual scrolling
/*
lock:false, // ignore events if already animating
lazy:false, // if true, links can be added later, and will still work.
filter:null, // filter some anchors out of the matched elements.
hash: false // if true, the hash of the selected link, will appear on the address bar.
*/
};
// If the URL contains a hash, it will scroll to the pointed element
$localScroll.hash = function( settings ){
if( location.hash ){
settings = $.extend( {}, $localScroll.defaults, settings );
settings.hash = false; // can't be true
if( settings.reset ){
var d = settings.duration;
delete settings.duration;
$(settings.target).scrollTo( 0, settings );
settings.duration = d;
}
scroll( 0, location, settings );
}
};
$.fn.localScroll = function( settings ){
settings = $.extend( {}, $localScroll.defaults, settings );
return settings.lazy ?
// use event delegation, more links can be added later.
this.bind( settings.event, function( e ){
// Could use closest(), but that would leave out jQuery -1.3.x
var a = $([e.target, e.target.parentNode]).filter(filter)[0];
// if a valid link was clicked
if( a )
scroll( e, a, settings ); // do scroll.
}) :
// bind concretely, to each matching link
this.find('a,area')
.filter( filter ).bind( settings.event, function(e){
scroll( e, this, settings );
}).end()
.end();
function filter(){// is this a link that points to an anchor and passes a possible filter ? href is checked to avoid a bug in FF.
return !!this.href && !!this.hash && this.href.replace(this.hash,'') == URI && (!settings.filter || $(this).is( settings.filter ));
};
};
function scroll( e, link, settings ){
var id = link.hash.slice(1),
elem = document.getElementById(id) || document.getElementsByName(id)[0];
if ( !elem )
return;
if( e )
e.preventDefault();
var $target = $( settings.target );
if( settings.lock && $target.is(':animated') ||
settings.onBefore && settings.onBefore(e, elem, $target) === false )
return;
if( settings.stop )
$target._scrollable().stop(true); // remove all its animations
if( settings.hash ){
var attr = elem.id == id ? 'id' : 'name',
$a = $('<a> </a>').attr(attr, id).css({
position:'absolute',
top: $(window).scrollTop(),
left: $(window).scrollLeft()
});
elem[attr] = '';
$('body').prepend($a);
location = link.hash;
$a.remove();
elem[attr] = id;
}
$target
.scrollTo( elem, settings ) // do scroll
.trigger('notify.serialScroll',[elem]); // notify serialScroll about this change
};
})( jQuery );
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,217 @@
/*!
* jQuery.ScrollTo
* Copyright (c) 2007-2013 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
*
* @projectDescription Easy element scrolling using jQuery.
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
* @author Ariel Flesler
* @version 1.4.5
*
* @id jQuery.scrollTo
* @id jQuery.fn.scrollTo
* @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
* The different options for target are:
* - A number position (will be applied to all axes).
* - A string position ('44', '100px', '+=90', etc ) will be applied to all axes
* - A jQuery/DOM element ( logically, child of the element to scroll )
* - A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
* - A hash { top:x, left:y }, x and y can be any kind of number/string like above.
* - A percentage of the container's dimension/s, for example: 50% to go to the middle.
* - The string 'max' for go-to-end.
* @param {Number, Function} duration The OVERALL length of the animation, this argument can be the settings object instead.
* @param {Object,Function} settings Optional set of settings or the onAfter callback.
* @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
* @option {Number, Function} duration The OVERALL length of the animation.
* @option {String} easing The easing method for the animation.
* @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
* @option {Object, Number} offset Add/deduct from the end position. One number for both axes or { top:x, left:y }.
* @option {Object, Number} over Add/deduct the height/width multiplied by 'over', can be { top:x, left:y } when using both axes.
* @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
* @option {Function} onAfter Function to be called after the scrolling ends.
* @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
* @return {jQuery} Returns the same jQuery object, for chaining.
*
* @desc Scroll to a fixed position
* @example $('div').scrollTo( 340 );
*
* @desc Scroll relatively to the actual position
* @example $('div').scrollTo( '+=340px', { axis:'y' } );
*
* @desc Scroll using a selector (relative to the scrolled element)
* @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
*
* @desc Scroll to a DOM element (same for jQuery object)
* @example var second_child = document.getElementById('container').firstChild.nextSibling;
* $('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
* alert('scrolled!!');
* }});
*
* @desc Scroll on both axes, to different values
* @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
*/
;(function( $ ){
var $scrollTo = $.scrollTo = function( target, duration, settings ){
$(window).scrollTo( target, duration, settings );
};
$scrollTo.defaults = {
axis:'xy',
duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1,
limit:true
};
// Returns the element that needs to be animated to scroll the window.
// Kept for backwards compatibility (specially for localScroll & serialScroll)
$scrollTo.window = function( scope ){
return $(window)._scrollable();
};
// Hack, hack, hack :)
// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
$.fn._scrollable = function(){
return this.map(function(){
var elem = this,
isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;
if( !isWin )
return elem;
var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;
return /webkit/i.test(navigator.userAgent) || doc.compatMode == 'BackCompat' ?
doc.body :
doc.documentElement;
});
};
$.fn.scrollTo = function( target, duration, settings ){
if( typeof duration == 'object' ){
settings = duration;
duration = 0;
}
if( typeof settings == 'function' )
settings = { onAfter:settings };
if( target == 'max' )
target = 9e9;
settings = $.extend( {}, $scrollTo.defaults, settings );
// Speed is still recognized for backwards compatibility
duration = duration || settings.duration;
// Make sure the settings are given right
settings.queue = settings.queue && settings.axis.length > 1;
if( settings.queue )
// Let's keep the overall duration
duration /= 2;
settings.offset = both( settings.offset );
settings.over = both( settings.over );
return this._scrollable().each(function(){
// Null target yields nothing, just like jQuery does
if (target == null) return;
var elem = this,
$elem = $(elem),
targ = target, toff, attr = {},
win = $elem.is('html,body');
switch( typeof targ ){
// A number will pass the regex
case 'number':
case 'string':
if( /^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ) ){
targ = both( targ );
// We are done
break;
}
// Relative selector, no break!
targ = $(targ,this);
if (!targ.length) return;
case 'object':
// DOMElement / jQuery
if( targ.is || targ.style )
// Get the real position of the target
toff = (targ = $(targ)).offset();
}
$.each( settings.axis.split(''), function( i, axis ){
var Pos = axis == 'x' ? 'Left' : 'Top',
pos = Pos.toLowerCase(),
key = 'scroll' + Pos,
old = elem[key],
max = $scrollTo.max(elem, axis);
if( toff ){// jQuery / DOMElement
attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );
// If it's a dom element, reduce the margin
if( settings.margin ){
attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
}
attr[key] += settings.offset[pos] || 0;
if( settings.over[pos] )
// Scroll to a fraction of its width/height
attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos];
}else{
var val = targ[pos];
// Handle percentage values
attr[key] = val.slice && val.slice(-1) == '%' ?
parseFloat(val) / 100 * max
: val;
}
// Number or 'number'
if( settings.limit && /^\d+$/.test(attr[key]) )
// Check the limits
attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );
// Queueing axes
if( !i && settings.queue ){
// Don't waste time animating, if there's no need.
if( old != attr[key] )
// Intermediate animation
animate( settings.onAfterFirst );
// Don't animate this axis again in the next iteration.
delete attr[key];
}
});
animate( settings.onAfter );
function animate( callback ){
$elem.animate( attr, duration, settings.easing, callback && function(){
callback.call(this, target, settings);
});
};
}).end();
};
// Max scrolling position, works on quirks mode
// It only fails (not too badly) on IE, quirks mode.
$scrollTo.max = function( elem, axis ){
var Dim = axis == 'x' ? 'Width' : 'Height',
scroll = 'scroll'+Dim;
if( !$(elem).is('html,body') )
return elem[scroll] - $(elem)[Dim.toLowerCase()]();
var size = 'client' + Dim,
html = elem.ownerDocument.documentElement,
body = elem.ownerDocument.body;
return Math.max( html[scroll], body[scroll] )
- Math.min( html[size] , body[size] );
};
function both( val ){
return typeof val == 'object' ? val : { top:val, left:val };
};
})( jQuery );
@@ -0,0 +1,18 @@
/**
* jQuery plugin for Sunlight http://sunlightjs.com/
*
* by Tommy Montgomery http://tmont.com/
* licensed under WTFPL http://sam.zoy.org/wtfpl/
*/
(function($, window){
$.fn.sunlight = function(options) {
var highlighter = new window.Sunlight.Highlighter(options);
this.each(function() {
highlighter.highlightNode(this);
});
return this;
};
}(jQuery, this));
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"]);
@@ -0,0 +1,496 @@
var q = null;
window.PR_SHOULD_USE_CONTINUATION = !0;
(function() {
function L(a) {
function m(a) {
var f = a.charCodeAt(0);
if (f !== 92) return f;
var b = a.charAt(1);
return (f = r[b]) ? f : "0" <= b && b <= "7" ? parseInt(a.substring(1), 8) : b === "u" || b === "x" ? parseInt(a.substring(2), 16) : a.charCodeAt(1)
}
function e(a) {
if (a < 32) return (a < 16 ? "\\x0" : "\\x") + a.toString(16);
a = String.fromCharCode(a);
if (a === "\\" || a === "-" || a === "[" || a === "]") a = "\\" + a;
return a
}
function h(a) {
for (var f = a.substring(1, a.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), a = [], b = [], o = f[0] === "^", c = o ? 1 : 0, i = f.length; c < i; ++c) {
var j = f[c];
if (/\\[bdsw]/i.test(j)) a.push(j);
else {
var j = m(j),
d;
c + 2 < i && "-" === f[c + 1] ? (d = m(f[c + 2]), c += 2) : d = j;
b.push([j, d]);
d < 65 || j > 122 || (d < 65 || j > 90 || b.push([Math.max(65, j) | 32, Math.min(d, 90) | 32]), d < 97 || j > 122 || b.push([Math.max(97, j) & -33, Math.min(d, 122) & -33]))
}
}
b.sort(function(a, f) {
return a[0] - f[0] || f[1] - a[1]
});
f = [];
j = [NaN, NaN];
for (c = 0; c < b.length; ++c) i = b[c], i[0] <= j[1] + 1 ? j[1] = Math.max(j[1], i[1]) : f.push(j = i);
b = ["["];
o && b.push("^");
b.push.apply(b, a);
for (c = 0; c < f.length; ++c) i = f[c], b.push(e(i[0])), i[1] > i[0] && (i[1] + 1 > i[0] && b.push("-"), b.push(e(i[1])));
b.push("]");
return b.join("")
}
function y(a) {
for (var f = a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), b = f.length, d = [], c = 0, i = 0; c < b; ++c) {
var j = f[c];
j === "(" ? ++i : "\\" === j.charAt(0) && (j = +j.substring(1)) && j <= i && (d[j] = -1)
}
for (c = 1; c < d.length; ++c) - 1 === d[c] && (d[c] = ++t);
for (i = c = 0; c < b; ++c) j = f[c], j === "(" ? (++i, d[i] === void 0 && (f[c] = "(?:")) : "\\" === j.charAt(0) && (j = +j.substring(1)) && j <= i && (f[c] = "\\" + d[i]);
for (i = c = 0; c < b; ++c)"^" === f[c] && "^" !== f[c + 1] && (f[c] = "");
if (a.ignoreCase && s) for (c = 0; c < b; ++c) j = f[c], a = j.charAt(0), j.length >= 2 && a === "[" ? f[c] = h(j) : a !== "\\" && (f[c] = j.replace(/[A-Za-z]/g, function(a) {
a = a.charCodeAt(0);
return "[" + String.fromCharCode(a & -33, a | 32) + "]"
}));
return f.join("")
}
for (var t = 0, s = !1, l = !1, p = 0, d = a.length; p < d; ++p) {
var g = a[p];
if (g.ignoreCase) l = !0;
else if (/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""))) {
s = !0;
l = !1;
break
}
}
for (var r = {
b: 8,
t: 9,
n: 10,
v: 11,
f: 12,
r: 13
}, n = [], p = 0, d = a.length; p < d; ++p) {
g = a[p];
if (g.global || g.multiline) throw Error("" + g);
n.push("(?:" + y(g) + ")")
}
return RegExp(n.join("|"), l ? "gi" : "g")
}
function M(a) {
function m(a) {
switch (a.nodeType) {
case 1:
if (e.test(a.className)) break;
for (var g = a.firstChild; g; g = g.nextSibling) m(g);
g = a.nodeName;
if ("BR" === g || "LI" === g) h[s] = "\n", t[s << 1] = y++, t[s++ << 1 | 1] = a;
break;
case 3:
case 4:
g = a.nodeValue, g.length && (g = p ? g.replace(/\r\n?/g, "\n") : g.replace(/[\t\n\r ]+/g, " "), h[s] = g, t[s << 1] = y, y += g.length, t[s++ << 1 | 1] = a)
}
}
var e = /(?:^|\s)nocode(?:\s|$)/,
h = [],
y = 0,
t = [],
s = 0,
l;
a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = document.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
var p = l && "pre" === l.substring(0, 3);
m(a);
return {
a: h.join("").replace(/\n$/, ""),
c: t
}
}
function B(a, m, e, h) {
m && (a = {
a: m,
d: a
}, e(a), h.push.apply(h, a.e))
}
function x(a, m) {
function e(a) {
for (var l = a.d, p = [l, "pln"], d = 0, g = a.a.match(y) || [], r = {}, n = 0, z = g.length; n < z; ++n) {
var f = g[n],
b = r[f],
o = void 0,
c;
if (typeof b === "string") c = !1;
else {
var i = h[f.charAt(0)];
if (i) o = f.match(i[1]), b = i[0];
else {
for (c = 0; c < t; ++c) if (i = m[c], o = f.match(i[1])) {
b = i[0];
break
}
o || (b = "pln")
}
if ((c = b.length >= 5 && "lang-" === b.substring(0, 5)) && !(o && typeof o[1] === "string")) c = !1, b = "src";
c || (r[f] = b)
}
i = d;
d += f.length;
if (c) {
c = o[1];
var j = f.indexOf(c),
k = j + c.length;
o[2] && (k = f.length - o[2].length, j = k - c.length);
b = b.substring(5);
B(l + i, f.substring(0, j), e, p);
B(l + i + j, c, C(b, c), p);
B(l + i + k, f.substring(k), e, p)
} else p.push(l + i, b)
}
a.e = p
}
var h = {},
y;
(function() {
for (var e = a.concat(m), l = [], p = {}, d = 0, g = e.length; d < g; ++d) {
var r = e[d],
n = r[3];
if (n) for (var k = n.length; --k >= 0;) h[n.charAt(k)] = r;
r = r[1];
n = "" + r;
p.hasOwnProperty(n) || (l.push(r), p[n] = q)
}
l.push(/[\S\s]/);
y = L(l)
})();
var t = m.length;
return e
}
function u(a) {
var m = [],
e = [];
a.tripleQuotedStrings ? m.push(["str", /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, "'\""]) : a.multiLineStrings ? m.push(["str", /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, q, "'\"`"]) : m.push(["str", /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, "\"'"]);
a.verbatimStrings && e.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, q]);
var h = a.hashComments;
h && (a.cStyleComments ? (h > 1 ? m.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, "#"]) : m.push(["com", /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/, q, "#"]), e.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, q])) : m.push(["com", /^#[^\n\r]*/, q, "#"]));
a.cStyleComments && (e.push(["com", /^\/\/[^\n\r]*/, q]), e.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, q]));
a.regexLiterals && e.push(["lang-regex", /^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);
(h = a.types) && e.push(["typ", h]);
a = ("" + a.keywords).replace(/^ | $/g, "");
a.length && e.push(["kwd", RegExp("^(?:" + a.replace(/[\s,]+/g, "|") + ")\\b"), q]);
m.push(["pln", /^\s+/, q, " \r\n\t\xa0"]);
e.push(["lit", /^@[$_a-z][\w$@]*/i, q], ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ["pln", /^[$_a-z][\w$@]*/i, q], ["lit", /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, "0123456789"], ["pln", /^\\[\S\s]?/, q], ["pun", /^.[^\s\w"-$'./@\\`]*/, q]);
return x(m, e)
}
function D(a, m) {
function e(a) {
switch (a.nodeType) {
case 1:
if (k.test(a.className)) break;
if ("BR" === a.nodeName) h(a), a.parentNode && a.parentNode.removeChild(a);
else for (a = a.firstChild; a; a = a.nextSibling) e(a);
break;
case 3:
case 4:
if (p) {
var b = a.nodeValue,
d = b.match(t);
if (d) {
var c = b.substring(0, d.index);
a.nodeValue = c;
(b = b.substring(d.index + d[0].length)) && a.parentNode.insertBefore(s.createTextNode(b), a.nextSibling);
h(a);
c || a.parentNode.removeChild(a)
}
}
}
}
function h(a) {
function b(a, d) {
var e = d ? a.cloneNode(!1) : a,
f = a.parentNode;
if (f) {
var f = b(f, 1),
g = a.nextSibling;
f.appendChild(e);
for (var h = g; h; h = g) g = h.nextSibling, f.appendChild(h)
}
return e
}
for (; !a.nextSibling;) if (a = a.parentNode, !a) return;
for (var a = b(a.nextSibling, 0), e;
(e = a.parentNode) && e.nodeType === 1;) a = e;
d.push(a)
}
var k = /(?:^|\s)nocode(?:\s|$)/,
t = /\r\n?|\n/,
s = a.ownerDocument,
l;
a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = s.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
var p = l && "pre" === l.substring(0, 3);
for (l = s.createElement("LI"); a.firstChild;) l.appendChild(a.firstChild);
for (var d = [l], g = 0; g < d.length; ++g) e(d[g]);
m === (m | 0) && d[0].setAttribute("value", m);
var r = s.createElement("OL");
r.className = "linenums";
for (var n = Math.max(0, m - 1 | 0) || 0, g = 0, z = d.length; g < z; ++g) l = d[g], l.className = "L" + (g + n) % 10, l.firstChild || l.appendChild(s.createTextNode("\xa0")), r.appendChild(l);
a.appendChild(r)
}
function k(a, m) {
for (var e = m.length; --e >= 0;) {
var h = m[e];
A.hasOwnProperty(h) ? window.console && console.warn("cannot override language handler %s", h) : A[h] = a
}
}
function C(a, m) {
if (!a || !A.hasOwnProperty(a)) a = /^\s*</.test(m) ? "default-markup" : "default-code";
return A[a]
}
function E(a) {
var m =
a.g;
try {
var e = M(a.h),
h = e.a;
a.a = h;
a.c = e.c;
a.d = 0;
C(m, h)(a);
var k = /\bMSIE\b/.test(navigator.userAgent),
m = /\n/g,
t = a.a,
s = t.length,
e = 0,
l = a.c,
p = l.length,
h = 0,
d = a.e,
g = d.length,
a = 0;
d[g] = s;
var r, n;
for (n = r = 0; n < g;) d[n] !== d[n + 2] ? (d[r++] = d[n++], d[r++] = d[n++]) : n += 2;
g = r;
for (n = r = 0; n < g;) {
for (var z = d[n], f = d[n + 1], b = n + 2; b + 2 <= g && d[b + 1] === f;) b += 2;
d[r++] = z;
d[r++] = f;
n = b
}
for (d.length = r; h < p;) {
var o = l[h + 2] || s,
c = d[a + 2] || s,
b = Math.min(o, c),
i = l[h + 1],
j;
if (i.nodeType !== 1 && (j = t.substring(e, b))) {
k && (j = j.replace(m, "\r"));
i.nodeValue =
j;
var u = i.ownerDocument,
v = u.createElement("SPAN");
v.className = d[a + 1];
var x = i.parentNode;
x.replaceChild(v, i);
v.appendChild(i);
e < o && (l[h + 1] = i = u.createTextNode(t.substring(b, o)), x.insertBefore(i, v.nextSibling))
}
e = b;
e >= o && (h += 2);
e >= c && (a += 2)
}
} catch (w) {
"console" in window && console.log(w && w.stack ? w.stack : w)
}
}
var v = ["break,continue,do,else,for,if,return,while"],
w = [
[v, "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],
F = [w, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
G = [w, "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
H = [G, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],
w = [w, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
I = [v, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
J = [v, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
v = [v, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
K = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,
N = /\S/,
O = u({
keywords: [F, H, w, "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END" + I, J, v],
hashComments: !0,
cStyleComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}),
A = {};
k(O, ["default-code"]);
k(x([], [
["pln", /^[^<?]+/],
["dec", /^<!\w[^>]*(?:>|$)/],
["com", /^<\!--[\S\s]*?(?:--\>|$)/],
["lang-", /^<\?([\S\s]+?)(?:\?>|$)/],
["lang-", /^<%([\S\s]+?)(?:%>|$)/],
["pun", /^(?:<[%?]|[%?]>)/],
["lang-", /^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],
["lang-js", /^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],
["lang-css", /^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],
["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]
]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]);
k(x([
["pln", /^\s+/, q, " \t\r\n"],
["atv", /^(?:"[^"]*"?|'[^']*'?)/, q, "\"'"]
], [
["tag", /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],
["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
["lang-uq.val", /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],
["pun", /^[/<->]+/],
["lang-js", /^on\w+\s*=\s*"([^"]+)"/i],
["lang-js", /^on\w+\s*=\s*'([^']+)'/i],
["lang-js", /^on\w+\s*=\s*([^\s"'>]+)/i],
["lang-css", /^style\s*=\s*"([^"]+)"/i],
["lang-css", /^style\s*=\s*'([^']+)'/i],
["lang-css", /^style\s*=\s*([^\s"'>]+)/i]
]), ["in.tag"]);
k(x([], [
["atv", /^[\S\s]+/]
]), ["uq.val"]);
k(u({
keywords: F,
hashComments: !0,
cStyleComments: !0,
types: K
}), ["c", "cc", "cpp", "cxx", "cyc", "m"]);
k(u({
keywords: "null,true,false"
}), ["json"]);
k(u({
keywords: H,
hashComments: !0,
cStyleComments: !0,
verbatimStrings: !0,
types: K
}), ["cs"]);
k(u({
keywords: G,
cStyleComments: !0
}), ["java"]);
k(u({
keywords: v,
hashComments: !0,
multiLineStrings: !0
}), ["bsh", "csh", "sh"]);
k(u({
keywords: I,
hashComments: !0,
multiLineStrings: !0,
tripleQuotedStrings: !0
}), ["cv", "py"]);
k(u({
keywords: "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), ["perl", "pl", "pm"]);
k(u({
keywords: J,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), ["rb"]);
k(u({
keywords: w,
cStyleComments: !0,
regexLiterals: !0
}), ["js"]);
k(u({
keywords: "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
hashComments: 3,
cStyleComments: !0,
multilineStrings: !0,
tripleQuotedStrings: !0,
regexLiterals: !0
}), ["coffee"]);
k(x([], [
["str", /^[\S\s]+/]
]), ["regex"]);
window.prettyPrintOne = function(a, m, e) {
var h = document.createElement("PRE");
h.innerHTML = a;
e && D(h, e);
E({
g: m,
i: e,
h: h
});
return h.innerHTML
};
window.prettyPrint = function(a) {
function m() {
for (var e = window.PR_SHOULD_USE_CONTINUATION ? l.now() + 250 : Infinity; p < h.length && l.now() < e; p++) {
var n = h[p],
k = n.className;
if (k.indexOf("prettyprint") >= 0) {
var k = k.match(g),
f, b;
if (b = !k) {
b = n;
for (var o = void 0, c = b.firstChild; c; c = c.nextSibling) var i = c.nodeType,
o = i === 1 ? o ? b : c : i === 3 ? N.test(c.nodeValue) ? b : o : o;
b = (f = o === b ? void 0 : o) && "CODE" === f.tagName
}
b && (k = f.className.match(g));
k && (k = k[1]);
b = !1;
for (o = n.parentNode; o; o = o.parentNode) if ((o.tagName === "pre" || o.tagName === "code" || o.tagName === "xmp") && o.className && o.className.indexOf("prettyprint") >= 0) {
b = !0;
break
}
b || ((b = (b = n.className.match(/\blinenums\b(?::(\d+))?/)) ? b[1] && b[1].length ? +b[1] : !0 : !1) && D(n, b), d = {
g: k,
h: n,
i: b
}, E(d))
}
}
p < h.length ? setTimeout(m, 250) : a && a()
}
for (var e = [document.getElementsByTagName("pre"), document.getElementsByTagName("code"), document.getElementsByTagName("xmp")], h = [], k = 0; k < e.length; ++k) for (var t = 0, s = e[k].length; t < s; ++t) h.push(e[k][t]);
var e = q,
l = Date;
l.now || (l = {
now: function() {
return +new Date
}
});
var p = 0,
d, g = /\blang(?:uage)?-([\w.]+)(?!\S)/;
m()
};
window.PR = {
createSimpleLexer: x,
registerLangHandler: k,
sourceDecorator: u,
PR_ATTRIB_NAME: "atn",
PR_ATTRIB_VALUE: "atv",
PR_COMMENT: "com",
PR_DECLARATION: "dec",
PR_KEYWORD: "kwd",
PR_LITERAL: "lit",
PR_NOCODE: "nocode",
PR_PLAIN: "pln",
PR_PUNCTUATION: "pun",
PR_SOURCE: "src",
PR_STRING: "str",
PR_TAG: "tag",
PR_TYPE: "typ"
}
})();
@@ -0,0 +1,91 @@
/**
* Sunlight documentation link plugin
*
* This plugin generates hyperlinks to language documentation for certain tokens
* (e.g. links to php.net for functions).
*
* Supported languages:
* - PHP (functions and language constructs)
* - Ruby (functions)
* - Python (functions)
* - Perl (functions)
* - Lua (functions)
*
* Options:
* - enableDocLinks: true/false (default is false)
*/
(function(sunlight, document, undefined){
if (sunlight === undefined) {
throw "Include sunlight.js before including plugin files";
}
var supportedLanguages = {
php: {
"function": function(word) { return "http://php.net/" + word; },
languageConstruct: function(word) { return "http://php.net/" + word; }
},
ruby: {
"function": function(word) {
return "http://www.ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/function.html#"
+ word.replace(/!/g, "_bang").replace(/\?/g, "_p");
}
},
python: {
"function": function(word) {
return "http://docs.python.org/py3k/library/functions.html#" + word;
}
},
perl: {
"function": function(word) { return "http://perldoc.perl.org/functions/" + word + ".html"; }
},
lua: {
"function": function(word) { return "http://www.lua.org/manual/5.1/manual.html#pdf-" + word; }
}
};
function createLink(transformUrl) {
return function(context) {
var link = document.createElement("a");
link.className = context.options.classPrefix + context.tokens[context.index].name;
link.setAttribute("href", transformUrl(context.tokens[context.index].value));
link.appendChild(context.createTextNode(context.tokens[context.index]));
context.addNode(link);
};
}
sunlight.bind("beforeAnalyze", function(context) {
if (!this.options.enableDocLinks) {
return;
}
context.analyzerContext.getAnalyzer = function() {
var language = supportedLanguages[this.language.name],
analyzer,
tokenName;
if (!language) {
return;
}
analyzer = sunlight.util.clone(context.analyzerContext.language.analyzer);
for (tokenName in language) {
if (!language.hasOwnProperty(tokenName)) {
continue;
}
analyzer["handle_" + tokenName] = createLink(language[tokenName]);
}
return analyzer;
};
});
sunlight.globalOptions.enableDocLinks = false;
}(this["Sunlight"], document));
@@ -0,0 +1,104 @@
/**
* Sunlight line number/line highlighting plugin
*
* This creates the line number gutter in addition to creating the line highlighting
* overlay (if applicable). It is bundled in sunlight-min.js.
*
* Options:
* - lineNumbers: true/false/"automatic" (default is "automatic")
* - lineNumberStart: <number> (line number to start from, default is 1)
* - lineHighlight: <array> (array of line numbers to highlight)
*/
(function(sunlight, document, undefined){
if (sunlight === undefined) {
throw "Include sunlight.js before including plugin files";
}
function getLineCount(node) {
//browsers don't render the last trailing newline, so we make sure that the line numbers reflect that
//by disregarding the last trailing newline
//get the last text node
var lastTextNode = function getLastNode(node) {
if (!node.lastChild) {
return null;
}
if (node.lastChild.nodeType === 3) {
return node.lastChild;
}
return getLastNode(node.lastChild);
}(node) || { lastChild: "" };
return node.innerHTML.replace(/[^\n]/g, "").length - /\n$/.test(lastTextNode.nodeValue);
}
sunlight.bind("afterHighlightNode", function(context) {
var lineContainer,
lineCount,
lineHighlightOverlay,
currentLineOverlay,
lineHighlightingEnabled,
i,
eol,
link,
name;
if (!this.options.lineNumbers) {
return;
}
if (this.options.lineNumbers === "automatic" && sunlight.util.getComputedStyle(context.node, "display") !== "block") {
//if it's not a block level element or the lineNumbers option is not set to "automatic"
return;
}
lineContainer = document.createElement("pre");
lineCount = getLineCount(context.node);
lineHighlightingEnabled = this.options.lineHighlight.length > 0;
if (lineHighlightingEnabled) {
lineHighlightOverlay = document.createElement("div");
lineHighlightOverlay.className = this.options.classPrefix + "line-highlight-overlay";
}
lineContainer.className = this.options.classPrefix + "line-number-margin";
eol = document.createTextNode(sunlight.util.eol)
for (i = this.options.lineNumberStart; i <= this.options.lineNumberStart + lineCount; i++) {
link = document.createElement("a");
name = (context.node.id ? context.node.id : this.options.classPrefix + context.count) + "-line-" + i;
link.setAttribute("name", name);
link.setAttribute("href", "#" + name);
link.appendChild(document.createTextNode(i));
lineContainer.appendChild(link);
lineContainer.appendChild(eol.cloneNode(false));
if (lineHighlightingEnabled) {
currentLineOverlay = document.createElement("div");
if (sunlight.util.contains(this.options.lineHighlight, i)) {
currentLineOverlay.className = this.options.classPrefix + "line-highlight-active";
}
lineHighlightOverlay.appendChild(currentLineOverlay);
}
}
context.codeContainer.insertBefore(lineContainer, context.codeContainer.firstChild);
if (lineHighlightingEnabled) {
context.codeContainer.appendChild(lineHighlightOverlay);
}
//enable the border on the code container
context.codeContainer.style.borderWidth = "1px";
context.codeContainer.style.borderStyle = "solid";
});
sunlight.globalOptions.lineNumbers = "automatic";
sunlight.globalOptions.lineNumberStart = 1;
sunlight.globalOptions.lineHighlight = [];
}(this["Sunlight"], document));
@@ -0,0 +1,159 @@
/**
* Sunlight menu plugin
*
* This creates the menu in the upper right corner for block-level elements.
* This plugin is not supported for IE6.
*
* Options:
* - showMenu: true/false (default is false)
* - autoCollapse: true/false (default is false)
*/
(function(sunlight, document, undefined){
if (sunlight === undefined) {
throw "Include sunlight.js before including plugin files";
}
//http://dean.edwards.name/weblog/2007/03/sniff/#comment83695
//eval()'d so that it compresses correctly
var ieVersion = eval("0 /*@cc_on+ScriptEngineMajorVersion()@*/");
function createLink(href, title, text) {
var link = document.createElement("a");
link.setAttribute("href", href);
link.setAttribute("title", title);
if (text) {
link.appendChild(document.createTextNode(text));
}
return link;
}
function getTextRecursive(node) {
var text = "",
i = 0;
if (node.nodeType === 3) {
return node.nodeValue;
}
text = "";
for (i = 0; i < node.childNodes.length; i++) {
text += getTextRecursive(node.childNodes[i]);
}
return text;
}
sunlight.bind("afterHighlightNode", function(context) {
var menu,
sunlightIcon,
ul,
collapse,
mDash,
collapseLink,
viewRaw,
viewRawLink,
about,
aboutLink,
icon;
if ((ieVersion && ieVersion < 7) || !this.options.showMenu || sunlight.util.getComputedStyle(context.node, "display") !== "block") {
return;
}
menu = document.createElement("div");
menu.className = this.options.classPrefix + "menu";
sunlightIcon =
"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJ" +
"cEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41Ljg3O4BdAAAAl0lEQVQ4jWP4" +
"P9n9PyWYgTYGzAr+///Q9P//Ty/HjhfEETDg1oH/YPDgNKbm4wsIuGBO+H84WJJKhhd2dkA0v3tEZhjcPQox4MVN" +
"7P7fUEHAgM112DX++Qkx+PEFMqPxwSmIAQenkWHAvCicAUucAbCAfX2PQCCCEtDGKkz86RXEgL39BAwAKcAFbh/6" +
"/39GIL3yAj0NAAB+LQeDCZ9tvgAAAABJRU5ErkJggg==";
ul = document.createElement("ul");
collapse = document.createElement("li");
mDash = String.fromCharCode(0x2014);
collapseLink = createLink("#", "collapse code block", mDash);
collapseLink.onclick = function() {
var originalHeight = sunlight.util.getComputedStyle(context.codeContainer, "height"),
originalOverflow = sunlight.util.getComputedStyle(context.codeContainer, "overflowY");
return function() {
var needsToExpand = sunlight.util.getComputedStyle(context.codeContainer, "height") !== originalHeight;
this.replaceChild(document.createTextNode(needsToExpand ? mDash : "+"), this.firstChild);
this.setAttribute("title", (needsToExpand ? "collapse" : "expand") + " clode block");
context.codeContainer.style.height = needsToExpand ? originalHeight : "0px";
context.codeContainer.style.overflowY = needsToExpand ? originalOverflow : "hidden";
return false;
}
}();
collapse.appendChild(collapseLink);
viewRaw = document.createElement("li");
viewRawLink = createLink("#", "view raw code", "raw");
viewRawLink.onclick = function() {
var textarea;
return function() {
var rawCode;
if (textarea) {
textarea.parentNode.removeChild(textarea);
textarea = null;
context.node.style.display = "block";
this.replaceChild(document.createTextNode("raw"), this.firstChild);
this.setAttribute("title", "view raw code");
} else {
//hide the codeContainer, flatten all text nodes, create a <textarea>, append it
rawCode = getTextRecursive(context.node);
textarea = document.createElement("textarea");
textarea.value = rawCode;
textarea.setAttribute("readonly", "readonly");
textarea.style.width = (parseInt(sunlight.util.getComputedStyle(context.node, "width")) - 5) + "px"; //IE, Safari and Chrome can't handle the actual width
textarea.style.height = sunlight.util.getComputedStyle(context.node, "height");
textarea.style.border = "none";
textarea.style.overflowX = "hidden"; //IE requires this
textarea.setAttribute("wrap", "off"); //prevent line wrapping lol
context.codeContainer.insertBefore(textarea, context.node);
context.node.style.display = "none";
this.replaceChild(document.createTextNode("highlighted"), this.firstChild);
this.setAttribute("title", "view highlighted code");
textarea.select(); //highlight everything
}
return false;
}
}();
viewRaw.appendChild(viewRawLink);
about = document.createElement("li");
aboutLink = createLink("http://sunlightjs.com/", "Sunlight: JavaScript syntax highlighter by Tommy Montgomery");
icon = document.createElement("img");
icon.setAttribute("src", "data:image/png;base64," + sunlightIcon);
icon.setAttribute("alt", "about");
aboutLink.appendChild(icon);
about.appendChild(aboutLink);
ul.appendChild(about);
ul.appendChild(viewRaw);
ul.appendChild(collapse);
menu.appendChild(ul);
context.container.insertBefore(menu, context.container.firstChild);
if (this.options.autoCollapse) {
collapseLink.onclick.call(collapseLink);
}
});
sunlight.globalOptions.showMenu = false;
sunlight.globalOptions.autoCollapse = false;
}(this["Sunlight"], document));
@@ -0,0 +1,183 @@
(function(sunlight, undefined){
if (sunlight === undefined || sunlight["registerLanguage"] === undefined) {
throw "Include sunlight.js before including language files";
}
sunlight.registerLanguage("javascript", {
keywords: [
//keywords
"break", "case", "catch", "continue", "default", "delete", "do",
"else", "finally", "for", "function", "if", "in", "instanceof",
"new", "return", "switch", "this", "throw", "try", "typeof",
"var", "void", "while", "with",
//literals
"true", "false", "null"
],
customTokens: {
reservedWord: {
values: [
"abstract", "boolean", "byte", "char", "class", "const", "debugger", "double",
"enum", "export", "extends", "final", "float", "goto", "implements", "import",
"int", "interface", "long", "native", "package", "private", "protected", "public",
"short", "static", "super", "synchronized", "throws", "transient", "volatile"
],
boundary: "\\b"
},
globalVariable: {
values: ["NaN", "Infinity", "undefined"],
boundary: "\\b"
},
globalFunction: {
values: ["encodeURI", "encodeURIComponent", "decodeURI", "decodeURIComponent", "parseInt", "parseFloat", "isNaN", "isFinite", "eval"],
boundary: "\\b"
},
globalObject: {
values: [
"Math", "JSON",
"XMLHttpRequest", "XDomainRequest", "ActiveXObject",
"Boolean", "Date", "Array", "Image", "Function", "Object", "Number", "RegExp", "String"
],
boundary: "\\b"
}
},
scopes: {
string: [ ["\"", "\"", sunlight.util.escapeSequences.concat(["\\\""])], ["'", "'", sunlight.util.escapeSequences.concat(["\\\'", "\\\\"])] ],
comment: [ ["//", "\n", null, true], ["/*", "*/"] ]
},
customParseRules: [
//regex literal
function(context) {
var peek = context.reader.peek(),
isValid,
regexLiteral = "/",
line = context.reader.getLine(),
column = context.reader.getColumn(),
charClass = false,
peek2,
next;
if (context.reader.current() !== "/" || peek === "/" || peek === "*") {
//doesn't start with a / or starts with // (comment) or /* (multi line comment)
return null;
}
isValid = function() {
var previousNonWsToken = context.token(context.count() - 1),
previousToken = null;
if (context.defaultData.text !== "") {
previousToken = context.createToken("default", context.defaultData.text);
}
if (!previousToken) {
previousToken = previousNonWsToken;
}
//first token of the string
if (previousToken === undefined) {
return true;
}
//since JavaScript doesn't require statement terminators, if the previous token was whitespace and contained a newline, then we're good
if (previousToken.name === "default" && previousToken.value.indexOf("\n") > -1) {
return true;
}
if (sunlight.util.contains(["keyword", "ident", "number"], previousNonWsToken.name)) {
return false;
}
if (previousNonWsToken.name === "punctuation" && !sunlight.util.contains(["(", "{", "[", ",", ";"], previousNonWsToken.value)) {
return false;
}
return true;
}();
if (!isValid) {
return null;
}
//read the regex literal
while (context.reader.peek() !== context.reader.EOF) {
peek2 = context.reader.peek(2);
if (peek2 === "\\/" || peek2 === "\\\\") {
//escaped backslash or escaped forward slash
regexLiteral += context.reader.read(2);
continue;
}
if (peek2 === "\\[" || peek2 === "\\]") {
regexLiteral += context.reader.read(2);
continue;
} else if (next === "[") {
charClass = true;
} else if (next === "]") {
charClass = false;
}
regexLiteral += (next = context.reader.read());
if (next === "/" && !charClass) {
break;
}
}
//read the regex modifiers
//only "g", "i" and "m" are allowed, but for the sake of simplicity we'll just say any alphabetical character is valid
while (context.reader.peek() !== context.reader.EOF) {
if (!/[A-Za-z]/.test(context.reader.peek())) {
break;
}
regexLiteral += context.reader.read();
}
return context.createToken("regexLiteral", regexLiteral, line, column);
}
],
identFirstLetter: /[$A-Za-z_]/,
identAfterFirstLetter: /[\w\$]/,
namedIdentRules: {
follows: [
[{ token: "keyword", values: ["function"] }, sunlight.util.whitespace]
]
},
operators: [
//arithmetic
"++", "+=", "+",
"--", "-=", "-",
"*=", "*",
"/=", "/",
"%=", "%",
//boolean
"&&", "||",
//bitwise
"|=", "|",
"&=", "&",
"^=", "^",
">>>=", ">>>", ">>=", ">>",
"<<=", "<<",
//inequality
"<=", "<",
">=", ">",
"===", "==", "!==", "!=",
//unary
"!", "~",
//other
"?", ":", ".", "="
]
});
}(this["Sunlight"]));
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,100 @@
(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();
}
return this.each(function() {
//build TOC
var el = $(this);
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);
});
};
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);
@@ -0,0 +1,960 @@
/*
* Darkstrap v0.9.2
* By danneu (http://github.com/danneu/darkstrap)
* Based off Twitter Bootstrap v2.2.2
*/
tr.warning,
tr.success,
tr.error,
tr.info {
color: #fff;
}
body {
color: #c6c6c6;
background-color: #2f2f2f;
}
a:hover {
color: #1ab2ff;
}
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
background-color: #cccccc;
}
select {
background-color: #cccccc;
}
.uneditable-input,
.uneditable-textarea {
background-color: #c9c9c9;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
color: #666666;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
color: #666666;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
color: #666666;
}
.control-group.warning .input-prepend .add-on,
.control-group.warning .input-append .add-on {
background-color: #faa732;
}
.control-group.error .input-prepend .add-on,
.control-group.error .input-append .add-on {
background-color: #fc5b5e;
}
.control-group.success .input-prepend .add-on,
.control-group.success .input-append .add-on {
background-color: #5bb75b;
}
.control-group.info .input-prepend .add-on,
.control-group.info .input-append .add-on {
background-color: #3a87ad;
}
.form-actions {
background-color: #444444;
}
.help-block,
.help-inline {
color: #ececec;
}
.table th,
.table td {
border-top: 1px solid #666666;
}
.table tbody + tbody {
border-top: 2px solid #666666;
}
.table .table {
background-color: #2f2f2f;
}
.table-bordered {
border: 1px solid #666666;
}
.table-bordered th,
.table-bordered td {
border-left: 1px solid #666666;
}
.table-striped tbody > tr:nth-child(odd) > td,
.table-striped tbody > tr:nth-child(odd) > th {
background-color: #444444;
}
.table-hover tbody tr:hover td,
.table-hover tbody tr:hover th {
background-color: #666666;
}
.table tbody tr.success td {
background-color: #5bb75b;
}
.table tbody tr.error td {
background-color: #fc5b5e;
}
.table tbody tr.warning td {
background-color: #faa732;
}
.table tbody tr.info td {
background-color: #3a87ad;
}
.table-hover tbody tr.success:hover td {
background-color: #4cad4c;
}
.table-hover tbody tr.error:hover td {
background-color: #fc4245;
}
.table-hover tbody tr.warning:hover td {
background-color: #f99c19;
}
.table-hover tbody tr.info:hover td {
background-color: #34789a;
}
[class^="icon-"],
[class*=" icon-"] {
background-image: url("../img/glyphicons-halflings.png");
}
.icon-white,
.nav-pills > .active > a > [class^="icon-"],
.nav-pills > .active > a > [class*=" icon-"],
.nav-list > .active > a > [class^="icon-"],
.nav-list > .active > a > [class*=" icon-"],
.navbar-inverse .nav > .active > a > [class^="icon-"],
.navbar-inverse .nav > .active > a > [class*=" icon-"],
.dropdown-menu > li > a:hover > [class^="icon-"],
.dropdown-menu > li > a:hover > [class*=" icon-"],
.dropdown-menu > .active > a > [class^="icon-"],
.dropdown-menu > .active > a > [class*=" icon-"],
.dropdown-submenu:hover > a > [class^="icon-"],
.dropdown-submenu:hover > a > [class*=" icon-"] {
background-image: url("../img/glyphicons-halflings-white.png");
}
.btn-link:hover {
color: #1ab2ff;
}
.alert {
background-color: #faa732;
border: 1px solid #fa7d23;
}
.alert-success {
background-color: #5bb75b;
border-color: #5cad4c;
}
.alert-danger,
.alert-error {
background-color: #fc5b5e;
border-color: #fc4c6d;
}
.alert-info {
background-color: #3a87ad;
border-color: #318292;
}
.nav-tabs > .active > a,
.nav-tabs > .active > a:hover {
background-color: #2f2f2f;
}
.nav .dropdown-toggle:hover .caret {
border-top-color: #1ab2ff;
border-bottom-color: #1ab2ff;
}
.navbar-inner {
background-color: #363636;
background-image: -moz-linear-gradient(top, #444444, #222222);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
background-image: -webkit-linear-gradient(top, #444444, #222222);
background-image: -o-linear-gradient(top, #444444, #222222);
background-image: linear-gradient(to bottom, #444444, #222222);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF444444', endColorstr='#FF222222', GradientType=0);
border: 1px solid #030303;
}
.navbar .brand {
color: #c6c6c6;
text-shadow: 0 1px 0 #444444;
}
.navbar-text {
color: #c6c6c6;
}
.navbar-link {
color: #c6c6c6;
}
.navbar-link:hover {
color: white;
}
.navbar .divider-vertical {
border-left: 1px solid #222222;
border-right: 1px solid #444444;
}
.navbar .nav > li > a {
color: #c6c6c6;
text-shadow: 0 1px 0 #444444;
}
.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
color: white;
}
.navbar .nav > .active > a,
.navbar .nav > .active > a:hover,
.navbar .nav > .active > a:focus {
color: white;
background-color: #151515;
}
.navbar .btn-navbar {
background-color: #292929;
background-image: -moz-linear-gradient(top, #373737, #151515);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#373737), to(#151515));
background-image: -webkit-linear-gradient(top, #373737, #151515);
background-image: -o-linear-gradient(top, #373737, #151515);
background-image: linear-gradient(to bottom, #373737, #151515);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF373737', endColorstr='#FF151515', GradientType=0);
border-color: #151515 #151515 black;
*background-color: #151515;
}
.navbar .btn-navbar:hover, .navbar .btn-navbar:active, .navbar .btn-navbar.active, .navbar .btn-navbar.disabled, .navbar .btn-navbar[disabled] {
background-color: #151515;
*background-color: #090909;
}
.navbar .btn-navbar:active, .navbar .btn-navbar.active {
background-color: black \9;
}
.navbar .nav li.dropdown > a:hover .caret {
border-top-color: white;
border-bottom-color: white;
}
.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
background-color: #151515;
color: white;
}
.navbar .nav li.dropdown > .dropdown-toggle .caret {
border-top-color: #c6c6c6;
border-bottom-color: #c6c6c6;
}
.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
border-top-color: white;
border-bottom-color: white;
}
.well {
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
border: 0;
}
.darkwell, .breadcrumb, code, pre, select,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input, textarea, .hero-unit, .progress {
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
border: 0;
}
.breadcrumb {
border: 0;
}
.breadcrumb li {
text-shadow: 0 1px 0 black;
}
.page-header {
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
}
h1, h2, h3, h4, h5, h6 {
color: white;
}
h6 {
color: #999;
}
blockquote {
border-left-color: #111;
}
blockquote.pull-right {
border-right-color: #111;
}
hr {
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
border-top: none;
}
code {
border: none;
padding: 2px 4px;
}
pre {
border: none;
color: #c6c6c6;
padding: 8px;
}
legend {
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
color: #fff;
}
select,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
color: white;
height: 21px;
}
select:-moz-placeholder,
input[type="text"]:-moz-placeholder,
input[type="password"]:-moz-placeholder,
input[type="datetime"]:-moz-placeholder,
input[type="datetime-local"]:-moz-placeholder,
input[type="date"]:-moz-placeholder,
input[type="month"]:-moz-placeholder,
input[type="time"]:-moz-placeholder,
input[type="week"]:-moz-placeholder,
input[type="number"]:-moz-placeholder,
input[type="email"]:-moz-placeholder,
input[type="url"]:-moz-placeholder,
input[type="search"]:-moz-placeholder,
input[type="tel"]:-moz-placeholder,
input[type="color"]:-moz-placeholder,
.uneditable-input:-moz-placeholder {
color: #666666;
}
select:-ms-input-placeholder,
input[type="text"]:-ms-input-placeholder,
input[type="password"]:-ms-input-placeholder,
input[type="datetime"]:-ms-input-placeholder,
input[type="datetime-local"]:-ms-input-placeholder,
input[type="date"]:-ms-input-placeholder,
input[type="month"]:-ms-input-placeholder,
input[type="time"]:-ms-input-placeholder,
input[type="week"]:-ms-input-placeholder,
input[type="number"]:-ms-input-placeholder,
input[type="email"]:-ms-input-placeholder,
input[type="url"]:-ms-input-placeholder,
input[type="search"]:-ms-input-placeholder,
input[type="tel"]:-ms-input-placeholder,
input[type="color"]:-ms-input-placeholder,
.uneditable-input:-ms-input-placeholder {
color: #666666;
}
select::-webkit-input-placeholder,
input[type="text"]::-webkit-input-placeholder,
input[type="password"]::-webkit-input-placeholder,
input[type="datetime"]::-webkit-input-placeholder,
input[type="datetime-local"]::-webkit-input-placeholder,
input[type="date"]::-webkit-input-placeholder,
input[type="month"]::-webkit-input-placeholder,
input[type="time"]::-webkit-input-placeholder,
input[type="week"]::-webkit-input-placeholder,
input[type="number"]::-webkit-input-placeholder,
input[type="email"]::-webkit-input-placeholder,
input[type="url"]::-webkit-input-placeholder,
input[type="search"]::-webkit-input-placeholder,
input[type="tel"]::-webkit-input-placeholder,
input[type="color"]::-webkit-input-placeholder,
.uneditable-input::-webkit-input-placeholder {
color: #666666;
}
textarea {
color: white;
}
textarea:-moz-placeholder {
color: #666666;
}
textarea:-ms-input-placeholder {
color: #666666;
}
textarea::-webkit-input-placeholder {
color: #666666;
}
select {
height: 29px;
}
.input-prepend .add-on,
.input-append .add-on {
background: #444;
color: #c6c6c6;
border-color: #111;
text-shadow: 0 1px 0 black;
}
.form-actions {
border-top-color: #222;
}
.well .form-actions {
border-top-color: #000;
background-color: rgba(0, 0, 0, 0.3);
margin-left: -17px;
margin-right: -17px;
margin-bottom: -17px;
}
.help-inline,
.help-block {
color: #999;
}
.control-group.warning input, .control-group.warning select, .control-group.warning textarea {
color: #faa732;
border-color: #faa732;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.warning input:focus,
.control-group.warning select:focus,
.control-group.warning textarea:focus {
border-color: #faa732;
-webkit-box-shadow: 0 0 6px #faa732;
-moz-box-shadow: 0 0 6px #faa732;
box-shadow: 0 0 6px #faa732;
}
.control-group.warning .control-label,
.control-group.warning .help-block,
.control-group.warning .help-inline {
color: #faa732;
}
.control-group.success input, .control-group.success select, .control-group.success textarea {
color: #5bb75b;
border-color: #5bb75b;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.success input:focus,
.control-group.success select:focus,
.control-group.success textarea:focus {
border-color: #5bb75b;
-webkit-box-shadow: 0 0 6px #5bb75b;
-moz-box-shadow: 0 0 6px #5bb75b;
box-shadow: 0 0 6px #5bb75b;
}
.control-group.success .control-label,
.control-group.success .help-block,
.control-group.success .help-inline {
color: #5bb75b;
}
.control-group.error input, .control-group.error select, .control-group.error textarea {
color: #fc5b5e;
border-color: #fc5b5e;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.error input:focus,
.control-group.error select:focus,
.control-group.error textarea:focus {
border-color: #fc5b5e;
-webkit-box-shadow: 0 0 6px #fc5b5e;
-moz-box-shadow: 0 0 6px #fc5b5e;
box-shadow: 0 0 6px #fc5b5e;
}
.control-group.error .control-label,
.control-group.error .help-block,
.control-group.error .help-inline {
color: #fc5b5e;
}
.control-group.info input, .control-group.info select, .control-group.info textarea {
color: #3a87ad;
border-color: #3a87ad;
-webkit-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
-moz-box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
box-shadow: rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.8) 0 1px 7px 0px inset;
background: #202020;
background-color: rgba(0, 0, 0, 0.3);
}
.control-group.info input:focus,
.control-group.info select:focus,
.control-group.info textarea:focus {
border-color: #3a87ad;
-webkit-box-shadow: 0 0 6px #3a87ad;
-moz-box-shadow: 0 0 6px #3a87ad;
box-shadow: 0 0 6px #3a87ad;
}
.control-group.info .control-label,
.control-group.info .help-block,
.control-group.info .help-inline {
color: #3a87ad;
}
input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
border-color: #fc5b5e;
}
input:focus:invalid:focus,
textarea:focus:invalid:focus,
select:focus:invalid:focus {
border-color: #fc5b5e;
box-shadow: 0 0 6px #fc5b5e;
}
.btn-link {
text-shadow: none;
}
.img-polaroid {
background-color: #111;
background-color: rgba(0, 0, 0, 0.3);
}
.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle,
.nav > .open.active > a:hover {
background-color: rgba(0, 0, 0, 0.25);
border-color: transparent transparent #666666 transparent;
}
.nav > .dropdown.active > a:hover {
color: #fff;
}
.nav-tabs .active .dropdown-toggle .caret,
.nav-pills .active .dropdown-toggle .caret {
border-top-color: #fff;
}
.nav-tabs {
border-bottom: 1px solid #666666;
}
.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
background-color: #2f2f2f;
color: #fff;
border-color: #666666 #666666 transparent #666666;
}
.nav-tabs > li > a:hover {
border-color: #2f2f2f #2f2f2f #666666 #2f2f2f;
background-color: rgba(0, 0, 0, 0.25);
color: #00aaff;
}
.nav-tabs.nav-stacked > li > a, .nav-tabs.nav-stacked > li > a:hover {
border-color: #666;
}
.well > .nav-tabs > .active > a, .well > .nav-tabs > .active > a:hover {
background-color: #202020;
}
.nav-pills > li > a:hover {
background-color: rgba(0, 0, 0, 0.25);
color: #00aaff;
}
.nav-list > li > a,
.nav-list .nav-header {
text-shadow: 0 1px 0 black;
}
.nav-list > li > a:hover {
background-color: rgba(0, 0, 0, 0.25);
color: #00aaff;
}
.nav-list .active > a:hover {
background-color: #0088cc;
color: white;
}
.tabs-below .nav-tabs {
border-top: 1px solid #666666;
}
.tabs-left .nav-tabs {
border-right: 1px solid #666666;
}
.tabs-right .nav-tabs {
border-left: 1px solid #666666;
}
.tabs-below .nav-tabs > li > a:hover {
border-top: 1px solid #666666;
}
.tabs-left .nav-tabs > li > a:hover {
border-color: transparent #666666 transparent transparent;
}
.tabs-right .nav-tabs > li > a:hover {
border-color: transparent transparent transparent #666666;
}
.tabs-below .nav-tabs .active > a,
.tabs-below .nav-tabs .active > a:hover {
border-color: transparent #666666 #666666 #666666;
}
.tabs-left .nav-tabs .active > a,
.tabs-left .nav-tabs .active > a:hover {
border-color: #666666 transparent #666666 #666666;
}
.tabs-right .nav-tabs .active > a,
.tabs-right .nav-tabs .active > a:hover {
border-color: #666666 #666666 #666666 transparent;
}
.nav-list > li > a,
.nav-list .nav-header {
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
}
.nav-tabs > li > a:hover {
border-color: transparent transparent #666666 transparent;
}
.nav > .disabled > a:hover {
color: #999;
}
.nav-list .divider {
background-color: transparent;
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
box-shadow: rgba(255, 255, 255, 0.07) 0 1px 0;
border-bottom: 1px solid #121212;
}
.navbar .brand {
text-shadow: 0 1px 0 black;
}
.navbar .divider-vertical {
border: transparent;
-webkit-box-shadow: rgba(255, 255, 255, 0.07) 1px 0 0;
-moz-box-shadow: rgba(255, 255, 255, 0.07) 1px 0 0;
box-shadow: rgba(255, 255, 255, 0.07) 1px 0 0;
border-right: 1px solid #121212;
}
.navbar-inverse .brand {
color: #555;
text-shadow: 0 1px 0 white;
}
.navbar-inverse .brand:hover {
color: #555;
}
.navbar-inverse .navbar-inner {
background: #fafafa;
border: 1px solid #030303;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
background: -moz-linear-gradient(top, white 0%, #999999 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #999999));
background: -webkit-linear-gradient(top, white 0%, #999999 100%);
background: -o-linear-gradient(top, white 0%, #999999 100%);
background: -ms-linear-gradient(top, white 0%, #999999 100%);
background: linear-gradient(to bottom, #ffffff 0%, #999999 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#999999',GradientType=0 );
}
.navbar-inverse .nav > li > a {
color: #555;
}
.navbar-inverse .nav > li > a:hover {
color: #333;
}
.navbar-inverse .nav > .active > a,
.navbar-inverse .nav > .active > a:hover {
background-color: #e5e5e5;
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.125) inset;
color: #555555;
}
.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
background-color: #e5e5e5;
color: #555;
}
.navbar-inverse .nav li.dropdown > a:hover .caret {
border-top-color: #555;
color: #555;
}
.navbar-inverse .nav > li > a:focus,
.navbar-inverse .nav > li > a:hover {
background-color: transparent;
color: #333;
}
.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
background-color: #e5e5e5;
color: #555;
}
.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
border-bottom-color: #555;
border-top-color: #555;
color: #555;
}
.navbar-inverse .navbar-search .search-query {
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.6) inset;
background-color: white;
color: #333;
}
.navbar-inverse .navbar-search input.search-query:focus {
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.6) inset, 0 0 8px rgba(82, 168, 236, 0.6);
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.6) inset, 0 0 8px rgba(82, 168, 236, 0.9);
padding: 4px 14px;
outline: 0 none;
}
.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
border-bottom-color: #555;
border-top-color: #555;
}
.navbar-inverse .nav li.dropdown > a:hover .caret {
border-bottom-color: #333;
border-top-color: #333;
}
.navbar-inverse .navbar-search .search-query:-moz-placeholder {
color: #999;
}
.pagination ul > li > a,
.pagination ul > li > span {
background: transparent;
border-color: #666;
}
.pagination ul > li > a:hover,
.pagination ul > .active > a,
.pagination ul > .active > span {
background-color: rgba(0, 0, 0, 0.25);
}
.pager li > a, .pager li > span {
background-color: transparent;
border-color: #666;
}
.pager li > a:hover {
background-color: rgba(0, 0, 0, 0.25);
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > span {
background-color: transparent;
}
.label,
.badge {
text-shadow: 1px 1px 0 black;
box-shadow: 1px 1px 0 black;
}
.label-inverse,
.badge-inverse {
background-color: #111;
}
.hero-unit {
background: #111;
color: #ccc;
}
.thumbnail {
border-color: #666;
box-shadow: 0 1px 3px black;
}
.thumbnail .caption {
color: #999;
}
.alert {
color: white;
border-color: #a86404;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}
.alert h1, .alert h2, .alert h3, .alert h4, .alert h5, .alert h6 {
color: #c17305;
}
.alert-error {
border-color: #d40408;
}
.alert-error h1, .alert-error h2, .alert-error h3, .alert-error h4, .alert-error h5, .alert-error h6 {
color: #ed0409;
}
.alert-success {
border-color: #2d662d;
}
.alert-success h1, .alert-success h2, .alert-success h3, .alert-success h4, .alert-success h5, .alert-success h6 {
color: #347834;
}
.alert-info {
border-color: #1a3c4e;
}
.alert-info h1, .alert-info h2, .alert-info h3, .alert-info h4, .alert-info h5, .alert-info h6 {
color: #204B61;
}
select::-webkit-scrollbar {
-webkit-appearance: none;
width: 11px;
}
select::-webkit-scrollbar-thumb {
border-radius: 8px;
border: 2px solid #202020;
background-color: rgba(0, 0, 0, 0.5);
}
.modal {
background-color: #444;
}
.modal-header {
border-bottom: 1px solid #222222;
}
.modal-body p {
color: #c6c6c6;
}
.modal-footer {
background-color: #373737;
border-top: 1px solid #222222;
-moz-box-shadow: 0 1px 0 #333333 inset;
-webkit-box-shadow: 0 1px 0 #333333 inset;
-o-box-shadow: 0 1px 0 #333333 inset;
box-shadow: 0 1px 0 #333333 inset;
}
.popover {
background: #444;
border: 1px solid rgba(0, 0, 0, 0.5);
border: 1px solid black;
}
.popover-title {
background: #373737;
border-bottom-color: #222;
}
.popover.top .arrow:after {
border-top-color: #444;
}
.popover.right .arrow:after {
border-right-color: #444;
}
.popover.bottom .arrow:after {
border-bottom-color: #444;
}
.popover.left .arrow:after {
border-left-color: #444;
}
@@ -0,0 +1,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 {
/* */ }
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
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
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
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
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,345 @@
/* global styles */
.sunlight-container {
clear: both !important;
position: relative !important;
margin: 10px 0 !important;
}
.sunlight-code-container {
clear: both !important;
position: relative !important;
border: none;
border-color: #626262 !important;
background-color: #262626 !important;
}
.sunlight-highlighted, .sunlight-container, .sunlight-container textarea {
font-family: Consolas, Inconsolata, Monaco, "Courier New" !important;
font-size: 12px !important;
line-height: 15px !important;
}
.sunlight-highlighted, .sunlight-container textarea {
color: #FFFFFF !important;
margin: 0 !important;
}
.sunlight-container textarea {
padding-left: 0 !important;
margin-left: 0 !important;
margin-right: 0 !important;
padding-right: 0 !important;
}
.sunlight-code-container > .sunlight-highlighted {
white-space: pre;
overflow-x: auto;
overflow-y: hidden; /* ie requires this wtf? */
}
.sunlight-highlighted {
z-index: 1;
position: relative;
}
.sunlight-highlighted * {
background: transparent;
}
.sunlight-line-number-margin {
float: left !important;
margin-right: 5px !important;
margin-top: 0 !important;
margin-bottom: 0 !important;
padding: 0 !important;
padding-right: 4px !important;
padding-left: 4px !important;
border-right: 1px solid #9A9A9A !important;
background-color: #3E3E3E !important;
color: #9A9A9A !important;
text-align: right !important;
position: relative;
z-index: 3;
}
.sunlight-highlighted a, .sunlight-line-number-margin a {
border: none !important;
text-decoration: none !important;
font-style: normal !important;
padding: 0 !important;
}
.sunlight-line-number-margin a {
color: inherit !important;
}
.sunlight-line-highlight-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: 0;
}
.sunlight-line-highlight-overlay div {
height: 15px;
width: 100%;
}
.sunlight-line-highlight-overlay .sunlight-line-highlight-active {
background-color: #4B4B4B;
}
/* menu */
.sunlight-menu {
background-color: #FFFFCC;
color: #000000;
}
.sunlight-menu ul {
margin: 0 !important;
padding: 0 !important;
list-style-type: none !important;
}
.sunlight-menu li {
float: right !important;
margin-left: 5px !important;
}
.sunlight-menu a, .sunlight-menu img {
color: #000099 !important;
text-decoration: none !important;
border: none !important;
}
.sunlight-string,
.sunlight-char,
.sunlight-heredoc,
.sunlight-heredocDeclaration,
.sunlight-nowdoc,
.sunlight-longString,
.sunlight-rawString,
.sunlight-binaryString,
.sunlight-verbatimString,
.sunlight-rawLongString,
.sunlight-binaryLongString,
.sunlight-diff .sunlight-added {
color: #55EB54 !important;
}
.sunlight-operator,
.sunlight-punctuation,
.sunlight-delimiter {
color: #B1EDEC !important;
}
.sunlight-ident,
.sunlight-diff .sunlight-unchanged {
color: #E0E0E0 !important;
font-weight: bold !important;
}
.sunlight-comment,
.sunlight-xmlDocCommentContent,
.sunlight-nginx .sunlight-ssiCommand,
.sunlight-sln .sunlight-formatDeclaration,
.sunlight-diff .sunlight-mergeHeader,
.sunlight-diff .sunlight-noNewLine {
color: #787D31 !important;
}
.sunlight-number,
.sunlight-cdata,
.sunlight-guid,
.sunlight-diff .sunlight-modified {
color: #F7BA7E !important;
font-weight: bold !important;
}
.sunlight-named-ident,
.sunlight-xml .sunlight-attribute,
.sunlight-constant,
.sunlight-javascript .sunlight-globalVariable,
.sunlight-globalObject,
.sunlight-css .sunlight-id,
.sunlight-python .sunlight-attribute,
.sunlight-nginx .sunlight-context,
.sunlight-httpd .sunlight-context,
.sunlight-lisp .sunlight-declarationSpecifier,
.sunlight-erlang .sunlight-userDefinedFunction,
.sunlight-diff .sunlight-removed {
color: #FBBDEE !important;
font-weight: bold !important;
}
.sunlight-keyword,
.sunlight-languageConstruct,
.sunlight-specialOperator,
.sunlight-xml .sunlight-tagName,
.sunlight-xml .sunlight-operator,
.sunlight-bash .sunlight-command,
.sunlight-erlang .sunlight-moduleAttribute {
color: #A3CCF7 !important;
font-weight: bold !important;
}
.sunlight-shortOpenTag,
.sunlight-openTag,
.sunlight-closeTag,
.sunlight-xmlOpenTag,
.sunlight-xmlCloseTag,
.sunlight-aspOpenTag,
.sunlight-aspCloseTag,
.sunlight-label,
.sunlight-css .sunlight-importantFlag {
background-color: #7373C1 !important;
}
.sunlight-content {
color: #FFFFFF !important;
font-weight: bold !important;
}
.sunlight-function,
.sunlight-globalFunction,
.sunlight-objective-c .sunlight-messageDestination,
.sunlight-ruby .sunlight-specialFunction,
.sunlight-6502asm .sunlight-illegalOpcode,
.sunlight-powershell .sunlight-switch,
.sunlight-lisp .sunlight-macro,
.sunlight-lisp .sunlight-specialForm,
.sunlight-lisp .sunlight-type,
.sunlight-sln .sunlight-sectionName,
.sunlight-diff .sunlight-header {
color: #C8BBF1 !important;
font-weight: bold !important;
}
.sunlight-variable,
.sunlight-environmentVariable,
.sunlight-specialVariable,
.sunlight-objective-c .sunlight-messageArgumentName,
.sunlight-lisp .sunlight-globalVariable,
.sunlight-ruby .sunlight-globalVariable,
.sunlight-ruby .sunlight-instanceVariable {
color: #F5E5B0 !important;
font-weight: bold !important;
}
.sunlight-regexLiteral,
.sunlight-lisp .sunlight-operator,
.sunlight-6502asm .sunlight-pseudoOp,
.sunlight-erlang .sunlight-macro,
.sunlight-diff .sunlight-rangeInfo {
color: #E0F16A !important;
}
.sunlight-specialVariable {
font-style: italic !important;
font-weight: bold !important;
}
.sunlight-csharp .sunlight-pragma,
.sunlight-preprocessorDirective,
.sunlight-vb .sunlight-compilerDirective {
color: #666363 !important;
font-style: italic !important;
}
.sunlight-xmlDocCommentMeta,
.sunlight-java .sunlight-annotation,
.sunlight-scala .sunlight-annotation,
.sunlight-docComment {
color: #666363 !important;
}
.sunlight-quotedIdent,
.sunlight-ruby .sunlight-subshellCommand,
.sunlight-lisp .sunlight-keywordArgument,
.sunlight-haskell .sunlight-infixOperator,
.sunlight-erlang .sunlight-quotedAtom {
color: #F8CA16 !important;
}
/* html/xml */
.sunlight-xml .sunlight-tagName,
.sunlight-xml .sunlight-operator,
.sunlight-xml .sunlight-attribute {
font-weight: normal !important;
}
.sunlight-doctype {
color: #DEB9B2 !important;
font-style: italic !important;
}
.sunlight-xml .sunlight-entity {
background-color: #E6E585 !important;
color: #000000 !important;
}
/* javascript */
.sunlight-javascript .sunlight-reservedWord {
font-style: italic !important;
}
/* css */
.sunlight-css .sunlight-element {
color: #E9EE97 !important;
}
.sunlight-css .sunlight-microsoftFilterPrefix {
color: #C9FF9F !important;
}
.sunlight-css .sunlight-rule {
color: #0099FF !important;
}
.sunlight-css .sunlight-class {
color: #E78282 !important;
}
.sunlight-css .sunlight-pseudoClass, .sunlight-css .sunlight-pseudoElement {
color: #73D693 !important;
}
/* bash */
.sunlight-bash .sunlight-hashBang {
color: #FFFF00 !important;
}
.sunlight-bash .sunlight-verbatimCommand {
color: #BBA4EE !important;
}
.sunlight-bash .sunlight-variable,
.sunlight-bash .sunlight-specialVariable {
color: #ED8585 !important;
}
/* python */
.sunlight-python .sunlight-specialMethod {
font-weight: bold !important;
color: #B0A3C2;
}
/* ruby */
.sunlight-ruby .sunlight-symbol {
font-weight: bold !important;
color: #90EEA2 !important;
}
/* brainfuck */
.sunlight-brainfuck {
font-weight: bold !important;
color: #000000 !important;
}
.sunlight-brainfuck .sunlight-increment {
background-color: #FF9900 !important;
}
.sunlight-brainfuck .sunlight-decrement {
background-color: #FF99FF !important;
}
.sunlight-brainfuck .sunlight-incrementPointer {
background-color: #FFFF99 !important;
}
.sunlight-brainfuck .sunlight-decrementPointer {
background-color: #66CCFF !important;
}
.sunlight-brainfuck .sunlight-read {
background-color: #FFFFFF !important;
}
.sunlight-brainfuck .sunlight-write {
background-color: #99FF99 !important;
}
.sunlight-brainfuck .sunlight-openLoop, .sunlight-brainfuck .sunlight-closeLoop {
background-color: #FFFFFF !important;
}
/* 6502 asm */
.sunlight-6502asm .sunlight-label {
background: none !important;
color: #FFFFFF !important;
text-decoration: underline !important;
}
/* lisp */
.sunlight-lisp .sunlight-macro {
font-style: italic !important;
}
/* erlang */
.sunlight-erlang .sunlight-atom {
color: #FFFFFF !important;
font-weight: bold !important;
}
@@ -0,0 +1,344 @@
/* global styles */
.sunlight-container {
clear: both !important;
position: relative !important;
margin: 10px 0 !important;
}
.sunlight-code-container {
clear: both !important;
position: relative !important;
border: none;
border-color: #969696 !important;
background-color: #FFFFFF !important;
}
.sunlight-highlighted, .sunlight-container, .sunlight-container textarea {
font-family: Consolas, Inconsolata, Monaco, "Courier New" !important;
font-size: 12px !important;
line-height: 15px !important;
}
.sunlight-highlighted, .sunlight-container textarea {
color: #000000 !important;
margin: 0 !important;
}
.sunlight-container textarea {
padding-left: 0 !important;
margin-left: 0 !important;
margin-right: 0 !important;
padding-right: 0 !important;
}
.sunlight-code-container > .sunlight-highlighted {
white-space: pre;
overflow-x: auto;
overflow-y: hidden; /* ie requires this wtf? */
}
.sunlight-highlighted {
z-index: 1;
position: relative;
}
.sunlight-highlighted * {
background: transparent;
}
.sunlight-line-number-margin {
float: left !important;
margin-right: 5px !important;
margin-top: 0 !important;
margin-bottom: 0 !important;
padding: 0 !important;
padding-right: 4px !important;
padding-left: 4px !important;
border-right: 1px solid #CCCCCC !important;
background-color: #EEEEEE !important;
color: #848484 !important;
text-align: right !important;
position: relative;
z-index: 3;
}
.sunlight-highlighted a, .sunlight-line-number-margin a {
border: none !important;
text-decoration: none !important;
font-weight: normal !important;
font-style: normal !important;
padding: 0 !important;
}
.sunlight-line-number-margin a {
color: inherit !important;
}
.sunlight-line-highlight-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: 0;
}
.sunlight-line-highlight-overlay div {
height: 15px;
width: 100%;
}
.sunlight-line-highlight-overlay .sunlight-line-highlight-active {
background-color: #E7FCFA;
}
/* menu */
.sunlight-menu {
background-color: #FFFFCC;
color: #000000;
}
.sunlight-menu ul {
margin: 0 !important;
padding: 0 !important;
list-style-type: none !important;
}
.sunlight-menu li {
float: right !important;
margin-left: 5px !important;
}
.sunlight-menu a, .sunlight-menu img {
color: #000099 !important;
text-decoration: none !important;
border: none !important;
}
.sunlight-string,
.sunlight-char,
.sunlight-heredoc,
.sunlight-heredocDeclaration,
.sunlight-nowdoc,
.sunlight-longString,
.sunlight-rawString,
.sunlight-binaryString,
.sunlight-rawLongString,
.sunlight-binaryLongString,
.sunlight-verbatimString,
.sunlight-diff .sunlight-removed {
color: #990000 !important;
}
.sunlight-ident,
.sunlight-operator,
.sunlight-punctuation,
.sunlight-delimiter,
.sunlight-diff .sunlight-unchanged {
color: #000000 !important;
}
.sunlight-comment,
.sunlight-xmlDocCommentContent,
.sunlight-nginx .sunlight-ssiCommand,
.sunlight-sln .sunlight-formatDeclaration,
.sunlight-diff .sunlight-added {
color: #009900 !important;
}
.sunlight-number,
.sunlight-guid,
.sunlight-cdata {
color: #CC6600 !important;
}
.sunlight-named-ident,
.sunlight-constant,
.sunlight-javascript .sunlight-globalVariable,
.sunlight-globalObject,
.sunlight-python .sunlight-attribute,
.sunlight-nginx .sunlight-context,
.sunlight-httpd .sunlight-context,
.sunlight-haskell .sunlight-class,
.sunlight-haskell .sunlight-type,
.sunlight-lisp .sunlight-declarationSpecifier,
.sunlight-erlang .sunlight-userDefinedFunction,
.sunlight-diff .sunlight-header {
color: #2B91AF !important;
}
.sunlight-keyword,
.sunlight-languageConstruct,
.sunlight-css
.sunlight-element,
.sunlight-bash .sunlight-command,
.sunlight-specialOperator,
.sunlight-erlang .sunlight-moduleAttribute,
.sunlight-xml .sunlight-tagName,
.sunlight-xml .sunlight-operator,
.sunlight-diff .sunlight-modified {
color: #0000FF !important;
}
.sunlight-shortOpenTag,
.sunlight-openTag,
.sunlight-closeTag,
.sunlight-xmlOpenTag,
.sunlight-xmlCloseTag,
.sunlight-aspOpenTag,
.sunlight-aspCloseTag,
.sunlight-label,
.sunlight-css .sunlight-importantFlag {
background-color: #FFFF99 !important;
color: #000000 !important;
}
.sunlight-function,
.sunlight-globalFunction,
.sunlight-ruby .sunlight-specialFunction,
.sunlight-objective-c .sunlight-messageDestination,
.sunlight-6502asm .sunlight-illegalOpcode,
.sunlight-powershell .sunlight-switch,
.sunlight-lisp .sunlight-macro,
.sunlight-lisp .sunlight-specialForm,
.sunlight-lisp .sunlight-type,
.sunlight-sln .sunlight-sectionName,
.sunlight-diff .sunlight-rangeInfo {
color: #B069AF !important;
}
.sunlight-variable,
.sunlight-specialVariable,
.sunlight-environmentVariable,
.sunlight-objective-c .sunlight-messageArgumentName,
.sunlight-lisp .sunlight-globalVariable,
.sunlight-ruby .sunlight-globalVariable,
.sunlight-ruby .sunlight-instanceVariable,
.sunlight-sln .sunlight-operator {
color: #325484 !important;
}
.sunlight-regexLiteral,
.sunlight-lisp .sunlight-operator,
.sunlight-6502asm .sunlight-pseudoOp,
.sunlight-erlang .sunlight-macro {
color: #FF00B2 !important;
}
.sunlight-specialVariable {
font-style: italic !important;
font-weight: bold !important;
}
.sunlight-csharp .sunlight-pragma,
.sunlight-preprocessorDirective,
.sunlight-vb .sunlight-compilerDirective,
.sunlight-diff .sunlight-mergeHeader,
.sunlight-diff .sunlight-noNewLine {
color: #999999 !important;
font-style: italic !important;
}
.sunlight-xmlDocCommentMeta,
.sunlight-java .sunlight-annotation,
.sunlight-scala .sunlight-annotation,
.sunlight-docComment {
color: #808080 !important;
}
.sunlight-quotedIdent,
.sunlight-ruby .sunlight-subshellCommand,
.sunlight-lisp .sunlight-keywordArgument,
.sunlight-haskell .sunlight-infixOperator,
.sunlight-erlang .sunlight-quotedAtom {
color: #999900 !important;
}
/* xml */
.sunlight-xml .sunlight-string {
color: #990099 !important;
}
.sunlight-xml .sunlight-attribute {
color: #FF0000 !important;
}
.sunlight-xml .sunlight-entity {
background-color: #EEEEEE !important;
color: #000000 !important;
border: 1px solid #000000 !important;
}
.sunlight-xml .sunlight-doctype {
color: #2B91AF !important;
}
/* javascript */
.sunlight-javascript .sunlight-reservedWord {
font-style: italic !important;
}
/* css */
.sunlight-css .sunlight-microsoftFilterPrefix {
color: #FF00FF !important;
}
.sunlight-css .sunlight-rule {
color: #0099FF !important;
}
.sunlight-css .sunlight-keyword {
color: #4E65B8 !important;
}
.sunlight-css .sunlight-class {
color: #FF0000 !important;
}
.sunlight-css .sunlight-id {
color: #8A8E13 !important;
}
.sunlight-css .sunlight-pseudoClass,
.sunlight-css .sunlight-pseudoElement {
color: #368B87 !important;
}
/* bash */
.sunlight-bash .sunlight-hashBang {
color: #3D97F5 !important;
}
.sunlight-bash .sunlight-verbatimCommand {
color: #999900 !important;
}
.sunlight-bash .sunlight-variable,
.sunlight-bash .sunlight-specialVariable {
color: #FF0000 !important;
}
/* python */
.sunlight-python .sunlight-specialMethod {
font-weight: bold !important;
color: #A07DD3;
}
/* ruby */
.sunlight-ruby .sunlight-symbol {
font-weight: bold !important;
color: #ED7272 !important;
}
/* brainfuck */
.sunlight-brainfuck {
font-weight: bold !important;
color: #000000 !important;
}
.sunlight-brainfuck .sunlight-increment {
background-color: #FF9900 !important;
}
.sunlight-brainfuck .sunlight-decrement {
background-color: #FF99FF !important;
}
.sunlight-brainfuck .sunlight-incrementPointer {
background-color: #FFFF99 !important;
}
.sunlight-brainfuck .sunlight-decrementPointer {
background-color: #66CCFF !important;
}
.sunlight-brainfuck .sunlight-read {
background-color: #FFFFFF !important;
}
.sunlight-brainfuck .sunlight-write {
background-color: #99FF99 !important;
}
.sunlight-brainfuck .sunlight-openLoop, .sunlight-brainfuck .sunlight-closeLoop {
background-color: #FFFFFF !important;
}
/* 6502 asm */
.sunlight-6502asm .sunlight-label {
font-weight: bold !important;
color: #000000 !important;
background: none !important;
}
/* lisp */
.sunlight-lisp .sunlight-macro {
font-style: italic !important;
}
/* erlang */
.sunlight-erlang .sunlight-atom {
font-weight: bold !important;
}

Some files were not shown because too many files have changed in this diff Show More