[common] text & [web] common > scripts > text compiler: support emoji
This commit is contained in:
		
							parent
							
								
									a7021b9514
								
							
						
					
					
						commit
						67ea1498ff
					
				
					 4 changed files with 20 additions and 1 deletions
				
			
		
							
								
								
									
										14
									
								
								src/common/text/elements/emoji.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/common/text/elements/emoji.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Emoji
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
module.exports = text => {
 | 
			
		||||
	const match = text.match(/^:[a-zA-Z0-9+-_]+:/);
 | 
			
		||||
	if (!match) return null;
 | 
			
		||||
	const emoji = match[0];
 | 
			
		||||
	return {
 | 
			
		||||
		type: 'emoji',
 | 
			
		||||
		content: emoji,
 | 
			
		||||
		emoji: emoji.substr(1, emoji.length - 2)
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -8,7 +8,8 @@ const elements = [
 | 
			
		|||
	require('./elements/mention'),
 | 
			
		||||
	require('./elements/hashtag'),
 | 
			
		||||
	require('./elements/code'),
 | 
			
		||||
	require('./elements/inline-code')
 | 
			
		||||
	require('./elements/inline-code'),
 | 
			
		||||
	require('./elements/emoji')
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
function analyze(source) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
const riot = require('riot');
 | 
			
		||||
const nyaize = require('nyaize').default;
 | 
			
		||||
const emojinize = require('emojinize');
 | 
			
		||||
const CONFIG = require('./config');
 | 
			
		||||
 | 
			
		||||
const escape = function(text) {
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +36,8 @@ module.exports = function(tokens, shouldBreak, shouldEscape) {
 | 
			
		|||
				return '<pre><code>' + token.html + '</code></pre>';
 | 
			
		||||
			case 'inline-code':
 | 
			
		||||
				return '<code>' + token.html + '</code>';
 | 
			
		||||
			case 'emoji':
 | 
			
		||||
				return emojinize.encode(token.content)
 | 
			
		||||
		}
 | 
			
		||||
	}).join('');
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue