diff --git a/.eslintrc.json b/.eslintrc.json
index fa8f161..b52b218 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,273 +1,205 @@
{
- "env": {
- "browser": true
- },
- "parser": "babel-eslint",
- "extends": "eslint:recommended",
- "rules": {
- "accessor-pairs": "error",
- "array-bracket-spacing": "off",
- "array-callback-return": "error",
- "arrow-body-style": "off",
- "arrow-parens": "error",
- "arrow-spacing": "error",
- "block-scoped-var": "error",
- "block-spacing": [
- "error",
- "always"
- ],
- "brace-style": "off",
- "callback-return": "error",
- "camelcase": "error",
- "comma-spacing": "off",
- "comma-style": "off",
- "complexity": "error",
- "computed-property-spacing": [
- "error",
- "never"
- ],
- "consistent-return": "error",
- "consistent-this": "off",
- "curly": "error",
- "default-case": "error",
- "dot-location": [
- "error",
- "property"
- ],
- "dot-notation": "error",
- "eol-last": "off",
- "eqeqeq": "error",
- "func-names": "off",
- "func-style": [
- "error",
- "declaration"
- ],
- "generator-star-spacing": "error",
- "global-require": "error",
- "guard-for-in": "error",
- "handle-callback-err": "error",
- "id-blacklist": "error",
- "id-length": "off",
- "id-match": "error",
- "indent": [ "error", "tab" ],
- "init-declarations": "off",
- "jsx-quotes": "error",
- "key-spacing": [
- "error",
- { "afterColon": true }
- ],
- "keyword-spacing": [
- "error",
- {
- "after": true,
- "before": true
- }
- ],
- "linebreak-style": [
- "error",
- "unix"
- ],
- "lines-around-comment": "error",
- "max-depth": "error",
- "max-len": "off",
- "max-nested-callbacks": "error",
- "max-params": "error",
- "max-statements": "off",
- "max-statements-per-line": "off",
- "new-parens": "error",
- "newline-after-var": "off",
- "newline-before-return": "off",
- "newline-per-chained-call": "error",
- "no-alert": "off",
- "no-array-constructor": "error",
- "no-bitwise": "off",
- "no-caller": "off",
- "no-console": "off",
- "no-catch-shadow": "error",
- "no-confusing-arrow": "error",
- "no-continue": "error",
- "no-div-regex": "error",
- "no-duplicate-imports": "error",
- "no-else-return": "error",
- "no-empty-function": "off",
- "no-eq-null": "error",
- "no-eval": "error",
- "no-extend-native": "error",
- "no-extra-bind": "error",
- "no-extra-label": "error",
- "no-extra-parens": "off",
- "no-floating-decimal": "error",
- "no-implicit-coercion": "off",
- "no-implicit-globals": "off",
- "no-implied-eval": "error",
- "no-inline-comments": "off",
- "no-inner-declarations": [
- "error",
- "functions"
- ],
- "no-invalid-this": "error",
- "no-iterator": "error",
- "no-label-var": "error",
- "no-labels": "error",
- "no-lone-blocks": "error",
- "no-lonely-if": "error",
- "no-loop-func": "error",
- "no-magic-numbers": "off",
- "no-mixed-requires": "error",
- "no-multi-spaces": "error",
- "no-multi-str": "error",
- "no-multiple-empty-lines": "error",
- "no-native-reassign": "error",
- "no-negated-condition": "off",
- "no-nested-ternary": "off",
- "no-new": "off",
- "no-new-func": "error",
- "no-new-object": "error",
- "no-new-require": "error",
- "no-new-wrappers": "error",
- "no-octal-escape": "error",
- "no-param-reassign": [
- "error",
- {
- "props": false
- }
- ],
- "no-path-concat": "error",
- "no-plusplus": [
- "error",
- {
- "allowForLoopAfterthoughts": true
- }
- ],
- "no-process-env": "error",
- "no-process-exit": "error",
- "no-proto": "error",
- "no-prototype-builtins": "error",
- "no-restricted-globals": "error",
- "no-restricted-imports": "error",
- "no-restricted-modules": "error",
- "no-restricted-syntax": "error",
- "no-return-assign": "error",
- "no-script-url": "error",
- "no-self-compare": "error",
- "no-sequences": "error",
- "no-shadow": "error",
- "no-shadow-restricted-names": "error",
- "no-spaced-func": "error",
- "no-sync": "error",
- "no-ternary": "off",
- "no-throw-literal": "error",
- "no-trailing-spaces": "error",
- "no-undef-init": "error",
- "no-undefined": "error",
- "no-underscore-dangle": "error",
- "no-unmodified-loop-condition": "error",
- "no-unneeded-ternary": "error",
- "no-unsafe-finally": "error",
- "no-unused-expressions": "error",
- "no-use-before-define": "off",
- "no-useless-call": "error",
- "no-useless-computed-key": "error",
- "no-useless-concat": "off",
- "no-useless-constructor": "error",
- "no-useless-escape": "error",
- "no-useless-rename": "error",
- "no-var": "off",
- "no-void": "error",
- "no-warning-comments": "off",
- "no-whitespace-before-property": "error",
- "no-with": "error",
- "object-curly-spacing": [
- "error",
- "always"
- ],
- "object-property-newline": "off",
- "object-shorthand": "off",
- "one-var": "off",
- "one-var-declaration-per-line": "error",
- "operator-assignment": [
- "error",
- "always"
- ],
- "operator-linebreak": [
- "error",
- "before"
- ],
- "padded-blocks": "off",
- "prefer-arrow-callback": "off",
- "prefer-const": "error",
- "prefer-reflect": "off",
- "prefer-rest-params": "off",
- "prefer-spread": "error",
- "prefer-template": "off",
- "quote-props": "off",
- "quotes": "off",
- "radix": "error",
- "require-jsdoc": "off",
- "require-yield": "error",
- "semi": "off",
- "semi-spacing": [
- "error",
- {
- "after": true,
- "before": false
- }
- ],
- "sort-imports": "error",
- "sort-vars": "off",
- "space-before-blocks": "off",
- "space-before-function-paren": "off",
- "space-in-parens": [
- "error",
- "never"
- ],
- "space-infix-ops": "error",
- "space-unary-ops": "error",
- "spaced-comment": [
- "error",
- "always"
- ],
- "strict": [
- "error",
- "never"
- ],
- "template-curly-spacing": "error",
- "unicode-bom": [
- "error",
- "never"
- ],
- "valid-jsdoc": "off",
- "vars-on-top": "off",
- "wrap-regex": "error",
- "yield-star-spacing": "error",
- "yoda": [
- "error",
- "never"
- ]
- },
- "globals": {
- "ArrayBuffer": true,
- "Uint8Array": true,
- "chrome": true,
- "CodeMirror": true,
- "Split": true,
- "emmetCodeMirror": true,
- "deferred": true,
- "$": true,
- "$all": true,
- "CoffeeScript": true,
- "Babel": true,
- "ts": true,
- "Sass": true,
- "less": true,
- "stylus": true,
- "marked": true,
- "jade": true,
- "loadJS": true,
- "esprima": true,
- "escodegen": true,
- "utils": true,
- "Promise": true,
- "Inlet": true
- }
+ "env": {
+ "browser": true
+ },
+ "parser": "babel-eslint",
+ "extends": "eslint:recommended",
+ "rules": {
+ "accessor-pairs": "error",
+
+ "array-callback-return": "error",
+
+ "block-scoped-var": "error",
+
+ "callback-return": "error",
+ "camelcase": "error",
+ "comma-spacing": "off",
+ "comma-style": "off",
+ "complexity": "error",
+ "computed-property-spacing": ["error", "never"],
+ "consistent-return": "error",
+ "consistent-this": "off",
+ "curly": "error",
+ "default-case": "error",
+ "dot-location": ["error", "property"],
+ "dot-notation": "error",
+ "eol-last": "off",
+ "eqeqeq": "error",
+ "func-names": "off",
+ "func-style": ["error", "declaration", { "allowArrowFunctions": true }],
+ "generator-star-spacing": "error",
+ "global-require": "error",
+ "guard-for-in": "error",
+ "handle-callback-err": "error",
+ "id-blacklist": "error",
+ "id-length": "off",
+ "id-match": "error",
+ "init-declarations": "off",
+ "jsx-quotes": "error",
+
+ "max-depth": "error",
+ "max-len": "off",
+ "max-nested-callbacks": "error",
+ "max-params": "error",
+ "max-statements": "off",
+ "max-statements-per-line": "off",
+ "new-parens": "error",
+ "newline-after-var": "off",
+ "newline-before-return": "off",
+ "newline-per-chained-call": "error",
+ "no-alert": "off",
+ "no-array-constructor": "error",
+ "no-bitwise": "off",
+ "no-caller": "off",
+ "no-console": "off",
+ "no-catch-shadow": "error",
+ "no-confusing-arrow": "error",
+ "no-continue": "error",
+ "no-div-regex": "error",
+ "no-duplicate-imports": "error",
+ "no-else-return": "error",
+ "no-empty-function": "off",
+ "no-eq-null": "error",
+ "no-eval": "error",
+ "no-extend-native": "error",
+ "no-extra-bind": "error",
+ "no-extra-label": "error",
+ "no-extra-parens": "off",
+ "no-floating-decimal": "error",
+ "no-implicit-coercion": "off",
+ "no-implicit-globals": "off",
+ "no-implied-eval": "error",
+ "no-inline-comments": "off",
+ "no-inner-declarations": ["error", "functions"],
+ "no-invalid-this": "error",
+ "no-iterator": "error",
+ "no-label-var": "error",
+ "no-labels": "error",
+ "no-lone-blocks": "error",
+ "no-lonely-if": "error",
+ "no-loop-func": "error",
+ "no-magic-numbers": "off",
+ "no-mixed-requires": "error",
+ "no-multi-spaces": "error",
+ "no-multi-str": "error",
+ "no-multiple-empty-lines": "error",
+ "no-native-reassign": "error",
+ "no-negated-condition": "off",
+ "no-nested-ternary": "off",
+ "no-new": "off",
+ "no-new-func": "error",
+ "no-new-object": "error",
+ "no-new-require": "error",
+ "no-new-wrappers": "error",
+ "no-octal-escape": "error",
+ "no-param-reassign": [
+ "error",
+ {
+ "props": false
+ }
+ ],
+ "no-path-concat": "error",
+ "no-plusplus": "off",
+ "no-process-env": "error",
+ "no-process-exit": "error",
+ "no-proto": "error",
+ "no-prototype-builtins": "error",
+ "no-restricted-globals": "error",
+ "no-restricted-imports": "error",
+ "no-restricted-modules": "error",
+ "no-restricted-syntax": "error",
+ "no-return-assign": "error",
+ "no-script-url": "error",
+ "no-self-compare": "error",
+ "no-sequences": "error",
+ "no-shadow": "error",
+ "no-shadow-restricted-names": "error",
+ "no-spaced-func": "error",
+ "no-sync": "error",
+ "no-ternary": "off",
+ "no-throw-literal": "error",
+ "no-trailing-spaces": "error",
+ "no-undef-init": "error",
+ "no-undefined": "error",
+ "no-underscore-dangle": "error",
+ "no-unmodified-loop-condition": "error",
+ "no-unneeded-ternary": "error",
+ "no-unsafe-finally": "error",
+ "no-unused-expressions": "error",
+ "no-use-before-define": "off",
+ "no-useless-call": "error",
+ "no-useless-computed-key": "error",
+ "no-useless-concat": "off",
+ "no-useless-constructor": "error",
+ "no-useless-escape": "error",
+ "no-useless-rename": "error",
+ "no-var": "off",
+ "no-void": "error",
+ "no-warning-comments": "off",
+ "no-whitespace-before-property": "error",
+ "no-with": "error",
+ "object-curly-spacing": ["error", "always"],
+ "object-property-newline": "off",
+ "object-shorthand": "off",
+ "one-var": "off",
+ "one-var-declaration-per-line": "error",
+ "operator-assignment": ["error", "always"],
+
+ "padded-blocks": "off",
+ "prefer-arrow-callback": "off",
+ "prefer-const": "error",
+ "prefer-reflect": "off",
+ "prefer-rest-params": "off",
+ "prefer-spread": "error",
+ "prefer-template": "off",
+ "quote-props": "off",
+ "quotes": "off",
+ "radix": "error",
+ "require-jsdoc": "off",
+ "require-yield": "error",
+ "semi": "off",
+ "semi-spacing": [
+ "error",
+ {
+ "after": true,
+ "before": false
+ }
+ ],
+ "sort-imports": "error",
+ "sort-vars": "off",
+ "strict": ["error", "never"],
+ "template-curly-spacing": "error",
+ "unicode-bom": ["error", "never"],
+ "valid-jsdoc": "off",
+ "vars-on-top": "off",
+ "wrap-regex": "error",
+ "yield-star-spacing": "error",
+ "yoda": ["error", "never"]
+ },
+ "globals": {
+ "ArrayBuffer": true,
+ "Uint8Array": true,
+ "chrome": true,
+ "CodeMirror": true,
+ "Split": true,
+ "emmetCodeMirror": true,
+ "deferred": true,
+ "$": true,
+ "$all": true,
+ "CoffeeScript": true,
+ "Babel": true,
+ "ts": true,
+ "Sass": true,
+ "less": true,
+ "stylus": true,
+ "atomizer": true,
+ "marked": true,
+ "jade": true,
+ "loadJS": true,
+ "esprima": true,
+ "escodegen": true,
+ "utils": true,
+ "Promise": true,
+ "Inlet": true
+ }
}
diff --git a/.gitignore b/.gitignore
index 0f8ac72..a7636f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,11 @@
-.sass-cache
+### OSX ###
+.DS_Store
+
+### PhPStorm / IntellJ IDEA ###
+.idea/
+*.iml
+
+### Misc ###
node_modules/
*.map
+.sass-cache
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 56b4205..0396fe7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,6 @@
language: node_js
node_js:
- - '6.0'
+ - '8.1.2'
install:
- npm install -g eslint
- npm install -g babel-eslint
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..c8cc07a
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,18 @@
+## How to contribute to Web Maker
+
+Web Maker is written in vanilla JavaScript, CSS & HTML. It uses few open-source 3rd party JavaScript libraries for things like splitting panes, syntax highlighting etc. There is no build process involved in running Web Maker on your local system.
+
+### Run Web Maker locally on your machine
+
+- Clone the repo `git clone git@github.com:chinchang/web-maker.git`.
+- Go to Chrome extension settings page [chrome://extensions/](chrome://extensions/).
+- Click on **Load unpacked extension** button.
+- Select the `src` folder in the repo you just cloned.
+- Done! You'll now have a Web Maker icon added in your browser's right-top area. Click that and you'll run your local copy of Web Maker.
+
+### Code changes
+
+- Before starting any code work, run `npm install` in the repo folder. This is required to install some git hooks which do linting & formatting.
+- Also, create a new branch out of master branch with the name as `fix-{ISSUE_ID}-anything-more-here`. For example, if you are working on issue #23 regarding implementing a mobile mode, your branch could be called `fix-23-mobile-mode`.
+- Now you can simply make code changes inside `src/` folder and refresh in browser to see them.
+- Once you are done, open a pull request here by selecting right branch: [https://github.com/chinchang/web-maker/compare](https://github.com/chinchang/web-maker/compare).
\ No newline at end of file
diff --git a/README.md b/README.md
index 6d28a58..6099951 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-Web-Maker 
+Web-Maker  [](https://gitter.im/web-maker-app/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
======
-**Web-Maker** is a chrome extension that converts your Chrome tabs into an offline playground for your web experiments. Something like CodePen or JSFiddle, but much more faster and works offline being local on your system.
+**Web-Maker** is a chrome extension that converts your Chrome tab into an offline playground for your web experiments. Something like CodePen or JSFiddle, but much more faster and works offline being local on your system.
### [INSTALL EXTENSION](https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh)
@@ -9,11 +9,16 @@ Web-Maker 
### Features
-* Supports Preprocessors: HTML (Jade & Markdown), CSS (SCSS, LESS & Stylus) & JavaScript (ES6, TypeScript & CoffeeScript)
+* Supports Preprocessors: HTML (Pug & Markdown), CSS (SCSS, LESS & Stylus, Atomic CSS) & JavaScript (ES6, TypeScript & CoffeeScript)
* Works offline
+* Inbuilt Console
* Save and load your creations
+* Auto-save feature
* Code auto-completion
* Easy addition of popular JS & CSS libraries
+* Import & Export all creations anytime, anywhere
+* Multiple editor themes & other configurable settings
+* Font options + use any system font!
* Very easily accessible. Simply open a new tab in Chrome!
* Multiple layouts to choose from
* Capture preview screenshot
@@ -22,8 +27,12 @@ Web-Maker 
Follow [@webmakerApp](https://twitter.com/intent/follow?screen_name=webmakerApp) for updates or tweet out feature requests and suggestions.
+### Support Web Maker
+
+Web Maker is completely free and open-source. If you find it useful, you can show your support by sharing it in your social network or by [donating](https://www.paypal.me/kushagragour) or by simply letting me know how much you 💖 it by tweeting to [@webmakerapp](https://twitter.com/webmakerApp).
+
### License
MIT Licensed
-Copyright (c) 2017 Kushagra Gour, [kushagragour.in](https://kushagragour.in)
+Copyright (c) 2017 Kushagra Gour, [webmakerapp.com](https://webmakerapp.com)
diff --git a/docs/.nojekyll b/docs/.nojekyll
new file mode 100644
index 0000000..e69de29
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..270b30a
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,132 @@
+
+# Getting started
+
+## What is Web Maker
+**Web-Maker** is a chrome extension that converts your Chrome tab into a blazing fast & offline frontend playground for your web experiments.
+
+
+
+## Features
+
+* Supports Preprocessors: HTML (Pug & Markdown), CSS (SCSS, LESS & Stylus, Atomic CSS) & JavaScript (ES6, TypeScript & CoffeeScript)
+* Works offline
+* Inbuilt Console
+* Save and load your creations
+* Auto-save feature
+* Code auto-completion
+* Easy addition of popular JS & CSS libraries
+* Import & Export all creations anytime, anywhere
+* Multiple editor themes & other configurable settings
+* Font options + use any system font!
+* Very easily accessible. Simply open a new tab in Chrome!
+* Multiple layouts to choose from
+* Capture preview screenshot
+* Save as HTML file
+* Edit in CodePen
+
+## Installation
+
+If you haven't already installed Web Maker, you can do so from the [Chrome Web Store](https://chrome.google.com/webstore/detail/web-maker/lkfkkhfhhdkiemehlpkgjeojomhpccnh)
+
+## Starting Web Maker
+
+Once installed, you'll see a Web Maker icon in the right-top of your Chrome browser. Click it and Web Maker will open in a new tab.
+
+By default, Web Maker shows up whatever was last open in it. But this behavior can be changed from [settings].
+
+## Your first code
+
+Okay, so now you might be wondering what do I do with Web Maker open in front of me? Wait no more! Simply put, Web Maker lets you write HTML, CSS & JavaScript code and see instant preview. So lets write some code.
+
+You should be seeing 3 code panes with the headings: **HTML**, **CSS** and *JS*. Each code pane is dedicated place to write code in the respective languages. Go ahead and click inside the **HTML** code pane to focus it and then paste the following HTML code:
+
+```html
+
My first HTML
+```
+
+As soon as you paste the code, you should see the preview of your HTML in the white preview area.
+
+
+
+This is a very simple web page we just made. Going forward, you might need to put CSS and JavaScript too. You can write them in their respective code panes and see instant preview.
+
+## A look at the user interface
+
+Web Maker's user interface is made to feel simple and accessible so that you have all the required things at your tips and still doesn't look cluttered for someone using it for first time.
+
+### Code Panes
+
+Code panes are the actually sections where you write your code. You get 3 panes, one for HTML, CSS & JavaScript each.
+
+### Preview
+
+Alongside the code panes, is a white (by default) area where you see the preview of your code. Its an iframe that is feeded your HTML, CSS & JavaScript as you type to generate realtime preview.
+
+### Title
+
+On the top-left side you can see the title of your creation. Click on it to edit it anytime.
+
+### Create New, Save or Open a creation
+
+On the top-right side, you have the 3 buttons to create a new creation or save an open one. Also you can access all your saved creations from the *Saved Creations Pane* by clicking the *Open* button.
+
+From the *Saved Creations Pane* you can also export or import all your creations at once. Exporting generates a JSON file which you can backup in your Google Drive, Dropbox etc.
+
+### Settings
+
+On the bottom right-most end you can access the app settings. Lots and lots of useful settings in there. To know in details about settings, [jump right here]().
+
+### Changelog
+
+Besides the Settings button, is the Changelog button where you can read all the changes in the app for each release version.
+
+### Layouts
+
+Next you have some layout options to choose from. Select whats suits you best. This setting is saved per creation basis, so each of your creation can show in a different layout that you see best for it.
+
+### Export Item
+
+Web Maker gives you quite some options to export your current creation to share with the world. You can save it as a single HTML file to upload it on a server, or open it in CodePen or take a screenshot of your preview.
+
+### Help and Share
+
+On the bottom-left side are few help options, one of which shows you all th keyboard shortcuts available inside the app. Also there is a tweet button you can use to share Web Maker with everyone :)
+
+## Code panes
+
+Coming soon...
+
+## Pre-processors
+Coming soon...
+
+## Adding external libraries
+Coming soon...
+
+## Layouts
+Coming soon...
+
+## Keyboard shortcuts
+Coming soon...
+
+## Settings
+Coming soon...
+
+## Frequently Asked Questions
+Coming soon...
+
+## From the Developer
+
+Hi! I am [Kushagra Gour](https://twitter.com/chinchang457), a frontend developer from India. I created Web Maker as a side project from myself because I wanted a frontend playground that was fast and didn't have to rely on network latency to generate realtime preview. Also something which I could use whenever and wherever I wanted, even wihtout Internet! I have written articles about why and how I created Web Maker and how you can benefit from it as a developer.
+
+- FreeCodeCamp: https://medium.freecodecamp.org/web-maker-how-i-built-a-fast-offline-front-end-playground-9fe3629bc86f
+- Sitepoint: https://www.sitepoint.com/web-maker-an-offline-browser-based-codepen-alternative/
+
+Make sure to read them if you like to get more behind the scenes of my journey with Web Maker.
+
+## Let's Talk
+
+Want to send in some suggestions, comments, feature requests or just have a question? Here are your options:
+
+- Twitter — [ @webmakerApp](https://twitter.com/webmakerapp)
+- [Gitter chat]( http://gitter.im/web-maker-app/Lobby)
+- [Github repository]( https://github.com/chinchang/web-maker/issues)
\ No newline at end of file
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
new file mode 100644
index 0000000..0fa0428
--- /dev/null
+++ b/docs/_sidebar.md
@@ -0,0 +1,23 @@
+- Getting started
+ - [Quick start](quickstart.md)
+ - [Writing more pages](more-pages.md)
+ - [Custom navbar](custom-navbar.md)
+ - [Cover page](cover.md)
+
+- Customization
+ - [Configuration](configuration.md)
+ - [Themes](themes.md)
+ - [List of Plugins](plugins.md)
+ - [Write a Plugin](write-a-plugin.md)
+ - [Markdown configuration](markdown.md)
+ - [Language highlighting](language-highlight.md)
+
+- Guide
+ - [Deploy](deploy.md)
+ - [Helpers](helpers.md)
+ - [Vue compatibility](vue.md)
+ - [CDN](cdn.md)
+ - [Offline Mode(PWA)](pwa.md)
+ - [Server-client renderer(SSR)](ssr.md)
+
+- [Changelog](changelog.md)
diff --git a/docs/docsify.min.js b/docs/docsify.min.js
new file mode 100644
index 0000000..e0b84b6
--- /dev/null
+++ b/docs/docsify.min.js
@@ -0,0 +1,2 @@
+!function(){"use strict";function e(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}function t(e){return"string"==typeof e||"number"==typeof e}function n(){}function r(e){return"function"==typeof e}function i(e){var t=["init","mounted","beforeEach","afterEach","doneEach","ready"];e._hooks={},e._lifecycle={},t.forEach(function(t){var n=e._hooks[t]=[];e._lifecycle[t]=function(e){return n.push(e)}})}function o(e,t,r,i){void 0===i&&(i=n);var o=e._hooks[t],a=function(e){var t=o[e];if(e>=o.length)i(r);else if("function"==typeof t)if(2===t.length)t(r,function(t){r=t,a(e+1)});else{var n=t(r);r=void 0!==n?n:r,a(e+1)}else a(e+1)};a(0)}function a(e,t){if(void 0===t&&(t=!1),"string"==typeof e){if(void 0!==window.Vue)return s(e);e=t?s(e):fe[e]||(fe[e]=s(e))}return e}function s(e,t){return t?e.querySelector(t):ge.querySelector(e)}function l(e,t){return[].slice.call(t?e.querySelectorAll(t):ge.querySelectorAll(e))}function u(e,t){return e=ge.createElement(e),t&&(e.innerHTML=t),e}function c(e,t){return e.appendChild(t)}function h(e,t){return e.insertBefore(t,e.children[0])}function p(e,t,n){r(t)?window.addEventListener(e,t):e.addEventListener(t,n)}function d(e,t,n){r(t)?window.removeEventListener(e,t):e.removeEventListener(t,n)}function f(e,t,n){e&&e.classList[n?t:"toggle"](n||t)}function g(e){c(ve,u("style",e))}function m(e){return e?(/\/\//.test(e)||(e="https://github.com/"+e),''):""}function v(e){var t='';return(ke?t+"":""+t)+'\x3c!--main--\x3e'}function y(){var e=", 100%, 85%";return''}function b(e,t){return void 0===t&&(t=""),e&&e.length?(e.forEach(function(e){t+='