UNPKG

dtable-utils

Version:

dtable common utils

65 lines (63 loc) 1.72 kB
var hrefReg = /\[.+\]\(\S+\)|<img src=(\S+).+\/>|!\[\]\(\S+\)|<\S+>/g; var imageReg1 = /^<img src="(\S+)" .+\/>/; var imageReg2 = /^!\[\]\((\S+)\)/; var linkReg1 = /^\[.+\]\(\S+\)/; var linkReg2 = /^<(\S+)>$/; var skipCharacterTypes = ['#', '`', '*', '[', ']', '-']; function getLinks(hrefs) { var hrefObj = { links: [], images: [] }; hrefs.forEach(function (href) { if (href.search(linkReg1) >= 0) { hrefObj.links.push(href); } else if (href.search(linkReg2) >= 0) { hrefObj.links.push(href.match(linkReg2)[1]); } else { var imageSrcs = href.match(imageReg1); var imageSrcs1 = href.match(imageReg2); if (imageSrcs) { hrefObj.images.push(imageSrcs[1]); } else if (imageSrcs1) { hrefObj.images.push(imageSrcs1[1]); } } }); return hrefObj; } function getPreviewContent(markdownContent) { var preview = ''; var newMarkdownContent = markdownContent.replace(hrefReg, ''); var newMarkdownLength = newMarkdownContent.length; for (var index = 0; index < newMarkdownLength; index++) { var letter = newMarkdownContent[index]; if (skipCharacterTypes.includes(letter)) { continue; } else if (letter === '\n') { preview += ' '; } else { preview += newMarkdownContent[index]; } if (preview.length === 150) { break; } } var hrefs = markdownContent.match(hrefReg); if (hrefs) { var _getLinks = getLinks(hrefs), images = _getLinks.images, links = _getLinks.links; return { preview: preview, images: images, links: links }; } return { preview: preview, images: [], links: [] }; } export { getPreviewContent as default };