diff options
| author | syuilo⭐️ <Syuilotan@yahoo.co.jp> | 2017-03-01 13:26:19 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-01 13:26:19 +0900 |
| commit | 96f75842de217215d6eef6c45eb0666d1c0b81a9 (patch) | |
| tree | 30c490cde18e76d69a39bfce58cc340f955448a5 /src | |
| parent | Merge pull request #219 from armchair-philosophy/entrance_public-timeline-pro... (diff) | |
| parent | [test] add emoji test (diff) | |
| download | misskey-96f75842de217215d6eef6c45eb0666d1c0b81a9.tar.gz misskey-96f75842de217215d6eef6c45eb0666d1c0b81a9.tar.bz2 misskey-96f75842de217215d6eef6c45eb0666d1c0b81a9.zip | |
Merge pull request #216 from armchair-philosophy/emoji
support emoji
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/text/elements/emoji.js | 14 | ||||
| -rw-r--r-- | src/common/text/index.js | 3 | ||||
| -rw-r--r-- | src/web/app/common/scripts/text-compiler.js | 3 |
3 files changed, 19 insertions, 1 deletions
diff --git a/src/common/text/elements/emoji.js b/src/common/text/elements/emoji.js new file mode 100644 index 0000000000..e24231a223 --- /dev/null +++ b/src/common/text/elements/emoji.js @@ -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) + }; +}; diff --git a/src/common/text/index.js b/src/common/text/index.js index 9da3a26b91..4424169033 100644 --- a/src/common/text/index.js +++ b/src/common/text/index.js @@ -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) { diff --git a/src/web/app/common/scripts/text-compiler.js b/src/web/app/common/scripts/text-compiler.js index c9eb73e870..a3c1fe8dde 100644 --- a/src/web/app/common/scripts/text-compiler.js +++ b/src/web/app/common/scripts/text-compiler.js @@ -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(''); |