puyoskey/src/mfm/parse/elements/link.ts
2018-11-03 22:38:12 +09:00

27 lines
524 B
TypeScript

/**
* Link
*/
export type TextElementLink = {
type: 'link';
content: string;
title: string;
url: string;
silent: boolean;
};
export default function(text: string) {
const match = text.match(/^\??\[([^\[\]]+?)\]\((https?:\/\/[\w\/:%#@\$&\?!\(\)\[\]~\.=\+\-]+?)\)/);
if (!match) return null;
const silent = text.startsWith('?');
const link = match[0];
const title = match[1];
const url = match[2];
return {
type: 'link',
content: link,
title: title,
url: url,
silent: silent
} as TextElementLink;
}