Repository: roller-website Updated Branches: refs/heads/master [created] 260fef00f
http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/bootstrap-3.2.0/js/bootstrap.min.js ---------------------------------------------------------------------- diff --git a/content/bootstrap-3.2.0/js/bootstrap.min.js b/content/bootstrap-3.2.0/js/bootstrap.min.js new file mode 100644 index 0000000..2320b62 --- /dev/null +++ b/content/bootstrap-3.2.0/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.2.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==type of b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.button"),f="object"==typeof b&&b;e||c.data("bs.button",e=new d(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}function c(b){var c=a(b);return c.hasC lass("btn")?c:c.parent(".btn")}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.isLoading=!1};d.VERSION="3.2.0",d.DEFAULTS={loadingText:"loading..."},d.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},d.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var e=a.fn.button;a.fn.button=b,a.fn.button.Constructor=d,a.fn.button. noConflict=function(){return a.fn.button=e,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api",'[data-toggle^="button"]',function(a){c(a.target).addClass("focus")}).on("blur.bs.button.data-api",'[data-toggle^="button"]',function(a){c(a.target).removeClass("focus")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.optio ns.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b ){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carous el",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDef ault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collap se");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")} ;return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e.toggleClass("collapsed",g.hasClass("in"))),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown", e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g. prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f+', [role="menu"], [role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(th is),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.2.0",c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.$body.addClass("modal-open"),this.setScrollbar(),this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c .$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one("bsTransitionEnd",function(){c.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(300):c.$element.trigger("focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.$body.removeClass("modal-open"),this.resetScrollbar(),this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},c.prototype.enforceFocus=function(){a(docu ment).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;if(this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("mousedown.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?t his.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a );var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2 .0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",select or:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOption s()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosit ion(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-k<o.left?"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger("shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass("fade")?e.one("bsTransitionEnd",q).emulateTransitionEnd(150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=t his.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?2*k.left-e+i:2*k.top-f+j,m=k.left?"left":"top",n=k.left?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(l,d[0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.removeAttr("aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one("bsTransitionEnd",b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.att r("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=window.SVGElement&&c instanceof window.SVGElement,f=c.getBoundingClientRect?c.getBoundingClientRect():null,g=d?{top:0,left:0}:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=e?{}:{width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()};return a.extend({},f,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options. viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled =!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class= "popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$t ip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset" ,c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.option s.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&(f.length&&f.hasClass("fade")||!!c.find("> .fade").length);f.length&&g?f.one("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict ";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(documen t).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(j.replace("affix","affixed")+".bs.affix"),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetB ottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/css/roller.css ---------------------------------------------------------------------- diff --git a/content/css/roller.css b/content/css/roller.css new file mode 100644 index 0000000..05a3a7a --- /dev/null +++ b/content/css/roller.css @@ -0,0 +1,188 @@ +/* Move down content because we have a fixed navbar that is 50px tall */ +body { + padding-top: 50px; + padding-bottom: 20px; +} + +.theme-dropdown .dropdown-menu { + position: static; + display: block; + margin-bottom: 20px; +} + +.theme-showcase > p > .btn { + margin: 5px 0; +} + +.theme-showcase .navbar .container { + width: auto; +} + + .sprite { + display: inline-block; + height: 20px; + margin: 0 auto 4px; + outline: medium none; + text-indent: -999em; + width: 24px; + background-image: url('{{base}}images/sprites.png'); + background-repeat: no-repeat; + overflow: hidden; + cursor: pointer; + } + .edit-page { + display: inline-block; + height: 20px; + margin: 0 auto 4px; + outline: medium none; + text-indent: -999em; + width: 24px; + background-image: url('{{base}}images/edit.png'); + background-repeat: no-repeat; + overflow: hidden; + cursor: pointer; + } + .markdown-content { + min-height: 500px; + } + .book-image img { + border: 1px; + border-style: solid; + } + .release-matrix .heading { + background-color: #eeeeee; + } + .release-matrix .new { + color: #dd0000; + font-weight: bolder; + } + .stub,.note { + position: relative; + padding: 7px 15px; + margin-bottom: 18px; + color: #404040; + background-color: #eedc94; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94)); + background-image: -moz-linear-gradient(top, #fceec1, #eedc94); + background-image: -ms-linear-gradient(top, #fceec1, #eedc94); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94)); + background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); + background-image: -o-linear-gradient(top, #fceec1, #eedc94); + background-image: linear-gradient(top, #fceec1, #eedc94); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #eedc94 #eedc94 #e4c652; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + border-width: 1px; + border-style: solid; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + } + + div.XXXisis-tweak form { + margin-top: 6px; + margin-bottom: -2px; + } + + div.row div.col-md-12 { + border-top: 1px solid #eeeeee; + } + + .container { + width: 940px; + } + + /* From Apache Isis + + div.row div.col-md-12 { + margin-top: 20px; + } + + .markdown-content .documentation .span-one-third p { + margin-bottom: 0px; + } + + .container .markdown-content .group, + .markdown-content .documentation .group { + margin-top: 9px; + } + + .container .group h2, + .documentation .group h2 { + border-bottom: 1px solid #DDD + } + + .container h2 a[name], + .documentation h2 a[name] { + padding-top: 50px; + margin-top: -50px; + } + + .container h2 a[name], + .container h3 a[name], + .container h4 a[name], + .documentation h2 a[name], + .documentation h3 a[name], + .documentation h4 a[name] { + color: black; + display: inline-block; + } + .container h2 a[name]:hover, + .container h3 a[name]:hover, + .container h4 a[name]:hover, + .documentation h2 a[name]:hover, + .documentation h3 a[name]:hover, + .documentation h4 a[name]:hover { + text-decoration: none; + } + + .documentation h2 a:not([name]), + .documentation h3 a:not([name]), + .documentation h4 a:not([name]) { + padding: 0 3px 2px; + font-family: Monaco, Andale Mono, Courier New, monospace; + font-size: 12px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + padding: 1px 3px; + } + + .page-header { + margin-top: 0px; + } + + .container blockquote p { + font-size: small; + } + + .container blockquote p:not([author]) { + font-style: italic; + } + + .container blockquote p { + font-size: small; + font-style: italic; + font-weight: bold; + } + + footer hr { + margin-top: 100px; + } + + .markdown-content img { + margin-top: 10px; + margin-bottom: 20px; + } + + .markdown-content a img { + margin-top: 0px; + margin-bottom: 0px; + } */ + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/downloads/downloads.mdtext ---------------------------------------------------------------------- diff --git a/content/downloads/downloads.mdtext b/content/downloads/downloads.mdtext new file mode 100644 index 0000000..218a17d --- /dev/null +++ b/content/downloads/downloads.mdtext @@ -0,0 +1,83 @@ +Title: Downloads + +## Apache Roller Releases + +Releases of the Apache Roller blog server are made available to the +general public at no charge, under the +<a href="http://apache.org/licenses/">Apache License,</a> +in both binary and source distributions. + +General Availability (GA) Releases</strong> - <em>Ready for Prime Time!</em> +<a href="http://www.apache.org/dyn/closer.cgi/roller/roller-5.1/v5.1.2/">Roller 5.1.2</a> ("best available") + +Previous source and binary distributions, including documentation, +are available in the +<a class="external" href="http://archive.apache.org/dist/roller/"> +Apache archives</a>. + +Project releases are approved by vote of the Apache Roller Project +Management Committee (PMC). Support for a release is provided by project +volunteers on the project +<a href="https://cwiki.apache.org/confluence/display/ROLLER/How+to+ask+for+help">mailing lists</a>. +Bugs found in a release may be discussed on the list and +reported through the +<a href="https://issues.apache.org/jira/browse/ROL">issue tracker</a>. +The user mailing list and issue tracker are the <strong>only</strong> +support options hosted by the Apache Roller project. + + +Note: When downloading from a mirror, please be sure to verify that checksums and signatures are correct. +To do so, use the checksum and signature files from the main Apache site at +<a class="external" href="http://www.apache.org/dyn/closer.cgi/roller/roller-5.1/v5.1.2/bin/">http://www.apache.org/dyn/closer.cgi/roller/roller-5.1/v5.1.2/bin/</a> +Find here the KEYS file, which contains all OpenPGP keys we use to sign releases: +<a class="external" href="http://www.apache.org/dist/roller/">http://www.apache.org/dist/roller/</a> + +The PGP signatures can be verified using PGP or GPG. +First download the +<a href="http://www.apache.org/dist/roller/KEYS">KEYS</a> +as well as the +<code>asc</code> +signature file for the particular +distribution. +Make sure you get these files from the +<a href="http://www.apache.org/dist/roller/">main distribution + directory,</a> +rather than from a mirror. +Then verify the signatures using + + % pgpk -a KEYS + + % pgpv ${filename}.tar.gz.asc + + or + + % pgp -ka KEYS + + % pgp ${filename}.tar.gz.asc + + or + + % gpg --import KEYS + + % gpg --verify ${filename}.tar.gz.asc + +Alternatively, you can verify the MD5 signature on the files. +A Unix program called +<code>md5</code> +or +<code>md5sum</code> +is +included in many Unix distributions. +It is also available as part of +<a href="http://www.gnu.org/software/textutils/textutils.html"> + GNU Textutils.</a> +Windows users can get binary md5 programs from +<a href="http://www.fourmilab.ch/md5/">here,</a> +<a href="http://www.pc-tools.net/win32/freeware/console/"> + here,</a> +or +<a href="http://www.slavasoft.com/fsum/">here.</a> + + +If you want to build directly from the sources, please check the <a href="https://cwiki.apache.org/confluence/display/ROLLER/How+to+build+Roller">Project Wiki</a>. + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/getinvolved/edit_website.mdtext ---------------------------------------------------------------------- diff --git a/content/getinvolved/edit_website.mdtext b/content/getinvolved/edit_website.mdtext new file mode 100644 index 0000000..3394a90 --- /dev/null +++ b/content/getinvolved/edit_website.mdtext @@ -0,0 +1,59 @@ +Title: Edit Website + +The website uses the Apache CMS. More detailed documentation is available on +the Apache Infrastructure pages including a quickstart guide on the +[Apache bookmarklet][] and a [reference manual][]. It is also useful to look at +[other Apache CMS sites][] for examples. + +## Process + + 1. Do an svn checkout of the website, for committers: + svn co https://svn.apache.org/repos/asf/roller/cmssite/trunk rollersite + + For non-committers: + svn co http://svn.apache.org/repos/asf/roller/cmssite/trunk rollersite + + 2. If the changes are structurally significant (many pages removed/added, etc.), +before committing to staging you may wish to test that the site still builds locally +by following [these instructions][]. +Note you will probably lose the CSS formatting with local builds due to the way +the stylesheets are referenced, check instead at staging (below) to ensure stylesheets are +working as intended. +If deleting a file or changing the name of a file make a trivial +edit to lib/path.pm or lib/view.pm to force a full site rebuild. + + 3. Commit a change to the website's source [Markdown][] files located in +<a href="https://svn.apache.org/repos/asf/roller/cmssite/trunk" class="external"> +https://svn.apache.org/repos/asf/roller/cmssite/trunk</a>. If you're not a +committer, supplying a patch (svn diff -u > website.patch) to our JIRA issue tracker +instead will do. + + 4. Wait a few minutes to get the email on the commits list that buildbot has +rebuilt the [staging website][]. + + 5. If the change looks ok, publish the change to the production website by + + * (recommended method) Using the Apache bookmarklet: [Publish site][] + * curl -sL http://s.apache.org/cms-cli | perl on your local machine + * ssh -t <user\>@people.apache.org publish.pl roller <your Apache ID\> + +## Style + + * Try to limit line length to 80 columns, fold -s <filename\> on Linux is +helpful for limiting line length + * Use links in the [link name][] style rather than [link name][1] because it +is more difficult to match up the numbers and removing links causes all the +numbers to have to get updated + * Indent with spaces not tabs + * Use * for lists and indent lists by 4 spaces + +[Apache bookmarklet]: http://apache.org/dev/cms.html#usage +[reference manual]: http://apache.org/dev/cmsref.html +[other Apache CMS sites]: http://apache.org/dev/cmsadoption.html + +[production site svn]: https://svn.apache.org/repos/infra/websites/production/roller + +[Markdown]: http://daringfireball.net/projects/markdown/syntax +[these instructions]: http://apache.org/dev/cmsref.html#local-build +[Staging website]: http://roller.staging.apache.org/ +[Publish site]: https://cms.apache.org/roller/publish http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/SilkIconSet-readme.txt ---------------------------------------------------------------------- diff --git a/content/images/SilkIconSet-readme.txt b/content/images/SilkIconSet-readme.txt new file mode 100644 index 0000000..400a64d --- /dev/null +++ b/content/images/SilkIconSet-readme.txt @@ -0,0 +1,22 @@ +Silk icon set 1.3 + +_________________________________________ +Mark James +http://www.famfamfam.com/lab/icons/silk/ +_________________________________________ + +This work is licensed under a +Creative Commons Attribution 2.5 License. +[ http://creativecommons.org/licenses/by/2.5/ ] + +This means you may use it for any purpose, +and make any changes you like. +All I ask is that you include a link back +to this page in your credits. + +Are you using this icon set? Send me an email +(including a link or picture if available) to [email protected] + +Any other questions about this icon set please +contact [email protected] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/arrdown.png ---------------------------------------------------------------------- diff --git a/content/images/arrdown.png b/content/images/arrdown.png new file mode 100644 index 0000000..2db7b11 Binary files /dev/null and b/content/images/arrdown.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/arrdownsmall.gif ---------------------------------------------------------------------- diff --git a/content/images/arrdownsmall.gif b/content/images/arrdownsmall.gif new file mode 100644 index 0000000..067aae7 Binary files /dev/null and b/content/images/arrdownsmall.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/arrup.gif ---------------------------------------------------------------------- diff --git a/content/images/arrup.gif b/content/images/arrup.gif new file mode 100644 index 0000000..a150039 Binary files /dev/null and b/content/images/arrup.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/attach-strip.png ---------------------------------------------------------------------- diff --git a/content/images/attach-strip.png b/content/images/attach-strip.png new file mode 100644 index 0000000..2eb1305 Binary files /dev/null and b/content/images/attach-strip.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/attachment_big.png ---------------------------------------------------------------------- diff --git a/content/images/attachment_big.png b/content/images/attachment_big.png new file mode 100644 index 0000000..2577d50 Binary files /dev/null and b/content/images/attachment_big.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/attachment_small.gif ---------------------------------------------------------------------- diff --git a/content/images/attachment_small.gif b/content/images/attachment_small.gif new file mode 100644 index 0000000..54e8f2a Binary files /dev/null and b/content/images/attachment_small.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/attachment_small.png ---------------------------------------------------------------------- diff --git a/content/images/attachment_small.png b/content/images/attachment_small.png new file mode 100644 index 0000000..ea897cc Binary files /dev/null and b/content/images/attachment_small.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/book_open.png ---------------------------------------------------------------------- diff --git a/content/images/book_open.png b/content/images/book_open.png new file mode 100644 index 0000000..7d863f9 Binary files /dev/null and b/content/images/book_open.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/downGreenArrow.png ---------------------------------------------------------------------- diff --git a/content/images/downGreenArrow.png b/content/images/downGreenArrow.png new file mode 100644 index 0000000..ea1318f Binary files /dev/null and b/content/images/downGreenArrow.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/editor-strip.gif ---------------------------------------------------------------------- diff --git a/content/images/editor-strip.gif b/content/images/editor-strip.gif new file mode 100644 index 0000000..ef2eea3 Binary files /dev/null and b/content/images/editor-strip.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/error.gif ---------------------------------------------------------------------- diff --git a/content/images/error.gif b/content/images/error.gif new file mode 100644 index 0000000..fc5a96c Binary files /dev/null and b/content/images/error.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/exclamation.gif ---------------------------------------------------------------------- diff --git a/content/images/exclamation.gif b/content/images/exclamation.gif new file mode 100644 index 0000000..6fbc3f1 Binary files /dev/null and b/content/images/exclamation.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/favicon.ico ---------------------------------------------------------------------- diff --git a/content/images/favicon.ico b/content/images/favicon.ico new file mode 100644 index 0000000..e7c7eef Binary files /dev/null and b/content/images/favicon.ico differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/filter.gif ---------------------------------------------------------------------- diff --git a/content/images/filter.gif b/content/images/filter.gif new file mode 100644 index 0000000..7ebec79 Binary files /dev/null and b/content/images/filter.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/information.gif ---------------------------------------------------------------------- diff --git a/content/images/information.gif b/content/images/information.gif new file mode 100644 index 0000000..0aa4275 Binary files /dev/null and b/content/images/information.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/note.png ---------------------------------------------------------------------- diff --git a/content/images/note.png b/content/images/note.png new file mode 100644 index 0000000..bd20e4a Binary files /dev/null and b/content/images/note.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/out.png ---------------------------------------------------------------------- diff --git a/content/images/out.png b/content/images/out.png new file mode 100644 index 0000000..c3ae876 Binary files /dev/null and b/content/images/out.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/personal.png ---------------------------------------------------------------------- diff --git a/content/images/personal.png b/content/images/personal.png new file mode 100644 index 0000000..f53a0a4 Binary files /dev/null and b/content/images/personal.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/preview.gif ---------------------------------------------------------------------- diff --git a/content/images/preview.gif b/content/images/preview.gif new file mode 100644 index 0000000..2ceb560 Binary files /dev/null and b/content/images/preview.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/progress.gif ---------------------------------------------------------------------- diff --git a/content/images/progress.gif b/content/images/progress.gif new file mode 100644 index 0000000..91bc2fe Binary files /dev/null and b/content/images/progress.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/resize-horizontal.gif ---------------------------------------------------------------------- diff --git a/content/images/resize-horizontal.gif b/content/images/resize-horizontal.gif new file mode 100644 index 0000000..827c333 Binary files /dev/null and b/content/images/resize-horizontal.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/roller-logo.jpg ---------------------------------------------------------------------- diff --git a/content/images/roller-logo.jpg b/content/images/roller-logo.jpg new file mode 100644 index 0000000..861d1d5 Binary files /dev/null and b/content/images/roller-logo.jpg differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/search.gif ---------------------------------------------------------------------- diff --git a/content/images/search.gif b/content/images/search.gif new file mode 100644 index 0000000..84222d5 Binary files /dev/null and b/content/images/search.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/slimbox_close.gif ---------------------------------------------------------------------- diff --git a/content/images/slimbox_close.gif b/content/images/slimbox_close.gif new file mode 100644 index 0000000..b9b48fd Binary files /dev/null and b/content/images/slimbox_close.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/slimbox_close.png ---------------------------------------------------------------------- diff --git a/content/images/slimbox_close.png b/content/images/slimbox_close.png new file mode 100644 index 0000000..81a24d8 Binary files /dev/null and b/content/images/slimbox_close.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/slimbox_close_hover.gif ---------------------------------------------------------------------- diff --git a/content/images/slimbox_close_hover.gif b/content/images/slimbox_close_hover.gif new file mode 100644 index 0000000..8425928 Binary files /dev/null and b/content/images/slimbox_close_hover.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/sortable.gif ---------------------------------------------------------------------- diff --git a/content/images/sortable.gif b/content/images/sortable.gif new file mode 100644 index 0000000..13b56ed Binary files /dev/null and b/content/images/sortable.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/sorted_down.gif ---------------------------------------------------------------------- diff --git a/content/images/sorted_down.gif b/content/images/sorted_down.gif new file mode 100644 index 0000000..6621ce0 Binary files /dev/null and b/content/images/sorted_down.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/sorted_up.gif ---------------------------------------------------------------------- diff --git a/content/images/sorted_up.gif b/content/images/sorted_up.gif new file mode 100644 index 0000000..a057306 Binary files /dev/null and b/content/images/sorted_up.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/spin.gif ---------------------------------------------------------------------- diff --git a/content/images/spin.gif b/content/images/spin.gif new file mode 100644 index 0000000..a0e53f8 Binary files /dev/null and b/content/images/spin.gif differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/steamroller5.jpg ---------------------------------------------------------------------- diff --git a/content/images/steamroller5.jpg b/content/images/steamroller5.jpg new file mode 100644 index 0000000..41e3c50 Binary files /dev/null and b/content/images/steamroller5.jpg differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/steamroller50.png ---------------------------------------------------------------------- diff --git a/content/images/steamroller50.png b/content/images/steamroller50.png new file mode 100644 index 0000000..ee14f22 Binary files /dev/null and b/content/images/steamroller50.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/tip.png ---------------------------------------------------------------------- diff --git a/content/images/tip.png b/content/images/tip.png new file mode 100644 index 0000000..49d05c4 Binary files /dev/null and b/content/images/tip.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/xml.png ---------------------------------------------------------------------- diff --git a/content/images/xml.png b/content/images/xml.png new file mode 100644 index 0000000..315c4f4 Binary files /dev/null and b/content/images/xml.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/images/xmlCoffeeCup.png ---------------------------------------------------------------------- diff --git a/content/images/xmlCoffeeCup.png b/content/images/xmlCoffeeCup.png new file mode 100644 index 0000000..7503bff Binary files /dev/null and b/content/images/xmlCoffeeCup.png differ http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/index.mdtext ---------------------------------------------------------------------- diff --git a/content/index.mdtext b/content/index.mdtext new file mode 100644 index 0000000..bc03634 --- /dev/null +++ b/content/index.mdtext @@ -0,0 +1 @@ +This is a dummy file, overwritten by lib/path.pm with the templates/index.html file. http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/project/whoweare.mdtext ---------------------------------------------------------------------- diff --git a/content/project/whoweare.mdtext b/content/project/whoweare.mdtext new file mode 100644 index 0000000..fe93ff5 --- /dev/null +++ b/content/project/whoweare.mdtext @@ -0,0 +1,30 @@ +Title: Who We Are + +## Roller Committers + +The current Roller committer list (* = PMC member): + + * Anil R. Gangolli (*) + * Greg Huber (*) + * <a href="http://rollerweblogger.org/roller/">David M Johnson</a> (*) + * <a href="http://www.nailedtothex.org/roller/">Kohei Nozaki</a> + * <a href="http://raibledesigns.com/">Matt Raible</a> (*) + * Craig L Russell (*) + * <a href="http://gauravsaini.me/">Gaurav Saini</a> + +## Emeritus Committers + +The Apache Roller project expresses appreciation for our past volunteers: + + * Jeff Blattman + * Allen Gilliland + * Mindaguas Idzelis + * Lance Lanvandowska + * Ganesh Mathrerootham + * Glen Mazza + * Shelan Perera + * Matt Schmidt + * Elias Torres + * Jaap Van Der Molen + * Henri Yandell + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/content/sitemap.html ---------------------------------------------------------------------- diff --git a/content/sitemap.html b/content/sitemap.html new file mode 100644 index 0000000..b56e7a3 --- /dev/null +++ b/content/sitemap.html @@ -0,0 +1,2 @@ +{% include "single_narrative.html" %} + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/lib/OpenEJBSiteDotiacFilter.pm ---------------------------------------------------------------------- diff --git a/lib/OpenEJBSiteDotiacFilter.pm b/lib/OpenEJBSiteDotiacFilter.pm new file mode 100644 index 0000000..ae43d81 --- /dev/null +++ b/lib/OpenEJBSiteDotiacFilter.pm @@ -0,0 +1,67 @@ +package OpenEJBSiteDotiacFilter; +use strict; +use warnings; +use Text::Markdown qw( markdown ); +use Dotiac::DTL::Value; +use Dotiac::DTL::Filter; + +sub import { + *Dotiac::DTL::Filter::markdown = \&markdown_filter; +} + +sub markdown_filter { + + my $value = shift; + + # Use raw value rather than escape (by calling repr() rather than + # string()) so that we can embed html in our .mdtext documents. + my $raw = $value->repr; + + $raw =~ s,\(/\),<IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0">,g; + $raw =~ s,\(x\),<IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/error.gif" height="16" width="16" align="absmiddle" alt="" border="0">,g; + + + my $start = "{{{{{"; + my $end = "}}}}}"; + + $raw =~ s,(^|\n){,$start,g; + $raw =~ s,(^|\n)},$end,g; + + my $html = markdown($raw); + + $html =~ s,$start([a-z0-9-]+),<div class="$1">,g; + $html =~ s,$end,</div>,g; + + $html =~ s,<li><p>,<li>,g; + $html =~ s,</p></li>,</li>,g; + + + # Blindly mark return value as safe. + my $retval = Dotiac::DTL::Value->safe($html); + + return $retval; +} + +1; + +__END__ + +=head1 LICENSE + + 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. + +=cut + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/lib/path.pm ---------------------------------------------------------------------- diff --git a/lib/path.pm b/lib/path.pm new file mode 100644 index 0000000..1158276 --- /dev/null +++ b/lib/path.pm @@ -0,0 +1,42 @@ +package path; +use strict; +use warnings; +use ASF::Value; + +# taken from django's url.py + +our @patterns = ( + [qr!/index.mdtext$!, basic => { template => "index.html" }], + [qr!\.mdtext$!, basic => { template => "basic.html" }], +) ; + +# [qr!/sitemap\.html$!, sitemap => { headers => { title => "Sitemap" }} ], + +# for specifying interdependencies between files + +our %dependencies = ( + "/sitemap.html" => [ grep s!^content!!, glob "content/*.mdtext" ], +); + +1; + +=head1 LICENSE + + 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. + + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/lib/view.pm ---------------------------------------------------------------------- diff --git a/lib/view.pm b/lib/view.pm new file mode 100644 index 0000000..d9207b0 --- /dev/null +++ b/lib/view.pm @@ -0,0 +1,202 @@ +package view; +use base 'ASF::View'; # see https://svn.apache.org/repos/infra/websites/cms/build/lib/ASF/View.pm + +=head1 INTERFACE + +Each function within view.pm which will be used for page generation must +implement a standard interface. + + sub my_view { + my %args = @_; + ... + return ($content, $extension, @optional); + } + +First, each function must accept labeled parameters. The only parameter which +will always be present is "path"; see the documentation in path.pm for the +"@patterns" array with regards to invocation with additional parameters. + +Second, each function must return a list with at least two elements: the first +element must be the page content, and the second must be a file extention. +Returning additional elements in the list (as some of the functions below do) +is optional. + + return ($content, 'html', \%args); + +The constraints imposed by this interface may cause difficulties, for example +when you want to generate both "foo.html" and "foo.pdf". However, it is +usually possible to work around such issues with symlinks and dependency +management in path.pm. + +=cut + +use strict; +use warnings; +use Carp; +use Dotiac::DTL; +use ASF::Util qw( read_text_file ); +use OpenEJBSiteDotiacFilter; +use Data::Dumper; + +BEGIN { push @Dotiac::DTL::TEMPLATE_DIRS, "templates"; } + +# This is most widely used view. It takes a +# 'template' argument and a 'path' argument. +# Assuming the path ends in foo.mdtext, any files +# like foo.page/bar.mdtext will be parsed and +# passed to the template in the "bar" (hash) +# variable. +# Has the same behavior as the above for foo.page/bar.txt +# files, parsing them into a bar variable for the template. +# Otherwise presumes the template is the path. + + +# A "basic" view, which takes 'template' and 'path' parameters. +# borrowed from openejb + +sub basic { + my %args = @_; + my $filepath = "content$args{path}"; + + print "basic $filepath"; + + read_text_file($filepath, \%args); + + if(defined $args{indexpage}) { + $args{path} = "$args{path}$args{indexpage}"; + } + + $args{path} =~ s/\.md(text)?$/\.html/; + $args{base} = _base($args{path}); + $args{breadcrumbs} = _breadcrumbs($args{path}, $args{base}); + + my $template_path = "templates/$args{template}"; + + my @includes = ($args{content} =~ m/{include:([^ ]+?)}/g); + + foreach my $include (@includes) { + next unless ( -e "content/$include"); + + my %a = (); + read_text_file("content/$include", \%a); + my $text = $a{content}; + $args{headers}{title} = $a{headers}{title} unless $args{headers}{title}; + + # If the file to be included is in a child directory, resolve all the links + # in the included content to be relative to this document + if ($include =~ m,/,) { + my $ipath = $include; + $ipath =~ s,/[^/]*$,,; + $text =~ s,(\[[^[]+])\(([^/][^)]+)\),$1($ipath/$2),g; + } + + $args{content} =~ s/{include:$include}/$text/g; + } + + print " - rendering using Dotiac::DTL"; + + my $rendered = Dotiac::DTL->new($template_path)->render(\%args); + + print " - complete\n"; + + return ($rendered, 'html', \%args); +} + + +sub _breadcrumbs { + my $path = shift; + my $base = shift; + + my $index = "$base/documentation.html"; + $index =~ s,/+,/,g; + + my @breadcrumbs = ( + qq|<a href="$index">Docs</a>|, + ); + my @path_components = split( m!/!, $path ); + pop @path_components; + + my $relpath = $base; + + + for (@path_components) { + $relpath .= "$_/"; + $relpath =~ s,/+,/,g; + next unless $_; + + my @names = split("-", $_); + my $name = ""; + for my $n (@names) { + $name .= ucfirst($n) . " "; + } + $name =~ s/ *$//; + push @breadcrumbs, qq(<a href="${relpath}about.html">\u$name</a>); + } + return join " » ", @breadcrumbs; +} +sub _base { + my $path = shift; + + my @path_components = split( m!/!, $path ); + pop @path_components; + pop @path_components; + + my $rel = "./"; + + for (@path_components) { + $rel .= "../"; + } + + return $rel; +} + +# This is most widely used view. It takes a +# 'template' argument and a 'path' argument. +# Assuming the path ends in foo.mdtext, any files +# like foo.page/bar.mdtext will be parsed and +# passed to the template in the "bar" (hash) +# variable. + +sub single_narrative { + my %args = @_; + my $file = "content$args{path}"; + my $template = $args{template}; + $args{path} =~ s/\.mdtext$/\.html/; + $args{breadcrumbs} = breadcrumbs($args{path}); + + read_text_file $file, \%args; + + my $page_path = $file; + $page_path =~ s/\.[^.]+$/.page/; + if (-d $page_path) { + for my $f (grep -f, glob "$page_path/*.mdtext") { + $f =~ m!/([^/]+)\.mdtext$! or die "Bad filename: $f\n"; + $args{$1} = {}; + read_text_file $f, $args{$1}; + } + } + + return Template($template)->render(\%args), html => \%args; +} +1; + +=head1 LICENSE + + 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. + + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/templates/basic.html ---------------------------------------------------------------------- diff --git a/templates/basic.html b/templates/basic.html new file mode 100644 index 0000000..973f228 --- /dev/null +++ b/templates/basic.html @@ -0,0 +1,15 @@ +{% extends "roller-template.html" %} + +{% block content %} + + <div class="container page-header"> + <!--p>{{ breadcrumbs|safe }}</p--> + <h1>{{ headers.title }}</h1> + </div> + + <div class="container"> + {{ content|markdown }} + </div> + +{% endblock %} + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/templates/index.html ---------------------------------------------------------------------- diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..7c8e782 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,48 @@ +{% extends "roller-template.html" %} + +{% block content %} + + <!-- Main jumbotron for a primary marketing message or call to action --> + <div class="jumbotron"> + <div class="container"> + <div class="row"> + <div class="col-md-2"> + <img src="images/steamroller5.jpg" alt="Roller Logo" class="img-responsive"> + </div> + <div class="col-md-10"> + <h1>Blog Better.</h1> + <p>Apache Roller is a Java-based, full-featured, multi-user and group-blog server suitable for blog sites large and small.</p> + <p><a class="btn btn-primary btn-lg" role="button" href="https://cwiki.apache.org/confluence/display/ROLLER/PoweredByRoller">Our Community »</a></p> + </div> + </div> + </div> + </div> + + <div class="container"> + <!-- Example row of columns --> + <div class="row"> + <div class="col-md-6"> + <h2>Features</h2> + <ul class="list-group"> + <li class="list-group-item">Multi-user blogging: can support thousands of users and blogs</li> + <li class="list-group-item">Group blogging with three permission levels: owner, editor, and drafter</li> + <li class="list-group-item">Support for comment moderation and comment spam prevention measures</li> + <li class="list-group-item">Bloggers have full control over blog layout/style via <a href="http://velocity.apache.org/">Apache Velocity</a>-driven templates</li> + <li class="list-group-item">Built-in <a href="http://lucene.apache.org/">Lucene</a> search engine indexes weblog entry content</li> + <li class="list-group-item">Support for blog clients that support MetaWeblog API</li> + <li class="list-group-item">All blogs have entry and comment feeds in both RSS 2.0 and Atom 1.0 formats</li> + <li class="list-group-item">Support for SEO: web analytics tracking keys, blog-entry specific Meta description elements</li> + </ul> + </div> + <div class="col-md-6"> + <h2>Documentation</h2> + <p>Roller's installation guide covers deployment on Tomcat, GlassFish, and JBoss application servers using a MySQL, + Derby, or PostgreSQL database. Users however have reported success running Roller on other app servers and databases.</p> + <p><a class="btn btn-default" href="https://dist.apache.org/repos/dist/release/roller/roller-5.1/v5.1.1/docs/" role="button">Current Release Docs (PDF) »</a> + <a class="btn btn-default" href="http://svn.apache.org/viewvc/roller/trunk/docs/" role="button">Latest Nightly Docs (ODT) »</a></p> + </div> + </div> + </div> + +{% endblock %} + http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/templates/roller-template.html ---------------------------------------------------------------------- diff --git a/templates/roller-template.html b/templates/roller-template.html new file mode 100644 index 0000000..6493fca --- /dev/null +++ b/templates/roller-template.html @@ -0,0 +1,94 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="description" content=""> + <meta name="author" content=""> + <link rel="icon" href="{{base}}images/favicon.ico"> + + <title>Apache Roller</title> + + <!-- Bootstrap core CSS --> + <link href="{{base}}bootstrap-3.2.0/css/bootstrap.min.css" rel="stylesheet"> + + <!-- Bootstrap theme --> + <link href="{{base}}bootstrap-3.2.0/css/bootstrap-theme.min.css" rel="stylesheet"> + + <!-- Custom styles for this template --> + <link href="{{base}}css/roller.css" rel="stylesheet"> + + </head> + + <body> + + <div class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="{{base}}index.html">Apache Roller</a> + </div> + <div class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Info <span class="caret"></span></a> + <ul class="dropdown-menu" role="menu"> + <li><a href="http://rollerweblogger.org/project">Team Blog</a></li> + <li><a href="http://cwiki.apache.org/confluence/display/ROLLER">Project Wiki</a></li> + <li><a href="https://twitter.com/apache_roller">Twitter</a></li> + <li><a href="https://www.openhub.net/p/roller">Open Hub Page</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/ROLLER/Roller+Mailing+Lists">Mailing Lists</a></li> + <li><a href="http://roller.apache.org/project/whoweare.html">Who We Are</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <span class="caret"></span></a> + <ul class="dropdown-menu" role="menu"> + <li><a href="https://issues.apache.org/jira/browse/ROL">Issue Tracker</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/ROLLER/Developer+Resources">Development Information</a></li> + <li><a href="http://svn.apache.org/viewvc/roller/">Browse Source</a></li> + <li><a href="https://builds.apache.org/job/Roller/">Jenkins CI</a></li> + <li><a href="https://analysis.apache.org/dashboard/index/org.apache.roller:roller-project">Sonar Analysis</a></li> + <li><a href="http://roller.apache.org/getinvolved/edit_website.html">Website Admin</a></li> + </ul> + </li> + <li><a href="http://roller.apache.org/downloads/downloads.html">Download</a></li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <span class="caret"></span></a> + <ul class="dropdown-menu" role="menu"> + <li><a href="http://www.apache.org/foundation/">Foundation</a></li> + <li><a href="http://projects.apache.org/">Projects</a></li> + <li><a href="http://people.apache.org/">People</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Support Apache</a></li> + </ul> + </li> + </ul> + </div><!--/.nav-collapse --> + </div> + </div> + + <div class="markdown-content"> + {% block content %}{{ content|markdown }}{% endblock %} + </div> + + <div class="container"> + <hr> + <footer> + <p>Copyright © 2014 The Apache Software Foundation, Licensed under the + <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> + </footer> + </div> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> + <script src="{{base}}bootstrap-3.2.0/js/bootstrap.min.js"></script> + </body> +</html> http://git-wip-us.apache.org/repos/asf/roller-website/blob/260fef00/templates/sidenav.mdtext ---------------------------------------------------------------------- diff --git a/templates/sidenav.mdtext b/templates/sidenav.mdtext new file mode 100644 index 0000000..6e77dbc --- /dev/null +++ b/templates/sidenav.mdtext @@ -0,0 +1,26 @@ +**Project Information** + + * <a href="http://cwiki.apache.org/confluence/display/ROLLER" class="external">Project Wiki</a> + * <a href="http://cwiki.apache.org/confluence/display/ROLLER/Roller+FAQ" class="external">Project FAQ</a> + * <a href="http://rollerweblogger.org/project" class="external">Project Blog</a> + * [Who We Are](/project/whoweare.html) + +**Get Involved** + + * <a href="https://cwiki.apache.org/confluence/display/ROLLER/Roller+Mailing+Lists" class="external">Mailing Lists</a> + * <a href="https://issues.apache.org/jira/browse/ROL" class="external">Issue Tracker</a> + * <a href="https://cwiki.apache.org/confluence/display/ROLLER/Developer+Resources" class="external">Develop Roller</a> + * <a href="http://svn.apache.org/viewvc/roller/" class="external">Browse Source</a> + * <a href="https://builds.apache.org/job/Roller/" class="external">Jenkins CI</a> + * <a href="https://analysis.apache.org/dashboard/index/org.apache.roller:roller-project" class="external">Sonar Analysis</a> + * [Edit Website](/getinvolved/edit_website.html) + +**Downloads** + + * [Downloads](/downloads/downloads.html) + * <a href="https://dist.apache.org/repos/dist/release/roller/roller-5/v5.0.4/docs/" class="external">Documentation</a> (release)</li> + * <a href="http://svn.apache.org/viewvc/roller/trunk/docs/" class="external">Documentation</a> (latest)</li> + + + +
