diff options
author | Minteck <contact@minteck.org> | 2022-01-20 13:43:34 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-01-20 13:43:34 +0100 |
commit | c2aa7bf38fb30de2d04f87f8e7780e4c768ae6b1 (patch) | |
tree | 226598e8d17d20e3721358f7c60b1cc6b851163a /node_modules/markdown-it/lib/rules_inline/html_inline.js | |
download | cobalt-c2aa7bf38fb30de2d04f87f8e7780e4c768ae6b1.tar.gz cobalt-c2aa7bf38fb30de2d04f87f8e7780e4c768ae6b1.tar.bz2 cobalt-c2aa7bf38fb30de2d04f87f8e7780e4c768ae6b1.zip |
Initial commit
Diffstat (limited to 'node_modules/markdown-it/lib/rules_inline/html_inline.js')
-rw-r--r-- | node_modules/markdown-it/lib/rules_inline/html_inline.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/node_modules/markdown-it/lib/rules_inline/html_inline.js b/node_modules/markdown-it/lib/rules_inline/html_inline.js new file mode 100644 index 0000000..28c7980 --- /dev/null +++ b/node_modules/markdown-it/lib/rules_inline/html_inline.js @@ -0,0 +1,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; +}; |