san-cli-docit
Version:
san-cli-docit 是 [San](https://github.com/baidu/san) CLI 工具中 Markdown 文档建站部分。 是一个 [command 插件](https://ecomfe.github.io/san-cli)。
35 lines (33 loc) • 1.08 kB
JavaScript
/**
* @file entry loader
* @author ksky521
*/
const qs = require('querystring');
const loaderUtils = require('loader-utils');
module.exports = function (source) {
const {resourceQuery} = this;
const siteData = loaderUtils.getOptions(this) || {};
const rawQuery = resourceQuery.slice(1);
const query = qs.parse(rawQuery);
let {md = null} = query;
if (md == null || !/\.md$/.test(md)) {
return source;
}
const importString = ['navbar', 'sidebar'].map(key => {
if (siteData[key] && /\.md$/.test(siteData[key])) {
const query = qs.stringify({
// 来自 markdown-loader/loader 的 exportType
exportType: 'list',
relativeTo: md
});
return `import $${key} from '${siteData[key]}?${query}';`;
}
return `const $${key} = '';`;
}).join('\n');
return `
import $content, {toc as $toc, matter as $matter, link as $link} from '${md}';
${importString}
const $config = ${JSON.stringify(siteData)};
${source}
`;
};