summaryrefslogtreecommitdiff
path: root/src/mfm/parser.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-12-04 01:28:21 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-12-04 01:28:21 +0900
commit6e343d50f10f2f381aed94853c41d59b33c1ee03 (patch)
treec614404c5c9d3dedc858e1395efb75348df668d6 /src/mfm/parser.ts
parentFix bug (diff)
downloadmisskey-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.ts19
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,