WIP - add extractor, generate snippet_data
This commit is contained in:
51
node_modules/front-matter/index.js
generated
vendored
Normal file
51
node_modules/front-matter/index.js
generated
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
var parser = require('js-yaml')
|
||||
var optionalByteOrderMark = '\\ufeff?'
|
||||
var platform = typeof process !== 'undefined' ? process.platform : ''
|
||||
var pattern = '^(' +
|
||||
optionalByteOrderMark +
|
||||
'(= yaml =|---)' +
|
||||
'$([\\s\\S]*?)' +
|
||||
'^(?:\\2|\\.\\.\\.)\\s*' +
|
||||
'$' +
|
||||
(platform === 'win32' ? '\\r?' : '') +
|
||||
'(?:\\n)?)'
|
||||
// NOTE: If this pattern uses the 'g' flag the `regex` variable definition will
|
||||
// need to be moved down into the functions that use it.
|
||||
var regex = new RegExp(pattern, 'm')
|
||||
|
||||
module.exports = extractor
|
||||
module.exports.test = test
|
||||
|
||||
function extractor (string) {
|
||||
string = string || ''
|
||||
|
||||
var lines = string.split(/(\r?\n)/)
|
||||
if (lines[0] && /= yaml =|---/.test(lines[0])) {
|
||||
return parse(string)
|
||||
} else {
|
||||
return { attributes: {}, body: string }
|
||||
}
|
||||
}
|
||||
|
||||
function parse (string) {
|
||||
var match = regex.exec(string)
|
||||
|
||||
if (!match) {
|
||||
return {
|
||||
attributes: {},
|
||||
body: string
|
||||
}
|
||||
}
|
||||
|
||||
var yaml = match[match.length - 1].replace(/^\s+|\s+$/g, '')
|
||||
var attributes = parser.load(yaml) || {}
|
||||
var body = string.replace(match[0], '')
|
||||
|
||||
return { attributes: attributes, body: body, frontmatter: yaml }
|
||||
}
|
||||
|
||||
function test (string) {
|
||||
string = string || ''
|
||||
|
||||
return regex.test(string)
|
||||
}
|
||||
Reference in New Issue
Block a user