vike-vue-content

把解析后的内容 AST 渲染为 Vue 节点,底层基于 @comark/vue。

ContentRenderer

把解析后的内容 AST 渲染为 Vue 节点,底层基于 @comark/vue

import { ContentRenderer } from 'vike-vue-content/components/content-renderer'

Props

Prop类型默认值说明
treeContentBody必填内容 AST(来自 ContentEntry.body)。
componentsContentComponents{}自定义节点 → Vue 组件的映射。
dataContentData{}注入内容的绑定数据。

事件

事件说明
resolve内容异步渲染完成后触发(内部用 <Suspense>)。

用法

<script setup>
import { ContentRenderer } from 'vike-vue-content/components/content-renderer'
import { queryCollection } from 'vike-vue-content/query'

const page = await queryCollection('docs').path('/docs/getting-started').first()
</script>

<template>
  <ContentRenderer v-if="page" :tree="page.body" />
</template>

内置组件映射

ContentRenderer 默认预注册以下组件:

标签组件说明
aProseAbase 感知链接(自动拼接 base,外链自动新窗口打开)。
preProseCode带复制按钮和可选文件名头的代码块。
code-groupCodeGroup标签页式代码块。
code-previewCodePreview#source 插槽的实时预览容器。

用户传入的 components 优先级更高,可覆盖以上任意组件。