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;
 | |
| };
 | 
