roamfuding-xcx/uni_modules/zero-markdown-view/readme.md

4.3 KiB
Raw Blame History

zero-markdown-view

一. 重要更新说明

v3.0.0

  • 优化了代码块流式输出
  • 增加aiMode模式内容靠左对齐的样式区别于普通模式

v2.1.0

  • 新增 latex 公式支持
  • 代码块高亮支持: languages=markup+css+clike+javascript+c+cpp+go+java+markup-templating+php+python+rust
  • 代码包体积增加了不少(注意)

v2.0.4 (仅需要基础功能可以使用此版本)

  • 新增点击代码块复制代码-仅小程序可用

v2.0.0

二. 使用方法

建议放到分包里手动引入该插件

**符合easycom组件模式, 导入 uni_modules 后直接使用即可 **

<template>
  <view class="container">
    <!-- 默认用法 直接传入md文本即可 普通md展示-->
    <zero-markdown-view :markdown="content"></zero-markdown-view>

	<!-- ai对话模式 -->
	 <zero-markdown-view :markdown="msgContent" :aiMode='true'></zero-markdown-view>
  </view>
</template>
<script>
  export default {
    data() {
      return {
        content: "## md格式的文本内容",
		msgContent: "## ai回复的内容兼容流式输出",
      };
    },
    created() {},
    methods: {},
  };
</script>
<style lang="scss" scoped></style>

三. 参数说明

参数 类型 默认值 描述
markdown String markdown 文本
themeColor String '#007AFF' 主题色
codeBgColor String '#2d2d2d' 代码块背景色
aiMode Boolean false 是否为 AI 模式(内容靠左对齐)

四. 注意事项

关于代码块高亮

如果需要更多语言或更换主题请前往 prism 官网 下载对应的 prism.min.js 和 prism.css 并替换 plugins/highlight/ 目录下的文件,重新运行打包命令并替换 mp-html. 不建议这样做,因为本插件还修改过其他地方,可能会导致插件不能正常使用. 具体请参考 mp-html 的文档,在文末有链接

关于代码块流式输出闪烁,可以尝试 给代码块后增加 \n

已经在组件内的 aiMode 解决,不需要自行处理,也就是说如何你是是用在ai上直接把ai回复内容传给组件就可以了

已经在组件内的 aiMode 解决,不需要自行处理,也就是说如何你是是用在ai上直接把ai回复内容传给组件就可以了

已经在组件内的 aiMode 解决,不需要自行处理,也就是说如何你是是用在ai上直接把ai回复内容传给组件就可以了

注意小程序上的流逝输出需要结合unipush2使用

感谢评论区的一个朋友提供的代码

		computed: {
						// 流式输出时代码块处理 , 这时候请使用 msgContent 传入组件中
		msgContent() {
			if (!this.markdown) {
				return
			}
			let htmlString = ''
			// 检查是否有未闭合的代码块
			const codeBlocks = this.markdown.match(/```[\s\S]*?```|```[\s\S]*?$/g) || []
			const lastBlock = codeBlocks[codeBlocks.length - 1]
			if (lastBlock && !lastBlock.endsWith('```')) {
				// 最后一个代码块未闭合,需要补上结束标识符
				htmlString = this.markdown + '\n'
			} else {
				htmlString = this.markdown
			}
			return htmlString
		},
		},

如何关闭点击代码块复制功能?

找到组件文件夹 zero-markdown-view-mp-html-highlight-config.js

copyByClickCode 改成 false 即可

export default {
  copyByClickCode: true, // 点击代码块复制
  showLanguageName: true, // 是否在代码块右上角显示语言的名称
}

感谢 mp-html 插件

插件地址: https://ext.dcloud.net.cn/plugin?id=805

文档地址: https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart

插件预览: code

小程序搜索: 零技术

预览的小程序不一定能及时更新当前插件