├── .babelrc ├── .bowerrc ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .jekyll ├── .htaccess ├── assets │ ├── bower_components │ │ └── bootstrap-4 │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.css │ │ │ ├── bootstrap.min.css.map │ │ │ ├── bootstrap.min.js │ │ │ └── bootstrap.min.js.map │ ├── css │ │ ├── main.css │ │ ├── main.css.map │ │ └── main.scss │ └── js │ │ ├── functions.js │ │ └── functions.min.js ├── humans.txt ├── index.html ├── manifest.json └── robots.txt ├── .sass-cache └── defa1b9dbbef5b1866adfbd4abf2d59927de7d9f │ └── main.scssc ├── .yo-rc.json ├── README.md ├── app ├── apple-touch-icon.png ├── favicon.ico ├── images │ ├── allthethings.jpg │ ├── button.gif │ ├── keyboard.png │ ├── mouse.gif │ └── settings.png ├── index.html ├── robots.txt ├── scripts │ └── main.js ├── styles │ └── main.scss └── terms.html ├── bower.json ├── dist ├── apple-touch-icon.png ├── favicon.ico ├── images │ ├── allthethings.jpg │ ├── button.gif │ ├── keyboard.png │ ├── mouse.gif │ └── settings.png ├── index.html ├── robots.txt ├── scripts │ ├── main.js │ ├── plugins.js │ ├── vendor.js │ └── vendor │ │ └── modernizr.js ├── styles │ └── main.css └── terms.html ├── gulpfile.js ├── package-lock.json ├── package.json └── test ├── index.html └── spec └── test.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "bower_components" 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # we recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | 23 | [{package,bower}.json] 24 | indent_style = space 25 | indent_size = 2 26 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .tmp 3 | bower_components 4 | test/bower_components 5 | -------------------------------------------------------------------------------- /.jekyll/.htaccess: -------------------------------------------------------------------------------- 1 | ## EXPIRES CACHING ## 2 | 3 | # 1 Week for most static assets 4 | 5 | Header set Cache-Control "max-age=604800, public" 6 | 7 | 8 | # 12 Hour for css,js,ecc 9 | 10 | Header set Cache-Control "max-age=43200, public" 11 | 12 | 13 | ## EXPIRES CACHING ## 14 | -------------------------------------------------------------------------------- /.jekyll/assets/bower_components/bootstrap-4/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v4.1.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0

'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |

HELLO WORLD

63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /.jekyll/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "markdownizr", 3 | "short_name": "markdownizr", 4 | "icons": [{ 5 | "src": "", 6 | "sizes": "128x128", 7 | "type": "image/jpg" 8 | }, { 9 | "src": "", 10 | "sizes": "144x144", 11 | "type": "image/jpg" 12 | }, { 13 | "src": "", 14 | "sizes": "152x152", 15 | "type": "image/jpg" 16 | }, { 17 | "src": "", 18 | "sizes": "192x192", 19 | "type": "image/jpg" 20 | }, { 21 | "src": "", 22 | "sizes": "512x512", 23 | "type": "image/jpg" 24 | }], 25 | "start_url": "/index.html", 26 | "display": "standalone", 27 | "background_color": "", 28 | "theme_color": "" 29 | } 30 | -------------------------------------------------------------------------------- /.jekyll/robots.txt: -------------------------------------------------------------------------------- 1 | # www.robotstxt.org/ 2 | 3 | # Allow crawling of all content 4 | User-agent: * 5 | Disallow: 6 | -------------------------------------------------------------------------------- /.sass-cache/defa1b9dbbef5b1866adfbd4abf2d59927de7d9f/main.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/.sass-cache/defa1b9dbbef5b1866adfbd4abf2d59927de7d9f/main.scssc -------------------------------------------------------------------------------- /.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-mocha": { 3 | "ui": "bdd", 4 | "rjs": false 5 | } 6 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Markdownizr 2 | 3 | Website for [Markdownizr](https://github.com/sh78/markdownizr-chrome), a Google Chrome extension for copying markdown from web 4 | pages. 5 | 6 | ## License 7 | 8 |

9 | 10 | Public Domain Mark 12 | 13 |
14 | This work (Markdownizr, by Sean Henderson), identified by Sean Henderson, is free of known copyright restrictions. 15 |

16 | -------------------------------------------------------------------------------- /app/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/app/apple-touch-icon.png -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/app/favicon.ico -------------------------------------------------------------------------------- /app/images/allthethings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/app/images/allthethings.jpg -------------------------------------------------------------------------------- /app/images/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/app/images/button.gif -------------------------------------------------------------------------------- /app/images/keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/app/images/keyboard.png -------------------------------------------------------------------------------- /app/images/mouse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/app/images/mouse.gif -------------------------------------------------------------------------------- /app/images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/app/images/settings.png -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Markdownizr :: Chrome Extension 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 35 | 36 | 84 |
85 |
86 |

87 | 88 | 89 | Markdownizr 90 |

91 |

Copy Website Content As (clean!) Markdown

92 |

Markdownizr is a Google Chrome extension that lets you extract clean Markdown from web pages. If you like Markdown, plain text files, or being productive, then keep scrolling.

93 |
94 |
95 |
96 |
97 |
98 |
99 | 100 |
101 |
102 |

About Markdown

103 |

Markdown is a simple markup language that adds semantics to plain text files. It was created by John Gruber in 2004.

104 |
105 |
106 |
107 |
108 |
109 |
110 | 111 |
112 |
113 |

Anything is possible, if you just use Markdown

114 |

Once content is in Markdown format, the possibilities are endless - create PDFs, Word/RTFs, HTML websites, books, and more instantly. There are a veritable plethora of free (and paid) tools for Linux, macOS, iOS, Android, other operating systems, and even your browser.

115 |
116 |
117 |
118 |
119 |
120 |
121 | 122 |
123 |
124 |

Markdownizr has your back

125 |

With Markdownizr, you don't have to manually format any content from a website to reference it in notes, cite it in your documentation, or whatever you may be plotting.

126 |
127 |
128 |
129 |
130 |
131 |
132 | 133 |
134 |
135 |

How to use

136 |

To get started, select some text on a web page and click the Markdownizr "M" icon in the Chrome toolbar. The Markdown will be copied to your computer's clipboard so you can paste it anywhere. You can also right click and select "Get Markdown" if that makes you happy.

137 |
138 |
139 |
140 |
141 |
142 | video of markdownizr being used via the plugin button 143 |
144 |
145 |
146 |
147 | 148 |
149 |
150 |

Get the whole page, and nothing but the page

151 |

If you want to copy the content of the entire page, just make sure that no text is selected and click the "M" button or right-click option. Done!

152 |
153 |
154 |
155 |
156 |
157 | video of markdownizr being used via the plugin button 158 |
159 |
160 |
161 |
162 | 163 |
164 |
165 |

Keyboard shortcuts == winning;

166 |

Want even more power? Try adding a keyboard shortcut to super-charge your workflow. You can set keyboard shortcuts for plugins from the chrome://extensions page.

