Fix MFM parsing: Ignore parent [] of URL

This commit is contained in:
syuilo 2019-07-02 20:05:52 +09:00
parent de82bb9b15
commit f4445c11ec
2 changed files with 11 additions and 2 deletions

View file

@ -6,8 +6,8 @@ import { toUnicode } from 'punycode';
import { emojiRegex } from '../misc/emoji-regex';
export function removeOrphanedBrackets(s: string): string {
const openBrackets = ['(', '「'];
const closeBrackets = [')', '」'];
const openBrackets = ['(', '「', '['];
const closeBrackets = [')', '」', ']'];
const xs = cumulativeSum(s.split('').map(c => {
if (openBrackets.includes(c)) return 1;
if (closeBrackets.includes(c)) return -1;

View file

@ -843,6 +843,15 @@ describe('MFM', () => {
]);
});
it('ignore parent []', () => {
const tokens = parse('[https://example.com/foo]');
assert.deepStrictEqual(tokens, [
text('['),
leaf('url', { url: 'https://example.com/foo' }),
text(']')
]);
});
it('ignore parent brackets 2', () => {
const tokens = parse('(foo https://example.com/foo)');
assert.deepStrictEqual(tokens, [