understand other URL schemes too (#73)

This commit is contained in:
Johann150 2021-08-19 03:19:23 +02:00 committed by GitHub
parent 88ecadba67
commit a7315926ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 0 deletions

View file

@ -389,6 +389,11 @@ altUrlFormat
{ {
return text(); return text();
} }
// URL scheme as defined in https://url.spec.whatwg.org/#url-scheme-string
/ [a-zA-Z] [-a-zA-Z0-9+.]* ":" (!(">" / _) CHAR)+
{
return text();
}
// inline: link // inline: link
@ -412,6 +417,11 @@ linkLabelPart
linkUrl linkUrl
= url { return text(); } = url { return text(); }
// URL scheme as defined in https://url.spec.whatwg.org/#url-scheme-string
/ [a-zA-Z] [-a-zA-Z0-9+.]* ":" (!(")" / _) CHAR)+
{
return text();
}
// inline: fn // inline: fn

View file

@ -882,6 +882,22 @@ hoge`;
]; ];
assert.deepStrictEqual(mfm.parse(input), output); assert.deepStrictEqual(mfm.parse(input), output);
}); });
it('do not match other schemes in url withouth angle brackets', () => {
const input = 'oops:url';
const output = [
TEXT('oops:url'),
];
assert.deepStrictEqual(mfm.parse(input), output);
});
it('match other schemes in url with angle brackets', () => {
const input = '<gemini://example.com>';
const output = [
N_URL('gemini://example.com', true),
];
assert.deepStrictEqual(mfm.parse(input), output);
});
}); });
describe('link', () => { describe('link', () => {
@ -962,6 +978,16 @@ hoge`;
]; ];
assert.deepStrictEqual(mfm.parse(input), output); assert.deepStrictEqual(mfm.parse(input), output);
}); });
it('match other schemes without angle brackets', () => {
const input = '[send email](mailto:nobody@example.com?subject=test)';
const output = [
LINK(false, 'mailto:nobody@example.com?subject=test', [
TEXT('send email')
]),
];
assert.deepStrictEqual(mfm.parse(input), output);
});
}); });
describe('fn v1', () => { describe('fn v1', () => {