summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo⭐️ <Syuilotan@yahoo.co.jp>2017-03-01 13:26:19 +0900
committerGitHub <noreply@github.com>2017-03-01 13:26:19 +0900
commit96f75842de217215d6eef6c45eb0666d1c0b81a9 (patch)
tree30c490cde18e76d69a39bfce58cc340f955448a5 /src
parentMerge pull request #219 from armchair-philosophy/entrance_public-timeline-pro... (diff)
parent[test] add emoji test (diff)
downloadmisskey-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.js14
-rw-r--r--src/common/text/index.js3
-rw-r--r--src/web/app/common/scripts/text-compiler.js3
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('');