Nuxt 3与Nuxt Content 2.1中h2-h6标题被渲染为链接的问题求助
解决Nuxt Content 2.1中h2-h6标题自动转为链接的问题
针对你遇到的h2-h6标题被自动渲染为锚点链接、原生HTML标题生成undefined href的问题,提供以下两种解决方式:
方法一:全局禁用标题锚点功能
在nuxt.config.ts中修改Content模块的配置,关闭标题锚点的自动生成:
export default defineNuxtConfig({ content: { markdown: { anchor: { enabled: false // 禁用所有标题的锚点链接生成 } } } })
该配置会直接关闭Nuxt Content对所有标题(h2-h6)自动添加锚点链接的逻辑,同时也能解决原生HTML标题生成#undefined链接的问题。
方法二:自定义标题组件覆盖默认渲染
如果你需要保留标题的id属性但不想包裹为a标签,可以在项目的components/content/目录下创建对应标题组件,覆盖默认渲染逻辑:
比如创建components/content/H2.vue:
<template> <h2 :id="id"> <slot /> </h2> </template> <script setup> const props = defineProps({ id: String }) </script>
同理,为h3到h6创建对应的H3.vue至H6.vue组件,内容结构与H2一致。Nuxt Content会自动识别这些组件并使用它们渲染对应标题,不再生成包裹的a标签。
内容的提问来源于stack exchange,提问作者dahegyi
相关产品推荐
相关产品推荐

