在Nuxt中生成动态路由.js从其他内容目录的markdown文件中的前言生成



>我在以下文件夹结构中有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));
}

相关内容

  • 没有找到相关文章

最新更新