nuxt.js - 让 Nuxt.js 从 markdown frontmatter 生成路由
问题描述
我正在使用nuxt-content从 markdown 文件生成一个静态站点,并试图弄清楚如何从 frontmatter 数据生成嵌套路由。例如给定一个帖子的frontmatter:
title: Post Title
slug: post-title
media:
- file: uploads/image_1.jpg
- file: uploads/image_2.jpg
我想为 frontmatter 中列出的每个媒体项/posts/post-title/1
生成嵌套路由。/posts/post-title/2
你可以在这里看到我正在进行的工作。我有适当的功能(单击或键左/右箭头以浏览帖子和嵌套的帖子媒体),但尚未生成嵌套路由,因此这些图像丢失了。
我想我需要扩展 nuxt 的路由生成器来解析 md frontmatter 并遍历这些项目,但还没有弄清楚如何。任何帮助深表感谢。
解决方案
事实证明,使用 Nuxt Content指定动态路由的方法,解决方案实际上很简单。
这是我在 nuxt.config 中使用的完整函数,用于从 md frontmatter 生成嵌套路由:
generate: {
async routes() {
const { $content } = require('@nuxt/content')
const works = await $content('works').only(['path', 'media']).fetch()
const workMedia = []
works.forEach(work => {
if (work.media?.length > 1) {
work.media.slice(1).forEach((e, i) => {
workMedia.push(work.path + "/" + (i + 1))
})
}
})
return workMedia
}
}
推荐阅读
- python - 根据数据框中的两列删除异常值
- arrays - 使用 Typescript 将地图函数中的道具发送到 React 中的另一个组件
- php - 如何从 PHP 中的可点击图像进行 SQL 查询
- postgresql - 如何取消设置(删除,而不是重置)自定义配置参数?
- python - 谷歌语音识别 API:返回空结果
- javascript - 带有故事书的移动仿真反应
- javascript - 使用js中的.parentElement方法返回未定义
- java - 无论如何要修复android 4.x上的ssl握手错误,SSL库协议错误失败
- c - 执行此程序时,char 函数会返回变量。我不知道为什么?
- node.js - 如何使用 Express 设置我的 sitemap.xml 的“X-Robots-Tag”