├── .gitignore ├── .nojekyll ├── Gruntfile.js ├── README.md ├── assets ├── global.min.css ├── global.min.js └── temp │ ├── bootstrap.js │ ├── bootstrap.needed.css │ ├── script.js │ └── taboverride.js ├── css ├── bootstrap.css ├── screen.css └── screen.styl ├── img ├── data.png ├── furley_bg.png ├── html.png └── jade.png ├── index.html ├── index.jade ├── js ├── bootstrap.js ├── jade.js ├── jquery.js ├── script.coffee ├── script.js └── taboverride.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/naltatis/jade-syntax-docs/a8b76f485f42b818a04e5966c939063104869478/.nojekyll -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.initConfig({ 3 | coffee: { 4 | compile: { 5 | files: { 6 | "js/script.js": "js/script.coffee" 7 | } 8 | } 9 | }, 10 | jade: { 11 | compile: { 12 | files: { 13 | "index.html": "index.jade" 14 | } 15 | } 16 | }, 17 | stylus: { 18 | compile: { 19 | options: { 20 | compress: true, 21 | paths: ['node_modules'] 22 | }, 23 | files: { 24 | 'css/screen.css': 'css/screen.styl' 25 | } 26 | } 27 | }, 28 | uglify: { 29 | bootstrap: { 30 | src: 'js/bootstrap.js', 31 | dest: 'assets/temp/bootstrap.js' 32 | }, 33 | script: { 34 | src: 'js/script.js', 35 | dest: 'assets/temp/script.js' 36 | }, 37 | tab: { 38 | src: 'js/taboverride.js', 39 | dest: 'assets/temp/taboverride.js' 40 | } 41 | }, 42 | concat: { 43 | dist: { 44 | src: ['js/jquery.js', 'js/jade.js', 'assets/temp/*.js'], 45 | dest: 'assets/global.min.js' 46 | } 47 | }, 48 | cssmin: { 49 | compile: { 50 | files: { 51 | "assets/global.min.css": ["assets/temp/bootstrap.needed.css", "css/screen.css"] 52 | } 53 | } 54 | }, 55 | connect: { 56 | server: { 57 | options: { 58 | port: 9000, 59 | base: './' 60 | } 61 | } 62 | }, 63 | watch: { 64 | files: ['js/server.coffee', 'css/*', 'index.jade'], 65 | tasks: 'compile' 66 | }, 67 | uncss: { 68 | dist: { 69 | options: { 70 | stylesheets: ['css/bootstrap.css'] 71 | }, 72 | files: { 73 | 'assets/temp/bootstrap.needed.css': ['index.html'] 74 | } 75 | } 76 | }, 77 | inline: { 78 | main: { 79 | options:{ 80 | tag: '' 81 | }, 82 | files: { 83 | src: ['index.html'] 84 | } 85 | } 86 | } 87 | }); 88 | 89 | grunt.loadNpmTasks('grunt-contrib-coffee'); 90 | grunt.loadNpmTasks('grunt-contrib-connect'); 91 | grunt.loadNpmTasks('grunt-contrib-concat'); 92 | grunt.loadNpmTasks('grunt-contrib-jade'); 93 | grunt.loadNpmTasks('grunt-contrib-cssmin'); 94 | grunt.loadNpmTasks('grunt-contrib-stylus'); 95 | grunt.loadNpmTasks('grunt-contrib-watch'); 96 | grunt.loadNpmTasks('grunt-contrib-uglify'); 97 | grunt.loadNpmTasks('grunt-uncss'); 98 | grunt.loadNpmTasks('grunt-inline'); 99 | 100 | grunt.registerTask('default', ['compile', 'connect', 'watch']); 101 | grunt.registerTask('compile', ['coffee', 'jade', 'uncss', 'stylus', 'uglify', 'cssmin', 'concat', 'inline']); 102 | }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jade Template Syntax by Example 2 | 3 | -------------------------------------------------------------------------------- /assets/global.min.css: -------------------------------------------------------------------------------- 1 | footer,header,section{display:block}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}textarea{margin:0;font-size:100%;vertical-align:middle}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}body{margin:0;font-family:Ubuntu,Tahoma,sans-serif;font-size:13px;line-height:18px;color:#333;background-color:#fff}a{color:#dd4814;text-decoration:none}a:hover{color:#97310e;text-decoration:underline}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*=span]{float:left;margin-left:20px}.container{width:940px}.span6{width:460px}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:""}.container:after{clear:both}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}h1,h2{margin:0;font-family:inherit;font-weight:700;color:inherit;text-rendering:optimizelegibility}h1 small{font-weight:400;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #f5f5f5}ul{padding:0;margin:0 0 9px 25px}ul{list-style:disc}li{line-height:18px}hr{margin:18px 0;border:0;border-top:1px solid #f5f5f5;border-bottom:1px solid #fff}strong{font-weight:700}small{font-size:100%}textarea{font-size:13px;font-weight:400;line-height:18px}textarea{font-family:Ubuntu,Tahoma,sans-serif}textarea{display:inline-block;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555}textarea{width:210px}textarea{height:auto}textarea{background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}textarea{margin-left:0}textarea[readonly]{cursor:not-allowed;background-color:#f5f5f5;border-color:#ddd}:-moz-placeholder{color:#999}:-ms-input-placeholder{color:#999}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}.nav{margin-left:0;margin-bottom:18px;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#f5f5f5}.nav-pills{*zoom:1}.nav-pills:before,.nav-pills:after{display:table;content:""}.nav-pills:after{clear:both}.nav-pills>li{float:left}.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.navbar-search .search-query:-moz-placeholder{color:#fff}.navbar-search .search-query:-ms-input-placeholder{color:#fff}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}body{padding:60px 0 0;background:url(../img/furley_bg.png) center}h1{font-weight:500}.lead{font-size:17px}.lead strong{font-weight:700}.lead a{color:#333;text-decoration:underline}footer{margin-top:20px;padding:10px;text-align:center;background:#f5f5f5;border-top:1px solid #d5d5d5}footer p{display:inline-block;margin:0 20px;vertical-align:top}section{padding:50px 0}section#basics{padding-top:20px}hr{border-color:#e5e5e5}.right{text-align:right}.span6{position:relative}.jadeLabel,.dataLabel,.htmlLabel{-webkit-transition:opacity .4s ease-in 1.5s;-moz-transition:opacity .4s ease-in 1.5s;-o-transition:opacity .4s ease-in 1.5s;-ms-transition:opacity .4s ease-in 1.5s;transition:opacity .4s ease-in 1.5s;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);position:absolute;background-repeat:no-repeat;height:30px}.row.annotate .jadeLabel,.row.annotate .dataLabel,.row.annotate .htmlLabel{opacity:1;-ms-filter:none;filter:none}.jadeLabel{-webkit-transition-delay:1.4s;-moz-transition-delay:1.4s;-o-transition-delay:1.4s;-ms-transition-delay:1.4s;transition-delay:1.4s;right:10%;top:-30px;background-image:url(../img/jade.png);width:132px}.dataLabel{-webkit-transition-delay:1.5s;-moz-transition-delay:1.5s;-o-transition-delay:1.5s;-ms-transition-delay:1.5s;transition-delay:1.5s;right:9%;bottom:-32px;background-image:url(../img/data.png);width:130px}.htmlLabel{-webkit-transition-delay:1.6s;-moz-transition-delay:1.6s;-o-transition-delay:1.6s;-ms-transition-delay:1.6s;transition-delay:1.6s;left:9%;top:-33px;background-image:url(../img/html.png);width:146px}textarea{text-align:left;width:91%;display:inline-block;padding:8.5px;margin:0 0 6px;font-size:15px;line-height:24px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;border-radius:4px;font-family:'Droid Sans Mono',sans-serif;color:#333}textarea.html{cursor:default}textarea.error{color:red}textarea.size1{height:24px}textarea.size2{height:48px}textarea.size3{height:72px}textarea.size4{height:96px}textarea.size5{height:120px}textarea.size6{height:144px}textarea.size7{height:168px}textarea.size8{height:192px}textarea.size9{height:216px}.page-header{margin-bottom:0;border:0}.subhead{padding-bottom:0;margin-bottom:30px}.subhead h1{font-size:40px;margin-bottom:30px}.subnav{width:100%;height:36px;background-color:#eee;background-repeat:repeat-x;background-image:-moz-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#f5f5f5),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:-ms-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f5f5f5),color-stop(1,#eee));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:-ms-linear-gradient(top,#f5f5f5 0,#eee 100%);background-image:linear-gradient(top,#f5f5f5 0,#eee 100%);border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.subnav .nav{margin-bottom:0}.subnav .nav>li>a{margin:0;padding-top:11px;padding-bottom:11px;border-left:1px solid #f5f5f5;border-right:1px solid #e5e5e5;-webkit-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.subnav .nav>.active>a,.subnav .nav>.active>a:hover{padding-left:13px;color:#777;background-color:#e9e9e9;border-right-color:#ddd;border-left:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.05);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.05);-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.05);box-shadow:inset 0 3px 5px rgba(0,0,0,.05)}.subnav .nav>.active>a .caret,.subnav .nav>.active>a:hover .caret{border-top-color:#777}.subnav .nav>li:first-child>a,.subnav .nav>li:first-child>a:hover{border-left:0;padding-left:12px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.subnav .nav>li:last-child>a{border-right:0}.subnav .dropdown-menu{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}@media (min-width:980px){.subnav-fixed{position:fixed;top:0;left:0;right:0;z-index:1020;border-color:#d5d5d5;border-width:0 0 1px;-webkit-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 5px rgba(0,0,0,.1);box-shadow:inset 0 1px 0 #fff,0 1px 5px rgba(0,0,0,.1)}.subnav-fixed .nav{width:938px;margin:0 auto;padding:0 1px}.subnav .nav>li:first-child>a,.subnav .nav>li:first-child>a:hover{-webkit-border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}} -------------------------------------------------------------------------------- /assets/temp/bootstrap.js: -------------------------------------------------------------------------------- 1 | !function(t){t(function(){"use strict";t.support.transition=function(){var t=function(){var t,e=document.createElement("bootstrap"),i={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd",transition:"transitionend"};for(t in i)if(void 0!==e.style[t])return i[t]}();return t&&{end:t}}()})}(window.jQuery),!function(t){"use strict";var e='[data-dismiss="alert"]',i=function(i){t(i).on("click",e,this.close)};i.prototype.close=function(e){function i(){n.trigger("closed").remove()}var n,s=t(this),o=s.attr("data-target");o||(o=s.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),n=t(o),e&&e.preventDefault(),n.length||(n=s.hasClass("alert")?s:s.parent()),n.trigger(e=t.Event("close")),e.isDefaultPrevented()||(n.removeClass("in"),t.support.transition&&n.hasClass("fade")?n.on(t.support.transition.end,i):i())},t.fn.alert=function(e){return this.each(function(){var n=t(this),s=n.data("alert");s||n.data("alert",s=new i(this)),"string"==typeof e&&s[e].call(n)})},t.fn.alert.Constructor=i,t(function(){t("body").on("click.alert.data-api",e,i.prototype.close)})}(window.jQuery),!function(t){"use strict";var e=function(e,i){this.$element=t(e),this.options=t.extend({},t.fn.button.defaults,i)};e.prototype.setState=function(t){var e="disabled",i=this.$element,n=i.data(),s=i.is("input")?"val":"html";t+="Text",n.resetText||i.data("resetText",i[s]()),i[s](n[t]||this.options[t]),setTimeout(function(){"loadingText"==t?i.addClass(e).attr(e,e):i.removeClass(e).removeAttr(e)},0)},e.prototype.toggle=function(){var t=this.$element.parent('[data-toggle="buttons-radio"]');t&&t.find(".active").removeClass("active"),this.$element.toggleClass("active")},t.fn.button=function(i){return this.each(function(){var n=t(this),s=n.data("button"),o="object"==typeof i&&i;s||n.data("button",s=new e(this,o)),"toggle"==i?s.toggle():i&&s.setState(i)})},t.fn.button.defaults={loadingText:"loading..."},t.fn.button.Constructor=e,t(function(){t("body").on("click.button.data-api","[data-toggle^=button]",function(e){var i=t(e.target);i.hasClass("btn")||(i=i.closest(".btn")),i.button("toggle")})})}(window.jQuery),!function(t){"use strict";var e=function(e,i){this.$element=t(e),this.options=i,this.options.slide&&this.slide(this.options.slide),"hover"==this.options.pause&&this.$element.on("mouseenter",t.proxy(this.pause,this)).on("mouseleave",t.proxy(this.cycle,this))};e.prototype={cycle:function(e){return e||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},to:function(e){var i=this.$element.find(".active"),n=i.parent().children(),s=n.index(i),o=this;if(!(e>n.length-1||0>e))return this.sliding?this.$element.one("slid",function(){o.to(e)}):s==e?this.pause().cycle():this.slide(e>s?"next":"prev",t(n[e]))},pause:function(t){return t||(this.paused=!0),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(e,i){var n=this.$element.find(".active"),s=i||n[e](),o=this.interval,a="next"==e?"left":"right",r="next"==e?"first":"last",h=this,l=t.Event("slide");if(this.sliding=!0,o&&this.pause(),s=s.length?s:this.$element.find(".item")[r](),!s.hasClass("active")){if(t.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(l),l.isDefaultPrevented())return;s.addClass(e),s[0].offsetWidth,n.addClass(a),s.addClass(a),this.$element.one(t.support.transition.end,function(){s.removeClass([e,a].join(" ")).addClass("active"),n.removeClass(["active",a].join(" ")),h.sliding=!1,setTimeout(function(){h.$element.trigger("slid")},0)})}else{if(this.$element.trigger(l),l.isDefaultPrevented())return;n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return o&&this.cycle(),this}}},t.fn.carousel=function(i){return this.each(function(){var n=t(this),s=n.data("carousel"),o=t.extend({},t.fn.carousel.defaults,"object"==typeof i&&i);s||n.data("carousel",s=new e(this,o)),"number"==typeof i?s.to(i):"string"==typeof i||(i=o.slide)?s[i]():o.interval&&s.cycle()})},t.fn.carousel.defaults={interval:5e3,pause:"hover"},t.fn.carousel.Constructor=e,t(function(){t("body").on("click.carousel.data-api","[data-slide]",function(e){var i,n=t(this),s=t(n.attr("data-target")||(i=n.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"")),o=!s.data("modal")&&t.extend({},s.data(),n.data());s.carousel(o),e.preventDefault()})})}(window.jQuery),!function(t){"use strict";var e=function(e,i){this.$element=t(e),this.options=t.extend({},t.fn.collapse.defaults,i),this.options.parent&&(this.$parent=t(this.options.parent)),this.options.toggle&&this.toggle()};e.prototype={constructor:e,dimension:function(){var t=this.$element.hasClass("width");return t?"width":"height"},show:function(){var e,i,n,s;if(!this.transitioning){if(e=this.dimension(),i=t.camelCase(["scroll",e].join("-")),n=this.$parent&&this.$parent.find("> .accordion-group > .in"),n&&n.length){if(s=n.data("collapse"),s&&s.transitioning)return;n.collapse("hide"),s||n.data("collapse",null)}this.$element[e](0),this.transition("addClass",t.Event("show"),"shown"),this.$element[e](this.$element[0][i])}},hide:function(){var e;this.transitioning||(e=this.dimension(),this.reset(this.$element[e]()),this.transition("removeClass",t.Event("hide"),"hidden"),this.$element[e](0))},reset:function(t){var e=this.dimension();return this.$element.removeClass("collapse")[e](t||"auto")[0].offsetWidth,this.$element[null!==t?"addClass":"removeClass"]("collapse"),this},transition:function(e,i,n){var s=this,o=function(){"show"==i.type&&s.reset(),s.transitioning=0,s.$element.trigger(n)};this.$element.trigger(i),i.isDefaultPrevented()||(this.transitioning=1,this.$element[e]("in"),t.support.transition&&this.$element.hasClass("collapse")?this.$element.one(t.support.transition.end,o):o())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},t.fn.collapse=function(i){return this.each(function(){var n=t(this),s=n.data("collapse"),o="object"==typeof i&&i;s||n.data("collapse",s=new e(this,o)),"string"==typeof i&&s[i]()})},t.fn.collapse.defaults={toggle:!0},t.fn.collapse.Constructor=e,t(function(){t("body").on("click.collapse.data-api","[data-toggle=collapse]",function(e){var i,n=t(this),s=n.attr("data-target")||e.preventDefault()||(i=n.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""),o=t(s).data("collapse")?"toggle":n.data();t(s).collapse(o)})})}(window.jQuery),!function(t){"use strict";function e(){t(i).parent().removeClass("open")}var i='[data-toggle="dropdown"]',n=function(e){var i=t(e).on("click.dropdown.data-api",this.toggle);t("html").on("click.dropdown.data-api",function(){i.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(){var i,n,s,o=t(this);if(!o.is(".disabled, :disabled"))return n=o.attr("data-target"),n||(n=o.attr("href"),n=n&&n.replace(/.*(?=#[^\s]*$)/,"")),i=t(n),i.length||(i=o.parent()),s=i.hasClass("open"),e(),s||i.toggleClass("open"),!1}},t.fn.dropdown=function(e){return this.each(function(){var i=t(this),s=i.data("dropdown");s||i.data("dropdown",s=new n(this)),"string"==typeof e&&s[e].call(i)})},t.fn.dropdown.Constructor=n,t(function(){t("html").on("click.dropdown.data-api",e),t("body").on("click.dropdown",".dropdown form",function(t){t.stopPropagation()}).on("click.dropdown.data-api",i,n.prototype.toggle)})}(window.jQuery),!function(t){"use strict";function e(){var e=this,n=setTimeout(function(){e.$element.off(t.support.transition.end),i.call(e)},500);this.$element.one(t.support.transition.end,function(){clearTimeout(n),i.call(e)})}function i(){this.$element.hide().trigger("hidden"),n.call(this)}function n(e){var i=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var n=t.support.transition&&i;this.$backdrop=t('