summaryrefslogtreecommitdiff
path: root/src/mfm/parse
diff options
context:
space:
mode:
authorAya Morisawa <AyaMorisawa4869@gmail.com>2018-11-16 17:03:52 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-11-16 17:03:52 +0900
commitad84901f39080e50875f573fd0cb13191adab625 (patch)
tree7beb80db4867916df24b95c700d20039b3ce322d /src/mfm/parse
parentDo not show duplicate url-preview (#3259) (diff)
downloadmisskey-ad84901f39080e50875f573fd0cb13191adab625.tar.gz
misskey-ad84901f39080e50875f573fd0cb13191adab625.tar.bz2
misskey-ad84901f39080e50875f573fd0cb13191adab625.zip
Support math rendering on MFM (#3260)
Diffstat (limited to 'src/mfm/parse')
-rw-r--r--src/mfm/parse/elements/math.ts20
-rw-r--r--src/mfm/parse/index.ts3
2 files changed, 23 insertions, 0 deletions
diff --git a/src/mfm/parse/elements/math.ts b/src/mfm/parse/elements/math.ts
new file mode 100644
index 0000000000..b10efe515f
--- /dev/null
+++ b/src/mfm/parse/elements/math.ts
@@ -0,0 +1,20 @@
+/**
+ * Math
+ */
+
+export type TextElementMath = {
+ type: 'math';
+ content: string;
+ formula: string;
+};
+
+export default function(text: string) {
+ const match = text.match(/^\$(.+?)\$/);
+ if (!match) return null;
+ const math = match[0];
+ return {
+ type: 'math',
+ content: math,
+ formula: match[1]
+ } as TextElementMath;
+}
diff --git a/src/mfm/parse/index.ts b/src/mfm/parse/index.ts
index f2beec14ff..46e66ac4c2 100644
--- a/src/mfm/parse/index.ts
+++ b/src/mfm/parse/index.ts
@@ -8,6 +8,7 @@ import { TextElementCode } from './elements/code';
import { TextElementEmoji } from './elements/emoji';
import { TextElementHashtag } from './elements/hashtag';
import { TextElementInlineCode } from './elements/inline-code';
+import { TextElementMath } from './elements/math';
import { TextElementLink } from './elements/link';
import { TextElementMention } from './elements/mention';
import { TextElementQuote } from './elements/quote';
@@ -29,6 +30,7 @@ const elements = [
require('./elements/hashtag'),
require('./elements/code'),
require('./elements/inline-code'),
+ require('./elements/math'),
require('./elements/quote'),
require('./elements/emoji'),
require('./elements/search'),
@@ -42,6 +44,7 @@ export type TextElement = { type: 'text', content: string }
| TextElementEmoji
| TextElementHashtag
| TextElementInlineCode
+ | TextElementMath
| TextElementLink
| TextElementMention
| TextElementQuote