// Gramex .htmllintrc v1.2
{
    "plugins": [],

    "attr-bans": [
        "align",
        "background",
        "bgcolor",
        "border",
        // "frameborder",       // frameborder is used in YouTube embeds
        "longdesc",
        "marginwidth",
        "marginheight",
        "scrolling",
        "style",                // DO NOT USE style= attribute
        "onclick",
        "onload"
    ],
    "attr-name-style": false,
    "attr-no-dup": false,                   // attr name may be computed, and get replaced by {}
    "attr-no-unsafe-char": false,           // title contains single quotes '
    "attr-quote-style": "double",           // attributes contain double quotes
    "attr-req-value": false,
    "class-no-dup": true,                   // no duplicate classes in a tag
    "doctype-first": false,                 // snippet templates need not begin with doctype
    "doctype-html5": true,
    "fig-req-figcaption": false,
    "focusable-tabindex-style": false,
    "head-req-title": false,                // title may be inside a Block.run()
    "href-style": false,
    "html-req-lang": false,
    "id-class-ignore-regex": "\\{ *\\}",    // ignore tornado template id / class
    "id-class-no-ad": false,
    "id-class-style": false,                // no styles enforced for now
    "id-no-dup": false,                     // template replacement IDs { } cause duplication
    "img-req-alt": "allownull",             // <img alt=""> for dynamic image content
    "img-req-src": false,
    "indent-style": "spaces",
    "indent-width": 2,
    "label-req-for": false,                 // cannot use if multiple forms with same key
    "line-end-style": false,                // raises too many errors
    "link-req-noopener": false,             // we only link internally, so no security issues
    "raw-ignore-regex": "<%.*?%>\\s*|{[%#{].*?[%#}]}\\s*",  // ignore templates
    "spec-char-escape": false,              // using > or < is not that big a deal
    "table-req-caption": false,
    "tag-bans": [
        // "b",                             // Bootstrap caret example uses <b>
        // "i",                             // Font-awesome icons use <i>
        "s",                                // avoid strike tag, deprecated
        "br",                               // avoid break tag, bad practice, use margin/padding instead
        // "style",                         // Single-page templates need style tag
        "u",
        "strike",
        "font",
        "center"
    ],
    "tag-name-lowercase": true,
    "tag-name-match": true,
    "tag-self-close": false,
    "title-max-len": false,                 // we sometimes have tables inside the title=""
    "title-no-dup": true
}
