>我在以下文件夹结构中有markdown文件:
content
-- blog
-- guest
-- random
每个降价文件都有一个前言tags
数组。我想为我使用的每个标签创建一个/tags/_id.vue
动态路径,但我不确定如何编写generate
函数来执行此操作。
这是我为当前函数所做的:
const markdownPaths = [
'blog',
'guest',
'random'
];
function dynamicMarkdownRoutes() {
return [].concat(
...markdownPaths.map(mdPath => {
return glob.sync(`${mdPath}/*.md`, { cwd: 'content' })
.map(filepath => `${mdPath}/${path.basename(filepath, '.md')}`);
})
);
}
export default {
// a bunch of other stuff
....
generate: {
routes: dynamicMarkdownRoutes()
},
}
。这对于从 markdown 文件本身创建动态路由非常有用,但我无法弄清楚如何扩展此功能以包含来自前言的路由。
我不知道如何从 Nuxt 的npm run generate
命令中读取前言,所以我选择使用 gulp 过程从前言生成降价文件。现在,npm run generate
命令可以从content/tags
目录中检测新创建的 markdown 文件,并为它们创建索引文件,就像我的常规帖子一样。
作为参考,以下是 gulp 过程:
const markdownToJSON = require('gulp-markdown-to-json'),
marked = require('marked'),
file = require('gulp-file');
function meta(){
return src('content/blog')
.pipe(markdownToJSON(marked, function(d){
if(d.tags){
var tags = [];
for(c in d.tags){
var e = d.tags[c].toLowerCase();
saveMD(e+'.md', 'content/tags');
}
}
}));
}
function saveMD(src,destination){
return file(src, '')
.pipe(dest(destination));
}