You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					66 lines
				
				2.5 KiB
			
		
		
			
		
	
	
					66 lines
				
				2.5 KiB
			| 
											11 months ago
										 | css-line-break | ||
|  | ============== | ||
|  | 
 | ||
|  |  | ||
|  | [](https://www.npmjs.org/package/css-line-break) | ||
|  | [](https://www.npmjs.org/package/css-line-break) | ||
|  | 
 | ||
|  | A JavaScript library for Line Breaking and identifying Word Boundaries,  | ||
|  | [implementing the Unicode Line Breaking Algorithm (UAX #14)](http://unicode.org/reports/tr14/)   | ||
|  | 
 | ||
|  | >> Line breaking, also known as word wrapping, is the process of breaking a section of text into  | ||
|  | lines such that it will fit in the available width of a page, window or other display area.  | ||
|  | The Unicode Line Breaking Algorithm performs part of this process. Given an input text,  | ||
|  | it produces a set of positions called "break opportunities" that are appropriate points to  | ||
|  | begin a new line. The selection of actual line break positions from the set of break opportunities  | ||
|  | is not covered by the Unicode Line Breaking Algorithm, but is in the domain of higher level  | ||
|  | software with knowledge of the available width and the display size of the text. | ||
|  | 
 | ||
|  | In addition, the module implements CSS specific tailoring options to line breaking as  | ||
|  | defined in [CSS Text Module Level 3](https://www.w3.org/TR/css-text-3/#line-breaking). | ||
|  | 
 | ||
|  | ### Installing
 | ||
|  | You can install the module via npm: | ||
|  | 
 | ||
|  |     npm install css-line-break | ||
|  |    | ||
|  | ### Usage
 | ||
|  | The `LineBreaker` creates an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators) that returns `Break`s for a given text. | ||
|  | 
 | ||
|  |     LineBreaker(text, [options]); | ||
|  |      | ||
|  | ### Example
 | ||
|  | [JSFiddle](https://jsfiddle.net/ofd3752k) | ||
|  | ```javascript | ||
|  | import {LineBreaker} from 'css-line-break'; | ||
|  | 
 | ||
|  | const breaker = LineBreaker('Lorem ipsum lol.', { | ||
|  |     lineBreak: 'strict', | ||
|  |     wordBreak: 'normal' | ||
|  | }); | ||
|  | 
 | ||
|  | const words = []; | ||
|  | let bk; | ||
|  | 
 | ||
|  | while (!(bk = breaker.next()).done) { | ||
|  |     words.push(bk.value.slice()); | ||
|  | } | ||
|  | 
 | ||
|  | assert.deepEqual(words, ['Lorem ', 'ipsum ', 'lol.']); | ||
|  | ```     | ||
|  | ### Options
 | ||
|  | The following parameters are available for the options: | ||
|  | 
 | ||
|  |  - `lineBreak`: `normal` | `strict` | ||
|  |  - `wordBreak`: `normal` | `break-all` | `break-word` | `keep-all` | ||
|  |   | ||
|  | For more information how they affect the line breaking algorithms,  | ||
|  | check out [CSS Text Module Level 3](https://www.w3.org/TR/css-text-3/#line-breaking). | ||
|  | 
 | ||
|  | ### Testing
 | ||
|  | You can run the test suite with: | ||
|  | 
 | ||
|  |     npm test | ||
|  | 
 | ||
|  | The library implements all the [LineBreakTest.txt tests](http://www.unicode.org/Public/10.0.0/ucd/auxiliary/LineBreakTest.txt)  | ||
|  |  and a number of CSS web-platform-tests. |