MujicaUI

Chat Messages · #206

MarkdownView 浅色主题渲染快照
浅色 · 渲染快照
MarkdownView 深色主题渲染快照
深色 · 渲染快照

206 MarkdownView Markdown 视图

用途

渲染 Markdown 子集:标题、段落、粗体、斜体、删除线、行内代码、有序与无序列表(含缩进层级)、引用、链接、围栏代码块(交给 CodeBlock)、表格(交给 TableBlock)与分隔线(菱形饰线)。解析器在 internal/markdown.go,按块增量解析:新文本只是在旧文本后追加时,只重新解析最后一块,已完成的块保持不变。

最小示例

if url, ok := chat.MarkdownView(c, "# Decree\n\nSee **the guide** at [the court](https://example.com).").Link(); ok {
	fmt.Println("open", url)
}

签名:func MarkdownView(c *ui.Context, src string) MarkdownResult

参数

字段类型默认值含义
srcstring必填Markdown 源文本;流式输出时每帧传入增长后的全文即可。

状态

围栏未闭合的代码块按已收到的内容显示;未闭合的强调标记按字面显示,闭合后再加样式。

事件

Link() 返回本帧被点击或用 Enter 激活的链接地址;打开链接由调用方决定。

键盘操作

链接可用 Tab 聚焦,Enter 激活;代码块与表格的按钮按 Tab 顺序访问。

限制

  • 只支持上述子集:不支持 HTML、图片、脚注、任务列表、Setext 标题、链接引用定义,列表项内不支持多段落。
  • 表格单元格按纯文本显示,不解析行内样式。
  • 源文本被整体替换(不是在末尾追加)时重新解析全部块。