summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-01-17 09:33:08 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-01-17 09:33:08 +0900
commitcb6a4037f2f6c084ccccd2acb1826d2b2e7113b4 (patch)
treeba5dc3408bebd7a2dae2044681d5098fdaa1b8ea
parent[MFM] Better hashtag parsing: Ignore double quotation (diff)
downloadmisskey-cb6a4037f2f6c084ccccd2acb1826d2b2e7113b4.tar.gz
misskey-cb6a4037f2f6c084ccccd2acb1826d2b2e7113b4.tar.bz2
misskey-cb6a4037f2f6c084ccccd2acb1826d2b2e7113b4.zip
[MFM] Better hashtag parsing: Ignore single quotation
-rw-r--r--src/mfm/parser.ts2
-rw-r--r--test/mfm.ts8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/mfm/parser.ts b/src/mfm/parser.ts
index 2f1608832e..7dc97aa9f4 100644
--- a/src/mfm/parser.ts
+++ b/src/mfm/parser.ts
@@ -205,7 +205,7 @@ const mfm = P.createLanguage({
hashtag: r =>
P((input, i) => {
const text = input.substr(i);
- const match = text.match(/^#([^\s\.,!\?"#:]+)/i);
+ const match = text.match(/^#([^\s\.,!\?'"#:]+)/i);
if (!match) return P.makeFailure(i, 'not a hashtag');
let hashtag = match[1];
hashtag = removeOrphanedBrackets(hashtag);
diff --git a/test/mfm.ts b/test/mfm.ts
index 60fd4d62f8..4e922cab29 100644
--- a/test/mfm.ts
+++ b/test/mfm.ts
@@ -365,6 +365,14 @@ describe('MFM', () => {
]);
});
+ it('ignore single quote', () => {
+ const tokens = analyze('#foo\'');
+ assert.deepStrictEqual(tokens, [
+ leaf('hashtag', { hashtag: 'foo' }),
+ text('\''),
+ ]);
+ });
+
it('ignore double quote', () => {
const tokens = analyze('#foo"');
assert.deepStrictEqual(tokens, [