to-list

Parse a string into a list object with text and level properties.
Install
Install with npm:
$ npm i to-list --save
Usage
var toList = require('to-list');
API
The following list is assumed to be the source string in all examples:
- This is item 1
- This is item 2
- This is item 3
* This is sub-item A
* This is sub-item B
* This is sub-item C
Example
var list = toList(str);
//=> list[0].level === 0
//=> list[3].level === 2
Results in
The list is parsed into any array that looks something like:
[ { text: 'This is item 1',
lead: [ '- ', index: 0, input: '- This is item 1' ],
level: 0 },
{ text: 'This is item 2',
lead: [ '- ', index: 0, input: '- This is item 2' ],
level: 0 },
{ text: 'This is item 3',
lead: [ '- ', index: 0, input: '- This is item 3' ],
level: 0 },
{ text: 'This is sub-item A',
lead: [ ' * ', index: 0, input: ' * This is sub-item A' ],
level: 2 },
{ text: 'This is sub-item B',
lead: [ ' * ', index: 0, input: ' * This is sub-item B' ],
level: 2 },
{ text: 'This is sub-item C',
lead: [ ' * ', index: 0, input: ' * This is sub-item C' ],
level: 2 } ]
Item function
Pass a function as the second argument to customize each item object as it's created:
var list = toList(str, function(item) {
item.level = item.level / 2;
return item;
});
//=> list[0].level === 0
//=> list[3].level === 1
Related projects
- bullets: Generate a plain-text and markdown formatted lists or tables of contents, with proper indentation, bullets,… more | homepage
- list-item: Generate a single formatted list item, allowing you to easily generate lists with proper indentation,… more | homepage
Running tests
Install dev dependencies:
$ npm i -d && npm test
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Author
Jon Schlinkert
License
Copyright 2016 Jon Schlinkert Released under the MIT license.
This file was generated by verb on January 19, 2016.