UNPKG

qn-lcdp

Version:

青能科技低代码前端

66 lines (53 loc) 996 B
// see: https://github.com/jonschlinkert/gray-matter /* 属性 --- title: 标题 --- 数组 --- list: - one - two --- 对象 --- obj: name: kenny age: 18 --- 数组包含对象 --- list: - name: kenny age: 18 - name: sam age: 20 --- */ const fs = require('fs') const matter = require('gray-matter'); const _ = require('lodash') const utils = require('../utils') const regex = /---\n?[\s\S]*\n?---/gi /** * 解释文件,返回标记数据 * @param file 文件路径 * @param isString 是否返回字符串 * @return {null|*} */ function parse(file, isString) { const content = fs.readFileSync(file, 'utf-8') const matches = content.match(regex) || [] if (matches.length === 0) { return null } const results = matches.map(block => { return matter(block.trim()).data || {} }); const data = _.merge.apply(_.merge, results) return _.isPlainObject(data) ? (isString ? utils.stringify(data) : data) : null } module.exports = parse