Tag-safe HTML and XML text-truncation!
npm install downsize
downsize("<p>some markup here...</p>",{"words": 2});
<p>some markup</p>
downsize("<p>some markup here...</p>",{"characters": 6});
<p>some m</p>
downsize("<p>some markup here...</p>",{"characters": 6, "append": "..."});
<p>some m...</p>
downsize("<p>Why, hello there!</p><p>Hello again!</p>",{"characters": 6, round:true});
<p>Why, hello there!</p>
Downsize is designed to handle bad markup, and should count words and characters accurately in spite of it. But it won't hold your hand.
It does close outstanding open tags for you, but leaves erroneous close-tags for which the opening tag couldn't be found or was erroneously nested.
npm test