167 |
168 |
169 |
170 |
171 |
172 | chrome's extension settings 173 |
174 |
175 |
176 |
177 |
178 |
179 | 180 |
181 |
182 |

Flexible and damn-near future-proof

183 |

While other Markdown extraction browser extensions are locked in to a prescribed method of filtering out the html code, Markdownizr puts you in the driver's seat with simple yet powerful settings.

184 | settings page of markdownizr 185 |
186 |
187 |
188 |
189 |
190 |

We've added some sensible defaults in hopes that your Markdown turns out well-formed, but the internet is a wild place. Here are the avilable options:

191 |
192 |
193 |
194 |
195 | 196 |
197 |
198 |

Strip Elements

199 |

This first text box is a comma-separated list of HTML elements that Markdownizr will take the content from, but delete the surrounding HTML tags (code).

200 |
201 |
202 |
203 |
204 | 205 |
206 |
207 |

Delete Elements

208 |

This box is the same as the first, but any elements here will be deleted entirely - inner content and all. Use this to get rid of unexpected cruft from <script> tags, etc.

209 |
210 |
211 |
212 |
213 |
214 |
215 | 216 |
217 |
218 |

Free and open-source, forever

219 |

Markdownizr is and always will be free, open-source software. It was developed for fun and released because... well why not?

220 |
221 |
222 |
223 |
224 | 225 |
226 |
227 |

The extension is 100% free of malware, ads, trackers, and gremlins. You can check out the source code on GitHub.

228 |
229 |
230 |
231 |
232 |
233 |
234 | 235 |
236 |
237 |

Ready to up your markdown game?

238 |

Markdownizr is available on the Chrome Webstore for free! If you're still not convinced, check out the interactive demo below.

239 |
240 |
241 |
242 |
243 |
244 |
245 |

Demo

246 |

Here's a behind-the-scenes-sneak-peak at how Markdownizr chops up your HTML into sweet, glorious Markdown. Try pasting some random HTML into the HTML box!

247 |
248 |
249 |

HTML

250 |
251 | HTML 252 |
253 | 269 |
270 |
271 |

MARKDOWN

272 |
273 | MDWN 274 |
275 | 276 |
277 |
278 |
279 |
280 |
281 |
282 |

Credits

283 |

Markdownizr is made possible by:

