├── .gitattributes ├── .gitignore ├── lib ├── utils │ ├── void-elements.json │ ├── svg-elements.json │ ├── html-elements.json │ └── index.js ├── index.js ├── recommended.json ├── rules │ ├── require-component-is.js │ ├── no-textarea-mustache.js │ ├── require-v-for-key.js │ ├── html-no-self-closing.js │ ├── no-parsing-error.js │ ├── html-quotes.js │ ├── v-bind-style.js │ ├── v-on-style.js │ ├── no-invalid-v-pre.js │ ├── no-invalid-v-bind.js │ ├── no-invalid-v-once.js │ ├── no-invalid-v-cloak.js │ ├── no-invalid-v-html.js │ ├── no-invalid-v-show.js │ ├── no-invalid-v-text.js │ ├── html-end-tags.js │ ├── no-confusing-v-for-v-if.js │ ├── no-duplicate-attributes.js │ ├── no-invalid-v-on.js │ ├── no-invalid-v-if.js │ ├── no-invalid-v-else-if.js │ ├── no-invalid-v-else.js │ ├── no-invalid-template-root.js │ ├── no-invalid-v-for.js │ └── no-invalid-v-model.js └── rules.js ├── .travis.yml ├── .eslintrc.json ├── docs └── rules │ ├── no-parsing-error.md │ ├── no-textarea-mustache.md │ ├── require-component-is.md │ ├── no-duplicate-attributes.md │ ├── html-no-self-closing.md │ ├── no-invalid-v-pre.md │ ├── no-invalid-v-once.md │ ├── no-invalid-v-cloak.md │ ├── require-v-for-key.md │ ├── v-bind-style.md │ ├── v-on-style.md │ ├── no-invalid-v-html.md │ ├── no-invalid-v-show.md │ ├── no-invalid-v-text.md │ ├── html-end-tags.md │ ├── no-invalid-v-on.md │ ├── html-quotes.md │ ├── no-invalid-v-bind.md │ ├── no-invalid-v-else.md │ ├── no-invalid-template-root.md │ ├── no-confusing-v-for-v-if.md │ ├── no-invalid-v-if.md │ ├── no-invalid-v-else-if.md │ ├── no-invalid-v-model.md │ └── no-invalid-v-for.md ├── LICENSE ├── package.json ├── tests └── lib │ └── rules │ ├── no-textarea-mustache.js │ ├── no-invalid-v-pre.js │ ├── no-invalid-v-once.js │ ├── no-invalid-v-cloak.js │ ├── no-invalid-v-html.js │ ├── no-invalid-v-show.js │ ├── no-invalid-v-text.js │ ├── require-component-is.js │ ├── no-duplicate-attributes.js │ ├── require-v-for-key.js │ ├── html-no-self-closing.js │ ├── no-confusing-v-for-v-if.js │ ├── no-invalid-v-on.js │ ├── no-invalid-v-if.js │ ├── v-on-style.js │ ├── v-bind-style.js │ ├── html-end-tags.js │ ├── no-parsing-error.js │ ├── no-invalid-v-bind.js │ ├── no-invalid-v-else.js │ ├── no-invalid-template-root.js │ ├── no-invalid-v-else-if.js │ ├── no-invalid-v-model.js │ ├── html-quotes.js │ └── no-invalid-v-for.js ├── tools └── update-rules.js └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.nyc_output 2 | /coverage 3 | /node_modules 4 | /test.* 5 | -------------------------------------------------------------------------------- /lib/utils/void-elements.json: -------------------------------------------------------------------------------- 1 | ["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"] 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - "4" 5 | - "6" 6 | - "7" 7 | before_install: 8 | - if [[ `npm --version` == 2* ]]; then npm install -g npm@3; fi 9 | after_success: 10 | - npm run codecov 11 | -------------------------------------------------------------------------------- /lib/utils/svg-elements.json: -------------------------------------------------------------------------------- 1 | ["svg","animate","circle","clippath","cursor","defs","desc","ellipse","filter","font-face","foreignObject","g","glyph","image","line","marker","mask","missing-glyph","path","pattern","polygon","polyline","rect","switch","symbol","text","textpath","tspan","use","view"] 2 | -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Toru Nagashima 3 | * @copyright 2017 Toru Nagashima. All rights reserved. 4 | * See LICENSE file in root directory for full license. 5 | */ 6 | "use strict" 7 | 8 | module.exports = { 9 | configs: {recommended: require("./recommended.json")}, 10 | rules: require("./rules.js"), 11 | } 12 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": [ 4 | "mysticatea", 5 | "mysticatea/node", 6 | "plugin:eslint-plugin/recommended" 7 | ], 8 | "plugins": [ 9 | "eslint-plugin" 10 | ], 11 | "rules": { 12 | "complexity": "off", 13 | "eslint-plugin/report-message-format": ["error", "^[A-Z].*\\.$"], 14 | "eslint-plugin/prefer-placeholders": "error", 15 | "eslint-plugin/consistent-output": "error" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /docs/rules/no-parsing-error.md: -------------------------------------------------------------------------------- 1 | # Disallow parsing errors in `