Blame view

node_modules/markdown-it/lib/rules_inline/html_inline.js 1013 Bytes
290144e9   易尊强   第一次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  // Process html tags
  
  'use strict';
  
  
  var HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;
  
  
  function isLetter(ch) {
    /*eslint no-bitwise:0*/
    var lc = ch | 0x20; // to lower case
    return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);
  }
  
  
  module.exports = function html_inline(state, silent) {
    var ch, match, max, token,
        pos = state.pos;
  
    if (!state.md.options.html) { return false; }
  
    // Check start
    max = state.posMax;
    if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||
        pos + 2 >= max) {
      return false;
    }
  
    // Quick fail on second char
    ch = state.src.charCodeAt(pos + 1);
    if (ch !== 0x21/* ! */ &&
        ch !== 0x3F/* ? */ &&
        ch !== 0x2F/* / */ &&
        !isLetter(ch)) {
      return false;
    }
  
    match = state.src.slice(pos).match(HTML_TAG_RE);
    if (!match) { return false; }
  
    if (!silent) {
      token         = state.push('html_inline', '', 0);
      token.content = state.src.slice(pos, pos + match[0].length);
    }
    state.pos += match[0].length;
    return true;
  };