Have ideas to improve npm?Join in the discussion! »

    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

    Install

    npm i front-matter-markdown

    DownloadsWeekly Downloads

    2,105

    Version

    0.4.5

    License

    MIT

    Unpacked Size

    125 kB

    Total Files

    59

    Last publish

    Collaborators

    • avatar