@agds/cli-plugin-doc
Version:
agds系统doc文档生成器
45 lines (42 loc) • 1.4 kB
JavaScript
/*
* @Author: 锦阳
* @Create: 2021年05月31日
*/
/* istanbul ignore next */
/**
* 将codes渲染成md代码片段
*
* @memberof GenDoc
* @param {GetFilesCodeResult[]} codes `GenDoc.getFilesCode`函数获取到的codes数组
* @param {string[]} [extSort= ['md', 'vue', 'jsx', 'js']] 优先并且按照`extSort`数组顺序获取遍历codes
* @param {Object<string,string>} [extTrans={vue:'html'}] ext转换的映射map
* 简单示例`{vue:'html'}`
* @returns {string}
*/
function renderCode(codes, extSort = ['md', 'vue', 'jsx', 'js'], extTrans = { vue: 'html' }) {
let result = '';
codes && codes.forEach((item) => {
extSort.concat(Object.keys(item).filter(ext => !extSort.includes(ext))).forEach((ext) => {
const code = item[ext];
if (code) {
code.forEach(c => {
if (ext === 'md') {
result += c + '\n';
} else {
const _ext = extTrans[ext] || ext;
result += `\`\`\`${_ext}\n` + c + '\n```\n';
}
});
}
});
});
return result;
}
module.exports = renderCode;
/**
* 获取文件的内容的返回值类型,key是文件的extname
*
* @typedef {Object.<string,string>} GetFilesCodeResult
* @memberof GenDoc.getFilesCode
* @alias GetFilesCodeResult
*/