github.com/jancarloviray/community@v0.41.1-0.20170124221257-33a66c87cf2f/app/public/codemirror/addon/lint/html-lint.js (about)

     1  // CodeMirror, copyright (c) by Marijn Haverbeke and others
     2  // Distributed under an MIT license: http://codemirror.net/LICENSE
     3  
     4  // Depends on htmlhint.js from http://htmlhint.com/js/htmlhint.js
     5  
     6  // declare global: HTMLHint
     7  
     8  (function(mod) {
     9    if (typeof exports == "object" && typeof module == "object") // CommonJS
    10      mod(require("../../lib/codemirror"), require("htmlhint"));
    11    else if (typeof define == "function" && define.amd) // AMD
    12      define(["../../lib/codemirror", "htmlhint"], mod);
    13    else // Plain browser env
    14      mod(CodeMirror);
    15  })(function(CodeMirror) {
    16    "use strict";
    17  
    18    var defaultRules = {
    19      "tagname-lowercase": true,
    20      "attr-lowercase": true,
    21      "attr-value-double-quotes": true,
    22      "doctype-first": false,
    23      "tag-pair": true,
    24      "spec-char-escape": true,
    25      "id-unique": true,
    26      "src-not-empty": true,
    27      "attr-no-duplication": true
    28    };
    29  
    30    CodeMirror.registerHelper("lint", "html", function(text, options) {
    31      var found = [];
    32      if (!window.HTMLHint) return found;
    33      var messages = HTMLHint.verify(text, options && options.rules || defaultRules);
    34      for (var i = 0; i < messages.length; i++) {
    35        var message = messages[i];
    36        var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col;
    37        found.push({
    38          from: CodeMirror.Pos(startLine, startCol),
    39          to: CodeMirror.Pos(endLine, endCol),
    40          message: message.message,
    41          severity : message.type
    42        });
    43      }
    44      return found;
    45    });
    46  });