front-matter-markdown

0.4.5 • Public • Published

front-matter-markdown npm

Build Status Code Climate Test Coverage downloads license

Get the config object from a markdown string. It will extract configuration from front-matter. And get the directory(contents) from the list of heading TOC/Table Of Content/Summary. It will generate a TOC from the markdown string if the list is empty

Usage

parseMarkdown = require('front-matter-markdown')
 
markdownStr = """
---
title: this is a title
---
 
# table of contents
 
* [Directory](./dir1)
  * [Directory2](/dir2)
* [Directory3](#inline)
 
# this is a inline heading {#inline}
 
"""
console.log(JSON.stringify parseMarkdown(markdownStr)null1)

the results:

{
 "title""this is a title",
 "skipSize": 31,
 "ordered"false,
 "contents": [
  {
   "title""Directory",
   "path""./dir1",
   "ordered"false,
   "contents": [
    {
     "title""Directory2",
     "path""/dir2"
    }
   ]
  },
  {
   "title""Directory3",
   "path""#inline"
  }
 ]
}

API

var parseMarkdown = require('front-matter-markdown');
  • parseMarkdown(aMarkdownString, aOptions): parse a markdown string to a plain object.
    • aOptions(Object):
      • content (Boolean): whether extract the markdown content from configuration. defaults to true. it will store the compiled markdown to $compiled too.
        • Note: the content and $compiled attributes are non-enumerable.
      • toc (Boolean): whether extract the directory from the list in the specified heading. defaults to false. the 'directoy' is put into contents attributes.
      • links (Boolean): merge the markdown links label to the result, default to false.
      • heading (String|RegExp|ArrayOf(String)): the toc list in the heading(s) to extract the directory. defaults to ['TOC', 'Table Of Content', 'Summary']
      • headingsAsToc (Boolean|Object): whether generate the directory from the headings of markdown. defaults to false. It will generate the toc if no toc list in the specified heading(toc enabled).
        • maxDepth (Number): Use headings whose depth is at most max depth for generate. defaluts to 3.
        • firstLevel (Number): the first level to generate the directory from the headings of markdown. defaluts to 1.
    • Returns:
      • skipSize Number: the front-matter configuration size if exists
      • content String: the markdown string after removing the front-matter configuration. (available on content is true)
      • $compiled Object: the compiled markdown tree.(available on content is true)
      • contents Object: the directory from the list in the specified heading. (available on toc)

Changes

v0.3

  • markdown inline options to control parser.
    • toc
    • heading: the toc list in the heading section.
    • headingsAsToc
  • setOptionAlias function
  • broken: toc, headingsAsToc options are defaults to false now.
  • add the links option: merge the markdown links label to the result, default to false.
markdownStr = """
  ---
  title: this is a title
  toc: false
  headingsAsToc: false
  heading: Category
  ---
  # Category
 
  * [Directory](./dir1)
    * [Directory2](/dir2)
  * [Directory3](#inline)
 
  # this is a inline heading {#inline}
 
  [linkLabel1]: hi
  [linkLabel2]: url "with title text"
  """
result = parseMarkdown(markdownStr) #= parseMarkdown markdownStr, 
                                    #   toc:false 
                                    #   headingsAsToc: false 
                                    #   heading: 'Category' 
 

License

MIT

Package Sidebar

Install

npm i front-matter-markdown

Weekly Downloads

2,273

Version

0.4.5

License

MIT

Unpacked Size

125 kB

Total Files

59

Last publish

Collaborators

  • riceball