开发预览 更新于 2026-05-10

MarkdownEditor Markdown 编辑器

内置最小 markdown 渲染器,支持 split / edit / preview 三种模式。需要更全功能可传 render fn。

基础用法

内置渲染器支持:标题、加粗 / 斜体 / 行内 code、围栏代码块、有序 / 无序列表、引用、--- 分隔线、链接。 更复杂场景(表格、任务列表、扩展语法)用 render 自定义。

背景

标题一

这是 加粗斜体inline code链接 的示例。

列表

  • 第一项
  • 第二项
  • 第三项
引用文本
const a = 1;
<script setup lang="ts">
import { ref } from 'vue';
import { CfMarkdownEditor } from '@chufix-design/vue';
const md = ref(`# 标题一

这是 **加粗**、*斜体*、\`inline code\` 与 [链接](https://chufix.com) 的示例。

## 列表

- 第一项
- 第二项
- 第三项

> 引用文本

\`\`\`ts
const a = 1;
\`\`\`
`);
const mode = ref<'split' | 'edit' | 'preview'>('split');
</script>

<template>
  <CfMarkdownEditor v-model="md" :mode="mode" @update:mode="(m) => mode = m" />
</template>
<script setup>
import { ref } from 'vue';
import { CfMarkdownEditor } from '@chufix-design/vue';
const md = ref(`# 标题一

这是 **加粗**、*斜体*、\`inline code\` 与 [链接](https://chufix.com) 的示例。

## 列表

- 第一项
- 第二项
- 第三项

> 引用文本

\`\`\`ts
const a = 1;
\`\`\`
`);
const mode = ref<'split' | 'edit' | 'preview'>('split');
</script>

<template>
  <CfMarkdownEditor v-model="md" :mode="mode" @update:mode="(m) => mode = m" />
</template>
<CfMarkdownEditor value={md} onChange={setMd} mode={mode} onModeChange={setMode} />
<CfMarkdownEditor value={md} onChange={setMd} mode={mode} onModeChange={setMode} />

只读 + size sm

配置 readOnlysize="sm" 用作小型预览面板(如 commit message preview)。

背景

备注

预览 模式,content 不可编辑。

<script setup lang="ts">
import { ref } from 'vue';
import { CfMarkdownEditor } from '@chufix-design/vue';
const md = ref(`## 备注

仅 **预览** 模式,content 不可编辑。`);
const mode = ref<'split' | 'edit' | 'preview'>('preview');
</script>

<template>
  <CfMarkdownEditor v-model="md" :mode="mode" @update:mode="(m) => mode = m" size="sm" read-only />
</template>
<script setup>
import { ref } from 'vue';
import { CfMarkdownEditor } from '@chufix-design/vue';
const md = ref(`## 备注

仅 **预览** 模式,content 不可编辑。`);
const mode = ref<'split' | 'edit' | 'preview'>('preview');
</script>

<template>
  <CfMarkdownEditor v-model="md" :mode="mode" @update:mode="(m) => mode = m" size="sm" read-only />
</template>
<CfMarkdownEditor value={md} onChange={set} mode="preview" size="sm" readOnly />
<CfMarkdownEditor value={md} onChange={set} mode="preview" size="sm" readOnly />

API

属性类型默认值说明
modelValue / valuestring''markdown 源
mode'split' | 'edit' | 'preview''split'
size / placeholder / rows / readOnly
render(md: string) => string内置自定义渲染(返回 HTML 字符串)

注意:本组件的输出会通过 v-html / dangerouslySetInnerHTML 注入。 用户内容请先用 DOMPurify 等手段消毒。

反馈与讨论

MarkdownEditor Markdown 编辑器 的讨论

0
0 / 600
一键发送
正在加载评论...