summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-01-27 13:40:38 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-01-27 13:40:38 +0900
commit085325e65fa47c9dd9f2d261faeb7775f9f2486f (patch)
treed5b3706d44532192b2b8e4747f8552326f766835
parentRefactoring (diff)
downloadsharkey-085325e65fa47c9dd9f2d261faeb7775f9f2486f.tar.gz
sharkey-085325e65fa47c9dd9f2d261faeb7775f9f2486f.tar.bz2
sharkey-085325e65fa47c9dd9f2d261faeb7775f9f2486f.zip
[MFM] Improve title syntax detection
-rw-r--r--CHANGELOG.md1
-rw-r--r--src/mfm/parser.ts1
-rw-r--r--test/mfm.ts7
3 files changed, 9 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b06c3f63c6..6325663fcd 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 b86e1d5559..5572e26f88 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 a4b4a13973..2124f592fe 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', () => {