ustyle 1.15.3 → 1.16.1

Sign up to get free protection for your applications and to get access to all the features.
data/dist/ustyle.min.js CHANGED
@@ -1 +1 @@
1
- var slice=[].slice,hasProp={}.hasOwnProperty;null==this.Utils&&(this.Utils={modules:[]});var addClass=function(a,b){return removeClass(a,b),a.className+=" "+b+" "},removeClass=function(a,b){var c=new RegExp("(\\s|^)"+b+"(\\s|$)","gi");return a.className=a.className.replace(c,"")},hasClass=function(a,b){return new RegExp("(^| )"+b+"( |$)","gi").test(a.className)},merge=function(){var a,b,c,d,e=arguments[0],f=2<=arguments.length?slice.call(arguments,1):[];for(b=0,c=f.length;b<c;b++){a=f[b];for(d in a)hasProp.call(a,d)&&(e[d]=a[d])}return e},setOptions=function(a,b){return merge({},b,a)},deleteUndefined=function(a){var b,c,d=[];for(b in a)c=a[b],null===c||void 0===c?d.push(delete a[b]):d.push(void 0);return d},transformKey=function(){var a,b,c,d=document.createElement("div"),e=["transform","webkitTransform","OTransform","MozTransform","msTransform"];for(a=0,c=e.length;a<c;a++)if(b=e[a],void 0!==d.style[b])return b}(),requestAnimationFrame=function(a){var b,c,d,e=["ms","moz","webkit","o"];for(b=0,c=e.length;b<c&&(d=e[b],!a.requestAnimationFrame);b++)a.requestAnimationFrame=a[d+"RequestAnimationFrame"];return a.requestAnimationFrame||(a.requestAnimationFrame=function(a){return setTimeout(a,1e3/60)})}(window);this.Utils={addClass:addClass,removeClass:removeClass,hasClass:hasClass,merge:merge,setOptions:setOptions,deleteUndefined:deleteUndefined,transformKey:transformKey,requestAnimationFrame:requestAnimationFrame},window.Backdrop=function(){function a(){null==(d=document.querySelector(".us-backdrop"))&&(d=b())}var b,c=0,d=null;return a.prototype.element=d,b=function(){return d=document.createElement("div"),Utils.addClass(d,"us-backdrop"),document.body.appendChild(d)},a.prototype.retain=function(){var a;if(1===++c)return Utils.addClass(d,"us-backdrop--visible"),a=function(){if(c>=1)return Utils.addClass(d,"us-backdrop--active")},Utils.requestAnimationFrame.call(window,a)},a.prototype.release=function(){var a;return 1===c&&(Utils.removeClass(d,"us-backdrop--active"),a=function(){return setTimeout(function(){if(0===c)return Utils.removeClass(d,"us-backdrop--visible")},300)},Utils.requestAnimationFrame.call(window,a)),c=Math.max(0,c-1)},a}(),window.Overlay=function(a){function b(a){if(this.overlay=(this.options=f(a,h)).overlay,null==this.overlay||"undefined"==typeof Backdrop||null===Backdrop)throw new Error("There's no overlay or you haven't included Backdrop");this.backdrop=new Backdrop,this.addEventListeners()}var c=a.addClass,d=a.hasClass,e=a.removeClass,f=a.setOptions,g=a.requestAnimationFrame,h={bodyActiveClass:"us-overlay--open",activeClass:"us-overlay-parent--active",visibleClass:"us-overlay-parent--visible",overlay:$(".us-overlay-parent"),openButton:".js-open-overlay",closeButton:".js-close-overlay",historyStatus:"#seedeal",history:!1,preventDefault:!0,animationSpeed:300};return b.prototype.addEventListeners=function(){if($(this.options.openButton).on("click.open-overlay",function(a){return function(b){return a.options.preventDefault&&b.preventDefault(),a.show(b)}}(this)),this.overlay.on("click.close-overlay",function(a){return function(b){for(var c=[],d=a.overlay.find(a.options.closeButton).toArray(),e=[a.overlay[0]].concat(d),f=e.length-1;f>=0;f--){var g=e[f];if(b.target===g){a.options.preventDefault&&b.preventDefault(),a.hide(b);break}c.push(void 0)}return c}}(this)),this.hasHistory())return window.onpopstate=function(a){return function(b){if(a.isOpen())return a.hide(b)}}(this)},b.prototype.show=function(a){var b,d=this;if($(document.body).addClass(this.options.bodyActiveClass),this.backdrop.retain(),c(this.overlay[0],this.options.visibleClass),b=function(){return c(d.overlay[0],d.options.activeClass),setTimeout(function(){var b;return"function"==typeof(b=d.options).onOpen?b.onOpen(a):void 0},d.options.animationSpeed)},g.call(window,b),this.hasHistory())return history.pushState("open",window.document.title,this.options.historyStatus)},b.prototype.hide=function(a){var b,c=this;if($(document.body).removeClass(this.options.bodyActiveClass),this.backdrop.release(),b=function(){return e(c.overlay[0],c.options.activeClass),setTimeout(function(){var b;return e(c.overlay[0],c.options.visibleClass),"function"==typeof(b=c.options).onClose?b.onClose(a):void 0},c.options.animationSpeed)},g.call(window,b),this.hasHistory()&&"open"===history.state)return history.back()},b.prototype.isOpen=function(){return d(this.overlay[0],this.options.activeClass)},b.prototype.hasHistory=function(){return this.options.history&&window.history&&window.history.pushState},b}(this.Utils);var setOptions=this.Utils.setOptions;window.Tabs=function(a){return function(){function a(a){var b=this.options=setOptions(a,this.defaults),c=b.tabContainer,d=b.tabLinks;this.tabs=$(c).find(d),this.filter=this.tabs.data("target")?"data-target":"href",this.init(),this.tabs.on("click.ustyle.tab",function(a){return function(b){var c=$(b.currentTarget);return a.isAccordion()&&a.options.collapsible&&a.isActive(c)?(a.collapse(c),a.hashClear()):(a.navigateTo(c),a.scrollToTab(c),a.hashChange(c)),b.preventDefault()}}(this))}var b;return a.prototype.defaults={tabContainer:".us-tabs",tabLinks:".us-tabs-nav-mainlink",tabNav:".us-tabs-nav",changeUrls:!0,activeClass:"active",collapsible:!1,autoScroll:!0},a.prototype.init=function(){var a=this.activeTab(),b=this.tabFromHash();return b.length?this.navigateTo(b):a.length?this.navigateTo(a):this.options.collapsible&&this.isAccordion()?void 0:this.navigateTo(this.tabs.first())},a.prototype.hashChange=function(a){if(this.options.changeUrls)return location.replace("#!"+b(a).replace(/#/,""))},a.prototype.hashClear=function(){if(this.options.changeUrls){var a=window.location.pathname+window.location.search;return"function"==typeof history.replaceState?history.replaceState("",document.title,a):void 0}},a.prototype.navigateTo=function(a){var c=b(a),d=$(c);return this.tabs.removeClass(this.options.activeClass).end(),this.tabs.filter("["+this.filter+"='"+c+"']").addClass(this.options.activeClass),d.siblings("."+this.options.activeClass).removeClass(this.options.activeClass).end().addClass(this.options.activeClass),d.trigger("ustyle.tab.active")},a.prototype.collapse=function(a){var c=$(b(a));return this.tabs.removeClass(this.options.activeClass).end(),c.removeClass(this.options.activeClass)},a.prototype.scrollToTab=function(a){if(this.isAccordion()&&this.options.autoScroll){var c=$(b(a));return $("html,body").scrollTop(c.offset().top)}},a.prototype.activeTab=function(){return this.tabs.filter("."+this.options.activeClass)},a.prototype.tabFromHash=function(){var a=location.hash.replace("!","");return this.tabs.filter("["+this.filter+"='"+a+"']")},a.prototype.isActive=function(a){return b(a)===b(this.activeTab())},a.prototype.isAccordion=function(){return!$(this.options.tabNav).is(":visible")},b=function(a){return a.data("target")||a.attr("href")},a}()}(),window.ClassToggler=function(){function a(a){this.options=Utils.setOptions(a,b),this.options.$target?this.addEventListeners():console.trace("ClassToggle",this.options)}var b;return b={containerClass:null,$target:null,activeClass:"active",inactiveClass:null,toggleOn:"click"},a.prototype.addEventListeners=function(){return this.options.$target.on(this.options.toggleOn,function(a){return function(b){var c=a.options.containerClass?$(b.target).closest(a.options.containerClass):$(b.delegateTarget);return a.isActive(c)?a.hide(c,b):a.show(c,b)}}(this))},a.prototype.isActive=function(a){return a.hasClass(this.options.activeClass)},a.prototype.show=function(a,b){var c;return"function"==typeof(c=this.options).onShow&&c.onShow(a,b),a.addClass(this.options.activeClass)},a.prototype.hide=function(a,b){var c;return"function"==typeof(c=this.options).onHide&&c.onHide(a,b),a.removeClass(this.options.activeClass)},a}(),window.RadioToggle=function(){var a="RadioToggle is now deprecated";window.Raven&&window.Raven.captureMessage(a),console.warn(a)};
1
+ var slice=[].slice,hasProp={}.hasOwnProperty;null==this.Utils&&(this.Utils={modules:[]});var addClass=function(a,b){return removeClass(a,b),a.className+=" "+b+" "},removeClass=function(a,b){var c=new RegExp("(\\s|^)"+b+"(\\s|$)","gi");return a.className=a.className.replace(c,"")},hasClass=function(a,b){return new RegExp("(^| )"+b+"( |$)","gi").test(a.className)},merge=function(){var a,b,c,d,e=arguments[0],f=2<=arguments.length?slice.call(arguments,1):[];for(b=0,c=f.length;b<c;b++){a=f[b];for(d in a)hasProp.call(a,d)&&(e[d]=a[d])}return e},setOptions=function(a,b){return merge({},b,a)},deleteUndefined=function(a){var b,c,d=[];for(b in a)c=a[b],null===c||void 0===c?d.push(delete a[b]):d.push(void 0);return d},transformKey=function(){var a,b,c,d=document.createElement("div"),e=["transform","webkitTransform","OTransform","MozTransform","msTransform"];for(a=0,c=e.length;a<c;a++)if(b=e[a],void 0!==d.style[b])return b}(),requestAnimationFrame=function(a){var b,c,d,e=["ms","moz","webkit","o"];for(b=0,c=e.length;b<c&&(d=e[b],!a.requestAnimationFrame);b++)a.requestAnimationFrame=a[d+"RequestAnimationFrame"];return a.requestAnimationFrame||(a.requestAnimationFrame=function(a){return setTimeout(a,1e3/60)})}(window);this.Utils={addClass:addClass,removeClass:removeClass,hasClass:hasClass,merge:merge,setOptions:setOptions,deleteUndefined:deleteUndefined,transformKey:transformKey,requestAnimationFrame:requestAnimationFrame},window.Backdrop=function(){function a(){null==(d=document.querySelector(".us-backdrop"))&&(d=b())}var b,c=0,d=null;return a.prototype.element=d,b=function(){return d=document.createElement("div"),Utils.addClass(d,"us-backdrop"),document.body.appendChild(d)},a.prototype.retain=function(){var a;if(1===++c)return Utils.addClass(d,"us-backdrop--visible"),a=function(){if(c>=1)return Utils.addClass(d,"us-backdrop--active")},Utils.requestAnimationFrame.call(window,a)},a.prototype.release=function(){var a;return 1===c&&(Utils.removeClass(d,"us-backdrop--active"),a=function(){return setTimeout(function(){if(0===c)return Utils.removeClass(d,"us-backdrop--visible")},300)},Utils.requestAnimationFrame.call(window,a)),c=Math.max(0,c-1)},a}(),window.Overlay=function(a){function b(a){if(this.overlay=(this.options=f(a,h)).overlay,null==this.overlay||"undefined"==typeof Backdrop||null===Backdrop)throw new Error("There's no overlay or you haven't included Backdrop");this.backdrop=new Backdrop,this.addEventListeners()}var c=a.addClass,d=a.hasClass,e=a.removeClass,f=a.setOptions,g=a.requestAnimationFrame,h={bodyActiveClass:"us-overlay--open",activeClass:"us-overlay-parent--active",visibleClass:"us-overlay-parent--visible",overlay:$(".us-overlay-parent"),openButton:".js-open-overlay",closeButton:".js-close-overlay",historyStatus:"#seedeal",history:!1,preventDefault:!0,animationSpeed:300};return b.prototype.addEventListeners=function(){if($(this.options.openButton).on("click.open-overlay",function(a){return function(b){return a.options.preventDefault&&b.preventDefault(),a.show(b)}}(this)),this.overlay.on("click.close-overlay",function(a){return function(b){for(var c=[],d=a.overlay.find(a.options.closeButton).toArray(),e=[a.overlay[0]].concat(d),f=e.length-1;f>=0;f--){var g=e[f];if(b.target===g){a.options.preventDefault&&b.preventDefault(),a.hide(b);break}c.push(void 0)}return c}}(this)),this.hasHistory())return window.onpopstate=function(a){return function(b){if(a.isOpen())return a.hide(b)}}(this)},b.prototype.show=function(a){var b,d=this;if($(document.body).addClass(this.options.bodyActiveClass),this.backdrop.retain(),c(this.overlay[0],this.options.visibleClass),b=function(){return c(d.overlay[0],d.options.activeClass),setTimeout(function(){var b;return"function"==typeof(b=d.options).onOpen?b.onOpen(a):void 0},d.options.animationSpeed)},g.call(window,b),this.hasHistory())return history.pushState("open",window.document.title,this.options.historyStatus)},b.prototype.hide=function(a){var b,c=this;if($(document.body).removeClass(this.options.bodyActiveClass),this.backdrop.release(),b=function(){return e(c.overlay[0],c.options.activeClass),setTimeout(function(){var b;return e(c.overlay[0],c.options.visibleClass),"function"==typeof(b=c.options).onClose?b.onClose(a):void 0},c.options.animationSpeed)},g.call(window,b),this.hasHistory()&&"open"===history.state)return history.back()},b.prototype.isOpen=function(){return d(this.overlay[0],this.options.activeClass)},b.prototype.hasHistory=function(){return this.options.history&&window.history&&window.history.pushState},b}(this.Utils),window.Tabs=function(a){function b(a){var b=this.options=f(a,this.defaults),c=b.tabContainer,d=b.tabLinks;if(this.activeTabEvent=new CustomEvent("ustyle.tab.active"),this.tabs=document.querySelectorAll(c+" "+d),this.tabs.length){this.filter=this.tabs.item(0).getAttribute("data-target")?"data-target":"href",this.init();var e=function(a){return function(b){var c=b.currentTarget;return a.isAccordion()&&a.options.collapsible&&a.isActive(c)?(a.collapse(c),a.hashClear()):(a.navigateTo(c),a.scrollToTab(c),a.hashChange(c)),b.preventDefault()}}(this);h(this.tabs,function(a,b){b.addEventListener("click",e)})}}var c=a.addClass,d=a.hasClass,e=a.removeClass,f=a.setOptions;b.prototype.defaults={tabContainer:".us-tabs",tabLinks:".us-tabs-nav-mainlink",tabNav:".us-tabs-nav",changeUrls:!0,activeClass:"active",collapsible:!1,autoScroll:!0},b.prototype.init=function(){var a=this.activeTab(),b=this.tabFromHash();return b?this.navigateTo(b):a?this.navigateTo(a):this.options.collapsible&&this.isAccordion()?void 0:this.navigateTo(this.tabs.item(0))},b.prototype.hashChange=function(a){if(this.options.changeUrls)return window.location.replace("#!"+g(a).replace(/#/,""))},b.prototype.hashClear=function(){if(this.options.changeUrls){var a=window.location.pathname+window.location.search;return"function"==typeof history.replaceState?history.replaceState("",document.title,a):void 0}},b.prototype.navigateTo=function(a){var b=g(a),d=document.querySelector(b),f=this.options.activeClass,i=this.filter;return h(this.tabs,function(a,b){e(b,f)}),h(this.tabs,function(a,d){if(d.getAttribute(i)===b)return c(d,f)}),h(d.parentNode.children,function(a,b){b!==d&&e(b,f)}),c(d,f),d.dispatchEvent(this.activeTabEvent)},b.prototype.collapse=function(a){var b=document.querySelector(g(a)),c=this.options.activeClass;return h(this.tabs,function(a,b){e(b,c)}),e(b,c)},b.prototype.scrollToTab=function(a){if(this.isAccordion()&&this.options.autoScroll){return document.querySelector(g(a)).scrollIntoView()}},b.prototype.activeTab=function(){var a=this.options.activeClass,b=null;return h(this.tabs,function(c,e){if(d(e,a))return b=e}),b},b.prototype.tabFromHash=function(){var a=window.location.hash.replace("!",""),b=this.filter,c=null;return h(this.tabs,function(d,e){if(e.getAttribute(b)===a)return c=e}),c},b.prototype.isActive=function(a){return g(a)===g(this.activeTab())},b.prototype.isAccordion=function(){var a=document.querySelector(this.options.tabNav);return!(a.offsetWidth>0||a.offsetHeight>0)};var g=function(a){return a.getAttribute("data-target")||a.getAttribute("href")},h=function(a,b,c){for(var d=a.length-1;d>=0;d--)b.call(c,d,a[d])};return b}(this.Utils),window.ClassToggler=function(){function a(a){this.options=Utils.setOptions(a,b),this.options.$target?this.addEventListeners():console.trace("ClassToggle",this.options)}var b;return b={containerClass:null,$target:null,activeClass:"active",inactiveClass:null,toggleOn:"click"},a.prototype.addEventListeners=function(){return this.options.$target.on(this.options.toggleOn,function(a){return function(b){var c=a.options.containerClass?$(b.target).closest(a.options.containerClass):$(b.delegateTarget);return a.isActive(c)?a.hide(c,b):a.show(c,b)}}(this))},a.prototype.isActive=function(a){return a.hasClass(this.options.activeClass)},a.prototype.show=function(a,b){var c;return"function"==typeof(c=this.options).onShow&&c.onShow(a,b),a.addClass(this.options.activeClass)},a.prototype.hide=function(a,b){var c;return"function"==typeof(c=this.options).onHide&&c.onHide(a,b),a.removeClass(this.options.activeClass)},a}(),window.RadioToggle=function(){var a="RadioToggle is now deprecated";window.Raven&&window.Raven.captureMessage(a),console.warn(a)};
@@ -1,117 +1,115 @@
1
- "use strict";
2
-
3
- var dss = require("dss"),
4
- crypto = require("crypto"),
5
- marked = require('marked'),
6
- escaped = require("underscore.string/escapeHTML");
1
+ const dss = require('dss')
2
+ const crypto = require('crypto')
3
+ const marked = require('marked')
4
+ const escaped = require('underscore.string/escapeHTML')
7
5
 
8
6
  module.exports = {
7
+ /**
8
+ * Register DSS parsers
9
+ *
10
+ * @param {object} parsers - An object containing the declared parsers to register
11
+ */
12
+ addParsers: function (parsers) {
13
+ for (var key in parsers) {
14
+ dss.parser(key, parsers[key])
15
+ }
16
+ },
9
17
 
10
- /**
11
- * Register DSS parsers
12
- *
13
- * @param {object} parsers - An object containing the declared parsers to register
14
- */
15
-
16
- addParsers: function(parsers){
17
- for(var key in parsers){
18
- dss.parser(key, parsers[key]);
19
- }
20
- },
21
-
22
- /**
23
- * Removing ${modifiers} text from markup
24
- *
25
- * @param {string} escaped markup - The file to extract the variable values from
26
- * @return {string} Escaped string without ${modifiers}
27
- */
28
-
29
- addStateToExample: function(markup, state){
30
- return markup.replace(/{\$modifiers}/g, state);
31
- },
32
-
33
- /**
34
- * Removing ${modifiers} text from markup
35
- *
36
- * @param {string} escaped markup - The file to extract the variable values from
37
- * @return {string} Escaped string without ${modifiers}
38
- */
39
- removeModifiersFromMarkup: function(escaped){
40
- return escaped.replace(/(\sclass=('|"){\$modifiers}('|")|\s{\$modifiers})/g, "");
41
- },
18
+ /**
19
+ * Removing ${modifiers} text from markup
20
+ *
21
+ * @param {string} escaped markup - The file to extract the variable values from
22
+ * @return {string} Escaped string without ${modifiers}
23
+ */
24
+ addStateToExample: function (markup, state) {
25
+ return markup.replace(/{\$modifiers}/g, state)
26
+ },
42
27
 
43
- /**
44
- * Get parser for a file which will extract "@variable {name} - {description}"
45
- *
46
- * @param {object} file - The file to extract the variable values from
47
- * @return {function} A DSS parser
48
- */
49
- variableDssParser: function() {
28
+ /**
29
+ * Removing ${modifiers} text from markup
30
+ *
31
+ * @param {string} escaped markup - The file to extract the variable values from
32
+ * @return {string} Escaped string without ${modifiers}
33
+ */
34
+ removeModifiersFromMarkup: function (escaped) {
35
+ return escaped.replace(/(\sclass=('|"){\$modifiers}('|")|\s{\$modifiers})/g, '')
36
+ },
50
37
 
51
- var fileVariables = {},
52
- fileVariablesRx = /^[\$|@]([a-zA-Z0-9_-]+):([^\;]+)\;/gim,
53
- lineSplitRx = /(( - )+)/,
54
- variables = {},
55
- match, hash, tokens, name;
38
+ /**
39
+ * Get parser for a file which will extract "@variable {name} - {description}"
40
+ *
41
+ * @param {object} file - The file to extract the variable values from
42
+ * @return {function} A DSS parser
43
+ */
44
+ variableDssParser: function () {
45
+ const fileVariablesRx = /^[$|@]([a-zA-Z0-9_-]+):([^;]+);/gim
46
+ const lineSplitRx = /(( - )+)/
47
+ var fileVariables = {}
48
+ var variables = {}
49
+ var match
50
+ var hash
51
+ var tokens
52
+ var name
56
53
 
57
- return function(i, line, block, css) {
58
- hash = crypto.createHash('md5').update(css).digest('hex');
59
- if (!fileVariables[hash]) {
60
- while ((match = fileVariablesRx.exec(css)) !== null) {
61
- variables[match[1].trim()] = match[2].trim();
62
- }
63
- fileVariables[hash] = variables;
64
- }
54
+ return function (i, line, block, css) {
55
+ hash = crypto.createHash('md5').update(css).digest('hex')
56
+ if (!fileVariables[hash]) {
57
+ while ((match = fileVariablesRx.exec(css)) !== null) {
58
+ variables[match[1].trim()] = match[2].trim()
59
+ }
60
+ fileVariables[hash] = variables
61
+ }
65
62
 
66
63
  // Extract name and any delimiter with description
67
- tokens = line.split(lineSplitRx, 2);
68
- name = tokens[0].trim();
69
- if (variables.hasOwnProperty(name)) {
70
- return {
71
- name: name,
64
+ tokens = line.split(lineSplitRx, 2)
65
+ name = tokens[0].trim()
66
+ if (variables.hasOwnProperty(name)) {
67
+ return {
68
+ name: name,
72
69
  // Description is line with name and any delimiter replaced
73
- description: line.replace(tokens.join(''), ''),
74
- value: variables[name]
75
- };
76
- }
77
- };
78
- },
79
- /**
80
- * Read over multiple description lines and return a markdown version
81
- *
82
- * @param {number} i - line number
83
- * @param {string} line - Line matching parser
84
- * @param {string} block - Entire block of text matching
85
- * @return {string} A markdown version of the description
86
- */
87
- descriptionDssParser: function(i, line, block){
88
- var nextParserIndex = block.indexOf("@", i+1),
89
- markupLength = nextParserIndex > -1 ? nextParserIndex - i : block.length,
90
- markup = block.split('')
91
- .splice(i, markupLength)
92
- .join('')
93
- .replace(/\n/g, '\n\n')
94
- .replace(/@description/, '');
70
+ description: line.replace(tokens.join(''), ''),
71
+ value: variables[name]
72
+ }
73
+ }
74
+ }
75
+ },
95
76
 
96
- return marked(markup);
97
- },
77
+ /**
78
+ * Read over multiple description lines and return a markdown version
79
+ *
80
+ * @param {number} i - line number
81
+ * @param {string} line - Line matching parser
82
+ * @param {string} block - Entire block of text matching
83
+ * @return {string} A markdown version of the description
84
+ */
85
+ descriptionDssParser: function (i, line, block) {
86
+ var nextParserIndex = block.indexOf('@', i + 1)
87
+ var markupLength = nextParserIndex > -1 ? nextParserIndex - i : block.length
88
+ var markup = block.split('')
89
+ .splice(i, markupLength)
90
+ .join('')
91
+ .replace(/\n/g, '\n\n')
92
+ .replace(/@description/, '')
98
93
 
99
- /**
100
- * Read over multiple lines and return a javascript code snippet
101
- *
102
- * @param {number} i - line number
103
- * @param {string} line - Line matching parser
104
- * @param {string} block - Entire block of text matching
105
- * @return {string} JavaScript code snipper
106
- */
107
- javascriptParser: function(i, line, block){
108
- var nextParserIndex = block.indexOf("@", i+1),
109
- markupLength = nextParserIndex > -1 ? nextParserIndex - i : block.length,
110
- markup = block.split('')
111
- .splice(i, markupLength)
112
- .join('')
113
- .replace(/@javascript/, '');
94
+ return marked(markup)
95
+ },
114
96
 
115
- return escaped(markup);
116
- }
117
- };
97
+ /**
98
+ * Read over multiple lines and return a javascript code snippet
99
+ *
100
+ * @param {number} i - line number
101
+ * @param {string} line - Line matching parser
102
+ * @param {string} block - Entire block of text matching
103
+ * @return {string} JavaScript code snipper
104
+ */
105
+ javascriptParser: function (i, line, block) {
106
+ var nextParserIndex = block.indexOf('@', i + 1)
107
+ var markupLength = nextParserIndex > -1 ? nextParserIndex - i : block.length
108
+ var markup = block.split('')
109
+ .splice(i, markupLength)
110
+ .join('')
111
+ .replace(/@javascript/, '')
112
+
113
+ return escaped(markup)
114
+ }
115
+ }
@@ -1,26 +1,24 @@
1
- "use strict";
2
-
3
- var grunt = require('grunt');
1
+ const grunt = require('grunt')
4
2
 
5
3
  module.exports = {
6
- writeFile: function(file, dest, message){
7
- var outputType = 'created',
8
- oldFile = null;
4
+ writeFile: function (file, dest, message) {
5
+ var outputType = 'created'
6
+ var oldFile = null
9
7
 
10
8
  if (grunt.file.exists(dest)) {
11
- outputType = 'overwritten';
12
- oldFile = grunt.file.read(dest);
9
+ outputType = 'overwritten'
10
+ oldFile = grunt.file.read(dest)
13
11
  }
14
12
 
15
13
  if (oldFile !== file) {
16
- grunt.file.write(dest, file);
17
- grunt.log.writeln('✓ '+ message +' ' + outputType + ' at: ' + grunt.log.wordlist([dest], {color: 'cyan'}));
14
+ grunt.file.write(dest, file)
15
+ grunt.log.writeln('✓ ' + message + ' ' + outputType + ' at: ' + grunt.log.wordlist([dest], {color: 'cyan'}))
18
16
  } else {
19
- grunt.log.writeln('‣ '+ message +' unchanged');
17
+ grunt.log.writeln('‣ ' + message + ' unchanged')
20
18
  }
21
19
  },
22
20
 
23
- isMarkdown: function(extension){
24
- return extension === ".md";
21
+ isMarkdown: function (extension) {
22
+ return extension === '.md'
25
23
  }
26
24
  }
@@ -1,24 +1,22 @@
1
- "use strict";
2
-
3
- var cheerio = require('cheerio');
1
+ const cheerio = require('cheerio')
4
2
 
5
3
  module.exports = {
6
- extractSubNav: function(content){
7
- var $ = cheerio.load(content),
8
- contents = [];
4
+ extractSubNav: function (content) {
5
+ var $ = cheerio.load(content)
6
+ var contents = []
9
7
 
10
- function buildHashOfContents(i, el) {
11
- contents.push({name: $(el).text(), link: $(el).attr('href')});
8
+ function buildHashOfContents (i, el) {
9
+ contents.push({name: $(el).text(), link: $(el).attr('href')})
12
10
  }
13
11
 
14
- $('ul.table-of-contents a').map(buildHashOfContents);
15
- return contents;
12
+ $('ul.table-of-contents a').map(buildHashOfContents)
13
+ return contents
16
14
  },
17
15
 
18
- removeSubNav: function(content){
19
- var $ = cheerio.load(content);
16
+ removeSubNav: function (content) {
17
+ var $ = cheerio.load(content)
20
18
 
21
- $('ul.table-of-contents').remove();
22
- return $.html();
19
+ $('ul.table-of-contents').remove()
20
+ return $.html()
23
21
  }
24
22
  }
@@ -1,59 +1,57 @@
1
- "use strict";
1
+ const handlebars = require('handlebars')
2
+ const humanize = require('underscore.string/humanize')
2
3
 
3
- var handlebars = require('handlebars'),
4
- humanize = require('underscore.string/humanize');
5
-
6
- function humanFileSize(size) {
7
- if(size < 1024) return size;
8
- var i = Math.floor( Math.log(size) / Math.log(1024) );
9
- return new handlebars.SafeString( ( size / Math.pow(1024, i) ).toFixed(2) * 1 + '<span> ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]+'</span>');
4
+ function humanFileSize (size) {
5
+ if (size < 1024) return size
6
+ var i = Math.floor(Math.log(size) / Math.log(1024))
7
+ return new handlebars.SafeString((size / Math.pow(1024, i)).toFixed(2) * 1 + '<span> ' + ['B', 'kB', 'MB', 'GB', 'TB'][i] + '</span>')
10
8
  };
11
9
 
12
10
  module.exports = {
13
- registerHelpers: function(){
14
- handlebars.registerHelper("humanize", function(name, options) {
15
- return new handlebars.SafeString(humanize(name));
16
- });
11
+ registerHelpers: function () {
12
+ handlebars.registerHelper('humanize', function (name, options) {
13
+ return new handlebars.SafeString(humanize(name))
14
+ })
17
15
 
18
- handlebars.registerHelper('json', function(context) {
19
- return JSON.stringify(context);
20
- });
16
+ handlebars.registerHelper('json', function (context) {
17
+ return JSON.stringify(context)
18
+ })
21
19
 
22
- handlebars.registerHelper("partial", function (name, options) {
20
+ handlebars.registerHelper('partial', function (name, options) {
23
21
  // Get the partial with the given name. This is a string.
24
- var partial = handlebars.partials[name];
22
+ var partial = handlebars.partials[name]
25
23
 
26
24
  // Return empty string if the partial is not defined
27
- if (!partial) return "";
25
+ if (!partial) return ''
28
26
  // Compile and call the partial with this as context
29
- return new handlebars.SafeString(handlebars.compile(partial)(this));
30
- });
27
+ return new handlebars.SafeString(handlebars.compile(partial)(this))
28
+ })
31
29
 
32
- handlebars.registerHelper('activeClass', function(name, attribute, context) {
33
- var active = '';
34
- if(name === context.data.root.page[attribute]) {
30
+ handlebars.registerHelper('activeClass', function (name, attribute, context) {
31
+ var active = ''
32
+ if (name === context.data.root.page[attribute]) {
35
33
  active = 'active'
36
34
  }
37
- return new handlebars.SafeString(active);
38
- });
35
+ return new handlebars.SafeString(active)
36
+ })
39
37
 
40
- handlebars.registerHelper('isActive', function(name, attribute, context) {
41
- if(name === attribute){
42
- return context.fn(this);
38
+ handlebars.registerHelper('isActive', function (name, attribute, context) {
39
+ if (name === attribute) {
40
+ return context.fn(this)
43
41
  }
44
- return context.inverse(this);
45
- });
42
+ return context.inverse(this)
43
+ })
46
44
 
47
- handlebars.registerHelper('humanFileSize', function(size, context) {
48
- return new handlebars.SafeString(humanFileSize(size));
49
- });
45
+ handlebars.registerHelper('humanFileSize', function (size, context) {
46
+ return new handlebars.SafeString(humanFileSize(size))
47
+ })
50
48
 
51
- handlebars.registerHelper('number', function(number, context) {
52
- return new handlebars.SafeString(number.toPrecision(2));
53
- });
49
+ handlebars.registerHelper('number', function (number, context) {
50
+ return new handlebars.SafeString(number.toPrecision(2))
51
+ })
54
52
 
55
- handlebars.registerHelper('classSanitizer', function(klass){
56
- return new handlebars.SafeString(klass.split('.')[1]);
57
- });
53
+ handlebars.registerHelper('classSanitizer', function (klass) {
54
+ return new handlebars.SafeString(klass.split('.')[1])
55
+ })
58
56
  }
59
- };
57
+ }
@@ -1,19 +1,23 @@
1
- "use strict";
1
+ 'use strict'
2
2
 
3
- module.exports = function(grunt){
4
- var browserSync = require("browser-sync");
5
-
6
- grunt.registerTask("browserSync-init", function() {
7
- var done = this.async();
8
- browserSync({
9
- server: "./docs",
10
- notify: false
11
- }, function (err, bs) {
12
- done();
13
- });
14
- });
3
+ module.exports = function (grunt) {
4
+ var browserSync = require('browser-sync')
15
5
 
16
- grunt.registerTask("browserSync-inject", function() {
17
- browserSync.reload(["docs/css/main.css"]);
18
- });
6
+ grunt.registerTask('browserSync-init', function () {
7
+ var done = this.async()
8
+ browserSync({
9
+ server: './docs',
10
+ notify: false
11
+ }, function (err, bs) {
12
+ if (err) {
13
+ console.log(err)
14
+ }
15
+
16
+ done()
17
+ })
18
+ })
19
+
20
+ grunt.registerTask('browserSync-inject', function () {
21
+ browserSync.reload(['docs/css/main.css'])
22
+ })
19
23
  }
@@ -1,72 +1,67 @@
1
- 'use strict';
1
+ const handlebars = require('handlebars')
2
+ const async = require('async')
3
+ const path = require('path')
4
+ const template = require('../modules/templates')
5
+ const fileHelper = require('../modules/file')
6
+ const slugify = require('underscore.string/slugify')
2
7
 
3
- module.exports = function(grunt){
4
-
5
- grunt.registerMultiTask('builder', function() {
6
-
7
- var handlebars = require('handlebars'),
8
- async = require('async'),
9
- path = require('path'),
10
- fs = require('fs'),
11
- template = require('../modules/templates'),
12
- fileHelper = require('../modules/file'),
13
- slugify = require("underscore.string/slugify"),
14
- promise = this.async(),
15
- files = this.files;
8
+ module.exports = function (grunt) {
9
+ grunt.registerMultiTask('builder', function () {
10
+ var promise = this.async()
11
+ var files = this.files
16
12
 
17
13
  var options = this.options({
18
14
  templates: './styleguide/**/*.tpl'
19
- });
15
+ })
20
16
 
21
17
  async.waterfall([
22
- init,
23
- generateStyleguide
24
- ], completeTask);
18
+ init,
19
+ generateStyleguide
20
+ ], completeTask)
25
21
 
26
- function completeTask(){
27
- promise();
22
+ function completeTask () {
23
+ promise()
28
24
  }
29
25
 
30
- function init(callback){
31
- template.registerHelpers();
32
- generateTemplates(options.templates);
33
- callback(null);
26
+ function init (callback) {
27
+ template.registerHelpers()
28
+ generateTemplates(options.templates)
29
+ callback(null)
34
30
  }
35
31
 
36
- function generateStyleguide(callback){
37
- files.forEach(function(file){
38
- var dest = file.dest,
39
- datum = grunt.file.readJSON(file.src[0]);
40
- generatePages(datum, datum.pages, dest);
41
- });
42
- callback(null, 'done');
32
+ function generateStyleguide (callback) {
33
+ files.forEach(function (file) {
34
+ const dest = file.dest
35
+ const datum = grunt.file.readJSON(file.src[0])
36
+ generatePages(datum, datum.pages, dest)
37
+ })
38
+ callback(null, 'done')
43
39
  }
44
40
 
45
- function generatePages(data, pages, dest){
46
- pages.map(function(page){
47
- var model = {
41
+ function generatePages (data, pages, dest) {
42
+ pages.map(function (page) {
43
+ const model = {
48
44
  project: data.project,
49
45
  navigation: data.navigation,
50
46
  page: page,
51
47
  pages: data.pages
52
- };
53
- var outputFilePath = dest + slugify(page.section) + "/" + page.page,
54
- template = handlebars.compile(grunt.file.read(page.template))(model);
48
+ }
49
+ const outputFilePath = dest + slugify(page.section) + '/' + page.page
50
+ const template = handlebars.compile(grunt.file.read(page.template))(model)
55
51
 
56
- fileHelper.writeFile(template, outputFilePath, "Build");
57
- });
52
+ fileHelper.writeFile(template, outputFilePath, 'Build')
53
+ })
58
54
  }
59
55
 
60
- function generateTemplates(templatePath){
61
- var templates = {};
56
+ function generateTemplates (templatePath) {
57
+ var templates = {}
62
58
 
63
- grunt.file.expand(templatePath).forEach(function(file){
64
- var templateName = path.basename(file, '.tpl');
65
- templates[templateName] = grunt.file.read(file);
66
- });
59
+ grunt.file.expand(templatePath).forEach(function (file) {
60
+ var templateName = path.basename(file, '.tpl')
61
+ templates[templateName] = grunt.file.read(file)
62
+ })
67
63
 
68
- handlebars.registerPartial(templates);
64
+ handlebars.registerPartial(templates)
69
65
  }
70
-
71
- });
66
+ })
72
67
  }