## Usage {%= apidocs("index.js") %} See available [options](#options). ## Example _With the exception of front-matter, **which must be the very first thing in the string**, the opening delimiter of all other sections must be followed by a string to be used as the `key` for the section._ Given the following string: ``` Content before the sections. --- More content. ---one title: One --- This is the first section. ``` The following code: ```js console.log(sections(input)); ``` Results in: ```js { content: 'Content before the sections.\n\n---\n\nMore content.\n', sections: [ { key: 'one', data: 'title: One', content: '\nThis is the first section.' } ] } ``` ## Options ### options.section_parse **Type**: `function` **Default**: `undefined` Function to be called on each section after it's parsed from the string. **Example** Given the following string (`foo.md`): ``` This is content before the sections. ---one title: First section --- This is section one. ---two title: Second section --- This is section two. ``` Using the following custom `section_parse` function: ```js var fs = require('fs'); var path = require('path'); var yaml = require('js-yaml'); var sections = require('section-matter'); var str = fs.readFileSync('foo.md'); var options = { section_parse: function(section) { console.log(section) section.key = 'section-' + section.key; section.data = yaml.safeLoad(section.data); } }; var result = sections(str, options); console.log(result); ``` Results in: ```js { content: 'This is content before the sections.\n', sections: [ { key: 'section-one', data: { title: 'First section' }, content: '\nThis is section one.\n' }, { key: 'section-two', data: { title: 'Second section' }, content: '\nThis is section two.\n' } ] } ``` ### options.section_delimiter **Type**: `string` **Default**: `---` Delimiter to use as the separator for sections. _With the exception of front-matter, which must be the very first thing in the string, the opening delimiter of all other sections must be followed by a string to be used as the `key` for the section._ **Example** ```js var input = '~~~\ntitle: bar\n~~~\n\nfoo\n~~~one\ntitle: One\n~~~\nThis is one'; console.log(sections(input, {section_delimiter: '~~~'})); ``` Results in: ```js { content: '', sections: [ { key: '', data: 'title: bar', content: '\nfoo' }, { key: 'one', data: 'title: One', content: 'This is one' } ] } ```