front-matter-markdown
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} """consolelogJSONstringify parseMarkdownmarkdownStrnull1
the results:
API
var parseMarkdown = ;
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.
- Note: the
toc
(Boolean): whether extract the directory from the list in the specified heading. defaults to false. the 'directoy' is put intocontents
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): whethergenerate
the directory from the headings of markdown. defaults to false. It willgenerate
the toc if no toc list in the specified heading(toc
enabled).maxDepth
(Number): Use headings whose depth is at most max depth forgenerate
. defaluts to 3.firstLevel
(Number): the first level togenerate
the directory from the headings of markdown. defaluts to 1.
Returns
:skipSize
Number: the front-matter configuration size if existscontent
String: the markdown string after removing the front-matter configuration. (available oncontent
is true)$compiled
Object: the compiled markdown tree.(available oncontent
is true)contents
Object: the directory from the list in the specified heading. (available ontoc
)
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 = parseMarkdownmarkdownStr #= parseMarkdown markdownStr, # toc:false # headingsAsToc: false # heading: 'Category'
License
MIT