284 | 296 |
297 |
298 | 303 | 304 | 307 | 308 | 309 | 310 | 311 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | -------------------------------------------------------------------------------- /app/robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org/ 2 | 3 | User-agent: * 4 | Disallow: 5 | -------------------------------------------------------------------------------- /app/scripts/main.js: -------------------------------------------------------------------------------- 1 | console.log('\'Allo \'Allo!'); // eslint-disable-line no-console 2 | jQuery.easing.def = 'easeOutElastic'; 3 | 4 | // helper to check if elem is visible on screen 5 | function isSeen(elem) { 6 | var docViewTop = $(window).scrollTop(); 7 | var docViewBottom = docViewTop + $(window).height(); 8 | 9 | var elemTop = $(elem).offset().top; 10 | var elemBottom = elemTop + $(elem).height(); 11 | 12 | return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 13 | } 14 | 15 | 16 | $(document).ready(function() { 17 | 18 | // auto close BS mobile nav upon selecting link 19 | $(document).on('click', '.navbar-collapse.in', function(e) { 20 | if($(e.target).is('a')) { 21 | $(this).collapse('hide'); 22 | } 23 | }); 24 | 25 | // live markdownizing demo 26 | 27 | var mdOpts = { 28 | // filter out stuff 29 | converters: [{ 30 | // grab the settings 31 | filter: ['div', 'span', 'small', 'aside', 'section', 'article', 'header', 'footer', 'hgroup', 'time', 'address', 'button'], 32 | replacement: function (innerHTML) { return innerHTML } 33 | }, { 34 | // don't include these in the final markdown 35 | filter: ['script', 'noscript', 'canvas', 'embed', 'object', 'param', 'svg', 'source', 'nav', 'iframe',], 36 | replacement: function () { return '' } 37 | }] 38 | }; 39 | 40 | // start with default html converted to md 41 | var mdOut = toMarkdown($('#toMarkdown_input').val(), mdOpts); 42 | $('#toMarkdown_output').val(mdOut); 43 | // watch the user. if they make a move, update the MD damnit! 44 | $('#toMarkdown_input').bind('change paste keyup', function() { 45 | $('#toMarkdown_output').val(toMarkdown($(this).val())); 46 | }); 47 | 48 | 49 | // surpise demo unicorn 50 | 51 | // set a unicorn counter 52 | var unicount = 0; 53 | // create a function for the animation 54 | function animateSecret() { 55 | $('#secret') 56 | .animate({ 57 | top: '30%', 58 | right: '40%' 59 | }, 3000, 'swing' ).animate({ 60 | top: '-100%', 61 | right: '-100%' 62 | }, 5000, 'swing' ) 63 | } 64 | 65 | // nice nav scrolling 66 | $('a[href^="#"]').on('click', function(e) { 67 | var link = $(this).attr('href'); 68 | // check if it's a local anchor 69 | if ( link.length > 1 && link.indexOf('#') === 0 ) { 70 | e.preventDefault(); 71 | var target = $(this).attr('href'); 72 | $('html, body').animate({ 73 | scrollTop: $(target).offset().top - 70 74 | }, 400, 'linear'); 75 | } else if ( link.length === 1 && link.indexOf('#') === 0 ) { 76 | $('html, body').animate({ 77 | scrollTop: 0 78 | }, 400, 'linear'); 79 | } 80 | }); 81 | 82 | 83 | // watch the user as they scroll... O.o 84 | $(window).scroll(function() { 85 | 86 | // make sure unicorn hasn't been spotted yet 87 | if (isSeen($('#demo h1'))) { 88 | // check if demo section is visible 89 | if (unicount === 0) { 90 | // hold a sec and start the show 91 | setTimeout(animateSecret, 4000); 92 | // bump the counter 93 | unicount += 1; 94 | } 95 | } 96 | 97 | // only show the navbar brand when intro logo is out of sight 98 | if (!isSeen($('#logo'))) { 99 | $('#brand').fadeIn().css('display','inline-block'); 100 | } else if (window.innerWidth > 767) { 101 | // fade logo out on large screens 102 | $('#brand').fadeOut(); 103 | } 104 | 105 | }); 106 | 107 | // auto icon for external links 108 | var icon = ''; 109 | $('a').not('nav a').filter(function() { 110 | return this.hostname && this.hostname !== location.hostname; 111 | }).append(' ' + icon); 112 | 113 | }); 114 | 115 | -------------------------------------------------------------------------------- /app/styles/main.scss: -------------------------------------------------------------------------------- 1 | $icon-font-path: '../fonts/'; 2 | 3 | // bower:scss 4 | @import "bower_components/bootstrap-sass/assets/stylesheets/_bootstrap.scss"; 5 | @import "bower_components/animatewithsass/animate.scss"; 6 | // endbower 7 | 8 | // Vars 9 | $main-bg: #1c1e29; 10 | $main-light: #f5f5f5; 11 | $main-light-alt: #d5d5d5; 12 | $features-1: lighten(#cb4b16, 10%); // solarized orange 13 | $features-2: lighten(#dc322f, 10%); // solarized red 14 | $features-3: lighten(#d33682, 10%); // solarized magenta 15 | $features-4: lighten(#6c71c4, 10%); // solarized violet 16 | $features-5: lighten(#268bd2, 10%); // solarized blue 17 | $features-6: lighten(#2aa198, 10%); // solarized cyan 18 | $features-7: lighten(#859900, 10%); // solarized green 19 | $features-8: lighten(#b58900, 10%); // solarized yellow 20 | 21 | 22 | .browsehappy { 23 | margin: 0.2em 0; 24 | background: #ccc; 25 | color: #000; 26 | padding: 0.2em 0; 27 | } 28 | 29 | // fix bootstrap sidescroll bs 30 | .row { 31 | margin-right: 0; 32 | margin-left: 0; 33 | } 34 | 35 | /* Space out content a bit */ 36 | body { 37 | background-color: $main-bg; 38 | color: $main-light; 39 | font-family: 'Open Sans', sans-serif; 40 | font-size: 1.7em; 41 | } 42 | 43 | a { 44 | &:link { 45 | color: white; 46 | font-weight: bold; 47 | text-decoration: none; 48 | } 49 | 50 | &:visited { 51 | color: white; 52 | } 53 | 54 | &:hover { 55 | text-decoration: underline; 56 | } 57 | } 58 | 59 | img { 60 | width: 100%; 61 | } 62 | 63 | h1 { 64 | font-family: 'Orbitron', sans-serif; 65 | font-size: 3em; 66 | } 67 | 68 | h1, h2, h3, h4 { 69 | font-weight: bold; 70 | text-transform: capitalize; 71 | } 72 | 73 | .headline-font { 74 | font-family: 'Orbitron', sans-serif; 75 | } 76 | 77 | .navbar, footer { 78 | background-color: lighten($main-bg, 10%); 79 | border: 0; 80 | } 81 | 82 | .navbar-default .navbar-nav > li > a { 83 | color: $main-light; 84 | text-decoration: none; 85 | font-size: 1.3em; 86 | line-height: 2; 87 | } 88 | 89 | .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { 90 | color: darken($main-light-alt, 10%); 91 | } 92 | 93 | .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { 94 | background: $main-bg; 95 | color: darken($main-light-alt, 10%); 96 | } 97 | 98 | .navbar-default .navbar-toggle { 99 | border: 0; 100 | color: $main-light; 101 | margin-right: .5em; 102 | line-height: 2; 103 | } 104 | 105 | .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { 106 | color: $main-light-alt; 107 | background-color: transparent; 108 | } 109 | 110 | .navbar-default .navbar-collapse, .navbar-default .navbar-form { 111 | border: 0; 112 | } 113 | 114 | #logo i { 115 | position: absolute; 116 | } 117 | 118 | #logo { 119 | position: relative; 120 | display: none; 121 | 122 | @include bounceInDown( 123 | $duration: 1s, 124 | $count: 1, 125 | $delay: .5s, 126 | $function: ease, 127 | $fill: both 128 | ); 129 | } 130 | 131 | #logo i { 132 | @include tada( 133 | $duration: 1s, 134 | $count: 1, 135 | $delay: 3s, 136 | $function: ease, 137 | $fill: both 138 | ); 139 | 140 | &:hover { 141 | @include tada( 142 | $duration: 1s, 143 | $count: 1, 144 | $delay: .1s, 145 | $function: ease, 146 | $fill: both 147 | ); 148 | } 149 | } 150 | 151 | #logo i.fa-code { 152 | font-size: .25em; 153 | left: 4.2%; 154 | } 155 | 156 | #logo i.fa-angle-double-down { 157 | font-size: .6em; 158 | left: 3.8%; 159 | top: 40%; 160 | } 161 | 162 | .navbar-header a { 163 | color: white; 164 | } 165 | 166 | #brand { 167 | position: relative; 168 | display: inline; 169 | font-size: 2em; 170 | display: inline-block; 171 | margin-top: 15px; 172 | margin-left: .5em; 173 | } 174 | 175 | #brand i { 176 | position: absolute; 177 | } 178 | 179 | #brand i.fa-code { 180 | font-size: .25em; 181 | left: 4.2%; 182 | } 183 | 184 | #brand i.fa-angle-double-down { 185 | font-size: .6em; 186 | left: 3.7%; 187 | top: 42%; 188 | } 189 | 190 | 191 | #intro h2, #intro p { 192 | @include slideInUp( 193 | $duration: .5s, 194 | $count: 1, 195 | $delay: .5s, 196 | $function: ease, 197 | $fill: both 198 | ); 199 | } 200 | 201 | section.main { 202 | margin: 9em auto; 203 | text-align: center; 204 | } 205 | 206 | .container-fluid .row { 207 | max-width: 1200px; 208 | } 209 | 210 | .feature-icon i { 211 | font-size: 5em; 212 | margin: 20px auto; 213 | } 214 | 215 | #demo textarea { 216 | width: 100%; 217 | height: 30em; 218 | background-color: transparent; 219 | padding: 1em; 220 | position: relative; 221 | } 222 | 223 | .text-background { 224 | position: absolute; 225 | z-index: 1; 226 | overflow: hidden; 227 | opacity: .2; 228 | font-family: 'Orbitron', sans-serif; 229 | font-size: 5em; 230 | } 231 | 232 | .text-background.html { 233 | top: 30%; 234 | left: 20%; 235 | transform: rotate(-33deg); 236 | } 237 | 238 | .text-background.md { 239 | top: 36%; 240 | right: 20%; 241 | transform: rotate(33deg); 242 | } 243 | 244 | // features 245 | 246 | #features .container-fluid { 247 | padding: 5em 0; 248 | border-width: 2em; 249 | border-top-style: dashed; 250 | 251 | img { 252 | margin-bottom: 3em; 253 | } 254 | } 255 | 256 | #features .container-fluid.first-feature:first-child { 257 | border-top-color: $main-bg; 258 | } 259 | #features .container-fluid:nth-child(7n+1) { 260 | background-color: $features-1; 261 | border-top-color: $features-6; 262 | } 263 | #features .container-fluid:nth-child(7n+2) { 264 | background-color: $features-2; 265 | border-top-color: $features-1; 266 | } 267 | #features .container-fluid:nth-child(7n+3) { 268 | background-color: $features-3; 269 | border-top-color: $features-2; 270 | } 271 | #features .container-fluid:nth-child(7n+4) { 272 | background-color: $features-4; 273 | border-top-color: $features-3; 274 | } 275 | #features .container-fluid:nth-child(7n+5) { 276 | background-color: $features-5; 277 | border-top-color: $features-4; 278 | } 279 | #features .container-fluid:nth-child(7n+6) { 280 | background-color: $features-6; 281 | border-top-color: $features-5; 282 | } 283 | #features .container-fluid:nth-child(7n+7) { 284 | background-color: $features-7; 285 | border-top-color: $features-6; 286 | } 287 | #features .container-fluid.last-feature:last-child { 288 | border-bottom-style: dashed; 289 | border-bottom-color: $main-bg; 290 | } 291 | // secret unicorn 292 | 293 | #secret { 294 | background-color: transparent; 295 | position: fixed; 296 | right: -100%; 297 | top: -100%; 298 | z-index: 100; 299 | color: red; 300 | font-size: 5em; 301 | transform: rotate(-25deg); 302 | font-family: 'orbitron'; 303 | } 304 | 305 | #credits { 306 | ul { 307 | list-style: none; 308 | padding-left: 0; 309 | } 310 | } 311 | 312 | footer { 313 | padding: 1em 0; 314 | font-size: .7em; 315 | text-align: center; 316 | } 317 | 318 | // for larger screens 319 | @media(min-width:48em){ 320 | #brand { 321 | display: none; 322 | font-size: 1em; 323 | margin-top: 1.25em; 324 | } 325 | #logo { 326 | display: inline; 327 | } 328 | .navbar-default .navbar-nav > li > a { 329 | font-size: 1em; 330 | line-height: 2; 331 | } 332 | .feature-description { 333 | text-align: left; 334 | } 335 | .container-fluid .row { 336 | margin-bottom: 10px; 337 | display: flex; 338 | 339 | .col { 340 | display: flex; 341 | justify-content: center; 342 | } 343 | } 344 | body { 345 | font-size: 2em; 346 | } 347 | h1 { 348 | font-size: 4em; 349 | } 350 | .brand-container { 351 | position: absolute; 352 | margin-left: auto; 353 | margin-right: auto; 354 | right: 0; 355 | left: 0; 356 | text-align: center; 357 | } 358 | } 359 | 360 | // override bs container md size 361 | @media (min-width: 768px) { 362 | .container { 363 | width: auto; 364 | } 365 | } 366 | -------------------------------------------------------------------------------- /app/terms.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Privacy Policy 6 | 7 | 31 | 32 | 33 |

