mdast-util-frontmatter
Advanced tools
Comparing version 0.1.0 to 0.2.0
@@ -1,1 +0,40 @@ | ||
module.exports = require('./lib/from-markdown') | ||
module.exports = createFromMarkdown | ||
var matters = require('micromark-extension-frontmatter/lib/matters') | ||
function createFromMarkdown(options) { | ||
var settings = matters(options) | ||
var length = settings.length | ||
var index = -1 | ||
var enter = {} | ||
var exit = {} | ||
var matter | ||
while (++index < length) { | ||
matter = settings[index] | ||
enter[matter.type] = opener(matter) | ||
exit[matter.type] = close | ||
exit[matter.type + 'Value'] = value | ||
} | ||
return {enter: enter, exit: exit} | ||
} | ||
function opener(matter) { | ||
return open | ||
function open(token) { | ||
this.enter({type: matter.type, value: ''}, token) | ||
this.buffer() | ||
} | ||
} | ||
function close(token) { | ||
var data = this.resume() | ||
// Remove the initial and final eol. | ||
this.exit(token).value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '') | ||
} | ||
function value(token) { | ||
this.config.enter.data.call(this, token) | ||
this.config.exit.data.call(this, token) | ||
} |
@@ -1,2 +0,2 @@ | ||
exports.fromMarkdown = require('./lib/from-markdown') | ||
exports.toMarkdown = require('./lib/to-markdown') | ||
exports.fromMarkdown = require('./from-markdown') | ||
exports.toMarkdown = require('./to-markdown') |
{ | ||
"name": "mdast-util-frontmatter", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "mdast extension to parse and serialize frontmatter (YAML, TOML, etc)", | ||
@@ -30,3 +30,2 @@ "license": "MIT", | ||
"files": [ | ||
"lib/", | ||
"from-markdown.js", | ||
@@ -37,7 +36,7 @@ "index.js", | ||
"dependencies": { | ||
"micromark-extension-frontmatter": "^0.1.0" | ||
"micromark-extension-frontmatter": "^0.2.0" | ||
}, | ||
"devDependencies": { | ||
"mdast-util-from-markdown": "^0.2.0", | ||
"mdast-util-to-markdown": "^0.2.0", | ||
"mdast-util-from-markdown": "^0.5.0", | ||
"mdast-util-to-markdown": "^0.3.0", | ||
"nyc": "^15.0.0", | ||
@@ -44,0 +43,0 @@ "prettier": "^2.0.0", |
@@ -14,3 +14,3 @@ # mdast-util-frontmatter | ||
When parsing (`from-markdown`), must be combined with | ||
[`micromark-extension-frontmatter`][extension-frontmatter]. | ||
[`micromark-extension-frontmatter`][extension]. | ||
@@ -46,3 +46,3 @@ You probably shouldn’t use this package directly, but instead use | ||
var toMarkdown = require('mdast-util-to-markdown') | ||
var frontmatterSyntax = require('micromark-extension-frontmatter') | ||
var syntax = require('micromark-extension-frontmatter') | ||
var frontmatter = require('mdast-util-frontmatter') | ||
@@ -53,3 +53,3 @@ | ||
var tree = fromMarkdown(doc, { | ||
extensions: [frontmatterSyntax(['yaml', 'toml'])], | ||
extensions: [syntax(['yaml', 'toml'])], | ||
mdastExtensions: [frontmatter.fromMarkdown(['yaml', 'toml'])] | ||
@@ -114,3 +114,3 @@ }) | ||
— the smallest commonmark-compliant markdown parser that exists | ||
* [`micromark/micromark-extension-frontmatter`][extension-frontmatter] | ||
* [`micromark/micromark-extension-frontmatter`][extension] | ||
— micromark extension to parse frontmatter | ||
@@ -188,4 +188,4 @@ * [`syntax-tree/mdast-util-from-markdown`][from-markdown] | ||
[extension-frontmatter]: https://github.com/micromark/micromark-extension-frontmatter | ||
[extension]: https://github.com/micromark/micromark-extension-frontmatter | ||
[options]: https://github.com/micromark/micromark-extension-frontmatter#options |
@@ -1,1 +0,46 @@ | ||
module.exports = require('./lib/to-markdown') | ||
module.exports = createToMarkdown | ||
var matters = require('micromark-extension-frontmatter/lib/matters') | ||
function createToMarkdown(options) { | ||
var unsafe = [] | ||
var handlers = {} | ||
var settings = matters(options) | ||
var length = settings.length | ||
var index = -1 | ||
var matter | ||
while (++index < length) { | ||
matter = settings[index] | ||
handlers[matter.type] = handler(matter) | ||
unsafe.push({atBreak: true, character: fence(matter, 'open').charAt(0)}) | ||
} | ||
return {unsafe: unsafe, handlers: handlers} | ||
} | ||
function handler(matter) { | ||
var open = fence(matter, 'open') | ||
var close = fence(matter, 'close') | ||
return handle | ||
function handle(node) { | ||
return open + (node.value ? '\n' + node.value : '') + '\n' + close | ||
} | ||
} | ||
function fence(matter, prop) { | ||
var marker | ||
if (matter.marker) { | ||
marker = pick(matter.marker, prop) | ||
return marker + marker + marker | ||
} | ||
return pick(matter.fence, prop) | ||
} | ||
function pick(schema, prop) { | ||
return typeof schema === 'string' ? schema : schema[prop] | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9971
6
70
+ Addedmicromark-extension-frontmatter@0.2.2(transitive)
- Removedmicromark-extension-frontmatter@0.1.0(transitive)