From 09cab605fc87888249b1c8b13a3af3ded3ebba6d Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 2 Nov 2020 15:16:37 +0900 Subject: Add new MFM animation --- src/mfm/language.ts | 2 ++ src/mfm/to-html.ts | 6 ++++++ src/mfm/to-string.ts | 4 ++++ 3 files changed, 12 insertions(+) (limited to 'src/mfm') diff --git a/src/mfm/language.ts b/src/mfm/language.ts index 59b09daf38..f334301d12 100644 --- a/src/mfm/language.ts +++ b/src/mfm/language.ts @@ -76,6 +76,7 @@ export const mfmLanguage = P.createLanguage({ r.spin, r.jump, r.flip, + r.twitch, r.inlineCode, r.mathInline, r.mention, @@ -122,6 +123,7 @@ export const mfmLanguage = P.createLanguage({ }, jump: r => P.regexp(/(.+?)<\/jump>/, 1).map(x => createTree('jump', r.inline.atLeast(1).tryParse(x), {})), flip: r => P.regexp(/(.+?)<\/flip>/, 1).map(x => createTree('flip', r.inline.atLeast(1).tryParse(x), {})), + twitch: r => P.regexp(/(.+?)<\/twitch>/, 1).map(x => createTree('twitch', r.inline.atLeast(1).tryParse(x), {})), center: r => r.startOfLine.then(P.regexp(/
([\s\S]+?)<\/center>/, 1).map(x => createTree('center', r.inline.atLeast(1).tryParse(x), {}))), inlineCode: () => P.regexp(/`([^ยด\n]+?)`/, 1).map(x => createLeaf('inlineCode', { code: x })), mathBlock: r => r.startOfLine.then(P.regexp(/\\\[([\s\S]+?)\\\]/, 1).map(x => createLeaf('mathBlock', { formula: x.trim() }))), diff --git a/src/mfm/to-html.ts b/src/mfm/to-html.ts index 5b21384608..d58bf386e8 100644 --- a/src/mfm/to-html.ts +++ b/src/mfm/to-html.ts @@ -67,6 +67,12 @@ export function toHtml(tokens: MfmForest | null, mentionedRemoteUsers: IMentione return el; }, + twitch(token) { + const el = doc.createElement('i'); + appendChildren(token.children, el); + return el; + }, + flip(token) { const el = doc.createElement('span'); appendChildren(token.children, el); diff --git a/src/mfm/to-string.ts b/src/mfm/to-string.ts index 107929164c..a6e2a9916c 100644 --- a/src/mfm/to-string.ts +++ b/src/mfm/to-string.ts @@ -48,6 +48,10 @@ export function toString(tokens: MfmForest | null, opts?: RestoreOptions): strin return `${appendChildren(token.children, opts)}`; }, + twitch(token, opts) { + return `${appendChildren(token.children, opts)}`; + }, + flip(token, opts) { return `${appendChildren(token.children, opts)}`; }, -- cgit v1.2.3-freya