baron 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/baron.gemspec +32 -23
- data/lib/baron.rb +15 -13
- data/spec/baron_article_spec.rb +1 -1
- data/spec/baron_blog_engine_spec.rb +22 -20
- data/spec/baron_spec.rb +10 -22
- data/spec/sample_data/.gitignore +5 -0
- data/spec/sample_data/Gemfile +1 -1
- data/spec/sample_data/README.md +243 -0
- data/spec/sample_data/Rakefile +1 -1
- data/spec/sample_data/articles/favorites/1916-01-01-the-road-not-taken.txt +26 -0
- data/spec/sample_data/articles/north of boston/1914-01-01-the-pasture.txt +10 -0
- data/spec/sample_data/articles/north of boston/1914-01-02-mending-wall.txt +48 -0
- data/spec/sample_data/articles/north of boston/1914-01-03-the-death-of-the-hired-man.txt +211 -0
- data/spec/sample_data/articles/north of boston/1914-01-04-the-mountain.txt +121 -0
- data/spec/sample_data/articles/north of boston/1914-01-05-A-Hundred-callers.txt +196 -0
- data/spec/sample_data/articles/poems/1909-01-02-If.txt b/data/spec/sample_data/articles/other → authors/1909-01-02-If.txt +0 -0
- data/spec/sample_data/config.ru +63 -29
- data/spec/sample_data/images/robert-frost-small.png +0 -0
- data/spec/sample_data/images/robert-frost.png +0 -0
- data/spec/sample_data/pages/about.rhtml +9 -14
- data/spec/sample_data/resources/redirects.txt +1 -29
- data/spec/sample_data/resources/robots.txt +4 -1
- data/spec/sample_data/themes/typography/css/app.css +58 -0
- data/spec/sample_data/themes/{test → typography}/css/bootstrap-responsive.css +0 -0
- data/spec/sample_data/themes/{test → typography}/css/bootstrap-responsive.min.css +0 -0
- data/spec/sample_data/themes/{test → typography}/css/bootstrap.css +0 -0
- data/spec/sample_data/themes/{test → typography}/css/bootstrap.min.css +0 -0
- data/spec/sample_data/themes/typography/img/github.png +0 -0
- data/spec/sample_data/themes/{test → typography}/img/glyphicons-halflings-white.png +0 -0
- data/spec/sample_data/themes/{test → typography}/img/glyphicons-halflings.png +0 -0
- data/spec/sample_data/{images → themes/typography/img}/instagram.png +0 -0
- data/spec/sample_data/themes/typography/js/bootstrap.js +2159 -0
- data/spec/sample_data/themes/typography/js/bootstrap.min.js +6 -0
- data/spec/sample_data/themes/typography/js/image_alt.js +12 -0
- data/spec/sample_data/themes/typography/js/read_later.js +14 -0
- data/spec/sample_data/themes/typography/templates/archives.rhtml +18 -0
- data/spec/sample_data/themes/typography/templates/article.rhtml +14 -0
- data/spec/sample_data/themes/typography/templates/category.rhtml +17 -0
- data/spec/sample_data/themes/typography/templates/error.rhtml +3 -0
- data/spec/sample_data/themes/typography/templates/home.rhtml +28 -0
- data/spec/sample_data/themes/typography/templates/layout.rhtml +141 -0
- data/spec/spec_helper.rb +1 -1
- metadata +32 -23
- data/spec/sample_data/articles/2012-11-09-sample-post.txt +0 -11
- data/spec/sample_data/articles/poems/1916-01-01-the-road-not-taken.txt +0 -26
- data/spec/sample_data/images/import-csv-file-1.png +0 -0
- data/spec/sample_data/images/import-csv-file-2.png +0 -0
- data/spec/sample_data/images/import-csv-file-3.png +0 -0
- data/spec/sample_data/themes/test/css/app.css +0 -27
- data/spec/sample_data/themes/test/img/instagram.png +0 -0
- data/spec/sample_data/themes/test/templates/archives.rhtml +0 -14
- data/spec/sample_data/themes/test/templates/article.rhtml +0 -14
- data/spec/sample_data/themes/test/templates/category.rhtml +0 -15
- data/spec/sample_data/themes/test/templates/error.rhtml +0 -11
- data/spec/sample_data/themes/test/templates/home.rhtml +0 -26
- data/spec/sample_data/themes/test/templates/layout.rhtml +0 -90
@@ -0,0 +1,6 @@
|
|
1
|
+
/*!
|
2
|
+
* Bootstrap.js by @fat & @mdo
|
3
|
+
* Copyright 2012 Twitter, Inc.
|
4
|
+
* http://www.apache.org/licenses/LICENSE-2.0.txt
|
5
|
+
*/
|
6
|
+
!function($){"use strict";$(function(){$.support.transition=function(){var transitionEnd=function(){var name,el=document.createElement("bootstrap"),transEndEventNames={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(name in transEndEventNames)if(void 0!==el.style[name])return transEndEventNames[name]}();return transitionEnd&&{end:transitionEnd}}()})}(window.jQuery),!function($){"use strict";var dismiss='[data-dismiss="alert"]',Alert=function(el){$(el).on("click",dismiss,this.close)};Alert.prototype.close=function(e){function removeElement(){$parent.trigger("closed").remove()}var $parent,$this=$(this),selector=$this.attr("data-target");selector||(selector=$this.attr("href"),selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"")),$parent=$(selector),e&&e.preventDefault(),$parent.length||($parent=$this.hasClass("alert")?$this:$this.parent()),$parent.trigger(e=$.Event("close")),e.isDefaultPrevented()||($parent.removeClass("in"),$.support.transition&&$parent.hasClass("fade")?$parent.on($.support.transition.end,removeElement):removeElement())};var old=$.fn.alert;$.fn.alert=function(option){return this.each(function(){var $this=$(this),data=$this.data("alert");data||$this.data("alert",data=new Alert(this)),"string"==typeof option&&data[option].call($this)})},$.fn.alert.Constructor=Alert,$.fn.alert.noConflict=function(){return $.fn.alert=old,this},$(document).on("click.alert.data-api",dismiss,Alert.prototype.close)}(window.jQuery),!function($){"use strict";var Button=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.button.defaults,options)};Button.prototype.setState=function(state){var d="disabled",$el=this.$element,data=$el.data(),val=$el.is("input")?"val":"html";state+="Text",data.resetText||$el.data("resetText",$el[val]()),$el[val](data[state]||this.options[state]),setTimeout(function(){"loadingText"==state?$el.addClass(d).attr(d,d):$el.removeClass(d).removeAttr(d)},0)},Button.prototype.toggle=function(){var $parent=this.$element.closest('[data-toggle="buttons-radio"]');$parent&&$parent.find(".active").removeClass("active"),this.$element.toggleClass("active")};var old=$.fn.button;$.fn.button=function(option){return this.each(function(){var $this=$(this),data=$this.data("button"),options="object"==typeof option&&option;data||$this.data("button",data=new Button(this,options)),"toggle"==option?data.toggle():option&&data.setState(option)})},$.fn.button.defaults={loadingText:"loading..."},$.fn.button.Constructor=Button,$.fn.button.noConflict=function(){return $.fn.button=old,this},$(document).on("click.button.data-api","[data-toggle^=button]",function(e){var $btn=$(e.target);$btn.hasClass("btn")||($btn=$btn.closest(".btn")),$btn.button("toggle")})}(window.jQuery),!function($){"use strict";var Carousel=function(element,options){this.$element=$(element),this.options=options,"hover"==this.options.pause&&this.$element.on("mouseenter",$.proxy(this.pause,this)).on("mouseleave",$.proxy(this.cycle,this))};Carousel.prototype={cycle:function(e){return e||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval)),this},to:function(pos){var $active=this.$element.find(".item.active"),children=$active.parent().children(),activePos=children.index($active),that=this;if(!(pos>children.length-1||0>pos))return this.sliding?this.$element.one("slid",function(){that.to(pos)}):activePos==pos?this.pause().cycle():this.slide(pos>activePos?"next":"prev",$(children[pos]))},pause:function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&$.support.transition.end&&(this.$element.trigger($.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){return this.sliding?void 0:this.slide("next")},prev:function(){return this.sliding?void 0:this.slide("prev")},slide:function(type,next){var e,$active=this.$element.find(".item.active"),$next=next||$active[type](),isCycling=this.interval,direction="next"==type?"left":"right",fallback="next"==type?"first":"last",that=this;if(this.sliding=!0,isCycling&&this.pause(),$next=$next.length?$next:this.$element.find(".item")[fallback](),e=$.Event("slide",{relatedTarget:$next[0]}),!$next.hasClass("active")){if($.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(e),e.isDefaultPrevented())return;$next.addClass(type),$next[0].offsetWidth,$active.addClass(direction),$next.addClass(direction),this.$element.one($.support.transition.end,function(){$next.removeClass([type,direction].join(" ")).addClass("active"),$active.removeClass(["active",direction].join(" ")),that.sliding=!1,setTimeout(function(){that.$element.trigger("slid")},0)})}else{if(this.$element.trigger(e),e.isDefaultPrevented())return;$active.removeClass("active"),$next.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return isCycling&&this.cycle(),this}}};var old=$.fn.carousel;$.fn.carousel=function(option){return this.each(function(){var $this=$(this),data=$this.data("carousel"),options=$.extend({},$.fn.carousel.defaults,"object"==typeof option&&option),action="string"==typeof option?option:options.slide;data||$this.data("carousel",data=new Carousel(this,options)),"number"==typeof option?data.to(option):action?data[action]():options.interval&&data.cycle()})},$.fn.carousel.defaults={interval:5e3,pause:"hover"},$.fn.carousel.Constructor=Carousel,$.fn.carousel.noConflict=function(){return $.fn.carousel=old,this},$(document).on("click.carousel.data-api","[data-slide]",function(e){var href,$this=$(this),$target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"")),options=$.extend({},$target.data(),$this.data());$target.carousel(options),e.preventDefault()})}(window.jQuery),!function($){"use strict";var Collapse=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.collapse.defaults,options),this.options.parent&&(this.$parent=$(this.options.parent)),this.options.toggle&&this.toggle()};Collapse.prototype={constructor:Collapse,dimension:function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height"},show:function(){var dimension,scroll,actives,hasData;if(!this.transitioning){if(dimension=this.dimension(),scroll=$.camelCase(["scroll",dimension].join("-")),actives=this.$parent&&this.$parent.find("> .accordion-group > .in"),actives&&actives.length){if(hasData=actives.data("collapse"),hasData&&hasData.transitioning)return;actives.collapse("hide"),hasData||actives.data("collapse",null)}this.$element[dimension](0),this.transition("addClass",$.Event("show"),"shown"),$.support.transition&&this.$element[dimension](this.$element[0][scroll])}},hide:function(){var dimension;this.transitioning||(dimension=this.dimension(),this.reset(this.$element[dimension]()),this.transition("removeClass",$.Event("hide"),"hidden"),this.$element[dimension](0))},reset:function(size){var dimension=this.dimension();return this.$element.removeClass("collapse")[dimension](size||"auto")[0].offsetWidth,this.$element[null!==size?"addClass":"removeClass"]("collapse"),this},transition:function(method,startEvent,completeEvent){var that=this,complete=function(){"show"==startEvent.type&&that.reset(),that.transitioning=0,that.$element.trigger(completeEvent)};this.$element.trigger(startEvent),startEvent.isDefaultPrevented()||(this.transitioning=1,this.$element[method]("in"),$.support.transition&&this.$element.hasClass("collapse")?this.$element.one($.support.transition.end,complete):complete())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var old=$.fn.collapse;$.fn.collapse=function(option){return this.each(function(){var $this=$(this),data=$this.data("collapse"),options="object"==typeof option&&option;data||$this.data("collapse",data=new Collapse(this,options)),"string"==typeof option&&data[option]()})},$.fn.collapse.defaults={toggle:!0},$.fn.collapse.Constructor=Collapse,$.fn.collapse.noConflict=function(){return $.fn.collapse=old,this},$(document).on("click.collapse.data-api","[data-toggle=collapse]",function(e){var href,$this=$(this),target=$this.attr("data-target")||e.preventDefault()||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,""),option=$(target).data("collapse")?"toggle":$this.data();$this[$(target).hasClass("in")?"addClass":"removeClass"]("collapsed"),$(target).collapse(option)})}(window.jQuery),!function($){"use strict";function clearMenus(){$(toggle).each(function(){getParent($(this)).removeClass("open")})}function getParent($this){var $parent,selector=$this.attr("data-target");return selector||(selector=$this.attr("href"),selector=selector&&/#/.test(selector)&&selector.replace(/.*(?=#[^\s]*$)/,"")),$parent=$(selector),$parent.length||($parent=$this.parent()),$parent}var toggle="[data-toggle=dropdown]",Dropdown=function(element){var $el=$(element).on("click.dropdown.data-api",this.toggle);$("html").on("click.dropdown.data-api",function(){$el.parent().removeClass("open")})};Dropdown.prototype={constructor:Dropdown,toggle:function(){var $parent,isActive,$this=$(this);if(!$this.is(".disabled, :disabled"))return $parent=getParent($this),isActive=$parent.hasClass("open"),clearMenus(),isActive||$parent.toggleClass("open"),$this.focus(),!1},keydown:function(e){var $this,$items,$parent,isActive,index;if(/(38|40|27)/.test(e.keyCode)&&($this=$(this),e.preventDefault(),e.stopPropagation(),!$this.is(".disabled, :disabled"))){if($parent=getParent($this),isActive=$parent.hasClass("open"),!isActive||isActive&&27==e.keyCode)return $this.click();$items=$("[role=menu] li:not(.divider):visible a",$parent),$items.length&&(index=$items.index($items.filter(":focus")),38==e.keyCode&&index>0&&index--,40==e.keyCode&&$items.length-1>index&&index++,~index||(index=0),$items.eq(index).focus())}}};var old=$.fn.dropdown;$.fn.dropdown=function(option){return this.each(function(){var $this=$(this),data=$this.data("dropdown");data||$this.data("dropdown",data=new Dropdown(this)),"string"==typeof option&&data[option].call($this)})},$.fn.dropdown.Constructor=Dropdown,$.fn.dropdown.noConflict=function(){return $.fn.dropdown=old,this},$(document).on("click.dropdown.data-api touchstart.dropdown.data-api",clearMenus).on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("touchstart.dropdown.data-api",".dropdown-menu",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",toggle,Dropdown.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",toggle+", [role=menu]",Dropdown.prototype.keydown)}(window.jQuery),!function($){"use strict";var Modal=function(element,options){this.options=options,this.$element=$(element).delegate('[data-dismiss="modal"]',"click.dismiss.modal",$.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};Modal.prototype={constructor:Modal,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var that=this,e=$.Event("show");this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var transition=$.support.transition&&that.$element.hasClass("fade");that.$element.parent().length||that.$element.appendTo(document.body),that.$element.show(),transition&&that.$element[0].offsetWidth,that.$element.addClass("in").attr("aria-hidden",!1),that.enforceFocus(),transition?that.$element.one($.support.transition.end,function(){that.$element.focus().trigger("shown")}):that.$element.focus().trigger("shown")}))},hide:function(e){e&&e.preventDefault(),e=$.Event("hide"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),$(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),$.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var that=this;$(document).on("focusin.modal",function(e){that.$element[0]===e.target||that.$element.has(e.target).length||that.$element.focus()})},escape:function(){var that=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(e){27==e.which&&that.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var that=this,timeout=setTimeout(function(){that.$element.off($.support.transition.end),that.hideModal()},500);this.$element.one($.support.transition.end,function(){clearTimeout(timeout),that.hideModal()})},hideModal:function(){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(callback){var animate=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate;this.$backdrop=$('<div class="modal-backdrop '+animate+'" />').appendTo(document.body),this.$backdrop.click("static"==this.options.backdrop?$.proxy(this.$element[0].focus,this.$element[0]):$.proxy(this.hide,this)),doAnimate&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),doAnimate?this.$backdrop.one($.support.transition.end,callback):callback()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),$.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one($.support.transition.end,$.proxy(this.removeBackdrop,this)):this.removeBackdrop()):callback&&callback()}};var old=$.fn.modal;$.fn.modal=function(option){return this.each(function(){var $this=$(this),data=$this.data("modal"),options=$.extend({},$.fn.modal.defaults,$this.data(),"object"==typeof option&&option);data||$this.data("modal",data=new Modal(this,options)),"string"==typeof option?data[option]():options.show&&data.show()})},$.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},$.fn.modal.Constructor=Modal,$.fn.modal.noConflict=function(){return $.fn.modal=old,this},$(document).on("click.modal.data-api",'[data-toggle="modal"]',function(e){var $this=$(this),href=$this.attr("href"),$target=$($this.attr("data-target")||href&&href.replace(/.*(?=#[^\s]+$)/,"")),option=$target.data("modal")?"toggle":$.extend({remote:!/#/.test(href)&&href},$target.data(),$this.data());e.preventDefault(),$target.modal(option).one("hide",function(){$this.focus()})})}(window.jQuery),!function($){"use strict";var Tooltip=function(element,options){this.init("tooltip",element,options)};Tooltip.prototype={constructor:Tooltip,init:function(type,element,options){var eventIn,eventOut;this.type=type,this.$element=$(element),this.options=this.getOptions(options),this.enabled=!0,"click"==this.options.trigger?this.$element.on("click."+this.type,this.options.selector,$.proxy(this.toggle,this)):"manual"!=this.options.trigger&&(eventIn="hover"==this.options.trigger?"mouseenter":"focus",eventOut="hover"==this.options.trigger?"mouseleave":"blur",this.$element.on(eventIn+"."+this.type,this.options.selector,$.proxy(this.enter,this)),this.$element.on(eventOut+"."+this.type,this.options.selector,$.proxy(this.leave,this))),this.options.selector?this._options=$.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(options){return options=$.extend({},$.fn[this.type].defaults,options,this.$element.data()),options.delay&&"number"==typeof options.delay&&(options.delay={show:options.delay,hide:options.delay}),options},enter:function(e){var self=$(e.currentTarget)[this.type](this._options).data(this.type);return self.options.delay&&self.options.delay.show?(clearTimeout(this.timeout),self.hoverState="in",this.timeout=setTimeout(function(){"in"==self.hoverState&&self.show()},self.options.delay.show),void 0):self.show()},leave:function(e){var self=$(e.currentTarget)[this.type](this._options).data(this.type);return this.timeout&&clearTimeout(this.timeout),self.options.delay&&self.options.delay.hide?(self.hoverState="out",this.timeout=setTimeout(function(){"out"==self.hoverState&&self.hide()},self.options.delay.hide),void 0):self.hide()},show:function(){var $tip,inside,pos,actualWidth,actualHeight,placement,tp;if(this.hasContent()&&this.enabled){switch($tip=this.tip(),this.setContent(),this.options.animation&&$tip.addClass("fade"),placement="function"==typeof this.options.placement?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placement,inside=/in/.test(placement),$tip.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),pos=this.getPosition(inside),actualWidth=$tip[0].offsetWidth,actualHeight=$tip[0].offsetHeight,inside?placement.split(" ")[1]:placement){case"bottom":tp={top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2};break;case"top":tp={top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2};break;case"left":tp={top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth};break;case"right":tp={top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width}}$tip.offset(tp).addClass(placement).addClass("in")}},setContent:function(){var $tip=this.tip(),title=this.getTitle();$tip.find(".tooltip-inner")[this.options.html?"html":"text"](title),$tip.removeClass("fade in top bottom left right")},hide:function(){function removeWithAnimation(){var timeout=setTimeout(function(){$tip.off($.support.transition.end).detach()},500);$tip.one($.support.transition.end,function(){clearTimeout(timeout),$tip.detach()})}var $tip=this.tip();return $tip.removeClass("in"),$.support.transition&&this.$tip.hasClass("fade")?removeWithAnimation():$tip.detach(),this},fixTitle:function(){var $e=this.$element;($e.attr("title")||"string"!=typeof $e.attr("data-original-title"))&&$e.attr("data-original-title",$e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(inside){return $.extend({},inside?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var title,$e=this.$element,o=this.options;return title=$e.attr("data-original-title")||("function"==typeof o.title?o.title.call($e[0]):o.title)},tip:function(){return this.$tip=this.$tip||$(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(e){var self=$(e.currentTarget)[this.type](this._options).data(this.type);self[self.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var old=$.fn.tooltip;$.fn.tooltip=function(option){return this.each(function(){var $this=$(this),data=$this.data("tooltip"),options="object"==typeof option&&option;data||$this.data("tooltip",data=new Tooltip(this,options)),"string"==typeof option&&data[option]()})},$.fn.tooltip.Constructor=Tooltip,$.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:!1},$.fn.tooltip.noConflict=function(){return $.fn.tooltip=old,this}}(window.jQuery),!function($){"use strict";var Popover=function(element,options){this.init("popover",element,options)};Popover.prototype=$.extend({},$.fn.tooltip.Constructor.prototype,{constructor:Popover,setContent:function(){var $tip=this.tip(),title=this.getTitle(),content=this.getContent();$tip.find(".popover-title")[this.options.html?"html":"text"](title),$tip.find(".popover-content")[this.options.html?"html":"text"](content),$tip.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var content,$e=this.$element,o=this.options;return content=$e.attr("data-content")||("function"==typeof o.content?o.content.call($e[0]):o.content)},tip:function(){return this.$tip||(this.$tip=$(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var old=$.fn.popover;$.fn.popover=function(option){return this.each(function(){var $this=$(this),data=$this.data("popover"),options="object"==typeof option&&option;data||$this.data("popover",data=new Popover(this,options)),"string"==typeof option&&data[option]()})},$.fn.popover.Constructor=Popover,$.fn.popover.defaults=$.extend({},$.fn.tooltip.defaults,{placement:"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"></div></div></div>'}),$.fn.popover.noConflict=function(){return $.fn.popover=old,this}}(window.jQuery),!function($){"use strict";function ScrollSpy(element,options){var href,process=$.proxy(this.process,this),$element=$(element).is("body")?$(window):$(element);this.options=$.extend({},$.fn.scrollspy.defaults,options),this.$scrollElement=$element.on("scroll.scroll-spy.data-api",process),this.selector=(this.options.target||(href=$(element).attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=$("body"),this.refresh(),this.process()}ScrollSpy.prototype={constructor:ScrollSpy,refresh:function(){var $targets,self=this;this.offsets=$([]),this.targets=$([]),$targets=this.$body.find(this.selector).map(function(){var $el=$(this),href=$el.data("target")||$el.attr("href"),$href=/^#\w/.test(href)&&$(href);return $href&&$href.length&&[[$href.position().top+self.$scrollElement.scrollTop(),href]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){self.offsets.push(this[0]),self.targets.push(this[1])})},process:function(){var i,scrollTop=this.$scrollElement.scrollTop()+this.options.offset,scrollHeight=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,maxScroll=scrollHeight-this.$scrollElement.height(),offsets=this.offsets,targets=this.targets,activeTarget=this.activeTarget;if(scrollTop>=maxScroll)return activeTarget!=(i=targets.last()[0])&&this.activate(i);for(i=offsets.length;i--;)activeTarget!=targets[i]&&scrollTop>=offsets[i]&&(!offsets[i+1]||offsets[i+1]>=scrollTop)&&this.activate(targets[i])},activate:function(target){var active,selector;this.activeTarget=target,$(this.selector).parent(".active").removeClass("active"),selector=this.selector+'[data-target="'+target+'"],'+this.selector+'[href="'+target+'"]',active=$(selector).parent("li").addClass("active"),active.parent(".dropdown-menu").length&&(active=active.closest("li.dropdown").addClass("active")),active.trigger("activate")}};var old=$.fn.scrollspy;$.fn.scrollspy=function(option){return this.each(function(){var $this=$(this),data=$this.data("scrollspy"),options="object"==typeof option&&option;data||$this.data("scrollspy",data=new ScrollSpy(this,options)),"string"==typeof option&&data[option]()})},$.fn.scrollspy.Constructor=ScrollSpy,$.fn.scrollspy.defaults={offset:10},$.fn.scrollspy.noConflict=function(){return $.fn.scrollspy=old,this},$(window).on("load",function(){$('[data-spy="scroll"]').each(function(){var $spy=$(this);$spy.scrollspy($spy.data())})})}(window.jQuery),!function($){"use strict";var Tab=function(element){this.element=$(element)};Tab.prototype={constructor:Tab,show:function(){var previous,$target,e,$this=this.element,$ul=$this.closest("ul:not(.dropdown-menu)"),selector=$this.attr("data-target");selector||(selector=$this.attr("href"),selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"")),$this.parent("li").hasClass("active")||(previous=$ul.find(".active:last a")[0],e=$.Event("show",{relatedTarget:previous}),$this.trigger(e),e.isDefaultPrevented()||($target=$(selector),this.activate($this.parent("li"),$ul),this.activate($target,$target.parent(),function(){$this.trigger({type:"shown",relatedTarget:previous})})))},activate:function(element,container,callback){function next(){$active.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),element.addClass("active"),transition?(element[0].offsetWidth,element.addClass("in")):element.removeClass("fade"),element.parent(".dropdown-menu")&&element.closest("li.dropdown").addClass("active"),callback&&callback()}var $active=container.find("> .active"),transition=callback&&$.support.transition&&$active.hasClass("fade");transition?$active.one($.support.transition.end,next):next(),$active.removeClass("in")}};var old=$.fn.tab;$.fn.tab=function(option){return this.each(function(){var $this=$(this),data=$this.data("tab");data||$this.data("tab",data=new Tab(this)),"string"==typeof option&&data[option]()})},$.fn.tab.Constructor=Tab,$.fn.tab.noConflict=function(){return $.fn.tab=old,this},$(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(e){e.preventDefault(),$(this).tab("show")})}(window.jQuery),!function($){"use strict";var Typeahead=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.typeahead.defaults,options),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.source=this.options.source,this.$menu=$(this.options.menu),this.shown=!1,this.listen()};Typeahead.prototype={constructor:Typeahead,select:function(){var val=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(val)).change(),this.hide()},updater:function(item){return item},show:function(){var pos=$.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:pos.top+pos.height,left:pos.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(){var items;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(items=$.isFunction(this.source)?this.source(this.query,$.proxy(this.process,this)):this.source,items?this.process(items):this)},process:function(items){var that=this;return items=$.grep(items,function(item){return that.matcher(item)}),items=this.sorter(items),items.length?this.render(items.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(item){return~item.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(items){for(var item,beginswith=[],caseSensitive=[],caseInsensitive=[];item=items.shift();)item.toLowerCase().indexOf(this.query.toLowerCase())?~item.indexOf(this.query)?caseSensitive.push(item):caseInsensitive.push(item):beginswith.push(item);return beginswith.concat(caseSensitive,caseInsensitive)},highlighter:function(item){var query=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return item.replace(RegExp("("+query+")","ig"),function($1,match){return"<strong>"+match+"</strong>"})},render:function(items){var that=this;return items=$(items).map(function(i,item){return i=$(that.options.item).attr("data-value",item),i.find("a").html(that.highlighter(item)),i[0]}),items.first().addClass("active"),this.$menu.html(items),this},next:function(){var active=this.$menu.find(".active").removeClass("active"),next=active.next();next.length||(next=$(this.$menu.find("li")[0])),next.addClass("active")},prev:function(){var active=this.$menu.find(".active").removeClass("active"),prev=active.prev();prev.length||(prev=this.$menu.find("li").last()),prev.addClass("active")},listen:function(){this.$element.on("blur",$.proxy(this.blur,this)).on("keypress",$.proxy(this.keypress,this)).on("keyup",$.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",$.proxy(this.keydown,this)),this.$menu.on("click",$.proxy(this.click,this)).on("mouseenter","li",$.proxy(this.mouseenter,this))},eventSupported:function(eventName){var isSupported=eventName in this.$element;return isSupported||(this.$element.setAttribute(eventName,"return;"),isSupported="function"==typeof this.$element[eventName]),isSupported},move:function(e){if(this.shown){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(e){this.suppressKeyPressRepeat=~$.inArray(e.keyCode,[40,38,9,13,27]),this.move(e)},keypress:function(e){this.suppressKeyPressRepeat||this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18: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(){var that=this;setTimeout(function(){that.hide()},150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(e){this.$menu.find(".active").removeClass("active"),$(e.currentTarget).addClass("active")}};var old=$.fn.typeahead;$.fn.typeahead=function(option){return this.each(function(){var $this=$(this),data=$this.data("typeahead"),options="object"==typeof option&&option;data||$this.data("typeahead",data=new Typeahead(this,options)),"string"==typeof option&&data[option]()})},$.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},$.fn.typeahead.Constructor=Typeahead,$.fn.typeahead.noConflict=function(){return $.fn.typeahead=old,this},$(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(e){var $this=$(this);$this.data("typeahead")||(e.preventDefault(),$this.typeahead($this.data()))})}(window.jQuery),!function($){"use strict";var Affix=function(element,options){this.options=$.extend({},$.fn.affix.defaults,options),this.$window=$(window).on("scroll.affix.data-api",$.proxy(this.checkPosition,this)).on("click.affix.data-api",$.proxy(function(){setTimeout($.proxy(this.checkPosition,this),1)},this)),this.$element=$(element),this.checkPosition()};Affix.prototype.checkPosition=function(){if(this.$element.is(":visible")){var affix,scrollHeight=$(document).height(),scrollTop=this.$window.scrollTop(),position=this.$element.offset(),offset=this.options.offset,offsetBottom=offset.bottom,offsetTop=offset.top,reset="affix affix-top affix-bottom";"object"!=typeof offset&&(offsetBottom=offsetTop=offset),"function"==typeof offsetTop&&(offsetTop=offset.top()),"function"==typeof offsetBottom&&(offsetBottom=offset.bottom()),affix=null!=this.unpin&&scrollTop+this.unpin<=position.top?!1:null!=offsetBottom&&position.top+this.$element.height()>=scrollHeight-offsetBottom?"bottom":null!=offsetTop&&offsetTop>=scrollTop?"top":!1,this.affixed!==affix&&(this.affixed=affix,this.unpin="bottom"==affix?position.top-scrollTop:null,this.$element.removeClass(reset).addClass("affix"+(affix?"-"+affix:"")))}};var old=$.fn.affix;$.fn.affix=function(option){return this.each(function(){var $this=$(this),data=$this.data("affix"),options="object"==typeof option&&option;data||$this.data("affix",data=new Affix(this,options)),"string"==typeof option&&data[option]()})},$.fn.affix.Constructor=Affix,$.fn.affix.defaults={offset:0},$.fn.affix.noConflict=function(){return $.fn.affix=old,this},$(window).on("load",function(){$('[data-spy="affix"]').each(function(){var $spy=$(this),data=$spy.data();data.offset=data.offset||{},data.offsetBottom&&(data.offset.bottom=data.offsetBottom),data.offsetTop&&(data.offset.top=data.offsetTop),$spy.affix(data)})})}(window.jQuery);
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$(document).ready(function(){
|
2
|
+
$("#posts img").each(function(i){
|
3
|
+
// adds a caption to the image with the content of the alt tag
|
4
|
+
if ($(this).attr("alt").length) {
|
5
|
+
$(this).after("<div class=\"image-footnote\">" + $(this).attr("alt") + "</div>");
|
6
|
+
}
|
7
|
+
// resizes the images and takes it out of the borders of the body div if it is big enough
|
8
|
+
if($(this)){
|
9
|
+
// okay this is really complicated because of the browser scaling and stuff. Will come back to this
|
10
|
+
}
|
11
|
+
});
|
12
|
+
});
|
@@ -0,0 +1,14 @@
|
|
1
|
+
function read_later(loc) {
|
2
|
+
var d = document,
|
3
|
+
z = d.createElement('scr' + 'ipt'),
|
4
|
+
b = d.body,
|
5
|
+
l = loc;
|
6
|
+
try {
|
7
|
+
if (!b) throw (0);
|
8
|
+
d.title = '(Saving...) ' + d.title;
|
9
|
+
z.setAttribute('src', 'http://www.instapaper.com/j/DxQGd0EMnnvL?u=' + encodeURIComponent(l) + '&t=' + (new Date().getTime()));
|
10
|
+
b.appendChild(z);
|
11
|
+
} catch (e) {
|
12
|
+
alert('Please wait until the page has loaded.');
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<header>
|
2
|
+
<h1><%= @params[:page_name] %></h1>
|
3
|
+
</header>
|
4
|
+
|
5
|
+
<!-- Article List -->
|
6
|
+
<section id="articles">
|
7
|
+
<ol>
|
8
|
+
<% for @article in @articles %>
|
9
|
+
<li>
|
10
|
+
<time><%= @article.date %></time>
|
11
|
+
<section class="title">
|
12
|
+
<a href="<%= @article.path %>"><%= @article.title %></a>
|
13
|
+
<span><%= @article.category %></span>
|
14
|
+
</section>
|
15
|
+
</li>
|
16
|
+
<% end %>
|
17
|
+
</ol>
|
18
|
+
</section>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<header>
|
2
|
+
<h1><%= @article.title %></h1>
|
3
|
+
</header>
|
4
|
+
|
5
|
+
<article>
|
6
|
+
<section class="post-details">
|
7
|
+
<time><%= @article.date %></time> •
|
8
|
+
<!-- <a href="<%= @article.path %>">Permalink</a> • -->
|
9
|
+
<a href="javascript:void(0)" onclick="read_later('<%= @article.path %>');">Read Later</a>
|
10
|
+
</section>
|
11
|
+
<section>
|
12
|
+
<%= @article.body %>
|
13
|
+
</section>
|
14
|
+
</article>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<header>
|
2
|
+
<h1><%= @params[:page_name] %></h1>
|
3
|
+
</header>
|
4
|
+
|
5
|
+
<!-- Article List -->
|
6
|
+
<section id="articles">
|
7
|
+
<ol>
|
8
|
+
<% for @article in @articles %>
|
9
|
+
<li>
|
10
|
+
<time><%= @article.date %></time>
|
11
|
+
<section class="title">
|
12
|
+
<a href="<%= @article.path %>"><%= @article.title %></a>
|
13
|
+
</section>
|
14
|
+
</li>
|
15
|
+
<% end %>
|
16
|
+
</ol>
|
17
|
+
</section>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<!-- Article List -->
|
2
|
+
<section id="articles">
|
3
|
+
<ol>
|
4
|
+
<% for @article in @articles %>
|
5
|
+
<li>
|
6
|
+
<time><%= @article.date %></time>
|
7
|
+
<section class="title">
|
8
|
+
<a href="<%= @article.path %>"><%= @article.title %></a>
|
9
|
+
<span><%= @article.category %></span>
|
10
|
+
</section>
|
11
|
+
</li>
|
12
|
+
<% end %>
|
13
|
+
</ol>
|
14
|
+
</section>
|
15
|
+
|
16
|
+
<!-- Pagination -->
|
17
|
+
<div id="pagination">
|
18
|
+
<div>
|
19
|
+
<% if @params[:page_forward] %>
|
20
|
+
<a href="<%= @params[:page_forward] %>">← Previous articles</a>
|
21
|
+
<% end %>
|
22
|
+
</div>
|
23
|
+
<div style="float:right;">
|
24
|
+
<% if @params[:page_back] %>
|
25
|
+
<a href="<%= @params[:page_back] %>">Newer articles →</a>
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
</div>
|
@@ -0,0 +1,141 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title><%= @params[:page_title] %></title>
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
<meta name="description" content="">
|
8
|
+
<% if !@config[:google_webmaster].empty? %>
|
9
|
+
<meta name="google-site-verification" content="<%= @config[:google_webmaster] %>" />
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<script type="text/javascript" src="//use.typekit.net/xgg5zca.js"></script>
|
13
|
+
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
|
14
|
+
|
15
|
+
<link href="<%= @theme_root %>/css/bootstrap.css" rel="stylesheet">
|
16
|
+
<link href="<%= @theme_root %>/css/app.css" rel="stylesheet">
|
17
|
+
<link href="<%= @theme_root %>/css/bootstrap-responsive.css" rel="stylesheet">
|
18
|
+
|
19
|
+
<!-- [if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
20
|
+
|
21
|
+
<!-- Fav and touch icons -->
|
22
|
+
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="<%= @theme_root %>/img/apple-icon-144.png">
|
23
|
+
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="<%= @theme_root %>/img/apple-icon-114.png">
|
24
|
+
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="<%= @theme_root %>/img/apple-icon-72.png">
|
25
|
+
<link rel="apple-touch-icon-precomposed" sizes="57x57" href="<%= @theme_root %>/img/apple-icon-57.png">
|
26
|
+
<link rel="shortcut icon" href="/images/favicon.png">
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<!-- HEADER -->
|
31
|
+
<% if @params[:page_name] == @config[:root] %>
|
32
|
+
<div id="header" class="wrapper">
|
33
|
+
<div class="container-fluid content-strip">
|
34
|
+
<header>
|
35
|
+
<p id="header-image"><a class="logo" href="/"><img src="/images/<%= @config[:header_image] %>" /></a></p>
|
36
|
+
<p id="blog-title"><a href="/" class="blog-title subtle"><%= @config[:title] %></a></p>
|
37
|
+
</header>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<% else %>
|
41
|
+
<div id="header" class="wrapper">
|
42
|
+
<div class="container-fluid content-strip">
|
43
|
+
<header>
|
44
|
+
<p id="header-image"><a href="/" class="logo" title="<%= @config[:title] %> <%= @config[:title_delimiter] %> home">
|
45
|
+
<img src="/images/<%= @config[:header_image_small] %>" /></a>
|
46
|
+
</p>
|
47
|
+
</header>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
<% end %>
|
51
|
+
|
52
|
+
<!-- MAIN CONTENT -->
|
53
|
+
<div id="content" class="wrapper">
|
54
|
+
<div class="container-fluid content-strip">
|
55
|
+
<div class="row-fluid">
|
56
|
+
<div class="posts">
|
57
|
+
<%= @content %>
|
58
|
+
</div>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
|
63
|
+
<!-- CATEGORIES -->
|
64
|
+
<div id="navigation" class="wrapper navigation-wrapper">
|
65
|
+
<div class="container-fluid content-strip">
|
66
|
+
<div class="row-fluid">
|
67
|
+
<div class="span3">
|
68
|
+
<h4>Pages</h4>
|
69
|
+
<ul>
|
70
|
+
<li><% if @params[:page_name] != @config[:root] %><a href="/">Home</a><% end %></li>
|
71
|
+
<li><a href="/about">About</a></li>
|
72
|
+
<li><a href="/archives">Archives</a></li>
|
73
|
+
</ul>
|
74
|
+
</div>
|
75
|
+
|
76
|
+
<% if @categories %>
|
77
|
+
<div class="span3">
|
78
|
+
<h4>Categories</h4>
|
79
|
+
<section id="categories">
|
80
|
+
<ul>
|
81
|
+
<% for @category in @categories %>
|
82
|
+
<li>
|
83
|
+
<a href="<%= @category[:path] %>"><%= @category[:name] %> (<%= @category[:count] %>)</a>
|
84
|
+
</li>
|
85
|
+
<% end %>
|
86
|
+
</ul>
|
87
|
+
</section>
|
88
|
+
</div>
|
89
|
+
<% end %>
|
90
|
+
|
91
|
+
<div class="span3">
|
92
|
+
<ul>
|
93
|
+
<li><a href="http://twitter.com/nathanbuggia">Twitter</a></li>
|
94
|
+
<li><a href="http://linkedin.com/in/nbuggia">LinkedIn</a></li>
|
95
|
+
<li><a href="https://github.com/nbuggia">GitHub</a></li>
|
96
|
+
<li><a href="http://slideshare.net/nbuggia">Slideshare</a></li>
|
97
|
+
</ul>
|
98
|
+
</div>
|
99
|
+
|
100
|
+
<div class="span3">
|
101
|
+
<ul>
|
102
|
+
<li><a href="/feed.rss">RSS Feed</a></li>
|
103
|
+
</ul>
|
104
|
+
</div>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
</div>
|
108
|
+
|
109
|
+
<!-- FOOTER -->
|
110
|
+
<div id="footer" class="wrapper footer-wrapper">
|
111
|
+
<div class="container-fluid content-strip">
|
112
|
+
<footer class="row-fluid">
|
113
|
+
<p> © 2001-<script>document.write(new Date().getFullYear());</script> •
|
114
|
+
All rights reserved •
|
115
|
+
Powered by <a class="subtle" href="https://github.com/nbuggia/baron-blog">Baron Blog Engine</a></p>
|
116
|
+
</footer>
|
117
|
+
</div>
|
118
|
+
</div>
|
119
|
+
|
120
|
+
<!-- SCRIPTS -->
|
121
|
+
<script src="http://code.jquery.com/jquery-1.8.2.min.js" type="text/javascript" charset="utf-8"></script>
|
122
|
+
<script src="/js/image_alt.js" type="text/javascript" charset="utf-8"></script>
|
123
|
+
<script src="/js/read_later.js" type="text/javascript" charset="utf-8"></script>
|
124
|
+
|
125
|
+
<% if !@config[:google_analytics].empty? %>
|
126
|
+
<script type="text/javascript">
|
127
|
+
|
128
|
+
var _gaq = _gaq || [];
|
129
|
+
_gaq.push(['_setAccount', '<%= @config[:google_analytics] %>']);
|
130
|
+
_gaq.push(['_trackPageview']);
|
131
|
+
|
132
|
+
(function() {
|
133
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
134
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
135
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
136
|
+
})();
|
137
|
+
|
138
|
+
</script>
|
139
|
+
<% end %>
|
140
|
+
</body>
|
141
|
+
</html>
|
data/spec/spec_helper.rb
CHANGED
@@ -12,7 +12,7 @@ def load_config
|
|
12
12
|
:permalink_prefix => '',
|
13
13
|
:permalink_date_format => :year_month_day_date, # :year_date, :year_month_date, :year_month_day_date, :no_date
|
14
14
|
:article_max => 5,
|
15
|
-
:theme => '
|
15
|
+
:theme => 'typography',
|
16
16
|
:sample_data_path => SAMPLE_DATA_PATH,
|
17
17
|
:google_analytics => GOOGLE_ANALYTICS,
|
18
18
|
:google_webmaster => GOOGLE_WEBMASTER)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -62,34 +62,43 @@ files:
|
|
62
62
|
- spec/baron_article_spec.rb
|
63
63
|
- spec/baron_blog_engine_spec.rb
|
64
64
|
- spec/baron_spec.rb
|
65
|
+
- spec/sample_data/.gitignore
|
65
66
|
- spec/sample_data/Gemfile
|
67
|
+
- spec/sample_data/README.md
|
66
68
|
- spec/sample_data/Rakefile
|
67
|
-
- spec/sample_data/articles/
|
68
|
-
- spec/sample_data/articles/
|
69
|
-
- spec/sample_data/articles/
|
69
|
+
- spec/sample_data/articles/favorites/1916-01-01-the-road-not-taken.txt
|
70
|
+
- spec/sample_data/articles/north of boston/1914-01-01-the-pasture.txt
|
71
|
+
- spec/sample_data/articles/north of boston/1914-01-02-mending-wall.txt
|
72
|
+
- spec/sample_data/articles/north of boston/1914-01-03-the-death-of-the-hired-man.txt
|
73
|
+
- spec/sample_data/articles/north of boston/1914-01-04-the-mountain.txt
|
74
|
+
- spec/sample_data/articles/north of boston/1914-01-05-A-Hundred-callers.txt
|
75
|
+
- spec/sample_data/articles/other authors/1909-01-02-If.txt
|
70
76
|
- spec/sample_data/config.ru
|
71
|
-
- spec/sample_data/images/
|
72
|
-
- spec/sample_data/images/
|
73
|
-
- spec/sample_data/images/import-csv-file-3.png
|
74
|
-
- spec/sample_data/images/instagram.png
|
77
|
+
- spec/sample_data/images/robert-frost-small.png
|
78
|
+
- spec/sample_data/images/robert-frost.png
|
75
79
|
- spec/sample_data/pages/about.rhtml
|
76
80
|
- spec/sample_data/resources/feed.rss
|
77
81
|
- spec/sample_data/resources/redirects.txt
|
78
82
|
- spec/sample_data/resources/robots.txt
|
79
|
-
- spec/sample_data/themes/
|
80
|
-
- spec/sample_data/themes/
|
81
|
-
- spec/sample_data/themes/
|
82
|
-
- spec/sample_data/themes/
|
83
|
-
- spec/sample_data/themes/
|
84
|
-
- spec/sample_data/themes/
|
85
|
-
- spec/sample_data/themes/
|
86
|
-
- spec/sample_data/themes/
|
87
|
-
- spec/sample_data/themes/
|
88
|
-
- spec/sample_data/themes/
|
89
|
-
- spec/sample_data/themes/
|
90
|
-
- spec/sample_data/themes/
|
91
|
-
- spec/sample_data/themes/
|
92
|
-
- spec/sample_data/themes/
|
83
|
+
- spec/sample_data/themes/typography/css/app.css
|
84
|
+
- spec/sample_data/themes/typography/css/bootstrap-responsive.css
|
85
|
+
- spec/sample_data/themes/typography/css/bootstrap-responsive.min.css
|
86
|
+
- spec/sample_data/themes/typography/css/bootstrap.css
|
87
|
+
- spec/sample_data/themes/typography/css/bootstrap.min.css
|
88
|
+
- spec/sample_data/themes/typography/img/github.png
|
89
|
+
- spec/sample_data/themes/typography/img/glyphicons-halflings-white.png
|
90
|
+
- spec/sample_data/themes/typography/img/glyphicons-halflings.png
|
91
|
+
- spec/sample_data/themes/typography/img/instagram.png
|
92
|
+
- spec/sample_data/themes/typography/js/bootstrap.js
|
93
|
+
- spec/sample_data/themes/typography/js/bootstrap.min.js
|
94
|
+
- spec/sample_data/themes/typography/js/image_alt.js
|
95
|
+
- spec/sample_data/themes/typography/js/read_later.js
|
96
|
+
- spec/sample_data/themes/typography/templates/archives.rhtml
|
97
|
+
- spec/sample_data/themes/typography/templates/article.rhtml
|
98
|
+
- spec/sample_data/themes/typography/templates/category.rhtml
|
99
|
+
- spec/sample_data/themes/typography/templates/error.rhtml
|
100
|
+
- spec/sample_data/themes/typography/templates/home.rhtml
|
101
|
+
- spec/sample_data/themes/typography/templates/layout.rhtml
|
93
102
|
- spec/spec_helper.rb
|
94
103
|
homepage: https://github.com/nbuggia/baron-blog-engine-gem
|
95
104
|
licenses: []
|
@@ -1,11 +0,0 @@
|
|
1
|
-
title: Sample Post
|
2
|
-
|
3
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mauris justo, lobortis et posuere eget, condimentum a sem. In hac habitasse platea dictumst. Vestibulum congue commodo blandit. Quisque lacinia tempus elit quis pulvinar. Pellentesque sit amet pellentesque arcu. Nulla facilisi. Nam aliquet metus sit amet mi pulvinar ornare. Integer et mi non nunc scelerisque tristique. Etiam mattis malesuada rutrum. Fusce eu erat quis neque lacinia mattis sit amet at leo.
|
4
|
-
|
5
|
-
Maecenas sit amet consequat lorem. Praesent id risus quis eros molestie interdum nec nec lacus. Cras ultrices arcu sit amet urna mollis in sagittis nibh auctor. Ut non sem at ipsum commodo gravida in eu est. Suspendisse pellentesque euismod mauris, vitae aliquet lectus condimentum at. Praesent nec augue vitae turpis sollicitudin gravida. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus volutpat malesuada lectus, vel faucibus velit accumsan at. Cras rhoncus vulputate sem, et pharetra ipsum rutrum sed. Fusce nibh elit, dapibus et posuere eget, tempus sagittis orci. Nunc in nisi id orci facilisis imperdiet sit amet fringilla orci. Ut scelerisque est ut libero posuere nec accumsan lectus sollicitudin.
|
6
|
-
|
7
|
-
Morbi euismod, metus nec rhoncus pulvinar, felis mi ultricies turpis, vitae cursus mi eros eu metus. Morbi condimentum pretium sem, non congue sem ultricies eget. Sed nisi libero, tempor a viverra id, iaculis suscipit ante. Suspendisse potenti. Morbi faucibus fringilla fringilla. Fusce eget orci turpis. Phasellus eleifend lectus sit amet elit eleifend eget venenatis felis fermentum.
|
8
|
-
|
9
|
-
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce eu sodales est. Donec lobortis tristique luctus. Integer pharetra congue nisi vel iaculis. Sed convallis convallis tristique. Aliquam erat volutpat. Maecenas sed volutpat felis. Duis sollicitudin lorem vel felis molestie placerat. Nulla nec lacus lorem, eu sollicitudin lectus. Suspendisse quis ipsum vitae erat rutrum suscipit sit amet non justo. Praesent dignissim pulvinar facilisis. Vivamus vel risus id magna lacinia euismod. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi ultricies nisi sit amet turpis suscipit rhoncus aliquam eros luctus.
|
10
|
-
|
11
|
-
Nunc sit amet leo lectus, a eleifend lectus. Nam pulvinar, purus sed dapibus vestibulum, ligula ligula volutpat purus, at blandit enim elit ut risus. Ut rhoncus ultrices magna, id dignissim ligula pharetra vulputate. Ut rutrum pulvinar urna, quis egestas erat facilisis ac. Integer volutpat euismod accumsan. Donec cursus arcu eget sem bibendum ullamcorper. Quisque enim justo, pharetra vel porta vitae, hendrerit id justo. Sed semper congue dapibus. Fusce suscipit iaculis sapien, vel facilisis justo viverra a. Pellentesque augue turpis, imperdiet ut volutpat eu, viverra quis orci.
|
@@ -1,26 +0,0 @@
|
|
1
|
-
title: The Road Not Taken
|
2
|
-
author: Robert Frost
|
3
|
-
|
4
|
-
Two roads diverged in a yellow wood,
|
5
|
-
And sorry I could not travel both
|
6
|
-
And be one traveler, long I stood
|
7
|
-
And looked down one as far as I could
|
8
|
-
To where it bent in the undergrowth;
|
9
|
-
|
10
|
-
Then took the other, as just as fair,
|
11
|
-
And having perhaps the better claim,
|
12
|
-
Because it was grassy and wanted wear;
|
13
|
-
Though as for that the passing there
|
14
|
-
Had worn them really about the same,
|
15
|
-
|
16
|
-
And both that morning equally lay
|
17
|
-
In leaves no step had trodden black.
|
18
|
-
Oh, I kept the first for another day!
|
19
|
-
Yet knowing how way leads on to way,
|
20
|
-
I doubted if I should ever come back.
|
21
|
-
|
22
|
-
I shall be telling this with a sigh
|
23
|
-
Somewhere ages and ages hence:
|
24
|
-
Two roads diverged in a wood, and I –
|
25
|
-
I took the one less traveled by,
|
26
|
-
And that has made all the difference.
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,27 +0,0 @@
|
|
1
|
-
body {padding-top:20px; padding-bottom: 40px; font-family:'Helvetica Neue',sans-serif; font-size:18px; line-height:1.61em; color: #444;}
|
2
|
-
h1, h2, h3 {font-family: 'Helvetica Neue', serif; padding-top:1em; margin-top:0;}
|
3
|
-
h1 {font-size: 1.8em; color: #444; text-align: center;}
|
4
|
-
h2 {color: #777; font-size: 1.4em;}
|
5
|
-
h3 {text-transform: uppercase; font-size:0.9em;}
|
6
|
-
|
7
|
-
post li {padding-top:0.3em; padding-bottom:0.3em;}
|
8
|
-
post img {margin-left:auto; margin-right:auto; display:block; border-radius:5px;}
|
9
|
-
post .image-footnote {text-align:right; font-size:0.8em; line-height:1.3em; color:#888;}
|
10
|
-
|
11
|
-
.golden-ratio-container {margin:0 auto; max-width:34em;}
|
12
|
-
.post-details {font-size:0.8em; color:#888; padding-top:0.7em; padding-bottom:1.3em; text-align:center;}
|
13
|
-
|
14
|
-
/* Header */
|
15
|
-
|
16
|
-
.masthead-image {display:block; margin:0 auto;}
|
17
|
-
.vcenter {vertical-align:middle;}
|
18
|
-
.css-is-dumb {height:110px; vertical-align:middle; display:inline-block;}
|
19
|
-
#blog-header a, a:visited {color:#000;}
|
20
|
-
.blog-title {font-size:1.2em;}
|
21
|
-
.nav-links {font-size:0.8em; text-align:right;}
|
22
|
-
|
23
|
-
/* Sidebar */
|
24
|
-
|
25
|
-
.sidebar-nav img {padding-top:1em;}
|
26
|
-
.sidebar-nav li {list-style-type:none; padding-top:0em; padding-bottom:0em;}
|
27
|
-
.sidebar-nav ul {margin:0;}
|
Binary file
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<section id="archive">
|
2
|
-
<header>
|
3
|
-
<h1><%= @params[:page_name] %></h1>
|
4
|
-
</header>
|
5
|
-
<section id="archive-listing">
|
6
|
-
<% for @article in @articles %>
|
7
|
-
<div>
|
8
|
-
<div><a href="<%= @article.path %>"><%= @article.title %></a></div>
|
9
|
-
<div><%= @article.date %></div>
|
10
|
-
<div><%= @article.category %>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
</section>
|
14
|
-
</section>
|