{"_id":"@42sol/eslint-plugin-vue-pug","_rev":"1-03f6253f6d13e1252aff5931d93d841d","name":"@42sol/eslint-plugin-vue-pug","dist-tags":{"latest":"0.6.3"},"versions":{"0.6.3":{"name":"@42sol/eslint-plugin-vue-pug","version":"0.6.3","author":{"url":"https://rash.codes","name":"rash","email":"rash@rash.codes"},"license":"MIT","_id":"@42sol/eslint-plugin-vue-pug@0.6.3","maintainers":[{"name":"disaipe","email":"disaipe@gmail.com"},{"name":"dmrompav","email":"dm.rom.pav@gmail.com"}],"homepage":"https://github.com/rashfael/eslint-plugin-vue-pug","bugs":{"url":"https://github.com/rashfael/eslint-plugin-vue-pug/issues"},"dist":{"shasum":"e60d2cac8b0eb64f072aee40b7cad73608622d3c","tarball":"https://registry.npmjs.org/@42sol/eslint-plugin-vue-pug/-/eslint-plugin-vue-pug-0.6.3.tgz","fileCount":22,"integrity":"sha512-4zp0UKK22sdlqQkTX/SgD0boA+6ppzo17+i9hlMVqWCr04bdjX/9T4PA0UNXD+rayENGM257agD5JctA7nwZsA==","signatures":[{"sig":"MEUCIQCK3HOTJT7zkADY3e183iF2GJg6JVTYbnGWW9XaW5usPgIgE7YBYlq/M8BxRkhgHDjp42H9XYugshBgFVFxG504+n0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23986},"main":"lib/index.js","gitHead":"584ba846c92b4cae656fcca99fa6a7563c13b6d9","scripts":{"new":"node tools/new-rule.js","lint":"eslint .","test":"nyc npm run test:base -- \"tests/**/*.js\" --timeout 60000","debug":"mocha --inspect \"tests/**/*.js\" --reporter dot --timeout 60000","update":"node ./tools/update.js","lint:fix":"eslint . --fix","test:base":"mocha \"tests/**/*.js\" --reporter dot","docs:build":"vuepress build docs","docs:watch":"vuepress dev docs","predocs:build":"npm run update"},"_npmUser":{"name":"disaipe","email":"disaipe@gmail.com"},"repository":{"url":"git+https://github.com/rashfael/eslint-plugin-vue-pug.git","type":"git"},"_npmVersion":"11.0.0","description":"linting your pug templates in vue single file components","directories":{},"_nodeVersion":"23.4.0","dependencies":{"vue-eslint-parser-template-tokenizer-pug":"^0.4.11"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","mocha":"^7.1.2","eslint":"^8.28.0","lodash":"^4.17.21","prettier":"^2.6.1","vuepress":"^1.8.2","xhtml2pug":"^3.2.1","@vue/compiler-dom":"^3.2.31","vue-eslint-parser":"^9.1.0","eslint-plugin-jsonc":"^1.4.0","@vuepress/plugin-pwa":"^1.9.7","eslint-plugin-import":"^2.20.2","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.4.1","@typescript-eslint/parser":"^5.16.0","eslint-plugin-eslint-plugin":"^3.5.3","eslint-plugin-node-dependencies":">=0.5.0 <1.0.0"},"peerDependencies":{"eslint-plugin-vue":"^9.32.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-vue-pug_0.6.3_1739279741037_0.769278558783477","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-02-11T13:15:40.952Z","modified":"2025-02-11T14:48:19.133Z","0.6.3":"2025-02-11T13:15:41.271Z"},"bugs":{"url":"https://github.com/rashfael/eslint-plugin-vue-pug/issues"},"author":{"url":"https://rash.codes","name":"rash","email":"rash@rash.codes"},"license":"MIT","homepage":"https://github.com/rashfael/eslint-plugin-vue-pug","repository":{"url":"git+https://github.com/rashfael/eslint-plugin-vue-pug.git","type":"git"},"description":"linting your pug templates in vue single file components","maintainers":[{"email":"disaipe@gmail.com","name":"disaipe"}],"readme":"# eslint-plugin-vue-pug\n\nExtends [eslint-plugin-vue](https://eslint.vuejs.org/) to support pug templates.\n\n## Installation\n\n```sh\nnpm install --save-dev eslint@8 eslint-plugin-vue eslint-plugin-vue-pug\n```\n\n## Usage\n\nMost [eslint-plugin-vue](https://eslint.vuejs.org/) rules work out of the box with just adding this plugin in your eslint config:\n\n```js\nmodule.exports = {\n  extends: [\n    'plugin:vue/vue3-recommended',\n    'plugin:vue-pug/vue3-recommended'\n  ]\n}\n```\n\n## Limitations\n\n- [pug-lexer](https://github.com/pugjs/pug/blob/master/packages/pug-lexer) seems to convert windows-style CRLF line endings to LF line endings, which may break token position and will give you errors. Make sure to [only use LF line endings](https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings).\n\n### Supported Syntax\n\nThis plugin only lints pug syntax that directly corresponds to html syntax.\nPug syntax that is not supported includes mixins, js code, loops, if/else, case, include/extends.\nThe linter will just skip those features, which means that tags inside mixins will **not** be linted.\nThe rule [no-pug-control-flow](docs/rules/no-pug-control-flow.md) will help you to avoid unsupported pug syntax.\n\n## Open Questions\n\n### Comment Directive\n\nDo we want own docs for that? Also, pug has no inline comments.\n\n### #id and .class shorthands\nShorthands get dropped from attributes list to not affect attribute order. We need to add separate linter rules for those.\n- `no-useless-template-attributes` checks for class on `template`, we need to also check shorthands.\n- `no-restricted-class` needs special handling\n\n### brace style\n\nExisting rule fails at fixing and does not replace \" quotes with `.\n\n### parsing commas in dynamic attribute names\n\npug splits up attribute names like `:[[a,b,][1]]`\n\n\n### spaces added by fix\n`first-attribute-linebreak` adds a space between `tag(` and `attr=\"\"` in certain scenarios.\n\n### attribute separators\nThings like `max-attributes-per-line` would need to include the `,` in the attribute range for some fixes to work correctly, but this would break `attribute-order`.\n\n### HTML tokens\nthere are some rules relying on HTML* tokens, like `no-multi-spaces`.\n\n### Splitting low level mustache tokens\n\n### template attributes\n\nhaving both lang and src attributes on template, what does that even do?\n\n### HTML rules\n\nRules for HTML don't apply to pug, but do not seem to interfere with pug templates since they check `HTML*` tokens, which we don't emit. Should we still disable those rules or leave them on?\n","readmeFilename":"README.md"}