diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-12-04 01:28:21 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-12-04 01:28:21 +0900 |
| commit | 6e343d50f10f2f381aed94853c41d59b33c1ee03 (patch) | |
| tree | c614404c5c9d3dedc858e1395efb75348df668d6 /src/mfm/parser.ts | |
| parent | Fix bug (diff) | |
| download | misskey-6e343d50f10f2f381aed94853c41d59b33c1ee03.tar.gz misskey-6e343d50f10f2f381aed94853c41d59b33c1ee03.tar.bz2 misskey-6e343d50f10f2f381aed94853c41d59b33c1ee03.zip | |
[MFM] Implement strike syntax
Resolve #3485
Diffstat (limited to 'src/mfm/parser.ts')
| -rw-r--r-- | src/mfm/parser.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mfm/parser.ts b/src/mfm/parser.ts index 3f9d68df3b..4bd45516a0 100644 --- a/src/mfm/parser.ts +++ b/src/mfm/parser.ts @@ -68,6 +68,7 @@ const mfm = P.createLanguage({ root: r => P.alt( r.big, r.bold, + r.strike, r.motion, r.url, r.link, @@ -129,6 +130,7 @@ const mfm = P.createLanguage({ .map(x => makeNodeWithChildren('center', P.alt( r.big, r.bold, + r.strike, r.motion, r.mention, r.hashtag, @@ -189,6 +191,7 @@ const mfm = P.createLanguage({ return makeNodeWithChildren('link', P.alt( r.big, r.bold, + r.strike, r.motion, r.emoji, r.text @@ -228,6 +231,7 @@ const mfm = P.createLanguage({ P.alt(P.regexp(/\(\(\(([\s\S]+?)\)\)\)/, 1), P.regexp(/<motion>(.+?)<\/motion>/, 1)) .map(x => makeNodeWithChildren('motion', P.alt( r.bold, + r.strike, r.mention, r.hashtag, r.emoji, @@ -261,6 +265,20 @@ const mfm = P.createLanguage({ })), //#endregion + //#region Strike + strike: r => + P.regexp(/~~(.+?)~~/, 1) + .map(x => makeNodeWithChildren('strike', P.alt( + r.bold, + r.mention, + r.hashtag, + r.url, + r.link, + r.emoji, + r.text + ).atLeast(1).tryParse(x))), + //#endregion + //#region Title title: r => newline.then(P((input, i) => { @@ -271,6 +289,7 @@ const mfm = P.createLanguage({ const contents = P.alt( r.big, r.bold, + r.strike, r.motion, r.url, r.link, |