summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-03-05 22:18:29 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-03-05 22:18:29 +0900
commit2782e7d26f892eabfdc91d3ebf995d12e75e16cf (patch)
treecec279b75d0d8007e947b3da42a009d8ae8e2530
parent[Client] Better transition (diff)
downloadsharkey-2782e7d26f892eabfdc91d3ebf995d12e75e16cf.tar.gz
sharkey-2782e7d26f892eabfdc91d3ebf995d12e75e16cf.tar.bz2
sharkey-2782e7d26f892eabfdc91d3ebf995d12e75e16cf.zip
[MFM] Improve hashtag parsing
-rw-r--r--src/mfm/language.ts2
-rw-r--r--test/mfm.ts8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/mfm/language.ts b/src/mfm/language.ts
index bfb0f249c2..60e4935ed2 100644
--- a/src/mfm/language.ts
+++ b/src/mfm/language.ts
@@ -142,7 +142,7 @@ export const mfmLanguage = P.createLanguage({
},
hashtag: () => 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 7db94b45e1..fa46c3ff0e 100644
--- a/test/mfm.ts
+++ b/test/mfm.ts
@@ -550,6 +550,14 @@ describe('MFM', () => {
]);
});
+ it('ignore square brackets', () => {
+ const tokens = parse('#foo]');
+ assert.deepStrictEqual(tokens, [
+ leaf('hashtag', { hashtag: 'foo' }),
+ text(']'),
+ ]);
+ });
+
it('allow including number', () => {
const tokens = parse('#foo123');
assert.deepStrictEqual(tokens, [