Terms of Service

34 |

1. Terms

35 |

By accessing the Chrome Browser Extension "Markdownizr", you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in The Application are protected by applicable copyright and trademark law.

36 |

"Markdownizr", hereon referred to as "The Applicationlication", is not a commercial website. It is intended to be entertaining, educational, utilitarian, or serve as a reference for contact information.

37 |

2. Use License

38 |
    39 |
  1. Permission is granted to temporarily download one copy of the materials (information or software) on The Application's website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not: 40 |
      41 |
    1. use the materials for any commercial purpose, or public display;
    2. 42 |
    3. remove any copyright or other proprietary notations from the materials.
    4. 43 |
    44 |
  2. 45 |
46 |

3. Disclaimer

47 |
    48 |
  1. The materials on The Application's website are provided on an 'as is' basis. The Application makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.
  2. 49 |
  3. Further, The Application does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site.
  4. 50 |
51 |

4. Limitations

52 |

In no event shall The Application or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on The Application's website, even if The Application or a The Application authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you.

53 |

5. Accuracy of materials

54 |

The materials appearing on The Application's website could include technical, typographical, or photographic errors. The Application does not warrant that any of the materials on its website are accurate, complete or current. The Application may make changes to the materials contained on its website at any time without notice. However The Application does not make any commitment to update the materials.

55 |

6. Links

56 |

The Application has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by The Application of the site. Use of any such linked website is at the user's own risk.

57 |

7. Modifications

58 |

The Application may revise these terms of service for its website at any time without notice. By using The Application you are agreeing to be bound by the then current version of these terms of service.

59 |

8. Governing Law

60 |

These terms and conditions are governed by and construed in accordance with the laws of California and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location.

61 |

Privacy Policy

62 |

Your privacy is important to us. It is The Application's policy to respect your privacy regarding any information we may collect.

63 |

Personal Data & Tracking

64 |

The Application may use Google Analytics for non-commercial statistical analysis.

65 |

Other than Google Analytics, The Application does not intentionally collect any personal information whatsoever. Should any personally identifying information become available as a resulted of undesired circumstances, such as hacking, reasonable effort would be made to alert the affected parties and those data would be immediately and securely deleted after said notifications.

66 |

Cookies & Caches

67 |

The Application may use cookies and/or your browser's local storage methods to save its state/configuration or increase performance. These data are not used for any commercial purpose nor for personal identification.

68 |

Tracking

69 |

The Application does not contain nor employ any functionality to track, monitor, or record personal information. It does not attempt to identify or cross-reference users with internal or third party resources.

70 |

Advertisements ("Ads")

71 |

The Application does not contain any commercial advertisements.

