diff --git a/CHANGELOG.md b/CHANGELOG.md index b06c3f63c..6325663fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ unreleased * 管理画面からリモートユーザーの情報を更新できるように * 引用投稿を削除したとき単なるRenoteとしてタイムラインに残る問題を修正 * イタリック構文の判定の改善 +* タイトル構文の判定の改善 * テーマが反映されないことがある問題を修正 * ホームにフォロワー限定投稿が表示されない問題を修正 * 返信一覧を取得すると非公開投稿も取得されてしまう問題を修正 diff --git a/src/mfm/parser.ts b/src/mfm/parser.ts index b86e1d555..5572e26f8 100644 --- a/src/mfm/parser.ts +++ b/src/mfm/parser.ts @@ -361,6 +361,7 @@ const mfm = P.createLanguage({ const match = text.match(/^((【|\[)(.+?)(】|]))(\n|$)/); if (!match) return P.makeFailure(i, 'not a title'); const q = match[1].trim().substring(1, match[1].length - 1); + if (q.includes('】')) return P.makeFailure(i, 'not a title'); const contents = P.alt( r.big, r.small, diff --git a/test/mfm.ts b/test/mfm.ts index a4b4a1397..2124f592f 100644 --- a/test/mfm.ts +++ b/test/mfm.ts @@ -894,6 +894,13 @@ describe('MFM', () => { text('after') ]); }); + + it('ignore multiple title blocks', () => { + const tokens = analyze('【foo】bar【baz】'); + assert.deepStrictEqual(tokens, [ + text('【foo】bar【baz】') + ]); + }); }); describe('center', () => {