openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

html-hint.js (11341B)


      1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
      2 // Distributed under an MIT license: http://codemirror.net/LICENSE
      3 
      4 (function(mod) {
      5   if (typeof exports == "object" && typeof module == "object") // CommonJS
      6     mod(require("../../lib/codemirror"), require("./xml-hint"));
      7   else if (typeof define == "function" && define.amd) // AMD
      8     define(["../../lib/codemirror", "./xml-hint"], mod);
      9   else // Plain browser env
     10     mod(CodeMirror);
     11 })(function(CodeMirror) {
     12   "use strict";
     13 
     14   var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" ");
     15   var targets = ["_blank", "_self", "_top", "_parent"];
     16   var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"];
     17   var methods = ["get", "post", "put", "delete"];
     18   var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"];
     19   var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech",
     20                "3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait",
     21                "orientation:landscape", "device-height: [X]", "device-width: [X]"];
     22   var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags
     23 
     24   var data = {
     25     a: {
     26       attrs: {
     27         href: null, ping: null, type: null,
     28         media: media,
     29         target: targets,
     30         hreflang: langs
     31       }
     32     },
     33     abbr: s,
     34     acronym: s,
     35     address: s,
     36     applet: s,
     37     area: {
     38       attrs: {
     39         alt: null, coords: null, href: null, target: null, ping: null,
     40         media: media, hreflang: langs, type: null,
     41         shape: ["default", "rect", "circle", "poly"]
     42       }
     43     },
     44     article: s,
     45     aside: s,
     46     audio: {
     47       attrs: {
     48         src: null, mediagroup: null,
     49         crossorigin: ["anonymous", "use-credentials"],
     50         preload: ["none", "metadata", "auto"],
     51         autoplay: ["", "autoplay"],
     52         loop: ["", "loop"],
     53         controls: ["", "controls"]
     54       }
     55     },
     56     b: s,
     57     base: { attrs: { href: null, target: targets } },
     58     basefont: s,
     59     bdi: s,
     60     bdo: s,
     61     big: s,
     62     blockquote: { attrs: { cite: null } },
     63     body: s,
     64     br: s,
     65     button: {
     66       attrs: {
     67         form: null, formaction: null, name: null, value: null,
     68         autofocus: ["", "autofocus"],
     69         disabled: ["", "autofocus"],
     70         formenctype: encs,
     71         formmethod: methods,
     72         formnovalidate: ["", "novalidate"],
     73         formtarget: targets,
     74         type: ["submit", "reset", "button"]
     75       }
     76     },
     77     canvas: { attrs: { width: null, height: null } },
     78     caption: s,
     79     center: s,
     80     cite: s,
     81     code: s,
     82     col: { attrs: { span: null } },
     83     colgroup: { attrs: { span: null } },
     84     command: {
     85       attrs: {
     86         type: ["command", "checkbox", "radio"],
     87         label: null, icon: null, radiogroup: null, command: null, title: null,
     88         disabled: ["", "disabled"],
     89         checked: ["", "checked"]
     90       }
     91     },
     92     data: { attrs: { value: null } },
     93     datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } },
     94     datalist: { attrs: { data: null } },
     95     dd: s,
     96     del: { attrs: { cite: null, datetime: null } },
     97     details: { attrs: { open: ["", "open"] } },
     98     dfn: s,
     99     dir: s,
    100     div: s,
    101     dl: s,
    102     dt: s,
    103     em: s,
    104     embed: { attrs: { src: null, type: null, width: null, height: null } },
    105     eventsource: { attrs: { src: null } },
    106     fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } },
    107     figcaption: s,
    108     figure: s,
    109     font: s,
    110     footer: s,
    111     form: {
    112       attrs: {
    113         action: null, name: null,
    114         "accept-charset": charsets,
    115         autocomplete: ["on", "off"],
    116         enctype: encs,
    117         method: methods,
    118         novalidate: ["", "novalidate"],
    119         target: targets
    120       }
    121     },
    122     frame: s,
    123     frameset: s,
    124     h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,
    125     head: {
    126       attrs: {},
    127       children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
    128     },
    129     header: s,
    130     hgroup: s,
    131     hr: s,
    132     html: {
    133       attrs: { manifest: null },
    134       children: ["head", "body"]
    135     },
    136     i: s,
    137     iframe: {
    138       attrs: {
    139         src: null, srcdoc: null, name: null, width: null, height: null,
    140         sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
    141         seamless: ["", "seamless"]
    142       }
    143     },
    144     img: {
    145       attrs: {
    146         alt: null, src: null, ismap: null, usemap: null, width: null, height: null,
    147         crossorigin: ["anonymous", "use-credentials"]
    148       }
    149     },
    150     input: {
    151       attrs: {
    152         alt: null, dirname: null, form: null, formaction: null,
    153         height: null, list: null, max: null, maxlength: null, min: null,
    154         name: null, pattern: null, placeholder: null, size: null, src: null,
    155         step: null, value: null, width: null,
    156         accept: ["audio/*", "video/*", "image/*"],
    157         autocomplete: ["on", "off"],
    158         autofocus: ["", "autofocus"],
    159         checked: ["", "checked"],
    160         disabled: ["", "disabled"],
    161         formenctype: encs,
    162         formmethod: methods,
    163         formnovalidate: ["", "novalidate"],
    164         formtarget: targets,
    165         multiple: ["", "multiple"],
    166         readonly: ["", "readonly"],
    167         required: ["", "required"],
    168         type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month",
    169                "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio",
    170                "file", "submit", "image", "reset", "button"]
    171       }
    172     },
    173     ins: { attrs: { cite: null, datetime: null } },
    174     kbd: s,
    175     keygen: {
    176       attrs: {
    177         challenge: null, form: null, name: null,
    178         autofocus: ["", "autofocus"],
    179         disabled: ["", "disabled"],
    180         keytype: ["RSA"]
    181       }
    182     },
    183     label: { attrs: { "for": null, form: null } },
    184     legend: s,
    185     li: { attrs: { value: null } },
    186     link: {
    187       attrs: {
    188         href: null, type: null,
    189         hreflang: langs,
    190         media: media,
    191         sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
    192       }
    193     },
    194     map: { attrs: { name: null } },
    195     mark: s,
    196     menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
    197     meta: {
    198       attrs: {
    199         content: null,
    200         charset: charsets,
    201         name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
    202         "http-equiv": ["content-language", "content-type", "default-style", "refresh"]
    203       }
    204     },
    205     meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
    206     nav: s,
    207     noframes: s,
    208     noscript: s,
    209     object: {
    210       attrs: {
    211         data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,
    212         typemustmatch: ["", "typemustmatch"]
    213       }
    214     },
    215     ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } },
    216     optgroup: { attrs: { disabled: ["", "disabled"], label: null } },
    217     option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } },
    218     output: { attrs: { "for": null, form: null, name: null } },
    219     p: s,
    220     param: { attrs: { name: null, value: null } },
    221     pre: s,
    222     progress: { attrs: { value: null, max: null } },
    223     q: { attrs: { cite: null } },
    224     rp: s,
    225     rt: s,
    226     ruby: s,
    227     s: s,
    228     samp: s,
    229     script: {
    230       attrs: {
    231         type: ["text/javascript"],
    232         src: null,
    233         async: ["", "async"],
    234         defer: ["", "defer"],
    235         charset: charsets
    236       }
    237     },
    238     section: s,
    239     select: {
    240       attrs: {
    241         form: null, name: null, size: null,
    242         autofocus: ["", "autofocus"],
    243         disabled: ["", "disabled"],
    244         multiple: ["", "multiple"]
    245       }
    246     },
    247     small: s,
    248     source: { attrs: { src: null, type: null, media: null } },
    249     span: s,
    250     strike: s,
    251     strong: s,
    252     style: {
    253       attrs: {
    254         type: ["text/css"],
    255         media: media,
    256         scoped: null
    257       }
    258     },
    259     sub: s,
    260     summary: s,
    261     sup: s,
    262     table: s,
    263     tbody: s,
    264     td: { attrs: { colspan: null, rowspan: null, headers: null } },
    265     textarea: {
    266       attrs: {
    267         dirname: null, form: null, maxlength: null, name: null, placeholder: null,
    268         rows: null, cols: null,
    269         autofocus: ["", "autofocus"],
    270         disabled: ["", "disabled"],
    271         readonly: ["", "readonly"],
    272         required: ["", "required"],
    273         wrap: ["soft", "hard"]
    274       }
    275     },
    276     tfoot: s,
    277     th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
    278     thead: s,
    279     time: { attrs: { datetime: null } },
    280     title: s,
    281     tr: s,
    282     track: {
    283       attrs: {
    284         src: null, label: null, "default": null,
    285         kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
    286         srclang: langs
    287       }
    288     },
    289     tt: s,
    290     u: s,
    291     ul: s,
    292     "var": s,
    293     video: {
    294       attrs: {
    295         src: null, poster: null, width: null, height: null,
    296         crossorigin: ["anonymous", "use-credentials"],
    297         preload: ["auto", "metadata", "none"],
    298         autoplay: ["", "autoplay"],
    299         mediagroup: ["movie"],
    300         muted: ["", "muted"],
    301         controls: ["", "controls"]
    302       }
    303     },
    304     wbr: s
    305   };
    306 
    307   var globalAttrs = {
    308     accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
    309     "class": null,
    310     contenteditable: ["true", "false"],
    311     contextmenu: null,
    312     dir: ["ltr", "rtl", "auto"],
    313     draggable: ["true", "false", "auto"],
    314     dropzone: ["copy", "move", "link", "string:", "file:"],
    315     hidden: ["hidden"],
    316     id: null,
    317     inert: ["inert"],
    318     itemid: null,
    319     itemprop: null,
    320     itemref: null,
    321     itemscope: ["itemscope"],
    322     itemtype: null,
    323     lang: ["en", "es"],
    324     spellcheck: ["true", "false"],
    325     style: null,
    326     tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"],
    327     title: null,
    328     translate: ["yes", "no"],
    329     onclick: null,
    330     rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"]
    331   };
    332   function populate(obj) {
    333     for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))
    334       obj.attrs[attr] = globalAttrs[attr];
    335   }
    336 
    337   populate(s);
    338   for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)
    339     populate(data[tag]);
    340 
    341   CodeMirror.htmlSchema = data;
    342   function htmlHint(cm, options) {
    343     var local = {schemaInfo: data};
    344     if (options) for (var opt in options) local[opt] = options[opt];
    345     return CodeMirror.hint.xml(cm, local);
    346   }
    347   CodeMirror.registerHelper("hint", "html", htmlHint);
    348 });