mirror of
				https://github.com/fooflington/selfdefined.git
				synced 2025-10-31 14:18:32 +00:00 
			
		
		
		
	
		
			
	
	
		
			48 lines
		
	
	
		
			1013 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1013 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | // 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; | ||
|  | }; |