From 1df9c1005f6be20e03a55e3ba203e5cdc1fa9eba Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 20 Jan 2019 18:06:04 +0900 Subject: [PATCH] =?UTF-8?q?[MFM]=20=5F=5F=20=E6=A7=8B=E6=96=87=E3=81=AF?= =?UTF-8?q?=E3=82=A2=E3=83=AB=E3=83=95=E3=82=A1=E3=83=99=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=81=AE=E3=81=BF=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + src/mfm/parser.ts | 2 +- test/mfm.ts | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 451ed3fdcf..1450a9775e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ unreleased * ログイン時に二段階認証が分かりにくいのを改善 * 投稿のツールチップを出すのは時間の上だけに変更 * `*`や`_`でもイタリック構文を使えるように(アルファベットのみ) +* `__`でも太字構文を使えるように(アルファベットのみ) * ハッシュタグ判定の強化 * ストーク機能の廃止 * 関係のない返信がタイムラインに流れる問題を修正 diff --git a/src/mfm/parser.ts b/src/mfm/parser.ts index c271b62e23..10b16d619a 100644 --- a/src/mfm/parser.ts +++ b/src/mfm/parser.ts @@ -154,7 +154,7 @@ const mfm = P.createLanguage({ //#region Bold bold: r => - P.regexp(/(\*\*|__)([\s\S]+?)\1/, 2) + P.alt(P.regexp(/\*\*([\s\S]+?)\*\*/, 1), P.regexp(/__([a-zA-Z0-9\s]+?)__/, 1)) .map(x => createTree('bold', P.alt( r.strike, r.italic, diff --git a/test/mfm.ts b/test/mfm.ts index bacce017c2..54096e6bb0 100644 --- a/test/mfm.ts +++ b/test/mfm.ts @@ -187,6 +187,13 @@ describe('MFM', () => { ]); }); + it('with underscores (ensure it allows alphabet only)', () => { + const tokens = analyze('(=^・__________・^=)'); + assert.deepStrictEqual(tokens, [ + text('(=^・__________・^=)') + ]); + }); + it('mixed syntax', () => { const tokens = analyze('**foo__'); assert.deepStrictEqual(tokens, [