From 96c3e709963516a06ad6e723a7bba3fbf5fc1ba2 Mon Sep 17 00:00:00 2001 From: Jacob Thornton Date: Tue, 3 May 2011 18:12:43 -0700 Subject: cleanup old stuff --- docs/assets/img/baseline-10px.png | Bin 0 -> 152 bytes docs/assets/img/blueprint-icon.png | Bin 0 -> 193217 bytes docs/assets/img/grid-20px.png | Bin 0 -> 324 bytes docs/assets/img/grid-940px.png | Bin 0 -> 160 bytes docs/assets/img/twitter-logo-no-bird.png | Bin 0 -> 1509 bytes docs/assets/js/application.js | 24 + docs/assets/js/jquery/chili/css.js | 85 ++ docs/assets/js/jquery/chili/html.js | 80 ++ docs/assets/js/jquery/chili/jquery.chili-2.2.js | 704 +++++++++++++ docs/assets/js/jquery/chili/js.js | 75 ++ docs/assets/js/jquery/chili/php-f.js | 142 +++ docs/assets/js/jquery/chili/php.js | 138 +++ docs/assets/js/jquery/chili/recipes.js | 364 +++++++ docs/assets/js/jquery/hashgrid.js | 340 +++++++ docs/assets/js/jquery/jquery.tipsy.js | 104 ++ docs/assets/js/less-1.0.41.min.js | 69 ++ docs/grid.html | 168 ++++ docs/index.html | 1195 +++++++++++++++++++++++ 18 files changed, 3488 insertions(+) create mode 100644 docs/assets/img/baseline-10px.png create mode 100644 docs/assets/img/blueprint-icon.png create mode 100644 docs/assets/img/grid-20px.png create mode 100644 docs/assets/img/grid-940px.png create mode 100644 docs/assets/img/twitter-logo-no-bird.png create mode 100644 docs/assets/js/application.js create mode 100755 docs/assets/js/jquery/chili/css.js create mode 100755 docs/assets/js/jquery/chili/html.js create mode 100755 docs/assets/js/jquery/chili/jquery.chili-2.2.js create mode 100755 docs/assets/js/jquery/chili/js.js create mode 100755 docs/assets/js/jquery/chili/php-f.js create mode 100755 docs/assets/js/jquery/chili/php.js create mode 100755 docs/assets/js/jquery/chili/recipes.js create mode 100755 docs/assets/js/jquery/hashgrid.js create mode 100644 docs/assets/js/jquery/jquery.tipsy.js create mode 100644 docs/assets/js/less-1.0.41.min.js create mode 100644 docs/grid.html create mode 100644 docs/index.html (limited to 'docs') diff --git a/docs/assets/img/baseline-10px.png b/docs/assets/img/baseline-10px.png new file mode 100644 index 000000000..16095dcbf Binary files /dev/null and b/docs/assets/img/baseline-10px.png differ diff --git a/docs/assets/img/blueprint-icon.png b/docs/assets/img/blueprint-icon.png new file mode 100644 index 000000000..babb40979 Binary files /dev/null and b/docs/assets/img/blueprint-icon.png differ diff --git a/docs/assets/img/grid-20px.png b/docs/assets/img/grid-20px.png new file mode 100644 index 000000000..91b8bf38d Binary files /dev/null and b/docs/assets/img/grid-20px.png differ diff --git a/docs/assets/img/grid-940px.png b/docs/assets/img/grid-940px.png new file mode 100644 index 000000000..99b1dd137 Binary files /dev/null and b/docs/assets/img/grid-940px.png differ diff --git a/docs/assets/img/twitter-logo-no-bird.png b/docs/assets/img/twitter-logo-no-bird.png new file mode 100644 index 000000000..70b6573d7 Binary files /dev/null and b/docs/assets/img/twitter-logo-no-bird.png differ diff --git a/docs/assets/js/application.js b/docs/assets/js/application.js new file mode 100644 index 000000000..a79f942e3 --- /dev/null +++ b/docs/assets/js/application.js @@ -0,0 +1,24 @@ +// Javascript to toggle the dropdowns +$(document).ready(function(){ + // Dropdowns + $("body").bind("click", function(e) { + $("ul.menu-dropdown").hide(); + $('a.menu').parent("li").removeClass("open").children("ul.menu-dropdown").hide(); + }); + $("a.menu").click(function(e) { + var $target = $(this); + var $parent = $target.parent("li"); + var $siblings = $target.siblings("ul.menu-dropdown"); + var $parentSiblings = $parent.siblings("li"); + if ($parent.hasClass("open")) { + $parent.removeClass("open"); + $siblings.hide(); + } else { + $parent.addClass("open"); + $siblings.show(); + } + $parentSiblings.children("ul.menu-dropdown").hide(); + $parentSiblings.removeClass("open"); + return false; + }); +}); \ No newline at end of file diff --git a/docs/assets/js/jquery/chili/css.js b/docs/assets/js/jquery/chili/css.js new file mode 100755 index 000000000..e86e88224 --- /dev/null +++ b/docs/assets/js/jquery/chili/css.js @@ -0,0 +1,85 @@ +/* +=============================================================================== +Chili is the jQuery code highlighter plugin +............................................................................... +LICENSE: http://www.opensource.org/licenses/mit-license.php +WEBSITE: http://noteslog.com/chili/ + + Copyright 2008 / Andrea Ercolino +=============================================================================== +*/ + +{ + _name: 'css' + , _case: true + , _main: { + comment: { + _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\// + , _style: "color: olive;" + } + , directive: { + _match: /@\w+/ + , _style: "color: fuchsia;" + } + , url: { + _match: /\b(url\s*\()([^)]+)(\))/ + , _replace: "$1$2$3" + , _style: "color: fuchsia;" + } + , block: { + _match: /\{([\w\W]*?)\}/ + , _replace: function( all, pairs ) { + return '{' + this.x( pairs, '/definition' ) + '}'; + } + } + , 'class': { + _match: /\.\w+/ + , _style: "color: #CC0066;" + } + , id: { + _match: /#\w+/ + , _style: "color: IndianRed;" + } + , pseudo: { + _match: /:\w+/ + , _style: "color: #CC9900;" + } + , element: { + _match: /\w+/ + , _style: "color: Purple;" + } + } + , definition: { + comment: { + _match: /\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\// + } + , property: { + _match: /\b(?:zoom|z-index|writing-mode|word-wrap|word-spacing|word-break|width|widows|white-space|volume|voice-family|visibility|vertical-align|unicode-bidi|top|text-underline-position|text-transform|text-shadow|text-overflow|text-kashida-space|text-justify|text-indent|text-decoration|text-autospace|text-align-last|text-align|table-layout|stress|speech-rate|speak-punctuation|speak-numeral|speak-header|speak|size|scrollbar-track-color|scrollbar-shadow-color|scrollbar-highlight-color|scrollbar-face-color|scrollbar-dark-shadow-color|scrollbar-base-color|scrollbar-arrow-color|scrollbar-3d-light-color|ruby-position|ruby-overhang|ruby-align|right|richness|quotes|position|play-during|pitch-range|pitch|pause-before|pause-after|pause|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-Y|overflow-X|overflow|outline-width|outline-style|outline-color|outline|orphans|min-width|min-height|max-width|max-height|marks|marker-offset|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|line-break|letter-spacing|left|layout-grid-type|layout-grid-mode|layout-grid-line|layout-grid-char-spacing|layout-grid-char|layout-grid|layout-flow|layer-background-image|layer-background-color|include-source|ime-mode|height|font-weight|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-family|font|float|filter|empty-cells|elevation|display|direction|cursor|cue-before|cue-after|cue|counter-reset|counter-increment|content|color|clip|clear|caption-side|bottom|border-width|border-top-width|border-top-style|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-left-width|border-left-style|border-left-color|border-left|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-color|border-bottom|border|behavior|background-repeat|background-position-y|background-position-x|background-position|background-image|background-color|background-attachment|background|azimuth|accelerator)\s*:/ + , _style: "color: #330066;" + } + , special: { + _match: /\b(?:-use-link-source|-set-link-source|-replace|-moz-user-select|-moz-user-modify|-moz-user-input|-moz-user-focus|-moz-outline-width|-moz-outline-style|-moz-outline-color|-moz-outline|-moz-opacity|-moz-border-top-colors|-moz-border-right-colors|-moz-border-radius-topright|-moz-border-radius-topleft|-moz-border-radius-bottomright|-moz-border-radius-bottomleft|-moz-border-radius|-moz-border-left-colors|-moz-border-bottom-colors|-moz-binding)\s*:/ + , _style: "color: #330066; text-decoration: underline;" + } + , url: { + _match: /\b(url\s*\()([^)]+)(\))/ + , _replace: "$1$2$3" + } + , value: { + _match: /\b(?:xx-small|xx-large|x-soft|x-small|x-slow|x-low|x-loud|x-large|x-high|x-fast|wider|wait|w-resize|visible|url|uppercase|upper-roman|upper-latin|upper-alpha|underline|ultra-expanded|ultra-condensed|tv|tty|transparent|top|thin|thick|text-top|text-bottom|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table-caption|sw-resize|super|sub|status-bar|static|square|spell-out|speech|solid|soft|smaller|small-caption|small-caps|small|slower|slow|silent|show|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|s-resize|run-in|rtl|rightwards|right-side|right|ridge|rgb|repeat-y|repeat-x|repeat|relative|projection|print|pre|portrait|pointer|overline|outside|outset|open-quote|once|oblique|nw-resize|nowrap|normal|none|no-repeat|no-open-quote|no-close-quote|ne-resize|narrower|n-resize|move|mix|middle|message-box|medium|marker|ltr|lowercase|lower-roman|lower-latin|lower-greek|lower-alpha|lower|low|loud|local|list-item|line-through|lighter|level|leftwards|left-side|left|larger|large|landscape|justify|italic|invert|inside|inset|inline-table|inline|icon|higher|high|hide|hidden|help|hebrew|handheld|groove|format|fixed|faster|fast|far-right|far-left|fantasy|extra-expanded|extra-condensed|expanded|embossed|embed|e-resize|double|dotted|disc|digits|default|decimal-leading-zero|decimal|dashed|cursive|crosshair|cross|crop|counters|counter|continuous|condensed|compact|collapse|code|close-quote|circle|center-right|center-left|center|caption|capitalize|braille|bottom|both|bolder|bold|block|blink|bidi-override|below|behind|baseline|avoid|auto|aural|attr|armenian|always|all|absolute|above)\b/ + , _style: "color: #3366FF;" + } + , string: { + _match: /(?:\'[^\'\\\n]*(?:\\.[^\'\\\n]*)*\')|(?:\"[^\"\\\n]*(?:\\.[^\"\\\n]*)*\")/ + , _style: "color: teal;" + } + , number: { + _match: /(?:\b[+-]?(?:\d*\.?\d+|\d+\.?\d*))(?:%|(?:(?:px|pt|em|)\b))/ + , _style: "color: red;" + } + , color : { + _match: /(?:\#[a-fA-F0-9]{3,6})|\b(?:yellow|white|teal|silver|red|purple|olive|navy|maroon|lime|green|gray|fuchsia|blue|black|aqua|YellowGreen|Yellow|WhiteSmoke|White|Wheat|Violet|Turquoise|Tomato|Thistle|Teal|Tan|SteelBlue|SpringGreen|Snow|SlateGrey|SlateGray|SlateBlue|SkyBlue|Silver|Sienna|SeaShell|SeaGreen|SandyBrown|Salmon|SaddleBrown|RoyalBlue|RosyBrown|Red|Purple|PowderBlue|Plum|Pink|Peru|PeachPuff|PapayaWhip|PaleVioletRed|PaleTurquoise|PaleGreen|PaleGoldenRod|Orchid|OrangeRed|Orange|OliveDrab|Olive|OldLace|Navy|NavajoWhite|Moccasin|MistyRose|MintCream|MidnightBlue|MediumVioletRed|MediumTurquoise|MediumSpringGreen|MediumSlateBlue|MediumSeaGreen|MediumPurple|MediumOrchid|MediumBlue|MediumAquaMarine|Maroon|Magenta|Linen|LimeGreen|Lime|LightYellow|LightSteelBlue|LightSlateGrey|LightSlateGray|LightSkyBlue|LightSeaGreen|LightSalmon|LightPink|LightGrey|LightGreen|LightGray|LightGoldenRodYellow|LightCyan|LightCoral|LightBlue|LemonChiffon|LawnGreen|LavenderBlush|Lavender|Khaki|Ivory|Indigo|IndianRed|HotPink|HoneyDew|Grey|GreenYellow|Green|Gray|GoldenRod|Gold|GhostWhite|Gainsboro|Fuchsia|ForestGreen|FloralWhite|FireBrick|DodgerBlue|DimGrey|DimGray|DeepSkyBlue|DeepPink|Darkorange|DarkViolet|DarkTurquoise|DarkSlateGrey|DarkSlateGray|DarkSlateBlue|DarkSeaGreen|DarkSalmon|DarkRed|DarkOrchid|DarkOliveGreen|DarkMagenta|DarkKhaki|DarkGrey|DarkGreen|DarkGray|DarkGoldenRod|DarkCyan|DarkBlue|Cyan|Crimson|Cornsilk|CornflowerBlue|Coral|Chocolate|Chartreuse|CadetBlue|BurlyWood|Brown|BlueViolet|Blue|BlanchedAlmond|Black|Bisque|Beige|Azure|Aquamarine|Aqua|AntiqueWhite|AliceBlue)\b/ + , _style: "color: green;" + } + } +} diff --git a/docs/assets/js/jquery/chili/html.js b/docs/assets/js/jquery/chili/html.js new file mode 100755 index 000000000..69f43a86d --- /dev/null +++ b/docs/assets/js/jquery/chili/html.js @@ -0,0 +1,80 @@ +/* +=============================================================================== +Chili is the jQuery code highlighter plugin +............................................................................... +LICENSE: http://www.opensource.org/licenses/mit-license.php +WEBSITE: http://noteslog.com/chili/ + + Copyright 2008 / Andrea Ercolino +=============================================================================== +*/ + +{ + _name: 'html' + , _case: false + , _main: { + doctype: { + _match: // + , _style: "color: #CC6600;" + } + , ie_style: { + _match: /()/ + , _replace: function( all, open, content, close ) { + return "" + this.x( open ) + "" + + this.x( content, '//style' ) + + "" + this.x( close ) + ""; + } + , _style: "color: DarkSlateGray; font-weight: bold;" + } + , comment: { + _match: // + , _style: "color: #4040c2;" + } + , script: { + _match: /(]*>)([\w\W]*?)(<\/script\s*>)/ + , _replace: function( all, open, content, close ) { + return this.x( open, '//tag_start' ) + + this.x( content, 'js' ) + + this.x( close, '//tag_end' ); + } + } + , style: { + _match: /(]*>)([\w\W]*?)(<\/style\s*>)/ + , _replace: function( all, open, content, close ) { + return this.x( open, '//tag_start' ) + + this.x( content, 'css' ) + + this.x( close, '//tag_end' ); + } + } + // matches a starting tag of an element (with attrs) + // like "
" or "" + , tag_start: { + _match: /(<\w+)((?:[?%]>|[\w\W])*?)(\/>|>)/ + , _replace: function( all, open, content, close ) { + return "" + this.x( open ) + "" + + this.x( content, '/tag_attrs' ) + + "" + this.x( close ) + ""; + } + , _style: "color: navy; font-weight: bold;" + } + // matches an ending tag + // like "
" + , tag_end: { + _match: /<\/\w+\s*>|\/>/ + , _style: "color: navy;" + } + , entity: { + _match: /&\w+?;/ + , _style: "color: blue;" + } + } + , tag_attrs: { + // matches a name/value pair + attr: { + // before in $1, name in $2, between in $3, value in $4 + _match: /(\W*?)([\w-]+)(\s*=\s*)((?:\'[^\']*(?:\\.[^\']*)*\')|(?:\"[^\"]*(?:\\.[^\"]*)*\"))/ + , _replace: "$1$2$3$4" + , _style: { attr_name: "color: green;", attr_value: "color: maroon;" } + } + } +} diff --git a/docs/assets/js/jquery/chili/jquery.chili-2.2.js b/docs/assets/js/jquery/chili/jquery.chili-2.2.js new file mode 100755 index 000000000..bb0e4abae --- /dev/null +++ b/docs/assets/js/jquery/chili/jquery.chili-2.2.js @@ -0,0 +1,704 @@ +/* +=============================================================================== +Chili is the jQuery code highlighter plugin +............................................................................... +LICENSE: http://www.opensource.org/licenses/mit-license.php +WEBSITE: http://noteslog.com/chili/ + + Copyright 2008 / Andrea Ercolino +=============================================================================== +*/ + + +( function($) { + +ChiliBook = { //implied global + + version: "2.2" // 2008-07-06 + +// options -------------------------------------------------------------------- + + , automatic: true + , automaticSelector: "pre" + + , lineNumbers: !true + + , codeLanguage: function( el ) { + var recipeName = $( el ).attr( "class" ); + return recipeName ? recipeName : ''; + } + + , recipeLoading: true + , recipeFolder: "" // used like: recipeFolder + recipeName + '.js' + + // IE and FF convert   to " ", Safari and Opera do not + , replaceSpace: " " + , replaceTab: "    " + , replaceNewLine: " 
" + + , selectionStyle: [ "position:absolute; z-index:3000; overflow:scroll;" + , "width:16em;" + , "height:9em;" + , "border:1px solid gray;" + , "padding:15px;" + , "background-color:yellow;" + ].join( ' ' ) + +// ------------------------------------------------------------- end of options + + , defaultReplacement: '$$' // TODO: make this an option again + , recipes: {} //repository + , queue: {} //registry + + , unique: function() { + return (new Date()).valueOf(); + } +}; + + + +$.fn.chili = function( options ) { + var book = $.extend( {}, ChiliBook, options || {} ); + + function cook( ingredients, recipe, blockName ) { + + function prepareBlock( recipe, blockName ) { + var steps = []; + for( var stepName in recipe[ blockName ] ) { + steps.push( prepareStep( recipe, blockName, stepName ) ); + } + return steps; + } // prepareBlock + + function prepareStep( recipe, blockName, stepName ) { + var step = recipe[ blockName ][ stepName ]; + var exp = ( typeof step._match == "string" ) ? step._match : step._match.source; + return { + recipe: recipe + , blockName: blockName + , stepName: stepName + , exp: "(" + exp + ")" + , length: 1 // add 1 to account for the newly added parentheses + + (exp // count number of submatches in here + .replace( /\\./g, "%" ) // disable any escaped character + .replace( /\[.*?\]/g, "%" ) // disable any character class + .match( /\((?!\?)/g ) // match any open parenthesis, not followed by a ? + || [] // make sure it is an empty array if there are no matches + ).length // get the number of matches + , replacement: step._replace ? step._replace : book.defaultReplacement + }; + } // prepareStep + + function knowHow( steps ) { + var prevLength = 1; + var exps = []; + for (var i = 0; i < steps.length; i++) { + var exp = steps[ i ].exp; + // adjust backreferences + exp = exp.replace( /\\\\|\\(\d+)/g, function( m, aNum ) { + return !aNum ? m : "\\" + ( prevLength + 1 + parseInt( aNum, 10 ) ); + } ); + exps.push( exp ); + prevLength += steps[ i ].length; + } + var prolog = '((?:\\s|\\S)*?)'; + var epilog = '((?:\\s|\\S)+)'; + var source = '(?:' + exps.join( "|" ) + ')'; + source = prolog + source + '|' + epilog; + return new RegExp( source, recipe._case ? "g" : "gi" ); + } // knowHow + + function escapeHTML( str ) { + return str.replace( /&/g, "&" ).replace( /' + filter( subject ) + ''; + } + return filter( subject ); + } + else { + return filter( subject ); + } + } + } // applyModule + + function addPrefix( prefix, replacement ) { + var aux = replacement.replace( /()/ig, "$1" + prefix + "__$3" ); + return aux; + } // addPrefix + + function chef() { + if (! arguments[ 0 ]) { + return ''; + } + var steps = this.steps; + var i = 0; // iterate steps + var j = 2; // iterate chef's arguments + var prolog = arguments[ 1 ]; + var epilog = arguments[ arguments.length - 3 ]; + if (! epilog) { + var step; + while( step = steps[ i++ ] ) { + var aux = arguments; // this unmasks chef's arguments inside the next function + if( aux[ j ] ) { + var replacement = ''; + if( $.isFunction( step.replacement ) ) { + var matches = []; //Array.slice.call( aux, j, step.length ); + for (var k = 0, kTop = step.length; k < kTop; k++) { + matches.push( aux[ j + k ] ); + } + matches.push( aux[ aux.length - 2 ] ); + matches.push( aux[ aux.length - 1 ] ); + replacement = step.replacement + .apply( { + x: function() { + var subject = arguments[0]; + var module = arguments[1]; + var context = { + recipe: step.recipe + , blockName: step.blockName + }; + return applyModule( subject, module, context ); + } + }, matches ); + } + else { //we expect step.replacement to be a string + replacement = step.replacement + .replace( /(\\\$)|(?:\$\$)|(?:\$(\d+))/g, function( m, escaped, K ) { + if( escaped ) { /* \$ */ + return "$"; + } + else if( !K ) { /* $$ */ + return filter( aux[ j ] ); + } + else if( K == "0" ) { /* $0 */ + return step.stepName; + } + else { /* $K */ + return filter( aux[ j + parseInt( K, 10 ) ] ); + } + } ); + } + replacement = addPrefix( step.recipe._name, replacement ); + return filter( prolog ) + replacement; + } + else { + j+= step.length; + } + } + } + else { + return filter( epilog ); + } + } // chef + + if( ! blockName ) { + blockName = '_main'; + checkSpices( recipe ); + } + if( ! (blockName in recipe) ) { + return filter( ingredients ); + } + var replaceSpace = book.replaceSpace; + var steps = prepareBlock( recipe, blockName ); + var kh = knowHow( steps ); + var perfect = ingredients.replace( kh, function() { + return chef.apply( { steps: steps }, arguments ); + } ); + return perfect; + + } // cook + + function loadStylesheetInline( sourceCode ) { + if( document.createElement ) { + var e = document.createElement( "style" ); + e.type = "text/css"; + if( e.styleSheet ) { // IE + e.styleSheet.cssText = sourceCode; + } + else { + var t = document.createTextNode( sourceCode ); + e.appendChild( t ); + } + document.getElementsByTagName( "head" )[0].appendChild( e ); + } + } // loadStylesheetInline + + function checkSpices( recipe ) { + var name = recipe._name; + if( ! book.queue[ name ] ) { + + var content = ['/* Chili -- ' + name + ' */']; + for (var blockName in recipe) { + if( blockName.search( /^_(?!main\b)/ ) < 0 ) { + for (var stepName in recipe[ blockName ]) { + var step = recipe[ blockName ][ stepName ]; + if( '_style' in step ) { + if( step[ '_style' ].constructor == String ) { + content.push( '.' + name + '__' + stepName + ' { ' + step[ '_style' ] + ' }' ); + } + else { + for (var className in step[ '_style' ]) { + content.push( '.' + name + '__' + className + ' { ' + step[ '_style' ][ className ] + ' }' ); + } + } + } + } + } + } + content = content.join('\n'); + + loadStylesheetInline( content ); + + book.queue[ name ] = true; + } + } // checkSpices + + function askDish( el ) { + var recipeName = book.codeLanguage( el ); + if( '' != recipeName ) { + var path = getPath( recipeName ); + if( book.recipeLoading ) { + /* dynamic setups come here */ + if( ! book.queue[ path ] ) { + /* this is a new recipe to download */ + try { + book.queue[ path ] = [ el ]; + $.getJSON( path, function( recipeLoaded ) { + book.recipes[ path ] = recipeLoaded; + var q = book.queue[ path ]; + for( var i = 0, iTop = q.length; i < iTop; i++ ) { + makeDish( q[ i ], path ); + } + } ); + } + catch( recipeNotAvailable ) { + alert( "the recipe for '" + recipeName + "' was not found in '" + path + "'" ); + } + } + else { + /* not a new recipe, so just enqueue this element */ + book.queue[ path ].push( el ); + } + /* a recipe could have been already downloaded */ + makeDish( el, path ); + } + else { + /* static setups come here */ + makeDish( el, path ); + } + } + } // askDish + + function makeDish( el, recipePath ) { + var recipe = book.recipes[ recipePath ]; + if( ! recipe ) { + return; + } + var $el = $( el ); + var ingredients = $el.text(); + if( ! ingredients ) { + return; + } + + //fix for msie: \r (13) is used instead of \n (10) + //fix for opera: \r\n is used instead of \n + ingredients = ingredients.replace(/\r\n?/g, "\n"); + + //reverse fix for safari: msie, mozilla and opera render the initial \n + if( $el.parent().is('pre') ) { + if( ! $.browser.safari ) { + ingredients = ingredients.replace(/^\n/g, ""); + } + } + + var dish = cook( ingredients, recipe ); // all happens here + + if( book.replaceTab ) { + dish = dish.replace( /\t/g, book.replaceTab ); + } + if( book.replaceNewLine ) { + dish = dish.replace( /\n/g, book.replaceNewLine ); + } + + el.innerHTML = dish; //much faster than $el.html( dish ); + //tried also the function replaceHtml from http://blog.stevenlevithan.com/archives/faster-than-innerhtml + //but it was not faster nor without sideffects (it was not possible to count spans into el) + + //opera and safari select PRE text correctly + if( $.browser.msie || $.browser.mozilla ) { + enableSelectionHelper( el ); + } + + var $that = $el.parent(); + var classes = $that.attr( 'class' ); + var ln = /ln-(\d+)-([\w][\w\-]*)|ln-(\d+)|ln-/.exec( classes ); + if( ln ) { + addLineNumbers( el ); + var start = 0; + if( ln[1] ) { + start = parseInt( ln[1], 10 ); + var $pieces = $( '.ln-' + ln[1] + '-' + ln[2] ); + var pos = $pieces.index( $that[0] ); + $pieces.slice( 0, pos ).each( function() { + start += $( this ).find( 'li' ).length; + } ); + } + else if( ln[3] ) { + start = parseInt( ln[3], 10 ); + } + else { + start = 1; + } + $el.find( 'ol' )[0].start = start; + $('body').width( $('body').width() - 1 ).width( $('body').width() + 1 ); + } + else if( book.lineNumbers ) { + addLineNumbers( el ); + } + + } // makeDish + + function enableSelectionHelper( el ) { + var element = null; + $( el ) + .parents() + .filter( "pre" ) + .bind( "mousedown", function() { + element = this; + if( $.browser.msie ) { + document.selection.empty(); + } + else { + window.getSelection().removeAllRanges(); + } + } ) + .bind( "mouseup", function( event ) { + if( element && (element == this) ) { + element = null; + var selected = ''; + if( $.browser.msie ) { + selected = document.selection.createRange().htmlText; + if( '' == selected ) { + return; + } + selected = preserveNewLines( selected ); + var container_tag = ' + + Block of help text to describe the field above if need be. + + + +
+ +
+
    +
  • + +
  • +
  • + +
  • +
