grapheme-breaker-u10-0
![Greenkeeper badge](https://badges.greenkeeper.io/yumetodo/grapheme-breaker-u10-0.svg)
This is a fork of grapheme-breaker
. Support Unicode 10.0 and emoji v5 by @vaskevich.
Please watch below before using this package.
grapheme-breaker#4
Original package is no longer maintained as far as I know. So, I republish this package.
Overveiw
A JavaScript implementation of the Unicode grapheme cluster breaking algorithm (UAX #29)
It is important to recognize that what the user thinks of as a “character”—a basic unit of a writing system for a
language—may not be just a single Unicode code point. Instead, that basic unit may be made up of multiple Unicode
code points. To avoid ambiguity with the computer use of the term character, this is called a user-perceived character.
For example, “G” + acute-accent is a user-perceived character: users think of it as a single character, yet is actually
represented by two Unicode code points. These user-perceived characters are approximated by what is called a grapheme cluster,
which can be determined programmatically.
Installation
You can install via npm
npm install grapheme-breaker-u10-0
Example
var GraphemeBreaker = require('grapheme-breaker-u10-0');
GraphemeBreaker.break('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞')
GraphemeBreaker.countBreaks('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞')
GraphemeBreaker.nextBreak('😜🇺🇸👍', 3)
GraphemeBreaker.previousBreak('😜🇺🇸👍', 3)
Development Notes
In order to use the library, you shouldn't need to know this, but if you're interested in
contributing or fixing bugs, these things might be of interest.
- The
src/classes.coffee
file is automatically generated from GraphemeBreakProperty.txt
in the Unicode
database by src/generate_data.coffee
. It should be rare that you need to run this, but
you may if, for instance, you want to change the Unicode version. - You can run the tests using
npm test
. They are written using mocha
, and generated from
GraphemeBreakTest.txt
and emoji-test.txt
from the Unicode database, which is included in the
repository for performance reasons while running them.
License
MIT