incubator-crunch-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From m...@apache.org
Subject svn commit: r1385344 [4/4] - in /incubator/crunch/site/trunk: content/crunch/ content/crunch/apidocs/ content/crunch/css/ content/crunch/js/ lib/ templates/
Date Sun, 16 Sep 2012 18:49:59 GMT
Added: incubator/crunch/site/trunk/content/crunch/js/bootstrap-2.1.0.min.js
URL: http://svn.apache.org/viewvc/incubator/crunch/site/trunk/content/crunch/js/bootstrap-2.1.0.min.js?rev=1385344&view=auto
==============================================================================
--- incubator/crunch/site/trunk/content/crunch/js/bootstrap-2.1.0.min.js (added)
+++ incubator/crunch/site/trunk/content/crunch/js/bootstrap-2.1.0.min.js Sun Sep 16 18:49:58 2012
@@ -0,0 +1,6 @@
+/*!
+* Bootstrap.js by @fat & @mdo
+* Copyright 2012 Twitter, Inc.
+* http://www.apache.org/licenses/LICENSE-2.0.txt
+*/
+!function(e){e(function(){"use strict";e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()},e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(thi
 s)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e(function(){e("body").on("click.alert.data-api",t,n.prototype.close)})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.parent('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")},e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e(func
 tion(){e("body").on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=n,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},to:function(t){var n=this.$element.find(".item.active"),r=n.parent().children(),i=r.index(n),s=this;if(t>r.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){s.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",e(r[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(th
 is.$element.trigger(e.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f=e.Event("slide",{relatedTarget:i[0]});this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u]();if(i.hasClass("active"))return;if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())ret
 urn;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}},e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e(function(){e("body").on("click.carousel.data-api","[data-slide]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=!i.data("modal")&&e.extend({},i.data(),n.data());i.carousel(s),t.preventDefault()})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={con
 structor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning)return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning)return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigg
 er(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=typeof n=="object"&&n;i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e(function(){e("body").on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})})}(window.jQuery),!function(e){"use strict";function r(){i(e(t)).removeClass("open")}function i(t){var n=t.attr("data-target"),r;retur
 n n||(n=t.attr("href"),n=n&&n.replace(/.*(?=#[^\s]*$)/,"")),r=e(n),r.length||(r=t.parent()),r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||(s.toggleClass("open"),n.focus()),!1},keydown:function(t){var n,r,s,o,u,a;if(!/(38|40|27)/.test(t.keyCode))return;n=e(this),t.preventDefault(),t.stopPropagation();if(n.is(".disabled, :disabled"))return;o=i(n),u=o.hasClass("open");if(!u||u&&t.keyCode==27)return n.click();r=e("[role=menu] li:not(.divider) a",o);if(!r.length)return;a=r.index(r.filter(":focus")),t.keyCode==38&&a>0&&a--,t.keyCode==40&&a<r.length-1&&a++,~a||(a=0),r.eq(a).focus()}},e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this
 )),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e(function(){e("html").on("click.dropdown.data-api touchstart.dropdown.data-api",r),e("body").on("click.dropdown touchstart.dropdown.data-api",".dropdown",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;e("body").addClass("modal-open"),this.isShown=!0,this.escape(),this.backdrop(function(){
 var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1).focus(),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.trigger("shown")}):t.$element.trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,e("body").removeClass("modal-open"),this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("
 keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(e){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&thi
 s.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(this.removeBackdrop,this)):this.removeBackdrop()):t&&t()}},e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e(function(){e("body").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.ena
 bled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):this.options.trigger!="manual"&&(i=this.options.trigger=="hover"?"mouseenter":"focus",s=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this))),this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,t,this.$element.data()),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){n.hoverState=="in"&&n.show()},n.options.delay.show)},leave:fun
 ction(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var e,t,n,r,i,s,o;if(this.hasContent()&&this.enabled){e=this.tip(),this.setContent(),this.options.animation&&e.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,t=/in/.test(s),e.remove().css({top:0,left:0,display:"block"}).appendTo(t?this.$element:document.body),n=this.getPosition(t),r=e[0].offsetWidth,i=e[0].offsetHeight;switch(t?s.split(" ")[1]:s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}
 e.css(o).addClass(s).addClass("in")}},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function r(){var t=setTimeout(function(){n.off(e.support.transition.end).remove()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.remove()})}var t=this,n=this.tip();return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?r():n.remove(),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(t){return e.extend({},t?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n
 .title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0,html:!0}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popove
 r",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content > *")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-content")||(typeof n.content=="function"?n.content.call(t[0]):n.content),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{plac
 ement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var t=e(this),n=t.data("target")||t.attr("href"),r=/^#\w/.test(n)&&e(n);return r&&r.length&&[[r.position().top,n]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process
 :function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}},e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e(window).on("load",function(){e('[data-spy="scroll"]').each(f
 unction(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active a").last()[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i
 .removeClass("in")}},e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e(function(){e("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=e(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.
 extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:t.top+t.height,left:t.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/
 [\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),(e.browser.webkit||e.browser.msie)&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this))},move:function(e){if(
 !this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=!~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},blur:function(e){var t=this;setTimeout(function(){t.hide()},150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(t){this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")}},e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,
 s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e(function(){e("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;t.preventDefault(),n.typeahead(n.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top
 ?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))},e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
\ No newline at end of file

Propchange: incubator/crunch/site/trunk/content/crunch/js/bootstrap-2.1.0.min.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/crunch/site/trunk/content/crunch/mailing-lists.mdtext
URL: http://svn.apache.org/viewvc/incubator/crunch/site/trunk/content/crunch/mailing-lists.mdtext?rev=1385344&view=auto
==============================================================================
--- incubator/crunch/site/trunk/content/crunch/mailing-lists.mdtext (added)
+++ incubator/crunch/site/trunk/content/crunch/mailing-lists.mdtext Sun Sep 16 18:49:58 2012
@@ -0,0 +1,62 @@
+Title:    Mailing Lists
+Notice:   Licensed to the Apache Software Foundation (ASF) under one
+          or more contributor license agreements.  See the NOTICE file
+          distributed with this work for additional information
+          regarding copyright ownership.  The ASF licenses this file
+          to you 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.
+
+<!--
+  Markdown-generated tables don't have the proper CSS classes,
+  so we use plain HTML tables.
+-->
+
+There are several mailing lists for Apache Crunch. To subscribe or unsubscribe
+to a list send mail to the respective administrative address given below. You
+will then receive a confirmation mail with further instructions.
+
+<table class="table">
+  <thead>
+    <tr>
+      <th>Name</th>
+      <th>Subscribe</th>
+      <th>Unsubscribe</th>
+      <th>Post</th>
+      <th>Archive</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>User List</td>
+      <td><a href="mailto:crunch-user-subscribe@incubator.apache.org">Subscribe</a></td>
+      <td><a href="mailto:crunch-user-unsubscribe@incubator.apache.org">Unsubscribe</a></td>
+      <td><a href="mailto:crunch-user@incubator.apache.org">Post</a></td>
+      <td><a href="http://mail-archives.apache.org/mod_mbox/incubator-crunch-user/">mail-archives.apache.org</a></td>
+    </tr>
+    <tr>
+      <td>Developer List</td>
+      <td><a href="mailto:crunch-dev-subscribe@incubator.apache.org">Subscribe</a></td>
+      <td><a href="mailto:crunch-dev-unsubscribe@incubator.apache.org">Unsubscribe</a></td>
+      <td><a href="mailto:crunch-dev@incubator.apache.org">Post</a></td>
+      <td><a href="http://mail-archives.apache.org/mod_mbox/incubator-crunch-dev/">mail-archives.apache.org</a></td>
+    </tr>
+    <tr>
+      <td>Commits List</td>
+      <td><a href="mailto:crunch-commits-subscribe@incubator.apache.org">Subscribe</a></td>
+      <td><a href="mailto:crunch-commits-unsubscribe@incubator.apache.org">Unsubscribe</a></td>
+      <td><a href="mailto:crunch-commits@incubator.apache.org">Post</a></td>
+      <td><a href="http://mail-archives.apache.org/mod_mbox/incubator-crunch-commits/">mail-archives.apache.org</a></td>
+    </tr>
+  </tbody>
+</table>
+

Propchange: incubator/crunch/site/trunk/content/crunch/mailing-lists.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/crunch/site/trunk/content/crunch/pipelines.mdtext
URL: http://svn.apache.org/viewvc/incubator/crunch/site/trunk/content/crunch/pipelines.mdtext?rev=1385344&view=auto
==============================================================================
--- incubator/crunch/site/trunk/content/crunch/pipelines.mdtext (added)
+++ incubator/crunch/site/trunk/content/crunch/pipelines.mdtext Sun Sep 16 18:49:58 2012
@@ -0,0 +1,100 @@
+Title:    Writing Your Own Pipelines
+Notice:   Licensed to the Apache Software Foundation (ASF) under one
+          or more contributor license agreements.  See the NOTICE file
+          distributed with this work for additional information
+          regarding copyright ownership.  The ASF licenses this file
+          to you 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.
+
+This section discusses the different steps of creating your own Crunch pipelines in more detail.
+
+## Writing a DoFn
+
+The DoFn class is designed to keep the complexity of the MapReduce APIs out of your way when you
+don't need them while still keeping them accessible when you do.
+
+### Serialization
+
+First, all DoFn instances are required to be `java.io.Serializable`. This is a key aspect of Crunch's design:
+once a particular DoFn is assigned to the Map or Reduce stage of a MapReduce job, all of the state
+of that DoFn is serialized so that it may be distributed to all of the nodes in the Hadoop cluster that
+will be running that task. There are two important implications of this for developers:
+
+1. All member values of a DoFn must be either serializable or marked as `transient`.
+2. All anonymous DoFn instances must be defined in a static method or in a class that is itself serializable.
+
+Because sometimes you will need to work with non-serializable objects inside of a DoFn, every DoFn provides an
+`initialize` method that is called before the `process` method is ever called so that any initialization tasks,
+such as creating a non-serializable member variable, can be performed before processing begins. Similarly, all
+DoFn instances have a `cleanup` method that may be called after processing has finished to perform any required
+cleanup tasks.
+
+### Scale Factor
+
+The DoFn class defines a `scaleFactor` method that can be used to signal to the MapReduce compiler that a particular
+DoFn implementation will yield an output PCollection that is larger (scaleFactor > 1) or smaller (0 < scaleFactor < 1)
+than the input PCollection it is applied to. The compiler may use this information to determine how to optimally
+split processing tasks between the Map and Reduce phases of dependent MapReduce jobs.
+
+### Other Utilities
+
+The DoFn base class provides convenience methods for accessing the `Configuration` and `Counter` objects that
+are associated with a MapReduce stage, so that they may be accessed during initialization, processing, and cleanup.
+
+### Performing Cogroups and Joins
+
+In Crunch, cogroups and joins are performed on PTable instances that have the same key type. This section walks through
+the basic flow of a cogroup operation, explaining how this higher-level operation is composed of Crunch's four primitives.
+In general, these common operations are provided as part of the core Crunch library or in extensions, you do not need
+to write them yourself. But it can be useful to understand how they work under the covers.
+
+Assume we have a `PTable<K, U>` named "a" and a different `PTable<K, V>` named "b" that we would like to combine into a
+single `PTable<K, Pair<Collection<U>, Collection<V>>>`. First, we need to apply parallelDo operations to a and b that
+convert them into the same Crunch type, `PTable<K, Pair<U, V>>`:
+
+    // Perform the "tagging" operation as a parallelDo on PTable a
+    PTable<K, Pair<U, V>> aPrime = a.parallelDo("taga", new MapFn<Pair<K, U>, Pair<K, Pair<U, V>>>() {
+      public Pair<K, Pair<U, V>> map(Pair<K, U> input) {
+        return Pair.of(input.first(), Pair.of(input.second(), null));
+      }
+    }, tableOf(a.getKeyType(), pair(a.getValueType(), b.getValueType())));
+
+    // Perform the "tagging" operation as a parallelDo on PTable b
+    PTable<K, Pair<U, V>> bPrime = b.parallelDo("tagb", new MapFn<Pair<K, V>, Pair<K, Pair<U, V>>>() {
+      public Pair<K, Pair<U, V>> map(Pair<K, V> input) {
+        return Pair.of(input.first(), Pair.of(null, input.second()));
+      }
+    }, tableOf(a.getKeyType(), pair(a.getValueType(), b.getValueType())));
+
+Once the input PTables are tagged into a single type, we can apply the union operation to create a single PTable
+reference that includes both of the tagged PTables and then group the unioned PTable by the common key:
+
+    PTable<K, Pair<U, V>> both = aPrime.union(bPrime);
+    PGroupedTable<K, Pair<U, V>> grouped = both.groupByKey();
+
+The grouping operation will create an `Iterable<Pair<U, V>>` which we can then convert to a `Pair<Collection<U>, Collection<V>>`:
+
+    grouped.parallelDo("cogroup", new MapFn<Pair<K, Iterable<Pair<U, V>>>, Pair<K, Pair<Collection<U>, Collection<V>>>>() {
+      public Pair<K, Pair<Collection<U>, Collection<V>>> map(Pair<K, Iterable<Pair<U, V>>> input) {
+        Collection<U> uValues = new ArrayList<U>();
+        Collection<V> vValues = new ArrayList<V>();
+        for (Pair<U, V> pair : input.second()) {
+          if (pair.first() != null) {
+            uValues.add(pair.first());
+          } else {
+            vValues.add(pair.second());
+          }
+        }
+        return Pair.of(input.first(), Pair.of(uValues, vValues));
+      },
+    }, tableOf(grouped.getKeyType(), pair(collections(a.getValueType()), collections(b.getValueType()))));

Propchange: incubator/crunch/site/trunk/content/crunch/pipelines.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/crunch/site/trunk/content/crunch/scrunch.mdtext
URL: http://svn.apache.org/viewvc/incubator/crunch/site/trunk/content/crunch/scrunch.mdtext?rev=1385344&view=auto
==============================================================================
--- incubator/crunch/site/trunk/content/crunch/scrunch.mdtext (added)
+++ incubator/crunch/site/trunk/content/crunch/scrunch.mdtext Sun Sep 16 18:49:58 2012
@@ -0,0 +1,87 @@
+Title:    Scrunch
+Subtitle: A Scala Wrapper for Apache Crunch
+Notice:   Licensed to the Apache Software Foundation (ASF) under one
+          or more contributor license agreements.  See the NOTICE file
+          distributed with this work for additional information
+          regarding copyright ownership.  The ASF licenses this file
+          to you 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.
+
+## Introduction
+
+Scrunch is an experimental Scala wrapper for Crunch, based on the same ideas as the
+[Cascade](http://days2011.scala-lang.org/node/138/282) project at Google, which created
+a Scala wrapper for FlumeJava.
+
+## Why Scala?
+
+In many ways, Scala is the perfect language for writing Crunch pipelines. Scala supports
+a mixture of functional and object-oriented programming styles and has powerful type-inference
+capabilities, allowing us to create complex pipelines using very few keystrokes. Here is
+the Scrunch analogue of the classic WordCount problem:
+
+	import org.apache.crunch.io.{From => from}
+	import org.apache.crunch.scrunch._
+	import org.apache.crunch.scrunch.Conversions_  # For implicit type conversions
+
+	class WordCountExample {
+	  val pipeline = new Pipeline[WordCountExample]
+
+	  def wordCount(fileName: String) = {
+	    pipeline.read(from.textFile(fileName))
+	      .flatMap(_.toLowerCase.split("\\W+"))
+	      .filter(!_.isEmpty())
+	      .count
+	  }
+	}
+
+The Scala compiler can infer the return type of the flatMap function as an Array[String], and
+the Scrunch wrapper uses the type inference mechanism to figure out how to serialize the
+data between the Map and Reduce stages. Here's a slightly more complex example, in which we
+get the word counts for two different files and compute the deltas of how often different
+words occur, and then only returns the words where the first file had more occurrences then
+the second:
+
+	class WordCountExample {
+	  def wordGt(firstFile: String, secondFile: String) = {
+	    wordCount(firstFile).cogroup(wordCount(secondFile))
+	      .map((k, v) => (k, (v._1.sum - v._2.sum)))
+	      .filter((k, v) => v > 0).map((k, v) => k)
+	  }
+	}
+
+Note that all of the functions are using Scala Tuples, not Crunch Tuples. Under the covers,
+Scrunch uses Scala's implicit type conversion mechanism to transparently convert data from the
+Crunch format to the Scala format and back again.
+
+## Materializing Job Outputs
+
+Scrunch also incorporates Crunch's materialize functionality, which allows us to easily read
+the output of a Crunch pipeline into the client:
+
+	class WordCountExample {
+	  def hasHamlet = wordGt("shakespeare.txt", "maugham.txt").materialize.exists(_ == "hamlet")
+	}
+
+## Notes and Thanks
+
+Scrunch is alpha-quality code, written by someone who was learning Scala on the fly. There will be bugs,
+rough edges, and non-idiomatic Scala usage all over the place. This will improve with time, and we welcome
+contributions from Scala experts who are interested in helping us make Scrunch into a first-class project.
+
+Scrunch emerged out of conversations with [Dmitriy Ryaboy](http://twitter.com/#!/squarecog),
+[Oscar Boykin](http://twitter.com/#!/posco), and [Avi Bryant](http://twitter.com/#!/avibryant) from Twitter.
+Many thanks to them for their feedback, guidance, and encouragement. We are also grateful to
+[Matei Zaharia](http://twitter.com/#!/matei_zaharia), whose [Spark Project](http://www.spark-project.org/)
+inspired much of our implementation and was kind enough to loan us the ClosureCleaner implementation
+Spark developed for use in Scrunch.

Propchange: incubator/crunch/site/trunk/content/crunch/scrunch.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/crunch/site/trunk/content/crunch/source-repository.mdtext
URL: http://svn.apache.org/viewvc/incubator/crunch/site/trunk/content/crunch/source-repository.mdtext?rev=1385344&view=auto
==============================================================================
--- incubator/crunch/site/trunk/content/crunch/source-repository.mdtext (added)
+++ incubator/crunch/site/trunk/content/crunch/source-repository.mdtext Sun Sep 16 18:49:58 2012
@@ -0,0 +1,24 @@
+Title:    Getting the Source Code
+Notice:   Licensed to the Apache Software Foundation (ASF) under one
+          or more contributor license agreements.  See the NOTICE file
+          distributed with this work for additional information
+          regarding copyright ownership.  The ASF licenses this file
+          to you 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.
+
+Apache Crunch uses [Git](http://git-scm.com/) for version control. Run the
+following command to clone the repository:
+
+    git clone https://git-wip-us.apache.org/repos/asf/incubator-crunch.git
+
+There is also a [Web UI](https://git-wip-us.apache.org/repos/asf/incubator-crunch.git) to browse the repository online.

Propchange: incubator/crunch/site/trunk/content/crunch/source-repository.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/crunch/site/trunk/lib/path.pm
URL: http://svn.apache.org/viewvc/incubator/crunch/site/trunk/lib/path.pm?rev=1385344&r1=1385343&r2=1385344&view=diff
==============================================================================
--- incubator/crunch/site/trunk/lib/path.pm (original)
+++ incubator/crunch/site/trunk/lib/path.pm Sun Sep 16 18:49:58 2012
@@ -1,20 +1,34 @@
 package path;
 
-# taken from django's url.py
+# Single-level navbar. Entries without an href are headers.
+our @nav = (
+    { title => "Apache Crunch" },
+	{ title => "Overview",
+	  href => "/crunch/index.html"},
+	{ title => "API",
+	  href => "/crunch/apidocs/" },
+	{ title => "Wiki",
+	  href => "https://cwiki.apache.org/confluence/display/CRUNCH/" },
+    { title => "Project" },
+	{ title => "Source Code",
+	  href => "/crunch/source-repository.html" },
+	{ title => "Mailing Lists",
+	  href => "/crunch/mailing-lists.html" },
+	{ title => "Issue Tracking",
+	  href => "http://issues.apache.org/jira/browse/CRUNCH" },
+	{ title => "License",
+	  href => "http://apache.org/licenses/LICENSE-2.0.html" },
+);
 
+# Django-style URL dispatching 
 our @patterns = (
-	[qr!\.mdtext$!, single_narrative => { template => "single_narrative.html" }],
-
-	[qr!^/crunch/sitemap\.html$!, sitemap => { headers => { title => "Sitemap" }} ],
-
-) ;
-
-# for specifying interdependencies between files
-
-our %dependencies = (
-    "/crunch/sitemap.html" => [ grep s!^content!!, glob "content/crunch/*.mdtext" ],
+	[qr!\.mdtext$!, single_narrative => {
+	    template => "skeleton.html",
+	    nav => \@nav
+	}],
 );
 
+
 1;
 
 =head1 LICENSE
@@ -36,4 +50,3 @@ our %dependencies = (
            specific language governing permissions and limitations
            under the License.
 
-

Modified: incubator/crunch/site/trunk/templates/skeleton.html
URL: http://svn.apache.org/viewvc/incubator/crunch/site/trunk/templates/skeleton.html?rev=1385344&r1=1385343&r2=1385344&view=diff
==============================================================================
--- incubator/crunch/site/trunk/templates/skeleton.html (original)
+++ incubator/crunch/site/trunk/templates/skeleton.html Sun Sep 16 18:49:58 2012
@@ -1,54 +1,116 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html lang="en">
+<!DOCTYPE html>
+{#
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you 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.
+#}
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
   <head>
-    <title>{% block title %}{{ headers.title }}{% endblock %}</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta http-equiv="Content-Language" content="en" />
+
+    <title>Apache Crunch - {{ headers.title }}</title>
+
+    <link rel="stylesheet" href="/crunch/css/bootstrap-2.1.0.min.css" />
+    <link rel="stylesheet" href="/crunch/css/crunch.css" type="text/css">
+    <script type="text/javascript" src="/crunch/js/bootstrap-2.1.0.min.js"></script>
+  </head>
+  <body>
 
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+    <div class="navbar navbar-inverse navbar-static-top">
+      {# <div class="navbar-inner"> #}
+        <div class="container-fluid">
+
+          <a class="nav pull-right brand" href="http://incubator.apache.org">
+            <img src="http://incubator.apache.org/images/egg-logo.png" alt="apache Incubator Logo" />
+          </a>
 
-    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
-    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+        </div>
+      {# </div> <!-- /navbar-inner --> #}
+    </div>
 
-    {% if headers.atom %}
-      <link rel="alternate" href="{{ headers.atom.url }}"
-            type="application/atom+xml" title="{{ headers.atom.title }}" />
-    {% endif %}
+    <ul class="breadcrumb">
+      <li>
+        <a href="/">Incubator</a>
+	<span class="divider">&raquo;</span>
+      </li>
+      <li>
+        <a href="/crunch/">Crunch</a>
+      </li>
+      {#
+      <li id="publishDate" class="pull-right">
+        Version: 0.0.0-SNAPSHOT
+      </li>
+      #}
+    </ul>
+
+    <div class="container-fluid">
+      <div class="row-fluid">
+
+        <!-- SIDEBAR AREA -->
+        <div class="span2">
+          <div class="sidebar-nav">
+            <ul class="nav nav-list">
+              {% for e in nav %}
+                {% if e.href %}
+                  {% ifequal path e.href %}
+                    <li><b>{{ e.title }}</b></li>
+                  {% else %}
+                    <li><a href="{{ e.href }}">{{ e.title }}</a></li>
+                  {% endifequal %}
+                {% else %}
+                  <li class="nav-header">{{ e.title }}</li>
+                {% endif %}
+              {% endfor %}
+            </ul>
+          </div> <!-- /well -->
+        </div> <!-- /span -->
+
+        <!-- CONTENT AREA -->
+        <div class="span10">
+          <h1 class="title">
+            {{ headers.title }}
+            {% if headers.subtitle %}
+              <small>{{ headers.subtitle }}</small>
+            {% endif %}
+          </h1>
 
-    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
-    {% if headers.notice %}<!-- {{ headers.notice }} -->{% endif %}
-  </head>
+          {{ content|markdown }}
+        </div> <!-- /span -->
 
-  <body>
-    <div id="page" class="container_16">
-      <div id="header" class="grid_8">
-        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
-        <h1>The Apache Software Foundation</h1>
-        <h2>{% block tagline %}{{ headers.title }}{% endblock %}</h2>
-      </div>
-      <div id="nav" class="grid_8">
-        <ul>
-          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
-          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
-          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
-          <li><a href="http://people.apache.org" title="The People">People</a></li>
-          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
-          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
-          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
-        </ul>
-        <p>{{ breadcrumbs|safe }}</p>
-        <form name="search" id="search" action="http://www.google.com/search" method="get">
-          <input value="*.apache.org" name="sitesearch" type="hidden"/>
-          <input type="text" name="q" id="query">
-          <input type="submit" id="submit" value="Search">
-        </form>
-      </div>
-      <div class="clear"></div>
-      {% block content %}<div id="content" class="grid_16"><div class="section-content">{{ content|markdown }}</div></div>{% endblock %}
-      <div class="clear"></div>
-    </div>
+      </div> <!-- /row-fluid -->
 
-    <div id="copyright" class="container_16">
-      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
     </div>
+
+    <hr/>
+
+    <footer>
+      <div class="container-fluid">
+        <div class="row span12">Copyright &copy; 2012
+          <a href="http://www.apache.org/">The Apache Software Foundation</a>,
+          licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+	  <p><small>Apache Incubator, Apache Hadoop, Hadoop, Apache, and the
+	  Apache feather logo are trademarks of The Apache Software Foundation.
+	  Other names appearing on the site may be trademarks of their
+	  respective owners.</small></p>
+        </div>
+      </div>
+    </footer>
+
   </body>
 </html>



Mime
View raw message