smart-text-snippet

Create shortened or chunked text snippets from longer text while leaving sentences intact

Usage no npm install needed!

<script type="module">
  import smartTextSnippet from 'https://cdn.skypack.dev/smart-text-snippet';
</script>

README

smart-text-snippet

Create shortened or chunked text snippets from longer text while leaving sentences intact. Min length is configurable.

Example usage

Available on npm

npm i smart-text-snippet

var snippets = require('smart-text-snippet');

var superLongString = 'I will be a very long string...';

var shortSnippet = snippets.snip(superLongString, {len: 150});
// returns the first complete sentence with length at least 150 chars.

Visual example:

Input Output
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc at tristique ipsum, commodo tristique augue. Fusce maximus mi id justo accumsan tempor. Pellentesque sem ante, mollis in imperdiet eu, maximus sed odio. Praesent ultricies aliquam orci, sit amet tempor diam eleifend sed. Fusce euismod nisl sed erat aliquet, eu commodo leo finibus. Donec massa nibh, auctor sit amet dignissim quis, eleifend non nibh. Aliquam convallis vehicula velit eget tincidunt. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc at tristique ipsum, commodo tristique augue.

Methods

.snip(string, options)

returns string

Snips the first part of the text with a min length. Returns only complete sentences or the entire input.

Options (defaults):

var _options = { 
  len: 100,                                   // min length of the snippet
  breakChars: [' ', '\n', '\r\n', '"', '<'],  // characters searched for after a stopChar is found
  stopChars: ['.', '!', '?']                  // characters used as sentence enders.
}

.chunk(string, options)

returns array of strings

Snips up an large string into smaller strings of snippets of complete sentences. Good for infinite scroll or paging applications.

Features

This module supports multiple module loading systems systems:

  • Vanilla browser JS 'dist/smart-text-snippet-browser.js'
  • Node style 'dist/smart-text-snippet-node.js' (this is what the npm module exports)
  • AMD style 'dist/smart-text-snippet-amd.js'

Dependencies

  • Lodash v4 (earlier version may work).

Tests

Tests run with node on mocha and chai.

mocha test