Skip to content

Latest commit

 

History

History
152 lines (112 loc) · 2.54 KB

.verb.md

File metadata and controls

152 lines (112 loc) · 2.54 KB

Usage

{%= apidocs("index.js") %}

See available 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:

console.log(sections(input));

Results in:

{ 
  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:

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:

{
  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

var input = '~~~\ntitle: bar\n~~~\n\nfoo\n~~~one\ntitle: One\n~~~\nThis is one';
console.log(sections(input, {section_delimiter: '~~~'}));

Results in:

{
  content: '',
  sections: [
    {
      key: '',
      data: 'title: bar',
      content: '\nfoo'
    },
    {
      key: 'one',
      data: 'title: One',
      content: 'This is one'
    }
  ]
}