Show HN: Blast.js separates text for typographic manipulation
julian.com
julian.com
This claim really needs revising, only latin languages are supported, and the implementation doesn't use the Unicode boundary analysis algorithms. It certainly doesn't support the whole of Unicode as it first appears.
This is a nice effort but make it clear that it's Latin-only. Also, how well does it measure up to the Unicode UAX #29 grapheme/word/sentence break algorithms?
My top use case for something like blast is applying typographic rules that aren't possible with CSS. Like adding extra letter-spacing to strings of all caps, and rendering "AM" and "PM" in small caps. I do several of these things already on an ad-hoc basis.
As for micro-typographic rules: You'll find that a simple way of accomplishing this is to use Blast's generateValueClass option.
Edit: It's been awhile since I've looked at Lettering, but to answer my own question, Lettering only splits on individual letters, while Blast allows for user-definable splits.
Lettering.js has a slightly smaller footprint and aims to be a dead-simple "wrap spans around each letter/word in the HTML element I point you at." Accordingly, it discards your HTML then dumbly splits using spaces as delimiters. Because of this, you have to use Lettering.js in silo'd portions of your page where you don't mind losing HTML and event handlers. Further, its lack of UTF-8/multilingual text parsing means that it's only suitable for English, and only in controlled portions of your page where you already know exactly how text is written out.
Blast, in comparison, tries to be a "set it and forget it" library. Point it at anything, blast it apart, then even reverse what you've done ($el.blast(false);). You can apply it to user-generated text in real-time and not worry about a thing.
Perhaps most important, though, is that Blast.js features a sentence delimiter plus search, which Lettering.js does not.
However, in the example on the main page when you choose sentences it thinks that "Blast.js" is a sentence with the beginning of another. I think that you should ignore a dot if it's there to declare a file extension.