0.0.7 • Published 3 years ago
wxmllint v0.0.7
wxmllint
An unofficial wxml linter and validator.
fork and modified from htmllint
目前可用的rc文件 ./lib/presets/default.jswxmllint init
TODO
- "attr-bans"
- "attr-name-ignore-regex"
- "attr-name-style" -- camelCase?
- "attr-new-line" --建议 3
- "attr-no-dup" --建议 true
- "attr-no-unsafe-char" --建议 true
- "attr-order" --建议 "/^wx/", "/^(?!wx)/"
- "attr-quote-style" --建议 "quoted"
- "attr-req-value" ----建议 false ----booleanAttrs不能满足自定义属性的需求
- "attr-validate" --建议 true
"button-req-content" --建议 false --大量button只是为了open-type
"class-no-dup"
--模板语法不能正确解析 class="{{ a ? 'a' : 'b' }}"
--配合 "id-class-ignore-regex": "{{.*?}}" 基本可以, 还是有部分class解析不对的情况:
<view class="shop-icon">
<view class="num {{cartSkuNum < 10 ? '' : cartSkuNum <= 99 ? 'numMiddle' : 'numLarge'}}"></view>
</view>
- "class-style" --TODO
- "doctype-first" --建议 false
- "doctype-html5" -- false
- "fieldset-contains-legend"
- "fig-req-figcaption" -- false 小程序不适用
- "focusable-tabindex-style" -- false
- "head-req-title" -- false 小程序不适用
- "head-valid-content-model" -- false 小程序不适用
- "href-style" -- false
- "html-req-lang" -- false 小程序不适用
- "html-valid-content-model" -- false 小程序不适用
- "id-class-ignore-regex" -- "{{.*?}}" --部分情况似乎有bug, 见 "class-no-dup"
- "id-class-no-ad" -- false
- "id-class-style" -- false
"id-no-dup" -- true
"img-req-alt" -- false
- "img-req-src" -- true
- "indent-delta" -- false
- "indent-style" -- false
- "indent-width" -- false
- "indent-width-cont" -- false
- "input-btn-req-value-or-title" -- true
- "input-radio-req-name" -- false
- "input-req-label" -- false
- "label-no-enc-textarea-or-select" -- true
- "label-req-for" -- false
- "lang-style" -- true
- "line-end-style" -- false
- "line-max-len" -- ?
- "line-max-len-ignore-regex"
"line-no-trailing-whitespace"
"link-min-length-4" -- true --TODO: 考虑mustache
- "link-req-noopener" -- true 小程序应该不适用
- "maxerr"
- "raw-ignore-regex" -- 解析有问题: "/\<!-- htmllint ignore -->^*?\<!-- htmllint unignore -->/"
- "spec-char-escape" -- false --TODO: mustache
- "table-req-caption" -- true
- "table-req-header" -- true
- "tag-bans" -- image?
- "tag-close" -- true
- "tag-name-lowercase" -- false
"tag-name-match"-- 统一到 "tag-close"- "tag-req-attr" --建议 {"image": {"name": "src"}} -- TODO: 实现个 "tag-no-attr" 来禁止 text 上的 class
"tag-self-close"-- 统一到 "tag-close"- "text-ignore-regex"
- "title-max-len" -- false 小程序不适用
- "title-no-dup" -- false 小程序不适用
- Tokenizer 中识别各处出现的 mustache
wxml 中的 attribs
<view wx:if="{{conditionA}}" {{skuList.length}} bindtap="doSth"></view>
====>
wx:if ---- {{conditionA}}
{{skuList.length}} ----
bindtap ---- doSth