+
+
+
+ + +
+ + + + + +
+ +
+
+

Stacked forms

+

Add .form-stacked to your form's HTML and you'll have labels on top of their fields instead of to their left. This works great if your forms are short or you have two columns of inputs for heavier forms.

+
+
+
+
+ Example form legend +
+ +
+ +
+
+
+ +
+ +
+
+
+
+ Example form legend +
+ +
+
    +
  • + +
  • +
  • + +
  • +
+ + Note: Labels surround all the options for much larger click areas and a more usable form. + +
+
+
+
+ + +
+
+
+
+ +
+
+

Buttons

+

As a convention, buttons are used for actions while links are used for objects. For instance, "Download" could be a button and "recent activity" could be a link.

+

All buttons default to a light gray style, but a blue .primary class is available. Plus, rolling your own styles is easy peasy.

+
+
+

Example buttons

+

Button styles can be applied to anything with the .btn applied. Typically you'll want to apply these to only a, button, and select input elements. Here's how it looks:

+
+ + +
+

Alternate sizes

+

Fancy larger or smaller buttons? Have at it!

+ + +
+
+ + + + + + + + +
+ +
+
+

Basic alerts

+

One-line messages for highlighting the failure, possible failure, or success of an action. Particularly useful for forms.

+
+
+
+ × +

Oh snap! Change this and that and try again.

+
+
+ × +

Holy gaucamole! Best check yo self, you're not looking too good.

+
+
+ × +

Well done! You successfully read this alert message.

+
+
+ × +

Heads up! This is an alert that needs your attention, but it's not a huge priority just yet.

+
+
+
+
+
+

Block messages

+

For messages that require a bit of explanation, we have paragraph style alerts. These are perfect for bubbling up longer error messages, warning a user of a pending action, or just presenting information for more emphasis on the page.

+
+
+
+ × +

Oh snap! You got an error! Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.

+

Take This Action Or Do This

+
+
+ × +

Holy gaucamole! This is a warning! Best check yo self, you're not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

+

Take This Action Or Do This

+
+
+ × +

Well done! You successfully read this alert message. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas faucibus mollis interdum.

+

Take This Action Or Do This

+
+
+ × +

Heads up! This is an alert that needs your attention, but it's not a huge priority just yet.

+

Take This Action Or Do This

+
+
+
+
+ + + + + + + + + + \ No newline at end of file -- cgit v1.2.3