UNPKG

html-ellipsis

Version:

truncates a html string without messing up the tags

41 lines 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractTag = extractTag; exports.isEndTag = isEndTag; exports.extractTagName = extractTagName; exports.isVoidTag = isVoidTag; /** taken from http://webdesign.about.com/od/htmltags/qt/html-void-elements.htm */ const voidTags = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'wbr']; /** * Extracts <tag id="foo"> from a larger string. Assumes str[startIdx] === '<' */ function extractTag(str, startIdx) { const endIdx = str.indexOf('>', startIdx); return str.slice(startIdx, endIdx + 1); } /** Checks that <tag> is an end tag */ function isEndTag(tag) { return tag[1] === '/'; } /** Extracts tag from <tag id="foo"> */ function extractTagName(tag) { let tagNameEndIdx = tag.indexOf(' '); if (tagNameEndIdx === -1) { // check for <br/> style tags tagNameEndIdx = tag.indexOf('/'); if (tagNameEndIdx === -1) { tagNameEndIdx = tag.length - 1; } } return tag.slice(1, tagNameEndIdx); } /** Checks that tagName is a void tag (it doesn't have an end tag) */ function isVoidTag(tagName) { for (let i = voidTags.length - 1; i >= 0; --i) { if (tagName === voidTags[i]) { return true; } } return false; } //# sourceMappingURL=tags.js.map