diff options
| author | Aya Morisawa <AyaMorisawa4869@gmail.com> | 2018-11-16 17:03:52 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2018-11-16 17:03:52 +0900 |
| commit | ad84901f39080e50875f573fd0cb13191adab625 (patch) | |
| tree | 7beb80db4867916df24b95c700d20039b3ce322d /src/mfm/parse | |
| parent | Do not show duplicate url-preview (#3259) (diff) | |
| download | misskey-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.ts | 20 | ||||
| -rw-r--r-- | src/mfm/parse/index.ts | 3 |
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 |