diff --git a/config.codekit b/config.codekit
deleted file mode 100644
index 62ffb346..00000000
--- a/config.codekit
+++ /dev/null
@@ -1,2034 +0,0 @@
-{
-"CodeKitInfo": "This is a CodeKit 2.x project configuration file. It is designed to sync project settings across multiple machines. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. If you do so, you will likely cause CodeKit to crash. This file is not useful unless accompanied by the project that created it in CodeKit 2. This file is not backwards-compatible with CodeKit 1.x. For more information, see: http:\/\/incident57.com\/codekit",
-"creatorBuild": "19115",
-"files": {
- "\/config\/config.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/config\/config.js",
- "outputAbbreviatedPath": "\/config\/min\/config-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/css\/main.css": {
- "fileType": 16,
- "ignore": 1,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/css\/main.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/robot.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/robot.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_black\/Roboto-Black-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_black\/Roboto-Black-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_black\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_black\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_black\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_black\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_black\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_black\/specimen_files\/Roboto-Black-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 83352,
- "inputAbbreviatedPath": "\/fonts\/roboto_black\/specimen_files\/Roboto-Black-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_black\/specimen_files\/Roboto-Black-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_black\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_black\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_black\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_black\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_blackitalic\/Roboto-BlackItalic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/Roboto-BlackItalic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_blackitalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_blackitalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_blackitalic\/specimen_files\/Roboto-BlackItalic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 87438,
- "inputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/specimen_files\/Roboto-BlackItalic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/specimen_files\/Roboto-BlackItalic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_blackitalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_blackitalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_blackitalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bold\/Roboto-Bold-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bold\/Roboto-Bold-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bold\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bold\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_bold\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_bold\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bold\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bold\/specimen_files\/Roboto-Bold-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 85781,
- "inputAbbreviatedPath": "\/fonts\/roboto_bold\/specimen_files\/Roboto-Bold-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_bold\/specimen_files\/Roboto-Bold-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_bold\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bold\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bold\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bold\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondensed\/RobotoCondensed-Bold-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/RobotoCondensed-Bold-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondensed\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_boldcondensed\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondensed\/specimen_files\/RobotoCondensed-Bold-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 86782,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/specimen_files\/RobotoCondensed-Bold-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/specimen_files\/RobotoCondensed-Bold-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_boldcondensed\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondensed\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondensed\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondenseditalic\/RobotoCondensed-BoldItalic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/RobotoCondensed-BoldItalic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/RobotoCondensed-BoldItalic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 91094,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/RobotoCondensed-BoldItalic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/RobotoCondensed-BoldItalic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_boldcondenseditalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_boldcondenseditalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bolditalic\/Roboto-BoldItalic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/Roboto-BoldItalic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bolditalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_bolditalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bolditalic\/specimen_files\/Roboto-BoldItalic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 89575,
- "inputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/specimen_files\/Roboto-BoldItalic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/specimen_files\/Roboto-BoldItalic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_bolditalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_bolditalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_bolditalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condensed\/RobotoCondensed-Regular-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condensed\/RobotoCondensed-Regular-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condensed\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condensed\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_condensed\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_condensed\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condensed\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condensed\/specimen_files\/RobotoCondensed-Regular-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 90523,
- "inputAbbreviatedPath": "\/fonts\/roboto_condensed\/specimen_files\/RobotoCondensed-Regular-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_condensed\/specimen_files\/RobotoCondensed-Regular-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_condensed\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condensed\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condensed\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condensed\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condenseditalic\/RobotoCondensed-Italic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/RobotoCondensed-Italic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condenseditalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_condenseditalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condenseditalic\/specimen_files\/RobotoCondensed-Italic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 93738,
- "inputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/specimen_files\/RobotoCondensed-Italic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/specimen_files\/RobotoCondensed-Italic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_condenseditalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_condenseditalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_condenseditalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_italic\/Roboto-Italic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_italic\/Roboto-Italic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_italic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_italic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_italic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_italic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_italic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_italic\/specimen_files\/Roboto-Italic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 89124,
- "inputAbbreviatedPath": "\/fonts\/roboto_italic\/specimen_files\/Roboto-Italic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_italic\/specimen_files\/Roboto-Italic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_italic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_italic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_italic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_italic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_light\/Roboto-Light-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_light\/Roboto-Light-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_light\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_light\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_light\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_light\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_light\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_light\/specimen_files\/Roboto-Light-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 83980,
- "inputAbbreviatedPath": "\/fonts\/roboto_light\/specimen_files\/Roboto-Light-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_light\/specimen_files\/Roboto-Light-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_light\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_light\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_light\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_light\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondensed\/RobotoCondensed-Light-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/RobotoCondensed-Light-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondensed\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_lightcondensed\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondensed\/specimen_files\/RobotoCondensed-Light-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 89201,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/specimen_files\/RobotoCondensed-Light-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/specimen_files\/RobotoCondensed-Light-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_lightcondensed\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondensed\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondensed\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondenseditalic\/RobotoCondensed-LightItalic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/RobotoCondensed-LightItalic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/RobotoCondensed-LightItalic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 92532,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/RobotoCondensed-LightItalic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/RobotoCondensed-LightItalic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightcondenseditalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightcondenseditalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightitalic\/Roboto-LightItalic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/Roboto-LightItalic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightitalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_lightitalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightitalic\/specimen_files\/Roboto-LightItalic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 88922,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/specimen_files\/Roboto-LightItalic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/specimen_files\/Roboto-LightItalic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_lightitalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_lightitalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_lightitalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_medium\/Roboto-Medium-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_medium\/Roboto-Medium-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_medium\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_medium\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_medium\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_medium\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_medium\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_medium\/specimen_files\/Roboto-Medium-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 86670,
- "inputAbbreviatedPath": "\/fonts\/roboto_medium\/specimen_files\/Roboto-Medium-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_medium\/specimen_files\/Roboto-Medium-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_medium\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_medium\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_medium\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_medium\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_mediumitalic\/Roboto-MediumItalic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/Roboto-MediumItalic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_mediumitalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_mediumitalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_mediumitalic\/specimen_files\/Roboto-MediumItalic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 89781,
- "inputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/specimen_files\/Roboto-MediumItalic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/specimen_files\/Roboto-MediumItalic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_mediumitalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_mediumitalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_mediumitalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_regular\/Roboto-Regular-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_regular\/Roboto-Regular-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_regular\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_regular\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_regular\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_regular\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_regular\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_regular\/specimen_files\/Roboto-Regular-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 85569,
- "inputAbbreviatedPath": "\/fonts\/roboto_regular\/specimen_files\/Roboto-Regular-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_regular\/specimen_files\/Roboto-Regular-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_regular\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_regular\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_regular\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_regular\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thin\/Roboto-Thin-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thin\/Roboto-Thin-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thin\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thin\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_thin\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_thin\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thin\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thin\/specimen_files\/Roboto-Thin-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 80640,
- "inputAbbreviatedPath": "\/fonts\/roboto_thin\/specimen_files\/Roboto-Thin-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_thin\/specimen_files\/Roboto-Thin-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_thin\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thin\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thin\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thin\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thinitalic\/Roboto-ThinItalic-demo.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/Roboto-ThinItalic-demo.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thinitalic\/specimen_files\/easytabs.js": {
- "fileType": 64,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/specimen_files\/easytabs.js",
- "outputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/specimen_files\/min\/easytabs-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/fonts\/roboto_thinitalic\/specimen_files\/grid_12-825-55-15.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/specimen_files\/grid_12-825-55-15.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thinitalic\/specimen_files\/Roboto-ThinItalic-cleartype.png": {
- "fileType": 32768,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "initialSize": 83107,
- "inputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/specimen_files\/Roboto-ThinItalic-cleartype.png",
- "outputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/specimen_files\/Roboto-ThinItalic-cleartype.png",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "processed": 0
- },
- "\/fonts\/roboto_thinitalic\/specimen_files\/specimen_stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/specimen_files\/specimen_stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/fonts\/roboto_thinitalic\/stylesheet.css": {
- "fileType": 16,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/fonts\/roboto_thinitalic\/stylesheet.css",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/index.html": {
- "fileType": 8192,
- "ignore": 0,
- "ignoreWasSetByUser": 0,
- "inputAbbreviatedPath": "\/index.html",
- "outputAbbreviatedPath": "No Output Path",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0
- },
- "\/js\/class.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/js\/class.js",
- "outputAbbreviatedPath": "\/js\/min\/class-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/js\/defaults.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/js\/defaults.js",
- "outputAbbreviatedPath": "\/js\/min\/defaults-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/js\/loader.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/js\/loader.js",
- "outputAbbreviatedPath": "\/js\/min\/loader-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/js\/logger.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/js\/logger.js",
- "outputAbbreviatedPath": "\/js\/min\/logger-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/js\/main.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/js\/main.js",
- "outputAbbreviatedPath": "\/js\/min\/main-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 0,
- "syntaxCheckerStyle": 1
- },
- "\/js\/module.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/js\/module.js",
- "outputAbbreviatedPath": "\/js\/min\/module-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/modules\/clock\/clock.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/modules\/clock\/clock.js",
- "outputAbbreviatedPath": "\/modules\/clock\/min\/clock-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/modules\/compliments\/compliments.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/modules\/compliments\/compliments.js",
- "outputAbbreviatedPath": "\/modules\/compliments\/min\/compliments-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/modules\/helloworld\/helloworld.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/modules\/helloworld\/helloworld.js",
- "outputAbbreviatedPath": "\/modules\/helloworld\/min\/helloworld-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/vendor\/moment\/moment-with-locales.min.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/vendor\/moment\/moment-with-locales.min.js",
- "outputAbbreviatedPath": "\/vendor\/moment\/min\/moment-with-locales.min-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- },
- "\/vendor\/vendor.js": {
- "fileType": 64,
- "ignore": 1,
- "ignoreWasSetByUser": 1,
- "inputAbbreviatedPath": "\/vendor\/vendor.js",
- "outputAbbreviatedPath": "\/vendor\/min\/vendor-min.js",
- "outputPathIsOutsideProject": 0,
- "outputPathIsSetByUser": 0,
- "outputStyle": 1,
- "syntaxCheckerStyle": 1
- }
- },
-"hooks": [
- ],
-"lastSavedByUser": "Michael Teeuw",
-"manualImportLinks": {
- },
-"projectAttributes": {
- "bowerAbbreviatedPath": "",
- "displayValue": "MagicMirror V2",
- "displayValueWasSetByUser": 1,
- "iconImageName": "brackets_orange"
- },
-"projectSettings": {
- "alwaysUseExternalServer": 1,
- "animateCSSInjections": 1,
- "autoApplyPSLanguageSettingsStyle": 0,
- "autoprefixerBrowserString": "> 1%, last 2 versions, Firefox ESR, Opera 12.1",
- "autoSyncProjectSettingsFile": 1,
- "browserRefreshDelay": 0,
- "coffeeAutoOutputPathEnabled": 1,
- "coffeeAutoOutputPathFilenamePattern": "*.js",
- "coffeeAutoOutputPathRelativePath": "",
- "coffeeAutoOutputPathReplace1": "",
- "coffeeAutoOutputPathReplace2": "",
- "coffeeAutoOutputPathStyle": 0,
- "coffeeCreateSourceMap": 0,
- "coffeeLintFlags2": {
- "arrow_spacing": {
- "active": 0,
- "flagValue": -1
- },
- "camel_case_classes": {
- "active": 1,
- "flagValue": -1
- },
- "colon_assignment_spacing": {
- "active": 0,
- "flagValue": 1
- },
- "cyclomatic_complexity": {
- "active": 0,
- "flagValue": 10
- },
- "duplicate_key": {
- "active": 1,
- "flagValue": -1
- },
- "empty_constructor_needs_parens": {
- "active": 0,
- "flagValue": -1
- },
- "ensure_comprehensions": {
- "active": 1,
- "flagValue": -1
- },
- "indentation": {
- "active": 1,
- "flagValue": 2
- },
- "line_endings": {
- "active": 0,
- "flagValue": 0
- },
- "max_line_length": {
- "active": 0,
- "flagValue": 150
- },
- "missing_fat_arrows": {
- "active": 0,
- "flagValue": -1
- },
- "newlines_after_classes": {
- "active": 0,
- "flagValue": 3
- },
- "no_backticks": {
- "active": 1,
- "flagValue": -1
- },
- "no_debugger": {
- "active": 1,
- "flagValue": -1
- },
- "no_empty_functions": {
- "active": 0,
- "flagValue": -1
- },
- "no_empty_param_list": {
- "active": 0,
- "flagValue": -1
- },
- "no_implicit_braces": {
- "active": 1,
- "flagValue": -1
- },
- "no_implicit_parens": {
- "active": 0,
- "flagValue": -1
- },
- "no_interpolation_in_single_quotes": {
- "active": 0,
- "flagValue": -1
- },
- "no_nested_string_interpolation": {
- "active": 1,
- "flagValue": -1
- },
- "no_plusplus": {
- "active": 0,
- "flagValue": -1
- },
- "no_private_function_fat_arrows": {
- "active": 1,
- "flagValue": -1
- },
- "no_stand_alone_at": {
- "active": 1,
- "flagValue": -1
- },
- "no_tabs": {
- "active": 1,
- "flagValue": -1
- },
- "no_this": {
- "active": 0,
- "flagValue": -1
- },
- "no_throwing_strings": {
- "active": 1,
- "flagValue": -1
- },
- "no_trailing_semicolons": {
- "active": 1,
- "flagValue": -1
- },
- "no_trailing_whitespace": {
- "active": 1,
- "flagValue": -1
- },
- "no_unnecessary_double_quotes": {
- "active": 0,
- "flagValue": -1
- },
- "no_unnecessary_fat_arrows": {
- "active": 1,
- "flagValue": -1
- },
- "non_empty_constructor_needs_parens": {
- "active": 0,
- "flagValue": -1
- },
- "prefer_english_operator": {
- "active": 0,
- "flagValue": -1
- },
- "space_operators": {
- "active": 0,
- "flagValue": -1
- },
- "spacing_after_comma": {
- "active": 1,
- "flagValue": -1
- }
- },
- "coffeeMinifyOutput": 1,
- "coffeeOutputStyle": 0,
- "coffeeSyntaxCheckerStyle": 1,
- "externalServerAddress": "http:\/\/magicmirror.app\/v2",
- "externalServerPreviewPathAddition": "",
- "genericWebpageFileExtensionsString": "html, htm, shtml, shtm, xhtml, php, jsp, asp, aspx, erb, ctp",
- "hamlAutoOutputPathEnabled": 1,
- "hamlAutoOutputPathFilenamePattern": "*.html",
- "hamlAutoOutputPathRelativePath": "",
- "hamlAutoOutputPathReplace1": "",
- "hamlAutoOutputPathReplace2": "",
- "hamlAutoOutputPathStyle": 0,
- "hamlEscapeHTMLCharacters": 0,
- "hamlNoEscapeInAttributes": 0,
- "hamlOutputFormat": 2,
- "hamlOutputStyle": 0,
- "hamlUseCDATA": 0,
- "hamlUseDoubleQuotes": 0,
- "hamlUseUnixNewlines": 0,
- "jadeAutoOutputPathEnabled": 1,
- "jadeAutoOutputPathFilenamePattern": "*.html",
- "jadeAutoOutputPathRelativePath": "",
- "jadeAutoOutputPathReplace1": "",
- "jadeAutoOutputPathReplace2": "",
- "jadeAutoOutputPathStyle": 0,
- "jadeCompileDebug": 1,
- "jadeOutputStyle": 0,
- "javascriptAutoOutputPathEnabled": 1,
- "javascriptAutoOutputPathFilenamePattern": "*-min.js",
- "javascriptAutoOutputPathRelativePath": "\/min",
- "javascriptAutoOutputPathReplace1": "",
- "javascriptAutoOutputPathReplace2": "",
- "javascriptAutoOutputPathStyle": 2,
- "javascriptCreateSourceMap": 1,
- "javascriptOutputStyle": 1,
- "javascriptSyntaxCheckerStyle": 1,
- "jsCheckerReservedNamesString": "",
- "jsHintFlags2": {
- "asi": {
- "active": 0,
- "flagValue": -1
- },
- "bitwise": {
- "active": 1,
- "flagValue": -1
- },
- "boss": {
- "active": 0,
- "flagValue": -1
- },
- "browser": {
- "active": 1,
- "flagValue": -1
- },
- "browserify": {
- "active": 0,
- "flagValue": -1
- },
- "camelcase": {
- "active": 0,
- "flagValue": -1
- },
- "couch": {
- "active": 0,
- "flagValue": -1
- },
- "curly": {
- "active": 1,
- "flagValue": -1
- },
- "debug": {
- "active": 0,
- "flagValue": -1
- },
- "devel": {
- "active": 0,
- "flagValue": -1
- },
- "dojo": {
- "active": 0,
- "flagValue": -1
- },
- "elision": {
- "active": 1,
- "flagValue": -1
- },
- "eqeqeq": {
- "active": 1,
- "flagValue": -1
- },
- "eqnull": {
- "active": 0,
- "flagValue": -1
- },
- "es3": {
- "active": 0,
- "flagValue": -1
- },
- "esnext": {
- "active": 0,
- "flagValue": -1
- },
- "evil": {
- "active": 0,
- "flagValue": -1
- },
- "expr": {
- "active": 0,
- "flagValue": -1
- },
- "forin": {
- "active": 0,
- "flagValue": -1
- },
- "freeze": {
- "active": 1,
- "flagValue": -1
- },
- "funcscope": {
- "active": 0,
- "flagValue": -1
- },
- "futurehostile": {
- "active": 0,
- "flagValue": -1
- },
- "globalstrict": {
- "active": 0,
- "flagValue": -1
- },
- "immed": {
- "active": 0,
- "flagValue": -1
- },
- "indent": {
- "active": 0,
- "flagValue": 4
- },
- "iterator": {
- "active": 0,
- "flagValue": -1
- },
- "jasmine": {
- "active": 0,
- "flagValue": -1
- },
- "jquery": {
- "active": 1,
- "flagValue": -1
- },
- "lastsemic": {
- "active": 0,
- "flagValue": -1
- },
- "latedef": {
- "active": 1,
- "flagValue": -1
- },
- "laxbreak": {
- "active": 0,
- "flagValue": -1
- },
- "laxcomma": {
- "active": 0,
- "flagValue": -1
- },
- "loopfunc": {
- "active": 0,
- "flagValue": -1
- },
- "maxcomplexity": {
- "active": 0,
- "flagValue": 10
- },
- "maxdepth": {
- "active": 0,
- "flagValue": 3
- },
- "maxlen": {
- "active": 0,
- "flagValue": 150
- },
- "maxparams": {
- "active": 0,
- "flagValue": 3
- },
- "maxstatements": {
- "active": 0,
- "flagValue": 4
- },
- "mocha": {
- "active": 0,
- "flagValue": -1
- },
- "mootools": {
- "active": 0,
- "flagValue": -1
- },
- "moz": {
- "active": 0,
- "flagValue": -1
- },
- "multistr": {
- "active": 0,
- "flagValue": -1
- },
- "newcap": {
- "active": 1,
- "flagValue": -1
- },
- "noarg": {
- "active": 1,
- "flagValue": -1
- },
- "nocomma": {
- "active": 0,
- "flagValue": -1
- },
- "node": {
- "active": 0,
- "flagValue": -1
- },
- "noempty": {
- "active": 0,
- "flagValue": -1
- },
- "nonbsp": {
- "active": 0,
- "flagValue": -1
- },
- "nonew": {
- "active": 1,
- "flagValue": -1
- },
- "nonstandard": {
- "active": 0,
- "flagValue": -1
- },
- "notypeof": {
- "active": 1,
- "flagValue": -1
- },
- "noyield": {
- "active": 0,
- "flagValue": -1
- },
- "onecase": {
- "active": 0,
- "flagValue": -1
- },
- "phantom": {
- "active": 0,
- "flagValue": -1
- },
- "plusplus": {
- "active": 0,
- "flagValue": -1
- },
- "proto": {
- "active": 0,
- "flagValue": -1
- },
- "prototypejs": {
- "active": 0,
- "flagValue": -1
- },
- "qunit": {
- "active": 0,
- "flagValue": -1
- },
- "regexp": {
- "active": 1,
- "flagValue": -1
- },
- "rhino": {
- "active": 0,
- "flagValue": -1
- },
- "scripturl": {
- "active": 0,
- "flagValue": -1
- },
- "shadow": {
- "active": 0,
- "flagValue": -1
- },
- "shelljs": {
- "active": 0,
- "flagValue": -1
- },
- "singleGroups": {
- "active": 0,
- "flagValue": -1
- },
- "strict": {
- "active": 0,
- "flagValue": -1
- },
- "sub": {
- "active": 0,
- "flagValue": -1
- },
- "supernew": {
- "active": 0,
- "flagValue": -1
- },
- "typed": {
- "active": 0,
- "flagValue": -1
- },
- "undef": {
- "active": 1,
- "flagValue": -1
- },
- "unused": {
- "active": 1,
- "flagValue": -1
- },
- "varstmt": {
- "active": 0,
- "flagValue": -1
- },
- "withstmt": {
- "active": 0,
- "flagValue": -1
- },
- "worker": {
- "active": 0,
- "flagValue": -1
- },
- "wsh": {
- "active": 0,
- "flagValue": -1
- },
- "yui": {
- "active": 0,
- "flagValue": -1
- }
- },
- "jsLintFlags2": {
- "bitwise": {
- "active": 0,
- "flagValue": -1
- },
- "browser": {
- "active": 1,
- "flagValue": -1
- },
- "couch": {
- "active": 0,
- "flagValue": -1
- },
- "devel": {
- "active": 0,
- "flagValue": -1
- },
- "es6": {
- "active": 0,
- "flagValue": -1
- },
- "eval": {
- "active": 0,
- "flagValue": -1
- },
- "for": {
- "active": 0,
- "flagValue": -1
- },
- "maxlen": {
- "active": 0,
- "flagValue": 150
- },
- "node": {
- "active": 0,
- "flagValue": -1
- },
- "this": {
- "active": 0,
- "flagValue": -1
- },
- "white": {
- "active": 0,
- "flagValue": -1
- }
- },
- "jsonAutoOutputPathEnabled": 0,
- "jsonAutoOutputPathFilenamePattern": "*-min.json",
- "jsonAutoOutputPathRelativePath": "",
- "jsonAutoOutputPathReplace1": "",
- "jsonAutoOutputPathReplace2": "",
- "jsonAutoOutputPathStyle": 0,
- "jsonOrderOutput": 0,
- "jsonOutputStyle": 1,
- "kitAutoOutputPathEnabled": 1,
- "kitAutoOutputPathFilenamePattern": "*.html",
- "kitAutoOutputPathRelativePath": "",
- "kitAutoOutputPathReplace1": "",
- "kitAutoOutputPathReplace2": "",
- "kitAutoOutputPathStyle": 0,
- "lessAllowInsecureImports": 0,
- "lessAutoOutputPathEnabled": 1,
- "lessAutoOutputPathFilenamePattern": "*.css",
- "lessAutoOutputPathRelativePath": "..\/css",
- "lessAutoOutputPathReplace1": "less",
- "lessAutoOutputPathReplace2": "css",
- "lessAutoOutputPathStyle": 2,
- "lessCreateSourceMap": 0,
- "lessDisableJavascript": 0,
- "lessIeCompatibility": 1,
- "lessOutputStyle": 0,
- "lessRelativeURLS": 0,
- "lessStrictImports": 0,
- "lessStrictMath": 0,
- "lessStrictUnits": 0,
- "markdownAutoOutputPathEnabled": 1,
- "markdownAutoOutputPathFilenamePattern": "*.html",
- "markdownAutoOutputPathRelativePath": "",
- "markdownAutoOutputPathReplace1": "",
- "markdownAutoOutputPathReplace2": "",
- "markdownAutoOutputPathStyle": 0,
- "markdownCriticStyle": 0,
- "markdownEnableFootnotes": 1,
- "markdownEnableLabels": 1,
- "markdownEnableSmartQuotes": 1,
- "markdownEscapeLineBreaks": 0,
- "markdownMaskEmailAddresses": 1,
- "markdownOutputFormat": 0,
- "markdownOutputStyle": 0,
- "markdownParseMetadata": 1,
- "markdownProcessHTML": 0,
- "markdownRandomFootnoteNumbers": 0,
- "markdownUseCompatibilityMode": 0,
- "reloadFileURLs": 0,
- "sassAutoOutputPathEnabled": 1,
- "sassAutoOutputPathFilenamePattern": "*.css",
- "sassAutoOutputPathRelativePath": "..\/css",
- "sassAutoOutputPathReplace1": "sass",
- "sassAutoOutputPathReplace2": "css",
- "sassAutoOutputPathStyle": 2,
- "sassCreateSourceMap": 0,
- "sassDebugStyle": 0,
- "sassDecimalPrecision": 10,
- "sassOutputStyle": 0,
- "sassUseLibsass": 0,
- "shouldRunAutoprefixer": 0,
- "shouldRunBless": 0,
- "skippedItemsString": ".svn, .git, .hg, log, _logs, _cache, cache, logs, node_modules",
- "slimAutoOutputPathEnabled": 1,
- "slimAutoOutputPathFilenamePattern": "*.html",
- "slimAutoOutputPathRelativePath": "",
- "slimAutoOutputPathReplace1": "",
- "slimAutoOutputPathReplace2": "",
- "slimAutoOutputPathStyle": 0,
- "slimCompileOnly": 0,
- "slimLogicless": 0,
- "slimOutputFormat": 0,
- "slimOutputStyle": 1,
- "slimRailsCompatible": 0,
- "stylusAutoOutputPathEnabled": 1,
- "stylusAutoOutputPathFilenamePattern": "*.css",
- "stylusAutoOutputPathRelativePath": "..\/css",
- "stylusAutoOutputPathReplace1": "stylus",
- "stylusAutoOutputPathReplace2": "css",
- "stylusAutoOutputPathStyle": 2,
- "stylusCreateSourceMap": 0,
- "stylusDebugStyle": 0,
- "stylusImportCSS": 0,
- "stylusOutputStyle": 0,
- "stylusResolveRelativeURLS": 0,
- "typescriptAutoOutputPathEnabled": 1,
- "typescriptAutoOutputPathFilenamePattern": "*.js",
- "typescriptAutoOutputPathRelativePath": "\/js",
- "typescriptAutoOutputPathReplace1": "",
- "typescriptAutoOutputPathReplace2": "",
- "typescriptAutoOutputPathStyle": 2,
- "typescriptCreateDeclarationFile": 0,
- "typescriptCreateSourceMap": 0,
- "typescriptJSXMode": 0,
- "typescriptMinifyOutput": 0,
- "typescriptModuleResolutionType": 0,
- "typescriptModuleType": 0,
- "typescriptNoImplicitAny": 0,
- "typescriptPreserveConstEnums": 0,
- "typescriptRemoveComments": 0,
- "typescriptSuppressImplicitAnyIndexErrors": 0,
- "typescriptTargetECMAVersion": 0,
- "uglifyDefinesString": "",
- "uglifyFlags2": {
- "ascii-only": {
- "active": 0,
- "flagValue": -1
- },
- "bare-returns": {
- "active": 0,
- "flagValue": -1
- },
- "booleans": {
- "active": 1,
- "flagValue": -1
- },
- "bracketize": {
- "active": 0,
- "flagValue": -1
- },
- "cascade": {
- "active": 1,
- "flagValue": -1
- },
- "comments": {
- "active": 1,
- "flagValue": -1
- },
- "comparisons": {
- "active": 1,
- "flagValue": -1
- },
- "compress": {
- "active": 1,
- "flagValue": -1
- },
- "conditionals": {
- "active": 1,
- "flagValue": -1
- },
- "dead_code": {
- "active": 0,
- "flagValue": -1
- },
- "drop_console": {
- "active": 0,
- "flagValue": -1
- },
- "drop_debugger": {
- "active": 1,
- "flagValue": -1
- },
- "eval": {
- "active": 0,
- "flagValue": -1
- },
- "evaluate": {
- "active": 1,
- "flagValue": -1
- },
- "hoist_funs": {
- "active": 1,
- "flagValue": -1
- },
- "hoist_vars": {
- "active": 0,
- "flagValue": -1
- },
- "if_return": {
- "active": 1,
- "flagValue": -1
- },
- "indent-level": {
- "active": 0,
- "flagValue": 4
- },
- "indent-start": {
- "active": 0,
- "flagValue": 0
- },
- "inline-script": {
- "active": 0,
- "flagValue": -1
- },
- "join_vars": {
- "active": 1,
- "flagValue": -1
- },
- "keep_fargs": {
- "active": 0,
- "flagValue": -1
- },
- "keep_fnames": {
- "active": 0,
- "flagValue": -1
- },
- "loops": {
- "active": 1,
- "flagValue": -1
- },
- "mangle": {
- "active": 1,
- "flagValue": -1
- },
- "max-line-len": {
- "active": 1,
- "flagValue": 32000
- },
- "negate_iife": {
- "active": 1,
- "flagValue": -1
- },
- "properties": {
- "active": 1,
- "flagValue": -1
- },
- "pure_getters": {
- "active": 0,
- "flagValue": -1
- },
- "quote-keys": {
- "active": 0,
- "flagValue": -1
- },
- "screw-ie8": {
- "active": 0,
- "flagValue": -1
- },
- "semicolons": {
- "active": 1,
- "flagValue": -1
- },
- "sequences": {
- "active": 1,
- "flagValue": -1
- },
- "sort": {
- "active": 0,
- "flagValue": -1
- },
- "space-colon": {
- "active": 1,
- "flagValue": -1
- },
- "toplevel": {
- "active": 0,
- "flagValue": -1
- },
- "unsafe": {
- "active": 0,
- "flagValue": -1
- },
- "unused": {
- "active": 0,
- "flagValue": -1
- },
- "warnings": {
- "active": 0,
- "flagValue": -1
- },
- "width": {
- "active": 1,
- "flagValue": 80
- }
- },
- "uglifyReservedNamesString": "$",
- "websiteRelativeRoot": ""
- },
-"settingsFileVersion": "2"
-}
\ No newline at end of file
diff --git a/config/config.js b/config/config.js.sample
similarity index 53%
rename from config/config.js
rename to config/config.js.sample
index 58b8dc8d..25565b70 100644
--- a/config/config.js
+++ b/config/config.js.sample
@@ -9,6 +9,7 @@
var config = {
language: 'en',
+ timeFormat: 24,
modules: [
{
@@ -20,8 +21,21 @@ var config = {
position: 'lower_third',
},
{
- module: 'helloworld',
- position: 'top_right'
+ module: 'currentweather',
+ position: 'top_right',
+ config: {
+ location: 'New York',
+ appid: 'YOUR_OPENWEATHER_API_KEY'
+ }
+ },
+ {
+ module: 'weatherforecast',
+ position: 'top_right',
+ header: 'Weather Forecast',
+ config: {
+ location: 'New York',
+ appid: 'YOUR_OPENWEATHER_API_KEY'
+ }
},
{
module: 'helloworld',
diff --git a/css/main.css b/css/main.css
index 9293685d..de6b2266 100644
--- a/css/main.css
+++ b/css/main.css
@@ -20,18 +20,21 @@ body {
.xsmall {font-size: 15px; line-height: 20px;}
.small {font-size: 20px; line-height: 25px;}
.medium {font-size: 30px; line-height: 35px;}
-.large {font-size: 60px; line-height: 60px;}
-.xlarge {font-size: 70px; line-height: 70px; letter-spacing: -3px;}
+.large {font-size: 65px; line-height: 65px;}
+.xlarge {font-size: 75px; line-height: 75px; letter-spacing: -3px;}
.thin {font-family: 'robotothin'; }
.light {font-family: 'roboto_condensedlight'; }
.regular {font-family: 'roboto_condensedregular';}
.bold {font-family: 'roboto_condensedbold';}
+.align-right {text-align: right;}
+
+
header {
- margin-top: 50px;
+ margin-top: 40px;
text-transform: uppercase;
- font-size: 0.4em;
+ font-size: 15px;
font-family: 'roboto_condensedregular';
border-bottom: 1px solid #333;
line-height: 0.35em;
@@ -40,6 +43,10 @@ header {
color: #666;
}
+header:first-child {
+ margin-top: 0px;
+}
+
sup {
font-size: 50%;
line-height: 50%;
@@ -113,4 +120,7 @@ sup {
}
.region.right {
text-align: right;
+}
+.region.right table {
+ float: right;
}
\ No newline at end of file
diff --git a/js/defaults.js b/js/defaults.js
index f7ec13d0..97ac99f0 100644
--- a/js/defaults.js
+++ b/js/defaults.js
@@ -10,6 +10,7 @@
var defaults = {
language: 'en',
+ timeFormat: 24,
modules: [
{
diff --git a/js/loader.js b/js/loader.js
index 3fba0b33..45129589 100644
--- a/js/loader.js
+++ b/js/loader.js
@@ -80,6 +80,7 @@ var Loader = (function() {
path: config.paths.modules + '/' + module,
file: module + '.js',
position: moduleData.position,
+ header: moduleData.header,
config: moduleData.config
});
diff --git a/js/main.js b/js/main.js
index d2a88558..2325f9e0 100644
--- a/js/main.js
+++ b/js/main.js
@@ -22,10 +22,18 @@ var MM = (function() {
for (var m in modules) {
var module = modules[m];
if (module.data.position) {
- var dom = document.createElement("div");
- dom.id = module.identifier;
var wrapper = selectWrapper(module.data.position);
+
+ if (typeof module.data.header !== 'undefined' && module.data.header !== '') {
+ var header = document.createElement("header");
+ header.innerHTML = module.data.header;
+ wrapper.appendChild(header);
+ }
+
+ var dom = document.createElement("div");
+ dom.id = module.identifier;
+ dom.className = module.name;
wrapper.appendChild(dom);
dom.appendChild(module.getDom());
@@ -75,10 +83,19 @@ var MM = (function() {
*/
var updateDom = function(module, speed) {
var wrapper = document.getElementById(module.identifier);
+ var newContent = module.getDom();
+
+ var tempWrapper = document.createElement('div');
+ tempWrapper.appendChild(newContent);
+
+ if (tempWrapper.innerHTML === wrapper.innerHTML) {
+ // Content did not change. Abort update.
+ return;
+ }
if (!speed) {
wrapper.innerHTML = null;
- wrapper.appendChild(module.getDom());
+ wrapper.appendChild(newContent);
return;
}
@@ -88,7 +105,7 @@ var MM = (function() {
setTimeout(function() {
wrapper.innerHTML = null;
- wrapper.appendChild(module.getDom());
+ wrapper.appendChild(newContent);
wrapper.style.opacity = 1;
}, speed / 2);
diff --git a/modules/clock/clock.js b/modules/clock/clock.js
index 659f7ecc..f4ea72b6 100644
--- a/modules/clock/clock.js
+++ b/modules/clock/clock.js
@@ -11,7 +11,7 @@ Module.create({
// Module config defaults.
defaults: {
- timeFormat: 24,
+ timeFormat: config.timeFormat,
displaySeconds: true,
},
diff --git a/modules/currentweather/currentweather.css b/modules/currentweather/currentweather.css
new file mode 100644
index 00000000..b953534b
--- /dev/null
+++ b/modules/currentweather/currentweather.css
@@ -0,0 +1,9 @@
+.currentweather .weathericon {
+ font-size: 75%;
+ line-height: 65px;
+ display: inline-block;
+
+ -ms-transform: translate(0px,-3px); /* IE 9 */
+ -webkit-transform: translate(0px,-3px); /* Safari */
+ transform: translate(0px,-3px);
+}
\ No newline at end of file
diff --git a/modules/currentweather/currentweather.js b/modules/currentweather/currentweather.js
new file mode 100644
index 00000000..1219a8d1
--- /dev/null
+++ b/modules/currentweather/currentweather.js
@@ -0,0 +1,271 @@
+/* global Module */
+
+/* Magic Mirror
+ * Module: CurrentWeather
+ *
+ * By Michael Teeuw http://michaelteeuw.nl
+ * MIT Licensed.
+ */
+
+Module.create({
+
+ // Default module config.
+ defaults: {
+ location: '',
+ appid: '',
+ units: 'metric',
+ updateInterval: 10 * 60 * 1000, // every 10 minutes
+ animationSpeed: 1000,
+ timeFormat: config.timeFormat,
+ lang: config.language,
+
+ initialLoadDelay: 0, // 0 seconds delay
+ retryDelay: 2500,
+
+ apiVersion: '2.5',
+ apiBase: 'http://api.openweathermap.org/data/',
+ weatherEndpoint: 'weather',
+
+ iconTable: {
+ '01d':'wi-day-sunny',
+ '02d':'wi-day-cloudy',
+ '03d':'wi-cloudy',
+ '04d':'wi-cloudy-windy',
+ '09d':'wi-showers',
+ '10d':'wi-rain',
+ '11d':'wi-thunderstorm',
+ '13d':'wi-snow',
+ '50d':'wi-fog',
+ '01n':'wi-night-clear',
+ '02n':'wi-night-cloudy',
+ '03n':'wi-night-cloudy',
+ '04n':'wi-night-cloudy',
+ '09n':'wi-night-showers',
+ '10n':'wi-night-rain',
+ '11n':'wi-night-thunderstorm',
+ '13n':'wi-night-snow',
+ '50n':'wi-night-alt-cloudy-windy'
+ },
+ },
+
+ // Define required scripts.
+ getScripts: function() {
+ return ['moment.js'];
+ },
+
+ // Define required scripts.
+ getStyles: function() {
+ return ['weather-icons.css', 'currentweather.css'];
+ },
+
+
+ // Define start sequence.
+ start: function() {
+ Log.info('Starting module: ' + this.name);
+
+ // Set locale.
+ moment.locale(config.language);
+
+ this.windSpeed = null;
+ this.sunriseSunsetTime = null;
+ this.sunriseSunsetIcon = null;
+ this.temperature = null;
+ this.weatherType = null;
+
+ this.loaded = false;
+ this.scheduleUpdate(this.config.initialLoadDelay);
+
+ this.updateTimer = null;
+
+ },
+
+ // Override dom generator.
+ getDom: function() {
+ var wrapper = document.createElement("div");
+
+ if (this.config.appid === '') {
+ wrapper.innerHTML = "Please set the correct openweather appid in the config for module: " + this.name + ".";
+ wrapper.className = "dimmed light small";
+ return wrapper;
+ }
+
+ if (this.config.location === '') {
+ wrapper.innerHTML = "Please set the openweather location in the config for module: " + this.name + ".";
+ wrapper.className = "dimmed light small";
+ return wrapper;
+ }
+
+ if (!this.loaded) {
+ wrapper.innerHTML = "Loading weather ...";
+ wrapper.className = "dimmed light small";
+ return wrapper;
+ }
+
+
+ var small = document.createElement("div");
+ small.className = "normal medium";
+
+ var windIcon = document.createElement("span");
+ windIcon.className = "wi wi-strong-wind dimmed";
+ small.appendChild(windIcon);
+
+ var windSpeed = document.createElement("span");
+ windSpeed.innerHTML = " " + this.windSpeed;
+ small.appendChild(windSpeed);
+
+ var spacer = document.createElement("span");
+ spacer.innerHTML = " ";
+ small.appendChild(spacer);
+
+ var sunriseSunsetIcon = document.createElement("span");
+ sunriseSunsetIcon.className = "wi dimmed " + this.sunriseSunsetIcon;
+ small.appendChild(sunriseSunsetIcon);
+
+ var sunriseSunsetTime = document.createElement("span");
+ sunriseSunsetTime.innerHTML = " " + this.sunriseSunsetTime;
+ small.appendChild(sunriseSunsetTime);
+
+ var large = document.createElement("div");
+ large.className = "large light";
+
+ var weatherIcon = document.createElement("span");
+ weatherIcon.className = "wi weathericon " + this.weatherType;
+ large.appendChild(weatherIcon);
+
+ var temperature = document.createElement("span");
+ temperature.className = "bright";
+ temperature.innerHTML = " " + this.temperature + '°';
+ large.appendChild(temperature);
+
+ wrapper.appendChild(small);
+ wrapper.appendChild(large);
+ return wrapper;
+ },
+
+
+ /* updateWeather(compliments)
+ * Requests new data from openweather.org.
+ * Calls processWeather on succesfull response.
+ */
+ updateWeather: function() {
+ var url = this.config.apiBase + this.config.apiVersion + '/' + this.config.weatherEndpoint + this.getParams();
+ var self = this;
+ var retry = true;
+
+ var weatherRequest = new XMLHttpRequest();
+ weatherRequest.open("GET", url, true);
+ weatherRequest.onreadystatechange = function() {
+ if(this.readyState === 4) {
+ if(this.status === 200) {
+ self.processWeather(JSON.parse(this.response));
+ } else if (this.status === 401) {
+ self.config.appid = '';
+ self.updateDom(self.config.animationSpeed);
+
+ Log.error(self.name + ": Incorrect APPID.");
+ retry = false;
+ } else {
+ Log.error(self.name + ": Could not load weather.");
+ }
+
+ if (retry) {
+ self.scheduleUpdate((self.loaded) ? -1 : self.config.retryDelay);
+ }
+ }
+ };
+ weatherRequest.send();
+ },
+
+ /* getParams(compliments)
+ * Generates an url with api parameters based on the config.
+ *
+ * return String - URL params.
+ */
+ getParams: function() {
+ var params = "?";
+ params += 'q=' + this.config.location;
+ params += '&units=' + this.config.units;
+ params += '&lang=' + this.config.lang;
+ params += '&APPID=' + this.config.appid;
+
+ return params;
+ },
+
+ /* processWeather(data)
+ * Uses the received data to set the various values.
+ *
+ * argument data object - Weather information received form openweather.org.
+ */
+ processWeather: function(data) {
+ this.temperature = this.roundValue(data.main.temp);
+ this.windSpeed = this.ms2Beaufort(this.roundValue(data.wind.speed));
+ this.weatherType = this.config.iconTable[data.weather[0].icon];
+
+
+
+ var now = moment().format('x');
+ var sunrise = moment(data.sys.sunrise*1000).format('x');
+ var sunset = moment(data.sys.sunset*1000).format('x');
+
+
+ if (sunrise < now && sunset > now) {
+ this.sunriseSunsetTime = moment(data.sys.sunset*1000).format((this.config.timeFormat === 24) ? 'HH:mm' : 'hh:mm a');
+ this.sunriseSunsetIcon = 'wi-sunset';
+ } else {
+ this.sunriseSunsetTime = moment(data.sys.sunrise*1000).format((this.config.timeFormat === 24) ? 'HH:mm' : 'hh:mm a');
+ this.sunriseSunsetIcon = 'wi-sunrise';
+
+ }
+
+ this.loaded = true;
+ this.updateDom(this.config.animationSpeed);
+ },
+
+ /* scheduleUpdate()
+ * Schedule next update.
+ *
+ * argument delay number - Milliseconds before next update. If empty, this.config.updateInterval is used.
+ */
+ scheduleUpdate: function(delay) {
+ var nextLoad = this.config.updateInterval;
+ if (typeof delay !== 'undefined' && delay >= 0) {
+ nextLoad = delay;
+ }
+
+ var self = this;
+ setTimeout(function() {
+ self.updateWeather();
+ }, nextLoad);
+ },
+
+ /* ms2Beaufort(ms)
+ * Converts m2 to beaufort (windspeed).
+ *
+ * argument ms number - Windspeed in m/s.
+ *
+ * return number - Windspeed in beaufort.
+ */
+ ms2Beaufort: function(ms) {
+ var kmh = ms * 60 * 60 / 1000;
+ var speeds = [1, 5, 11, 19, 28, 38, 49, 61, 74, 88, 102, 117, 1000];
+ for (var beaufort in speeds) {
+ var speed = speeds[beaufort];
+ if (speed > kmh) {
+ return beaufort;
+ }
+ }
+ return 12;
+ },
+
+ /* function(temperature)
+ * Rounds a temperature to 1 decimal.
+ *
+ * argument temperature number - Temperature.
+ *
+ * return number - Rounded Temperature.
+ */
+ roundValue: function (temperature) {
+ return parseFloat(temperature).toFixed(1);
+ }
+});
+
diff --git a/modules/helper_test/node_helper.js b/modules/helper_test/node_helper.js
deleted file mode 100644
index ea00fc25..00000000
--- a/modules/helper_test/node_helper.js
+++ /dev/null
@@ -1,2 +0,0 @@
-'use strict';
-console.log("test");
\ No newline at end of file
diff --git a/modules/weatherforecast/weatherforecast.css b/modules/weatherforecast/weatherforecast.css
new file mode 100644
index 00000000..323e65a6
--- /dev/null
+++ b/modules/weatherforecast/weatherforecast.css
@@ -0,0 +1,18 @@
+.weatherforecast .day {
+ padding-left: 0px;
+ padding-right: 20px;
+}
+
+.weatherforecast .weather-icon {
+ padding-right: 30px;
+}
+
+.weatherforecast .min-temp {
+ padding-left: 10px;
+ padding-right: 0px;
+}
+
+.weatherforecast table {
+ border-spacing: 0px;
+ border-collapse: separate;
+}
diff --git a/modules/weatherforecast/weatherforecast.js b/modules/weatherforecast/weatherforecast.js
new file mode 100644
index 00000000..a6ff08ef
--- /dev/null
+++ b/modules/weatherforecast/weatherforecast.js
@@ -0,0 +1,263 @@
+/* global Module */
+
+/* Magic Mirror
+ * Module: WeatherForecast
+ *
+ * By Michael Teeuw http://michaelteeuw.nl
+ * MIT Licensed.
+ */
+
+Module.create({
+
+ // Default module config.
+ defaults: {
+ location: '',
+ appid: '',
+ units: 'metric',
+ updateInterval: 10 * 60 * 1000, // every 10 minutes
+ animationSpeed: 1000,
+ timeFormat: config.timeFormat,
+ lang: config.language,
+
+ initialLoadDelay: 5000, // 5 seconds delay. This delay is used to keep the OpenWeather API happy.
+ retryDelay: 2500,
+
+ apiVersion: '2.5',
+ apiBase: 'http://api.openweathermap.org/data/',
+ forecastEndpoint: 'forecast/daily',
+
+ iconTable: {
+ '01d':'wi-day-sunny',
+ '02d':'wi-day-cloudy',
+ '03d':'wi-cloudy',
+ '04d':'wi-cloudy-windy',
+ '09d':'wi-showers',
+ '10d':'wi-rain',
+ '11d':'wi-thunderstorm',
+ '13d':'wi-snow',
+ '50d':'wi-fog',
+ '01n':'wi-night-clear',
+ '02n':'wi-night-cloudy',
+ '03n':'wi-night-cloudy',
+ '04n':'wi-night-cloudy',
+ '09n':'wi-night-showers',
+ '10n':'wi-night-rain',
+ '11n':'wi-night-thunderstorm',
+ '13n':'wi-night-snow',
+ '50n':'wi-night-alt-cloudy-windy'
+ },
+ },
+
+ // Define required scripts.
+ getScripts: function() {
+ return ['moment.js'];
+ },
+
+ // Define required scripts.
+ getStyles: function() {
+ return ['weather-icons.css', 'weatherforecast.css'];
+ },
+
+
+ // Define start sequence.
+ start: function() {
+ Log.info('Starting module: ' + this.name);
+
+ // Set locale.
+ moment.locale(config.language);
+
+ this.forecast = [];
+ this.loaded = false;
+ this.scheduleUpdate(this.config.initialLoadDelay);
+
+ this.updateTimer = null;
+
+ },
+
+ // Override dom generator.
+ getDom: function() {
+ var wrapper = document.createElement("div");
+
+ if (this.config.appid === '') {
+ wrapper.innerHTML = "Please set the correct openweather appid in the config for module: " + this.name + ".";
+ wrapper.className = "dimmed light small";
+ return wrapper;
+ }
+
+ if (this.config.location === '') {
+ wrapper.innerHTML = "Please set the openweather location in the config for module: " + this.name + ".";
+ wrapper.className = "dimmed light small";
+ return wrapper;
+ }
+
+ if (!this.loaded) {
+ wrapper.innerHTML = "Loading weather ...";
+ wrapper.className = "dimmed light small";
+ return wrapper;
+ }
+
+
+ var table = document.createElement("table");
+ table.className = "small";
+
+ for (var f in this.forecast) {
+ var forecast = this.forecast[f];
+
+ var row = document.createElement("tr");
+ table.appendChild(row);
+
+ var dayCell = document.createElement("td");
+ dayCell.className = 'day';
+ dayCell.innerHTML = forecast.day;
+ row.appendChild(dayCell);
+
+ var iconCell = document.createElement("td");
+ iconCell.className = "bright weather-icon";
+ row.appendChild(iconCell);
+
+ var icon = document.createElement("span");
+ icon.className = forecast.icon;
+ iconCell.appendChild(icon);
+
+ var maxTempCell = document.createElement("td");
+ maxTempCell.innerHTML = forecast.maxTemp;
+ maxTempCell.className = 'align-right bright max-temp';
+ row.appendChild(maxTempCell);
+
+ var minTempCell = document.createElement("td");
+ minTempCell.innerHTML = forecast.minTemp;
+ minTempCell.className = 'align-right min-temp';
+ row.appendChild(minTempCell);
+
+ }
+
+
+
+ return table;
+ },
+
+
+ /* updateWeather(compliments)
+ * Requests new data from openweather.org.
+ * Calls processWeather on succesfull response.
+ */
+ updateWeather: function() {
+ var url = this.config.apiBase + this.config.apiVersion + '/' + this.config.forecastEndpoint + this.getParams();
+ var self = this;
+ var retry = true;
+
+ var weatherRequest = new XMLHttpRequest();
+ weatherRequest.open("GET", url, true);
+ weatherRequest.onreadystatechange = function() {
+ if(this.readyState === 4) {
+ if(this.status === 200) {
+ self.processWeather(JSON.parse(this.response));
+ } else if (this.status === 401) {
+ self.config.appid = '';
+ self.updateDom(self.config.animationSpeed);
+
+ Log.error(self.name + ": Incorrect APPID.");
+ retry = false;
+ } else {
+ Log.error(self.name + ": Could not load weather.");
+ }
+
+ if (retry) {
+ self.scheduleUpdate((self.loaded) ? -1 : self.config.retryDelay);
+ }
+ }
+ };
+ weatherRequest.send();
+ },
+
+ /* getParams(compliments)
+ * Generates an url with api parameters based on the config.
+ *
+ * return String - URL params.
+ */
+ getParams: function() {
+ var params = "?";
+ params += 'q=' + this.config.location;
+ params += '&units=' + this.config.units;
+ params += '&lang=' + this.config.lang;
+ params += '&APPID=' + this.config.appid;
+
+ return params;
+ },
+
+ /* processWeather(data)
+ * Uses the received data to set the various values.
+ *
+ * argument data object - Weather information received form openweather.org.
+ */
+ processWeather: function(data) {
+
+ this.forecast = [];
+ for (var i = 0, count = data.list.length; i < count; i++) {
+
+ var forecast = data.list[i];
+ this.forecast.push({
+
+ day: moment(forecast.dt, 'X').format('ddd.'),
+ icon: this.config.iconTable[forecast.weather[0].icon],
+ maxTemp: this.roundValue(forecast.temp.max),
+ minTemp: this.roundValue(forecast.temp.min)
+
+ });
+ }
+
+ //Log.log(this.forecast);
+
+ this.loaded = true;
+ this.updateDom(this.config.animationSpeed);
+ },
+
+ /* scheduleUpdate()
+ * Schedule next update.
+ *
+ * argument delay number - Milliseconds before next update. If empty, this.config.updateInterval is used.
+ */
+ scheduleUpdate: function(delay) {
+ var nextLoad = this.config.updateInterval;
+ if (typeof delay !== 'undefined' && delay >= 0) {
+ nextLoad = delay;
+ }
+
+ var self = this;
+ clearTimeout(this.updateTimer);
+ this.updateTimer = setTimeout(function() {
+ self.updateWeather();
+ }, nextLoad);
+ },
+
+ /* ms2Beaufort(ms)
+ * Converts m2 to beaufort (windspeed).
+ *
+ * argument ms number - Windspeed in m/s.
+ *
+ * return number - Windspeed in beaufort.
+ */
+ ms2Beaufort: function(ms) {
+ var kmh = ms * 60 * 60 / 1000;
+ var speeds = [1, 5, 11, 19, 28, 38, 49, 61, 74, 88, 102, 117, 1000];
+ for (var beaufort in speeds) {
+ var speed = speeds[beaufort];
+ if (speed > kmh) {
+ return beaufort;
+ }
+ }
+ return 12;
+ },
+
+ /* function(temperature)
+ * Rounds a temperature to 1 decimal.
+ *
+ * argument temperature number - Temperature.
+ *
+ * return number - Rounded Temperature.
+ */
+ roundValue: function (temperature) {
+ return parseFloat(temperature).toFixed(1);
+ }
+});
+
diff --git a/vendor/vendor.js b/vendor/vendor.js
index a6e60420..3d984d03 100644
--- a/vendor/vendor.js
+++ b/vendor/vendor.js
@@ -9,4 +9,5 @@
var vendor = {
'moment.js' : 'moment/moment-with-locales.min.js',
+ 'weather-icons.css': 'weather-icons/weather-icons.css'
};
\ No newline at end of file
diff --git a/vendor/weather-icons/weather-icons.css b/vendor/weather-icons/weather-icons.css
new file mode 100755
index 00000000..c547ce67
--- /dev/null
+++ b/vendor/weather-icons/weather-icons.css
@@ -0,0 +1,327 @@
+/*!
+ * Weather Icons Beta 1
+ * Weather themed icons for Bootstrap
+ * ------------------------------------------------------------------------------
+ * Maintained at http://erikflowers.github.io/weather-icons
+ * http://twitter.com/Erik_UX
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - Fpmt licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+ * - CSS and LESS are licensed under MIT License -
+ * http://opensource.org/licenses/mit-license.html
+ * - Documentation licensed under CC BY 3.0 -
+ * http://creativecommons.org/licenses/by/3.0/
+ * - Inspired by and works great as a companion with Font Aweosme
+ * "Font Awesome by Dave Gandy - http://fontawesome.io"
+ *
+ * Weather Icons Bootstrap Package Author - Erik Flowers - erik@helloerik.com
+ * Weather Icons gives full credit for inspiration to Font Awesome and makes no
+ * claim to invention, intellectual property, or ownership of methodology.
+ *
+ * Support Open Source!
+ *
+ * ------------------------------------------------------------------------------
+ * Email: erik@helloerik.com
+ * Twitter: http://twitter.com/Erik_UX
+ */
+@font-face {
+ font-family: 'weather';
+ src: url('weathericons-regular-webfont.eot');
+ src: url('weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('weathericons-regular-webfont.woff') format('woff'), url('weathericons-regular-webfont.ttf') format('truetype'), url('weathericons-regular-webfont.svg#weathericons-regular-webfontRg') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+[class^="wi-"],
+[class*=" wi-"] {
+ font-family: weather;
+ font-weight: normal;
+ font-style: normal;
+ text-decoration: inherit;
+ text-transform: none;
+ -webkit-font-smoothing: antialiased;
+ *margin-right: .3em;
+}
+[class^="wi-"]:before,
+[class*=" wi-"]:before {
+ text-decoration: inherit;
+ display: inline-block;
+ speak: none;
+}
+.wi-day-cloudy-gusts:before {
+ content: "\f000";
+}
+.wi-day-cloudy-windy:before {
+ content: "\f001";
+}
+.wi-day-cloudy:before {
+ content: "\f002";
+}
+.wi-day-fog:before {
+ content: "\f003";
+}
+.wi-day-hail:before {
+ content: "\f004";
+}
+.wi-day-lightning:before {
+ content: "\f005";
+}
+.wi-day-rain-mix:before {
+ content: "\f006";
+}
+.wi-day-rain-wind:before {
+ content: "\f007";
+}
+.wi-day-rain:before {
+ content: "\f008";
+}
+.wi-day-showers:before {
+ content: "\f009";
+}
+.wi-day-snow:before {
+ content: "\f00a";
+}
+.wi-day-sprinkle:before {
+ content: "\f00b";
+}
+.wi-day-sunny-overcast:before {
+ content: "\f00c";
+}
+.wi-day-sunny:before {
+ content: "\f00d";
+}
+.wi-day-storm-showers:before {
+ content: "\f00e";
+}
+.wi-day-thunderstorm:before {
+ content: "\f010";
+}
+.wi-cloudy-gusts:before {
+ content: "\f011";
+}
+.wi-cloudy-windy:before {
+ content: "\f012";
+}
+.wi-cloudy:before {
+ content: "\f013";
+}
+.wi-fog:before {
+ content: "\f014";
+}
+.wi-hail:before {
+ content: "\f015";
+}
+.wi-lightning:before {
+ content: "\f016";
+}
+.wi-rain-mix:before {
+ content: "\f017";
+}
+.wi-rain-wind:before {
+ content: "\f018";
+}
+.wi-rain:before {
+ content: "\f019";
+}
+.wi-showers:before {
+ content: "\f01a";
+}
+.wi-snow:before {
+ content: "\f01b";
+}
+.wi-sprinkle:before {
+ content: "\f01c";
+}
+.wi-storm-showers:before {
+ content: "\f01d";
+}
+.wi-thunderstorm:before {
+ content: "\f01e";
+}
+.wi-windy:before {
+ content: "\f021";
+}
+.wi-night-alt-cloudy-gusts:before {
+ content: "\f022";
+}
+.wi-night-alt-cloudy-windy:before {
+ content: "\f023";
+}
+.wi-night-alt-hail:before {
+ content: "\f024";
+}
+.wi-night-alt-lightning:before {
+ content: "\f025";
+}
+.wi-night-alt-rain-mix:before {
+ content: "\f026";
+}
+.wi-night-alt-rain-wind:before {
+ content: "\f027";
+}
+.wi-night-alt-rain:before {
+ content: "\f028";
+}
+.wi-night-alt-showers:before {
+ content: "\f029";
+}
+.wi-night-alt-snow:before {
+ content: "\f02a";
+}
+.wi-night-alt-sprinkle:before {
+ content: "\f02b";
+}
+.wi-night-alt-storm-showers:before {
+ content: "\f02c";
+}
+.wi-night-alt-thunderstorm:before {
+ content: "\f02d";
+}
+.wi-night-clear:before {
+ content: "\f02e";
+}
+.wi-night-cloudy-gusts:before {
+ content: "\f02f";
+}
+.wi-night-cloudy-windy:before {
+ content: "\f030";
+}
+.wi-night-cloudy:before {
+ content: "\f031";
+}
+.wi-night-hail:before {
+ content: "\f032";
+}
+.wi-night-lightning:before {
+ content: "\f033";
+}
+.wi-night-rain-mix:before {
+ content: "\f034";
+}
+.wi-night-rain-wind:before {
+ content: "\f035";
+}
+.wi-night-rain:before {
+ content: "\f036";
+}
+.wi-night-showers:before {
+ content: "\f037";
+}
+.wi-night-snow:before {
+ content: "\f038";
+}
+.wi-night-sprinkle:before {
+ content: "\f039";
+}
+.wi-night-storm-showers:before {
+ content: "\f03a";
+}
+.wi-night-thunderstorm:before {
+ content: "\f03b";
+}
+.wi-celcius:before {
+ content: "\f03c";
+}
+.wi-cloud-down:before {
+ content: "\f03d";
+}
+.wi-cloud-refresh:before {
+ content: "\f03e";
+}
+.wi-cloud-up:before {
+ content: "\f040";
+}
+.wi-cloud:before {
+ content: "\f041";
+}
+.wi-degrees:before {
+ content: "\f042";
+}
+.wi-down-left:before {
+ content: "\f043";
+}
+.wi-down:before {
+ content: "\f044";
+}
+.wi-fahrenheit:before {
+ content: "\f045";
+}
+.wi-horizon-alt:before {
+ content: "\f046";
+}
+.wi-horizon:before {
+ content: "\f047";
+}
+.wi-left:before {
+ content: "\f048";
+}
+.wi-lightning:before {
+ content: "\f016";
+}
+.wi-night-fog:before {
+ content: "\f04a";
+}
+.wi-refresh-alt:before {
+ content: "\f04b";
+}
+.wi-refresh:before {
+ content: "\f04c";
+}
+.wi-right:before {
+ content: "\f04d";
+}
+.wi-sprinkles:before {
+ content: "\f04e";
+}
+.wi-strong-wind:before {
+ content: "\f050";
+}
+.wi-sunrise:before {
+ content: "\f051";
+}
+.wi-sunset:before {
+ content: "\f052";
+}
+.wi-thermometer-exterior:before {
+ content: "\f053";
+}
+.wi-thermometer-internal:before {
+ content: "\f054";
+}
+.wi-thermometer:before {
+ content: "\f055";
+}
+.wi-tornado:before {
+ content: "\f056";
+}
+.wi-up-right:before {
+ content: "\f057";
+}
+.wi-up:before {
+ content: "\f058";
+}
+.wi-wind-east:before {
+ content: "\f059";
+}
+.wi-wind-north-east:before {
+ content: "\f05a";
+}
+.wi-wind-north-west:before {
+ content: "\f05b";
+}
+.wi-wind-north:before {
+ content: "\f05c";
+}
+.wi-wind-south-east:before {
+ content: "\f05d";
+}
+.wi-wind-south-west:before {
+ content: "\f05e";
+}
+.wi-wind-south:before {
+ content: "\f060";
+}
+.wi-wind-west:before {
+ content: "\f061";
+}
diff --git a/vendor/weather-icons/weathericons-regular-webfont.eot b/vendor/weather-icons/weathericons-regular-webfont.eot
new file mode 100755
index 00000000..d9f8a717
Binary files /dev/null and b/vendor/weather-icons/weathericons-regular-webfont.eot differ
diff --git a/vendor/weather-icons/weathericons-regular-webfont.svg b/vendor/weather-icons/weathericons-regular-webfont.svg
new file mode 100755
index 00000000..9c8d899a
--- /dev/null
+++ b/vendor/weather-icons/weathericons-regular-webfont.svg
@@ -0,0 +1,121 @@
+
+
+
\ No newline at end of file
diff --git a/vendor/weather-icons/weathericons-regular-webfont.ttf b/vendor/weather-icons/weathericons-regular-webfont.ttf
new file mode 100755
index 00000000..e10fbc83
Binary files /dev/null and b/vendor/weather-icons/weathericons-regular-webfont.ttf differ
diff --git a/vendor/weather-icons/weathericons-regular-webfont.woff b/vendor/weather-icons/weathericons-regular-webfont.woff
new file mode 100755
index 00000000..af1d7bbf
Binary files /dev/null and b/vendor/weather-icons/weathericons-regular-webfont.woff differ