72 | 73 | 74 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "markdownizr", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap-sass": "~3.3.5", 6 | "modernizr": "~2.8.1", 7 | "animatewithsass": "^3.2.2", 8 | "to-markdown": "~1.3.0" 9 | }, 10 | "overrides": { 11 | "bootstrap-sass": { 12 | "main": [ 13 | "assets/stylesheets/_bootstrap.scss", 14 | "assets/fonts/bootstrap/*", 15 | "assets/javascripts/bootstrap.js" 16 | ] 17 | } 18 | }, 19 | "devDependencies": { 20 | "chai": "^4.1.2", 21 | "mocha": "^5.2.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /dist/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/dist/apple-touch-icon.png -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/dist/favicon.ico -------------------------------------------------------------------------------- /dist/images/allthethings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/dist/images/allthethings.jpg -------------------------------------------------------------------------------- /dist/images/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/dist/images/button.gif -------------------------------------------------------------------------------- /dist/images/keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/dist/images/keyboard.png -------------------------------------------------------------------------------- /dist/images/mouse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/dist/images/mouse.gif -------------------------------------------------------------------------------- /dist/images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh78/markdownizr/bedb2bae4e76d6bf12f87f8e9822fcbcd2994365/dist/images/settings.png -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | Markdownizr :: Chrome Extension

Markdownizr

Copy Website Content As (clean!) Markdown

Markdownizr is a Google Chrome extension that lets you extract clean Markdown from web pages. If you like Markdown, plain text files, or being productive, then keep scrolling.

About Markdown

Markdown is a simple markup language that adds semantics to plain text files. It was created by John Gruber in 2004.

Anything is possible, if you just use Markdown

Once content is in Markdown format, the possibilities are endless - create PDFs, Word/RTFs, HTML websites, books, and more instantly. There are a veritable plethora of free (and paid) tools for Linux, macOS, iOS, Android, other operating systems, and even your browser.

Markdownizr has your back

With Markdownizr, you don't have to manually format any content from a website to reference it in notes, cite it in your documentation, or whatever you may be plotting.

How to use

To get started, select some text on a web page and click the Markdownizr "M" icon in the Chrome toolbar. The Markdown will be copied to your computer's clipboard so you can paste it anywhere. You can also right click and select "Get Markdown" if that makes you happy.

video of markdownizr being used via the plugin button

Get the whole page, and nothing but the page

If you want to copy the content of the entire page, just make sure that no text is selected and click the "M" button or right-click option. Done!

video of markdownizr being used via the plugin button

Keyboard shortcuts == winning;

Want even more power? Try adding a keyboard shortcut to super-charge your workflow. You can set keyboard shortcuts for plugins from the chrome://extensions page.

chrome's extension settings

Flexible and damn-near future-proof

While other Markdown extraction browser extensions are locked in to a prescribed method of filtering out the html code, Markdownizr puts you in the driver's seat with simple yet powerful settings.

settings page of markdownizr

We've added some sensible defaults in hopes that your Markdown turns out well-formed, but the internet is a wild place. Here are the avilable options:

Strip Elements

This first text box is a comma-separated list of HTML elements that Markdownizr will take the content from, but delete the surrounding HTML tags (code).

Delete Elements

This box is the same as the first, but any elements here will be deleted entirely - inner content and all. Use this to get rid of unexpected cruft from <script> tags, etc.

Free and open-source, forever

Markdownizr is and always will be free, open-source software. It was developed for fun and released because... well why not?

The extension is 100% free of malware, ads, trackers, and gremlins. You can check out the source code on GitHub.

Ready to up your markdown game?

Markdownizr is available on the Chrome Webstore for free! If you're still not convinced, check out the interactive demo below.

Demo

Here's a behind-the-scenes-sneak-peak at how Markdownizr chops up your HTML into sweet, glorious Markdown. Try pasting some random HTML into the HTML box!

HTML

HTML

MARKDOWN

MDWN
-------------------------------------------------------------------------------- /dist/robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org/ 2 | 3 | User-agent: * 4 | Disallow: 5 | -------------------------------------------------------------------------------- /dist/scripts/main.js: -------------------------------------------------------------------------------- 1 | "use strict";function isSeen(t){var e=$(window).scrollTop(),n=e+$(window).height(),a=$(t).offset().top;return a+$(t).height()<=n&&a>=e}jQuery.easing.def="easeOutElastic",$(document).ready(function(){function t(){$("#secret").animate({top:"30%",right:"40%"},3e3,"swing").animate({top:"-100%",right:"-100%"},5e3,"swing")}$(document).on("click",".navbar-collapse.in",function(t){$(t.target).is("a")&&$(this).collapse("hide")});var e={converters:[{filter:["div","span","small","aside","section","article","header","footer","hgroup","time","address","button"],replacement:function(t){return t}},{filter:["script","noscript","canvas","embed","object","param","svg","source","nav","iframe"],replacement:function(){return""}}]},n=toMarkdown($("#toMarkdown_input").val(),e);$("#toMarkdown_output").val(n),$("#toMarkdown_input").bind("change paste keyup",function(){$("#toMarkdown_output").val(toMarkdown($(this).val()))});var a=0;$('a[href^="#"]').on("click",function(t){var e=$(this).attr("href");if(e.length>1&&0===e.indexOf("#")){t.preventDefault();var n=$(this).attr("href");$("html, body").animate({scrollTop:$(n).offset().top-70},400,"linear")}else 1===e.length&&0===e.indexOf("#")&&$("html, body").animate({scrollTop:0},400,"linear")}),$(window).scroll(function(){isSeen($("#demo h1"))&&0===a&&(setTimeout(t,4e3),a+=1),isSeen($("#logo"))?window.innerWidth>767&&$("#brand").fadeOut():$("#brand").fadeIn().css("display","inline-block")});$("a").not("nav a").filter(function(){return this.hostname&&this.hostname!==location.hostname}).append(' ')}); -------------------------------------------------------------------------------- /dist/scripts/plugins.js: -------------------------------------------------------------------------------- 1 | +function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof e&&e;n||o.data("bs.affix",n=new i(this,s)),"string"==typeof e&&n[e]()})}var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.7",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return n=t-o&&"bottom"},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,n=o.top,s=o.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(s=n=o),"function"==typeof n&&(n=o.top(this.$element)),"function"==typeof s&&(s=o.bottom(this.$element));var r=this.getState(a,e,n,s);if(this.affixed!=r){null!=this.unpin&&this.$element.css("top","");var l="affix"+(r?"-"+r:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=r,this.unpin="bottom"==r?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==r&&this.$element.offset({top:a-e-s})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery),function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.3.7",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var a=t("#"===s?[]:s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function i(i){i&&3===i.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=e(o),s={relatedTarget:this};n.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(n[0],i.target)||(n.trigger(i=t.Event("hide.bs.dropdown",s)),i.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger(t.Event("hidden.bs.dropdown",s)))))}))}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==typeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.7",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=e(n),a=s.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger(t.Event("shown.bs.dropdown",r))}return!1}},a.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var o=t(this);if(i.preventDefault(),i.stopPropagation(),!o.is(".disabled, :disabled")){var n=e(o),a=n.hasClass("open");if(!a&&27!=i.which||a&&27==i.which)return 27==i.which&&n.find(s).trigger("focus"),o.trigger("click");var r=n.find(".dropdown-menu li:not(.disabled):visible a");if(r.length){var l=r.index(i.target);38==i.which&&l>0&&l--,40==i.which&&l
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),!i.isInStateTrue()){if(clearTimeout(i.timeout),i.hoverState="out",!i.options.delay||!i.options.delay.hide)return i.hide();i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)}},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),a=this.getUID(this.type);this.setContent(),s.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&s.addClass("fade");var r="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,h=l.test(r);h&&(r=r.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(r).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var d=this.getPosition(),p=s[0].offsetWidth,c=s[0].offsetHeight;if(h){var f=r,u=this.getPosition(this.$viewport);r="bottom"==r&&d.bottom+c>u.bottom?"top":"top"==r&&d.top-cu.width?"left":"left"==r&&d.left-pa.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;ha.right&&(n.left=a.left+a.width-d)}return n},i.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},i.prototype.getUID=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},i.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&((i=t(e.currentTarget).data("bs."+this.type))||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})};var o=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=o,this}}(jQuery),function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.7",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){document===t.target||this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){if(this.ignoreBackdropClick)return void(this.ignoreBackdropClick=!1);t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth

'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.7",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e);if(("prev"==t&&0===i||"next"==t&&i==this.$items.length-1)&&!this.options.wrap)return e;var o="prev"==t?-1:1,n=(i+o)%this.$items.length;return this.$items.eq(n)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(t>this.$items.length-1||t<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){if(!this.sliding)return this.slide("next")},i.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var h=s[0],d=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(d),!d.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o,n=t(this),s=t(n.attr("data-target")||(o=n.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var a=t.extend({},s.data(),n.data()),r=n.attr("data-slide-to");r&&(a.interval=!1),e.call(s,a),r&&s.data("bs.carousel").to(r),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),function(t){"use strict";function e(i,o){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})}e.VERSION="3.3.7",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),n=e.data("target")||e.attr("href"),s=/^#./.test(n)&&t(n);return s&&s.length&&s.is(":visible")&&[[s[i]().top+o,n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=o)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e=n[t]&&(void 0===n[t+1]||e .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',n).on("click.bs.tab.data-api",'[data-toggle="pill"]',n)}(jQuery); -------------------------------------------------------------------------------- /dist/scripts/vendor/modernizr.js: -------------------------------------------------------------------------------- 1 | window.Modernizr=function(e,t,n){function r(e){g.cssText=e}function o(e,t){return r(E.join(e+";")+(t||""))}function a(e,t){return typeof e===t}function i(e,t){return!!~(""+e).indexOf(t)}function c(e,t){for(var r in e){var o=e[r];if(!i(o,"-")&&g[o]!==n)return"pfx"!=t||o}return!1}function s(e,t,r){for(var o in e){var i=t[e[o]];if(i!==n)return!1===r?e[o]:a(i,"function")?i.bind(r||t):i}return!1}function u(e,t,n){var r=e.charAt(0).toUpperCase()+e.slice(1),o=(e+" "+w.join(r+" ")+r).split(" ");return a(t,"string")||a(t,"undefined")?c(o,t):(o=(e+" "+S.join(r+" ")+r).split(" "),s(o,t,n))}var l,d,f={},m=t.documentElement,p="modernizr",h=t.createElement(p),g=h.style,v=t.createElement("input"),y=":)",b={}.toString,E=" -webkit- -moz- -o- -ms- ".split(" "),x="Webkit Moz O ms",w=x.split(" "),S=x.toLowerCase().split(" "),C={svg:"http://www.w3.org/2000/svg"},k={},T={},N={},M=[],P=M.slice,j=function(e,n,r,o){var a,i,c,s,u=t.createElement("div"),l=t.body,d=l||t.createElement("body");if(parseInt(r,10))for(;r--;)c=t.createElement("div"),c.id=o?o[r]:p+(r+1),u.appendChild(c);return a=["­",'"].join(""),u.id=p,(l?u:d).innerHTML+=a,d.appendChild(u),l||(d.style.background="",d.style.overflow="hidden",s=m.style.overflow,m.style.overflow="hidden",m.appendChild(d)),i=n(u,e),l?u.parentNode.removeChild(u):(d.parentNode.removeChild(d),m.style.overflow=s),!!i},$=function(t){var n=e.matchMedia||e.msMatchMedia;if(n)return n(t)&&n(t).matches||!1;var r;return j("@media "+t+" { #"+p+" { position: absolute; } }",function(t){r="absolute"==(e.getComputedStyle?getComputedStyle(t,null):t.currentStyle).position}),r},D=function(){function e(e,o){o=o||t.createElement(r[e]||"div"),e="on"+e;var i=e in o;return i||(o.setAttribute||(o=t.createElement("div")),o.setAttribute&&o.removeAttribute&&(o.setAttribute(e,""),i=a(o[e],"function"),a(o[e],"undefined")||(o[e]=n),o.removeAttribute(e))),o=null,i}var r={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return e}(),F={}.hasOwnProperty;d=a(F,"undefined")||a(F.call,"undefined")?function(e,t){return t in e&&a(e.constructor.prototype[t],"undefined")}:function(e,t){return F.call(e,t)},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError;var n=P.call(arguments,1),r=function(){if(this instanceof r){var o=function(){};o.prototype=t.prototype;var a=new o,i=t.apply(a,n.concat(P.call(arguments)));return Object(i)===i?i:a}return t.apply(e,n.concat(P.call(arguments)))};return r}),k.flexbox=function(){return u("flexWrap")},k.flexboxlegacy=function(){return u("boxDirection")},k.canvas=function(){var e=t.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},k.canvastext=function(){return!(!f.canvas||!a(t.createElement("canvas").getContext("2d").fillText,"function"))},k.webgl=function(){return!!e.WebGLRenderingContext},k.touch=function(){var n;return"ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch?n=!0:j(["@media (",E.join("touch-enabled),("),p,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(e){n=9===e.offsetTop}),n},k.geolocation=function(){return"geolocation"in navigator},k.postmessage=function(){return!!e.postMessage},k.websqldatabase=function(){return!!e.openDatabase},k.indexedDB=function(){return!!u("indexedDB",e)},k.hashchange=function(){return D("hashchange",e)&&(t.documentMode===n||t.documentMode>7)},k.history=function(){return!(!e.history||!history.pushState)},k.draganddrop=function(){var e=t.createElement("div");return"draggable"in e||"ondragstart"in e&&"ondrop"in e},k.websockets=function(){return"WebSocket"in e||"MozWebSocket"in e},k.rgba=function(){return r("background-color:rgba(150,255,150,.5)"),i(g.backgroundColor,"rgba")},k.hsla=function(){return r("background-color:hsla(120,40%,100%,.5)"),i(g.backgroundColor,"rgba")||i(g.backgroundColor,"hsla")},k.multiplebgs=function(){return r("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(g.background)},k.backgroundsize=function(){return u("backgroundSize")},k.borderimage=function(){return u("borderImage")},k.borderradius=function(){return u("borderRadius")},k.boxshadow=function(){return u("boxShadow")},k.textshadow=function(){return""===t.createElement("div").style.textShadow},k.opacity=function(){return o("opacity:.55"),/^0.55$/.test(g.opacity)},k.cssanimations=function(){return u("animationName")},k.csscolumns=function(){return u("columnCount")},k.cssgradients=function(){var e="background-image:";return r((e+"-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));"+e)+E.join("linear-gradient(left top,#9f9, white);"+e)).slice(0,-e.length)),i(g.backgroundImage,"gradient")},k.cssreflections=function(){return u("boxReflect")},k.csstransforms=function(){return!!u("transform")},k.csstransforms3d=function(){var e=!!u("perspective");return e&&"webkitPerspective"in m.style&&j("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t,n){e=9===t.offsetLeft&&3===t.offsetHeight}),e},k.csstransitions=function(){return u("transition")},k.fontface=function(){var e;return j('@font-face {font-family:"font";src:url("https://")}',function(n,r){var o=t.getElementById("smodernizr"),a=o.sheet||o.styleSheet,i=a?a.cssRules&&a.cssRules[0]?a.cssRules[0].cssText:a.cssText||"":"";e=/src/i.test(i)&&0===i.indexOf(r.split(" ")[0])}),e},k.generatedcontent=function(){var e;return j(["#",p,"{font:0/0 a}#",p,':after{content:"',y,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){e=t.offsetHeight>=3}),e},k.video=function(){var e=t.createElement("video"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(e){}return n},k.audio=function(){var e=t.createElement("audio"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=e.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(e){}return n},k.localstorage=function(){try{return localStorage.setItem(p,p),localStorage.removeItem(p),!0}catch(e){return!1}},k.sessionstorage=function(){try{return sessionStorage.setItem(p,p),sessionStorage.removeItem(p),!0}catch(e){return!1}},k.webworkers=function(){return!!e.Worker},k.applicationcache=function(){return!!e.applicationCache},k.svg=function(){return!!t.createElementNS&&!!t.createElementNS(C.svg,"svg").createSVGRect},k.inlinesvg=function(){var e=t.createElement("div");return e.innerHTML="",(e.firstChild&&e.firstChild.namespaceURI)==C.svg},k.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(b.call(t.createElementNS(C.svg,"animate")))},k.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(b.call(t.createElementNS(C.svg,"clipPath")))};for(var z in k)d(k,z)&&(l=z.toLowerCase(),f[l]=k[z](),M.push((f[l]?"":"no-")+l));return f.input||function(){f.input=function(n){for(var r=0,o=n.length;r",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=v.elements;return"string"==typeof e?e.split(" "):e}function o(e){var t=g[e[p]];return t||(t={},h++,e[p]=h,g[h]=t),t}function a(e,n,r){if(n||(n=t),l)return n.createElement(e);r||(r=o(n));var a;return a=r.cache[e]?r.cache[e].cloneNode():m.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!a.canHaveChildren||f.test(e)||a.tagUrn?a:r.frag.appendChild(a)}function i(e,n){if(e||(e=t),l)return e.createDocumentFragment();n=n||o(e);for(var a=n.frag.cloneNode(),i=0,c=r(),s=c.length;i",u="hidden"in e,l=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return void 0===e.cloneNode||void 0===e.createDocumentFragment||void 0===e.createElement}()}catch(e){u=!0,l=!0}}();var v={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==d.shivCSS,supportsUnknownElements:l,shivMethods:!1!==d.shivMethods,type:"default",shivDocument:s,createElement:a,createDocumentFragment:i};e.html5=v,s(t)}(this,t),f._version="2.8.3",f._prefixes=E,f._domPrefixes=S,f._cssomPrefixes=w,f.mq=$,f.hasEvent=D,f.testProp=function(e){return c([e])},f.testAllProps=u,f.testStyles=j,f.prefixed=function(e,t,n){return t?u(e,t,n):u(e,"pfx")},m.className=m.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+" js "+M.join(" "),f}(this,this.document); -------------------------------------------------------------------------------- /dist/terms.html: -------------------------------------------------------------------------------- 1 | Privacy Policy

Terms of Service

1. Terms

By accessing the Chrome Browser Extension "Markdownizr", you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in The Application are protected by applicable copyright and trademark law.

"Markdownizr", hereon referred to as "The Applicationlication", is not a commercial website. It is intended to be entertaining, educational, utilitarian, or serve as a reference for contact information.

2. Use License

  1. Permission is granted to temporarily download one copy of the materials (information or software) on The Application's website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not:
    1. use the materials for any commercial purpose, or public display;
    2. remove any copyright or other proprietary notations from the materials.

3. Disclaimer

  1. The materials on The Application's website are provided on an 'as is' basis. The Application makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.
  2. Further, The Application does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site.

4. Limitations

In no event shall The Application or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on The Application's website, even if The Application or a The Application authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you.

5. Accuracy of materials

The materials appearing on The Application's website could include technical, typographical, or photographic errors. The Application does not warrant that any of the materials on its website are accurate, complete or current. The Application may make changes to the materials contained on its website at any time without notice. However The Application does not make any commitment to update the materials.

6. Links

The Application has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by The Application of the site. Use of any such linked website is at the user's own risk.

7. Modifications

The Application may revise these terms of service for its website at any time without notice. By using The Application you are agreeing to be bound by the then current version of these terms of service.

8. Governing Law

These terms and conditions are governed by and construed in accordance with the laws of California and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location.

Privacy Policy

Your privacy is important to us. It is The Application's policy to respect your privacy regarding any information we may collect.

Personal Data & Tracking

The Application may use Google Analytics for non-commercial statistical analysis.

Other than Google Analytics, The Application does not intentionally collect any personal information whatsoever. Should any personally identifying information become available as a resulted of undesired circumstances, such as hacking, reasonable effort would be made to alert the affected parties and those data would be immediately and securely deleted after said notifications.

Cookies & Caches

The Application may use cookies and/or your browser's local storage methods to save its state/configuration or increase performance. These data are not used for any commercial purpose nor for personal identification.

Tracking

The Application does not contain nor employ any functionality to track, monitor, or record personal information. It does not attempt to identify or cross-reference users with internal or third party resources.

Advertisements ("Ads")

The Application does not contain any commercial advertisements.

-------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | // generated on 2018-05-30 using generator-webapp 3.0.1 2 | const gulp = require('gulp'); 3 | const gulpLoadPlugins = require('gulp-load-plugins'); 4 | const browserSync = require('browser-sync').create(); 5 | const del = require('del'); 6 | const wiredep = require('wiredep').stream; 7 | const runSequence = require('run-sequence'); 8 | 9 | const $ = gulpLoadPlugins(); 10 | const reload = browserSync.reload; 11 | 12 | let dev = true; 13 | 14 | gulp.task('styles', () => { 15 | return gulp.src('app/styles/*.scss') 16 | .pipe($.plumber()) 17 | .pipe($.if(dev, $.sourcemaps.init())) 18 | .pipe($.sass.sync({ 19 | outputStyle: 'expanded', 20 | precision: 10, 21 | includePaths: ['.'] 22 | }).on('error', $.sass.logError)) 23 | .pipe($.autoprefixer({browsers: ['> 1%', 'last 2 versions', 'Firefox ESR']})) 24 | .pipe($.if(dev, $.sourcemaps.write())) 25 | .pipe(gulp.dest('.tmp/styles')) 26 | .pipe(reload({stream: true})); 27 | }); 28 | 29 | gulp.task('scripts', () => { 30 | return gulp.src('app/scripts/**/*.js') 31 | .pipe($.plumber()) 32 | .pipe($.if(dev, $.sourcemaps.init())) 33 | .pipe($.babel()) 34 | .pipe($.if(dev, $.sourcemaps.write('.'))) 35 | .pipe(gulp.dest('.tmp/scripts')) 36 | .pipe(reload({stream: true})); 37 | }); 38 | 39 | function lint(files) { 40 | return gulp.src(files) 41 | .pipe($.eslint({ fix: true })) 42 | .pipe(reload({stream: true, once: true})) 43 | .pipe($.eslint.format()) 44 | .pipe($.if(!browserSync.active, $.eslint.failAfterError())); 45 | } 46 | 47 | gulp.task('lint', () => { 48 | return lint('app/scripts/**/*.js') 49 | .pipe(gulp.dest('app/scripts')); 50 | }); 51 | gulp.task('lint:test', () => { 52 | return lint('test/spec/**/*.js') 53 | .pipe(gulp.dest('test/spec')); 54 | }); 55 | 56 | gulp.task('html', ['styles', 'scripts'], () => { 57 | return gulp.src('app/*.html') 58 | .pipe($.useref({searchPath: ['.tmp', 'app', '.']})) 59 | .pipe($.if(/\.js$/, $.uglify({compress: {drop_console: true}}))) 60 | .pipe($.if(/\.css$/, $.cssnano({safe: true, autoprefixer: false}))) 61 | .pipe($.if(/\.html$/, $.htmlmin({ 62 | collapseWhitespace: true, 63 | minifyCSS: true, 64 | minifyJS: {compress: {drop_console: true}}, 65 | processConditionalComments: true, 66 | removeComments: true, 67 | removeEmptyAttributes: true, 68 | removeScriptTypeAttributes: true, 69 | removeStyleLinkTypeAttributes: true 70 | }))) 71 | .pipe(gulp.dest('dist')); 72 | }); 73 | 74 | gulp.task('images', () => { 75 | return gulp.src('app/images/**/*') 76 | .pipe($.cache($.imagemin())) 77 | .pipe(gulp.dest('dist/images')); 78 | }); 79 | 80 | gulp.task('fonts', () => { 81 | return gulp.src(require('main-bower-files')('**/*.{eot,svg,ttf,woff,woff2}', function (err) {}) 82 | .concat('app/fonts/**/*')) 83 | .pipe($.if(dev, gulp.dest('.tmp/fonts'), gulp.dest('dist/fonts'))); 84 | }); 85 | 86 | gulp.task('extras', () => { 87 | return gulp.src([ 88 | 'app/*', 89 | '!app/*.html' 90 | ], { 91 | dot: true 92 | }).pipe(gulp.dest('dist')); 93 | }); 94 | 95 | gulp.task('clean', del.bind(null, ['.tmp', 'dist'])); 96 | 97 | gulp.task('serve', () => { 98 | runSequence(['clean', 'wiredep'], ['styles', 'scripts', 'fonts'], () => { 99 | browserSync.init({ 100 | notify: false, 101 | port: 9000, 102 | server: { 103 | baseDir: ['.tmp', 'app'], 104 | routes: { 105 | '/bower_components': 'bower_components' 106 | } 107 | } 108 | }); 109 | 110 | gulp.watch([ 111 | 'app/*.html', 112 | 'app/images/**/*', 113 | '.tmp/fonts/**/*' 114 | ]).on('change', reload); 115 | 116 | gulp.watch('app/styles/**/*.scss', ['styles']); 117 | gulp.watch('app/scripts/**/*.js', ['scripts']); 118 | gulp.watch('app/fonts/**/*', ['fonts']); 119 | gulp.watch('bower.json', ['wiredep', 'fonts']); 120 | }); 121 | }); 122 | 123 | gulp.task('serve:dist', ['default'], () => { 124 | browserSync.init({ 125 | notify: false, 126 | port: 9000, 127 | server: { 128 | baseDir: ['dist'] 129 | } 130 | }); 131 | }); 132 | 133 | gulp.task('serve:test', ['scripts'], () => { 134 | browserSync.init({ 135 | notify: false, 136 | port: 9000, 137 | ui: false, 138 | server: { 139 | baseDir: 'test', 140 | routes: { 141 | '/scripts': '.tmp/scripts', 142 | '/bower_components': 'bower_components' 143 | } 144 | } 145 | }); 146 | 147 | gulp.watch('app/scripts/**/*.js', ['scripts']); 148 | gulp.watch(['test/spec/**/*.js', 'test/index.html']).on('change', reload); 149 | gulp.watch('test/spec/**/*.js', ['lint:test']); 150 | }); 151 | 152 | // inject bower components 153 | gulp.task('wiredep', () => { 154 | gulp.src('app/styles/*.scss') 155 | .pipe($.filter(file => file.stat && file.stat.size)) 156 | .pipe(wiredep({ 157 | ignorePath: /^(\.\.\/)+/ 158 | })) 159 | .pipe(gulp.dest('app/styles')); 160 | 161 | gulp.src('app/*.html') 162 | .pipe(wiredep({ 163 | exclude: ['bootstrap-sass'], 164 | ignorePath: /^(\.\.\/)*\.\./ 165 | })) 166 | .pipe(gulp.dest('app')); 167 | }); 168 | 169 | gulp.task('build', ['lint', 'html', 'images', 'fonts', 'extras'], () => { 170 | return gulp.src('dist/**/*').pipe($.size({title: 'build', gzip: true})); 171 | }); 172 | 173 | gulp.task('default', () => { 174 | return new Promise(resolve => { 175 | dev = false; 176 | runSequence(['clean', 'wiredep'], 'build', resolve); 177 | }); 178 | }); 179 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "deploy": "gulp build && git add dist && git commit -m 'build' && git push origin `git subtree split --prefix dist`:gh-pages --force && cfcli purge https://sean.sh" 4 | }, 5 | "private": true, 6 | "engines": { 7 | "node": ">=4" 8 | }, 9 | "devDependencies": { 10 | "babel-core": "^6.4.0", 11 | "babel-preset-es2015": "^6.3.13", 12 | "babel-register": "^6.5.2", 13 | "browser-sync": "^2.2.1", 14 | "del": "^2.2.0", 15 | "gulp-autoprefixer": "^3.0.1", 16 | "gulp-babel": "^6.1.1", 17 | "gulp-cache": "^0.4.2", 18 | "gulp-cssnano": "^2.0.0", 19 | "gulp-eslint": "^3.0.0", 20 | "gulp-filter": "^4.0.0", 21 | "gulp-htmlmin": "^3.0.0", 22 | "gulp-if": "^2.0.2", 23 | "gulp-imagemin": "^3.0.1", 24 | "gulp-load-plugins": "^1.2.4", 25 | "gulp-plumber": "^1.0.1", 26 | "gulp-sass": "^3.0.0", 27 | "gulp-size": "^2.1.0", 28 | "gulp-sourcemaps": "^2.2.0", 29 | "gulp-uglify": "^2.0.0", 30 | "gulp-useref": "^3.0.0", 31 | "main-bower-files": "^2.5.0", 32 | "run-sequence": "^1.2.2", 33 | "wiredep": "^4.0.0" 34 | }, 35 | "eslintConfig": { 36 | "env": { 37 | "es6": true, 38 | "node": true, 39 | "browser": true 40 | }, 41 | "rules": { 42 | "quotes": [ 43 | 2, 44 | "single" 45 | ] 46 | } 47 | }, 48 | "dependencies": { 49 | "gulp": "^3.9.1" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mocha Spec Runner 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 18 | 19 | 20 | 21 | 22 | 23 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/spec/test.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | describe('Give it some context', function () { 5 | describe('maybe a bit more context here', function () { 6 | it('should run here few assertions', function () { 7 | 8 | }); 9 | }); 10 | }); 11 | })(); 12 | --------------------------------------------------------------------------------