diff --git a/docs/Cherry-Markdown-competitor-analysis.md b/docs/Cherry-Markdown-competitor-analysis.md
new file mode 100644
index 000000000..891aba41c
--- /dev/null
+++ b/docs/Cherry-Markdown-competitor-analysis.md
@@ -0,0 +1,493 @@
+# Cherry Markdown-competitor-analysis
+
+## 内容介绍
+
+本项目是[2024腾讯犀牛鸟开源人才培养计划—Cherry Markdown](https://github.com/Tencent/OpenSourceTalent/issues/41)中的竞品分析任务。此次分析将从语法能力、功能、安全、性能、扩展能力以及引擎实现方式和二次开发难易程度等多个维度展开,全面对比 Cherry Markdown 与其他主要 Markdown 编辑器的差异。
+
+## 文档结构
+
+![Cherry Markdown竞品分析.png](https://s2.loli.net/2024/10/11/wiqPGYrQI4lAMDL.png)
+
+
+## 1.Cherry Markdown项目简述
+
+### 1.1 项目介绍
+
+[Cherry Markdown Editor](https://github.com/Tencent/Cherry Markdown)是一款 **Javascript Markdown 编辑器**,具有**开箱即用、轻量简洁、易于扩展**等特点。它可以运行在**浏览器或服务端(NodeJs)。**
+
+![PixPin_2024-09-05_19-03-44.png](https://s2.loli.net/2024/09/09/gQCGNfY4Boyz8Rh.png)
+
+### 1.2 项目特性
+
+
+
+ Cherry Markdown 项目特性 |
+
+
+ 开箱即用 |
+ 调用与实例化 |
+ 开发者可以使用非常简单的方式调用并实例化 Cherry Markdown 编辑器 |
+
+
+ 默认支持 |
+ 支持大部分常用的 Markdown 语法(标题、目录、流程图、公式等) |
+
+
+ 易于拓展 |
+ 二次开发 |
+ 快速进行二次开发或功能扩展 |
+
+
+ 纯 JavaScript 实现 |
+ 不依赖 angular、vue、react 等框架技术,框架只提供容器环境 |
+
+
+ 语法特性 |
+ 图片 |
+ 缩放、对齐、引用 |
+
+
+ 图表 |
+ 根据表格内容生成图表 |
+
+
+ 字体 |
+ 颜色、大小 |
+
+
+ 背景 |
+ 颜色、上标、下标 |
+
+
+ 列表 |
+ Checklist |
+
+
+ 媒体 |
+ 音视频 |
+
+
+ 多种模式 |
+ 编辑预览 |
+ 双栏模式(支持同步滚动) |
+
+
+ 纯预览 |
+ 仅显示预览内容 |
+
+
+
+## 2.主要竞品概述
+
+### 2.1 目前主要的竞品
+
+确保所选竞品在技术实现和集成难度上具有可比性,我们精选了几款在社区中热度高、各项性能指标优秀、开源且具有良好可移植性的Web Markdown编辑器。
+
+我们将这些编辑器分为四个明确的类别:框架集成型编辑器、多功能Markdown编辑器、所见即所得(WYSIWYG)编辑器以及轻量级与高性能编辑器。
+
+> 各竞品的详情界面及链接展示见[[[Competitive product display]]](https://github.com/Zerwolrod/cherry-markdown-competitor-analysis/blob/analysis/docs/Competitive%20product%20display.md)
+
+
+
+ 竞品编辑器分类与特点 |
+
+
+ 框架集成型编辑器-Vue.js 集成编辑器 |
+ 专为特定前端框架设计,提供与框架紧密集成的特性。 |
+ mavonEditor |
+
+
+ Vue Markdown Editor |
+
+
+ md-editor-v3 |
+
+
+ 多功能Markdown编辑器-图表与数学公式支持 |
+ 提供除基本Markdown编辑功能外的额外特性,如图表支持、数学公式等。 |
+ ByteMD(支持Mermaid和KaTeX) |
+
+
+ Editor.md(支持图表、数学公式、流程图) |
+
+
+ 所见即所得(WYSIWYG)编辑器 |
+ 提供类似于传统富文本编辑器的所见即所得编辑体验。 |
+ tui.editor |
+
+
+ 轻量级与高性能编辑器 |
+ 注重性能和加载速度,适合对性能要求较高的应用场景。 |
+ Vditor |
+
+
+
+### 2.2 竞争力分析
+
+鉴于项目均为开源编辑器,故对各竞品的竞争力采用star及forks数量对比来进行项目热度分析、采用last commit距今时间、issue及pull requsets数量对比来进行项目的活跃度分析,排序对比如下:
+
+**热度分析:**
+![](https://s2.loli.net/2024/10/11/8VkE9H1gBwDvJeO.png)
+
+**活跃度分析:**
+![image.png](https://s2.loli.net/2024/10/11/NpyjMFPJIlgmxot.png)
+
+
+在热度分析中,为了避免因项目年限不同而导致的stars和forks数量积累的偏差,我们选择日均stars数量作为一个更为客观的衡量指标。这一指标有效地平衡了项目年限的影响,为我们提供了一个更加公平的比较基准。
+
+根据这一指标,我们生成了以下排序图表,它直观地展示了各个Markdown编辑器项目的全球受欢迎程度。
+
+
+![image.png](https://s2.loli.net/2024/10/11/2zm8f1hPnus9CAI.png)
+
+从图表中可以明显看出,一些新兴项目虽然上线时间不长,但它们的日均stars数量已经超越了一些老牌项目,这表明了它们在短时间内迅速获得了开发者社区的认可和支持。
+
+通过综合考量热度、活跃度指标,我们可以得出结论:
+
+对于Editor.md和tui.editor这样的成熟Markdown编辑器,它们凭借九年多的市场沉淀,已经建立了坚实的用户基础和良好的口碑。这些项目不仅在功能上日臻完善,而且在用户体验和社区支持方面也表现出色,这使得它们在开源markdown编辑器中保持了较高的活跃度和热度。
+
+然而,在上线时间不足五年的众多新兴markdown编辑器中,Cherry Markdown通过积极的社区参与和持续的创新,凭借创新的语法功能特性和较高的拓展能力,也获得了众多开发者的青睐,在综合热度增长和活跃度指标上均位列第一,显示出其强大的市场竞争力和发展潜力。
+
+## 3.语法能力对比
+
+### 3.1 语法支持及特性
+
+| 编辑器名称 | Markdown基础语法 | 额外语法特性 |
+| ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| ByteMD | ✅ | 扩展语法如代码高亮、数学公式和Mermaid流程图等 |
+| Mavon-Editor | ✅ | 图片上传事件和图片保存事件 |
+| Editor.md | ✅ | 实时预览、图像上载、代码折叠、搜索替换 |
+| Vditor | ✅ | GFM 语法:表格、任务列表项、删除线、自动链接、XSS 过滤、脚注、ToC、自定义标题 ID;图表语法:流程图、时序图、甘特图(Mermaid 支持)、Graphviz Graphviz (图形可视化)、折线图、饼图、脑图( ECharts 支持);五线谱( abc.js 支持);数学公式:数学公式块、行级数学公式(通过 MathJax 和 KaTeX 支持) |
+| Vue-Markdown-editor | ✅ | - |
+| Md-editor-v3 | ✅ | 深色主题、Prettier美化内容、直接渲染文章、图片粘贴上传、Mermaid图表和KaTeX数学公式 |
+| tui.editor | ✅ | 语法高亮、图形展示、UML绘制 |
+| Cherry Markdown | ✅ | 图片尺寸/阴影/边框/圆角;信息面板/手风琴;字体颜色/字体大小/对齐方式;图片缩放、表格自动生成图表、字体颜色和大小调整、音视频嵌入 |
+
+所有列出的编辑器都支持 Markdown 的基础语法,这意味着它们都能够处理标准的 Markdown 文本格式。
+
+此外,相比于其他竞品,Cherry Markdown的额外语法支持选项,这可以极大简化创作流程,增强markdown文本可读性,使得其在文档的视觉呈现上具有更多的自定义能力,适合需要对文档外观进行精细控制的用户。然而由于缺乏语法支持,Cherry Markdown编辑器的额外语法支持也可能导致与其他编辑器不兼容的问题。
+
+### 3.2 兼容性
+
+| 特性 | Cherry Markdown Editor | ByteMD | Mavon-Editor | Editor.md | Vditor | Vue-Markdown-editor | Md-editor-v3 | tui.editor |
+| -------------- | ------------------------------- | ------------------- | ------------ | ------------------------ | ----------------------------------------- | ------------------- | --------------------------- | ---------- |
+| 框架兼容性 | 不依赖特定框架 | 专为现代JavaScript框架设计 | 专为Vue.js设计 | 作为一个独立的组件 | - | 专为Vue.js设计 | 专为Vue3开发 | 作为一个独立的编辑器 |
+| 移动端兼容性 | 编辑栏和预览栏浏览良好,工具栏右侧部分溢出,无法浏览。布局美观 | 只能浏览编辑栏,工具栏无缺失,布局美观 | - | 编辑栏和预览栏浏览良好,工具栏无缺失,布局不美观 | 编辑栏浏览良好,工具栏无缺失,布局美观。但是切换到预览栏目后无法滑动浏览,浏览异常 | - | 只能浏览编辑栏,工具栏右侧部分溢出,无法浏览,布局正常 | - |
+| 服务器端渲染(SSR)兼容性 | 支持 | 支持 | - | - | - | - | - | - |
+| 编辑模式兼容性 | 所见即所得、分屏 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 |
+
+
+> 移动端兼容测试机型:iPhone13,仅测试了有在线演示链接的编辑器
+
+综上,Cherry Markdown相对比竞品,在各方面的兼容性十分优秀。同时,各测试的编辑器都在移动端存在浏览缺陷导致使用异常,但是Cherry Markdown仅存在工具栏部分溢出问题,可参考ByteMD、Editor.md、Vditor的解决方案,将工具栏进行响应式布局优化。
+## 4.功能对比
+
+| 编辑器名称 | 功能特性 |
+| ------------------- | ----------------------------------------------------------------------------------------------------------- |
+| Cherry Markdown | 复制 Html 粘贴成 MD 语法、经典换行&常规换行、多光标编辑、图片尺寸、导出长图/pdf、float toolbar 在新行行首支持快速工具栏、bubble toolbar 选中文字时联想出快速工具栏 |
+| ByteMD | 轻量级,不依赖于任何UI框架运行时bundle,易于适应其他库/框架插件系统,可扩展基本Markdown语法,如代码高亮、数学公式、Mermaid流程图等 |
+| Mavon-Editor | 支持代码高亮、数学公式、表格、流程图、序列图、UML图、思维导图等、提供丰富的功能,包括图片点击预览、复制HTML粘贴成Markdown等 |
+| Editor.md | 支持多种语言、代码高亮、图片上传、预览功能、支持自定义工具栏和快捷键、支持Markdown和HTML混排 |
+| Vditor | 所见即所得/即时渲染/分屏预览模式;多媒体、语音阅读、标题锚点、代码高亮及复制、graphviz、PlantUML 渲染;内置安全过滤、导出、图片懒加载、任务列表、多平台预览、多主题切换、复制到微信公众号/知乎功能 |
+| Vue-Markdown-editor | 支持Markdown和HTML编辑、提供自定义插件和工具栏选项、支持代码高亮和图表渲染 |
+| Md-editor-v3 | 支持基础的Markdown编辑和预览、支持图片上传、裁剪图片上传、支持暗黑主题和多光标编辑、提供API参考文档,支持内容格式化和屏幕全屏 |
+| tui.editor | 所见即所得的Markdown编辑器、实时预览、语法高亮、自动生成目录索引、支持表格、UML图和图表等内容的编辑、支持多种主题和样式 |
+
+Cherry Markdown Editor在自定义功能和插件系统方面表现出色,具有别的浏览器没有的功能比如导出长图、信息面板/手风琴等等,非常适合需要高度定制化和编程功能的用户。
+
+而其他编辑器也各有特点,比如Vditor可以实现复制到微信公众号和知乎功能,可以满足不同的使用场景和需求,Cherry Markdown编辑器在未来为了优化用户体验,也可以考虑引入同类竞品的个性化功能,打破功能垄断,提升竞争力。
+
+## 5.性能对比
+
+### 5.1 测试环境描述
+
+为了确保性能测试的准确性和可比性,本次测试在相同的硬件和网络环境下进行。测试环境的具体配置如下:
+
+| 规格 | 详情 |
+| ---- | ------------------ |
+| 操作系统 | macOS Ventura 13.0 |
+| 处理器 | Apple M1 Pro 芯片 |
+| 内存 | 16GB |
+| 存储 | 1TB 固态硬盘 |
+| 网络 | 500Mbps 光纤宽带 |
+
+所有测试均在干净的环境中进行,关闭了所有非测试相关的应用程序,以避免外部因素对测试结果的影响。
+
+### 5.2 局部渲染和更新
+
+| 编辑器名称 | 局部渲染支持 | 局部更新支持 | 描述 |
+| ---------------------- | ------ | ------ | -------------------------------------------------------- |
+| Cherry Markdown Editor | ✅ | ✅ | 利用virtual dom机制,判断用户变更段落,只渲染变更段落,实现局部更新,减少浏览器DOM操作,提高性能。 |
+| ByteMD | ✅ | ✅ | 支持局部渲染和更新,通过插件系统和优化的DOM操作实现。 |
+| Mavon-Editor | ❌ | ❌ | 目前不支持局部渲染和更新,每次编辑都会重新渲染整个文档。 |
+| Editor.md | ❌ | ❌ | 同样不支持局部渲染和更新,编辑时性能会受到一定影响。 |
+| Vditor | ✅ | ✅ | 支持局部渲染和更新,特别是在所见即所得模式下表现良好。 |
+| Vue-Markdown-editor | ❌ | ❌ | 作为Vue组件,目前不支持局部渲染和更新。 |
+| Md-editor-v3 | ✅ | ✅ | 支持局部更新,但效果不如Cherry Markdown Editor和Vditor。 |
+| tui.editor | ✅ | ✅ | 支持局部渲染和更新,性能表现良好。 |
+
+### 5.3 性能测试结果
+
+通过对比在各种场景下的页面渲染速度来对比各种markdown插件的性能,我们将测试场景细分为以下三个关键维度:篇幅长短、内容复杂度、以及渲染类型。
+
+
+
+ 维度 |
+ 类别 |
+ 描述 |
+
+
+ 篇幅长短 |
+ 1. 10kb以内 |
+ 适用于短小文档或文章的快速渲染。 |
+
+
+ 2. 10kb~100kb |
+ 适用于中等长度文档的渲染,平衡速度与功能。 |
+
+
+ 3. 100kb以上 |
+ 适用于长篇文档,重点测试处理大量数据时的性能。 |
+
+
+ 内容复杂度 |
+ 1. 纯文本 |
+ 仅包含基础文本内容,无额外Markdown语法元素。 |
+
+
+ 2. 复杂文本 |
+ 包含多种Markdown语法元素,如标题、列表、代码块等。 |
+
+
+ 渲染类型 |
+ 1.浏览 |
+ 重点测试文档浏览性能,适用于阅读场景。 |
+
+
+ 2. 编辑 |
+ 重点测试文档编辑时的实时渲染性能。 |
+
+
+
+接下来我们根据**三个维度**设计了**12种不同情景**进行性能测试,**最终根据各种场景下的性能进行打分,并得出最终得分**。具体的测试过程整理见[[[cherry markdown performance testing]]](https://github.com/Zerwolrod/cherry-markdown-competitor-analysis/blob/analysis/docs/cherry%20markdown%20performance%20testing.md),测试工程文件见[[[test]]](https://github.com/Zerwolrod/test)。
+
+![](https://s2.loli.net/2024/10/11/CiMSO5d9XZkKl17.png)
+![image.png](https://s2.loli.net/2024/10/11/Tk1K73bovqjHGRs.png)
+![image.png](https://s2.loli.net/2024/10/11/9uQK1wWnZe4NRMC.png)
+![image.png](https://s2.loli.net/2024/10/11/nl8xhYLI67DpU1M.png)
+![image.png](https://s2.loli.net/2024/10/11/9SYsNZ3lUoitW6u.png)
+![image.png](https://s2.loli.net/2024/10/11/b7HJOGluvDWwnke.png)
+![image.png](https://s2.loli.net/2024/10/11/cH5ykBwRza2QZDU.png)
+
+我们综合以上数据为各个markdown编辑器按照0-10打分可以得出以下结论:
+
+**短篇简单评分**
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|cherry-markdown|38.3|20.12|29.21|9.75|
+|tui.editor|47.05|38.29|42.67|9.45|
+|md-editor-v3|56.24|46.63|51.44|9.05|
+|mavonEditor|67.51|30.49|49.00|9.15|
+|Vue Markdown Editor|73.26|46.29|59.78|8.75|
+|Vditor|103.48|79.06|91.27|7.35|
+|Editor.md|330.33|326.64|328.49|3.75|
+|ByteMD|345.51|335.29|340.40|3.50|
+
+**短篇复杂评分**
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|cherry-markdown|38.3|20.12|29.21|9.75|
+|tui.editor|47.05|38.29|42.67|9.45|
+|md-editor-v3|56.24|46.63|51.44|9.05|
+|mavonEditor|67.51|30.49|49.00|9.15|
+|Vue Markdown Editor|73.26|46.29|59.78|8.75|
+|Vditor|103.48|79.06|91.27|7.35|
+|Editor.md|330.33|326.64|328.49|3.75|
+|ByteMD|345.51|335.29|340.40|3.50|
+
+**中篇简单评分**
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|tui.editor|38.88|39.78|39.33|9.65|
+|cherry-markdown|89.24|65.54|77.39|8.00|
+|Editor.md|92.56|755.26|428.91|4.75|
+|mavonEditor|110.56|95.83|103.20|7.00|
+|md-editor-v3|157.37|137.25|147.31|5.75|
+|ByteMD|170.46|153.12|161.79|5.25|
+|Vditor|192.4|86.38|139.39|5.90|
+|Vue Markdown Editor|198.25|104.62|151.44|5.40|
+
+**中篇复杂评分**
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|Editor.md|179.46|154.62|167.04|5.75|
+|tui.editor|189.93|139.65|164.79|5.90|
+|cherry-markdown|208.21|162.22|185.22|4.90|
+|Vue Markdown Editor|221.63|161.31|191.47|4.75|
+|md-editor-v3|245.13|162.36|203.75|4.45|
+|mavonEditor|262.63|201.51|232.07|4.20|
+|Vditor|291.28|308.86|300.07|3.50|
+|ByteMD|315.25|256.62|285.94|3.75|
+
+**长篇简单评分**
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|Editor.md|672.52|1714.36|1193.44|2.90|
+|md-editor-v3|713.26|1624.16|1168.71|3.10|
+|cherry-markdown|782.28|2129.58|1450.93|2.45|
+|mavonEditor|831.41|1724.61|1278.01|2.75|
+|ByteMD|915.51|1815.24|1365.38|2.60|
+|Vue Markdown Editor|1153.15|2915.42|2034.29|1.95|
+|tui.editor|1457.76|2150.60|1804.18|2.10|
+|Vditor|1854.10|5167.83|3510.97|1.00|
+
+**长篇复杂评分**
+
+| 项目名称 | 浏览渲染时长(ms) | 编辑渲染时长(ms) | 平均时长(ms) | 评分 |
+| ------------------- | ---------- | ---------- | -------- | ---- |
+| Editor.md | 1152.67 | 1712.51 | 1432.59 | 2.50 |
+| Vditor | 1263.60 | 1937.27 | 1600.44 | 2.20 |
+| mavonEditor | 1415.25 | 2621.13 | 2018.19 | 1.95 |
+| tui.editor | 1486.27 | 1681.66 | 1583.97 | 2.25 |
+| Vue Markdown Editor | 1514.52 | 1262.14 | 1388.33 | 2.60 |
+| ByteMD | 1521.51 | 2611.25 | 2066.38 | 1.90 |
+| cherry-markdown | 1533.16 | 711.02 | 1122.09 | 3.30 |
+| md-editor-v3 | 2562.45 | 1523.51 | 2042.98 | 1.90 |
+
+> 注:由于测试小规模增删时间太短且要一直键盘操作,本测试的编辑速度是通过“向文本开头插入一段与原文本相同规模的文本的速度”来判断的。
+
+> 由于vditor有默认的一秒延迟,记录的时候直接-1s进行测量。
+
+## 6.安全对比
+
+对于Markdown编辑器,主要面对的安全风险包括跨站脚本攻击(XSS)和数据泄露问题。具体见[[markdown editor security risks]]。针对这些安全风险,我们对各竞品选取了防XSS攻击、用户数据隔离两个指标作为对比,以评估它们的安全性能。
+
+参考资料:
+https://portswigger.net/web-security/cross-site-scripting
+https://info.support.huawei.com/info-finder/encyclopedia/zh/DLP.html
+
+| 编辑器名称 | 防XSS攻击 | 用户数据隔离 | 备注 |
+| ---------------------- | ------ | ------ | -------------------------- |
+| Cherry Markdown Editor | ✅ | ✅ | 内置安全Hook,使用DomPurify进行过滤 |
+| ByteMD | ✅ | ✅ | 默认安全,正确处理XSS攻击 |
+| Mavon-Editor | ✅ | ✅ | 提供xssOptions配置,防止脚本注入 |
+| Editor.md | ✅ | ❌ | 需要额外的安全措施,如不加载外部JavaScript |
+| Vditor | ✅ | ✅ | 内置安全过滤,支持开关 |
+| Vue-Markdown-editor | ✅ | ✅ | 高度可定制化,支持自定义安全设置 |
+| Md-editor-v3 | ✅ | ✅ | 使用JSX和TypeScript开发,提供安全特性 |
+| tui.editor | ✅ | ✅ | 所见即所得,提供实时预览和语法高亮 |
+
+在防XSS攻击方面,大多数编辑器都提供了一定程度的支持,如Cherry Markdown Editor使用DomPurify进行过滤,ByteMD和Mavon-Editor也提供了相应的安全配置。Vditor和Vue-Markdown-editor则提供了内置的安全过滤和高度可定制化的安全设置。Md-editor-v3利用JSX和TypeScript的优势,提供了安全特性。
+
+除了Editor.md外,其他编辑器都提供了用户数据隔离支持。这表明大多数编辑器能够确保用户数据的隔离,防止潜在的数据泄露或污染。
+
+Cherry Markdown Editor 内置了安全钩子,通过过滤白名单以及使用 DomPurify 进行扫描过滤,以防止 XSS 攻击等安全问题。这些安全措施的实施有助于保护用户数据免受XSS攻击和数据泄露的风险,同时也符合了数据丢失防护(DLP)的最佳实践,如Microsoft Security所定义的。通过这些措施,Markdown编辑器能够在保护数据安全的同时,提供高效的编辑体验。
+
+## 7.拓展能力对比
+
+### 7.1 插件系统
+
+插件系统是扩展编辑器功能的重要方式,允许用户根据需要添加或修改编辑器的特定功能。以下是各编辑器在插件系统方面的表现:
+
+| 编辑器名称 | 插件数量 | 插件质量 | 备注 |
+| ---------------------- | ---- | ---- | ------------------------------------------------------------------------- |
+| Cherry Markdown Editor | 中 | 高 | 支持插件系统,提供钩子(hooks)和APIs,允许开发者注入自定义逻辑,支持多种样式主题选择。允许深度定制编辑器的外观和行为。 |
+| ByteMD | 多样 | 高 | 通过插件系统,可以进行一定程度的外观和行为定制。支持语法高亮、数学公式、Mermaid流程图等插件。轻量级、框架无关,支持SSR,内置XSS处理。 |
+| Mavon-Editor | 多样 | 中 | 主要针对Vue.js,外观定制灵活,但行为定制一般。支持自定义工具栏按钮,例如插入视频资源等。 |
+| Editor.md | 多样 | 中 | 提供了一些基本的定制选项,但API丰富度一般。使用JSX和TypeScript开发,适合Vue3。 |
+| Vditor | 多样 | 高 | 支持高度自定义,包括外观、行为以及扩展语言。支持自定义皮肤和主题,提供丰富的API接口和插件系统。 |
+| Vue-Markdown-editor | 有限 | 中 | 作为Vue组件,外观定制灵活,但行为定制受限于Vue生态。支持Markdown和HTML编辑,提供自定义插件和工具栏选项。 |
+| Md-editor-v3 | 中 | 中 | 支持高度自定义,包括主题切换、Prettier文本美化等。支持Vue3,使用TypeScript和JSX开发,支持国际化。 |
+| tui.editor | 多样 | 高 | 提供了所见即所得编辑体验,外观和行为定制灵活。支持Markdown和HTML编辑,提供多种API,支持实时预览、语法高亮、自动生成目录索引等功能。 |
+
+### 7.2 自定义功能
+
+自定义功能允许用户根据自己的需求调整编辑器的行为和外观。以下是各编辑器在自定义功能方面的表现:
+
+| 编辑器名称 | 外观定制 | API丰富度 | 备注 |
+| ---------------------- | ---- | ------ | -------------------------------------------------------------------------------------------- |
+| Cherry Markdown Editor | 高 | 高 | 支持插件系统,提供钩子(hooks)和APIs,允许开发者注入自定义逻辑,支持多种样式主题选择。允许深度定制编辑器的外观和行为。 |
+| ByteMD | 中 | 高 | 通过插件系统,可以进行一定程度的外观和行为定制。支持语法高亮、数学公式、Mermaid流程图等插件。轻量级、框架无关,支持SSR,内置XSS处理。社区和个人开发者提供了丰富的自定义主题 |
+| Mavon-Editor | 高 | 中 | 主要针对Vue.js,外观定制灵活,但行为定制一般。支持自定义工具栏按钮,例如插入视频资源等。 |
+| Editor.md | 低 | 低 | 提供了一些基本的定制选项,但API丰富度一般。使用JSX和TypeScript开发,适合Vue3。 |
+| Vditor | 高 | 高 | 支持高度自定义,包括外观、行为以及扩展语言。支持自定义皮肤和主题,提供丰富的API接口和插件系统。 |
+| Vue-Markdown-editor | 高 | 中 | 作为Vue组件,外观定制灵活,但行为定制受限于Vue生态。支持Markdown和HTML编辑,提供自定义插件和工具栏选项。 |
+| Md-editor-v3 | 高 | 高 | 支持高度自定义,包括主题切换、Prettier文本美化等。支持Vue3,使用TypeScript和JSX开发,支持国际化。 |
+| tui.editor | 高 | 高 | 提供了所见即所得编辑体验,外观和行为定制灵活。支持Markdown和HTML编辑,提供多种API,支持实时预览、语法高亮、自动生成目录索引等功能。 |
+
+![image.png](https://s2.loli.net/2024/10/11/DpnFdIfHVQewJ16.png)
+
+
+在插件系统和自定义评分中,我们的参考指标主要为插件数量和质量、外观定制程度、API丰富度四大标准。这些编辑器在自定义功能方面各有千秋,Cherry Markdown Editor和ByteMD以其插件系统和API丰富度而脱颖而出,支持开发者通过编写自定义插件来扩展编辑器的功能。允许开发者在运行时注入自定义逻辑,满足特定需求。适合需要高度定制化的场景。虽然相较于有很长时间积淀的老牌markdown编辑器项目的还具有一定的成长空间,但是在新兴的markdown编辑器中已展现出良好的拓展能力。
+
+## 8.引擎实现方式
+
+技术栈的选择对于一个项目至关重要,其不仅是构建应用的基石,更是影响应用性能、可扩展性和可维护性的关键因素。对于Markdown编辑器而言,技术栈的选择尤为精细,因为它需要在提供丰富功能的同时,确保用户体验的流畅性和编辑器本身的高效性。
+
+以下是我们对各Markdown编辑器技术栈的详细分析:
+
+| 编辑器名称 | 前端框架/库 | 渲染引擎 | 解析器 | 扩展机制 | 存储方式 | 备注 |
+| ---------------------- | ------ | --------------- | --------------- | ---- | ----- | ----------------------------------- |
+| Cherry Markdown Editor | 无 | 自定义 | 自定义 | API | 本地/远程 | 不依赖特定前端框架,使用纯JavaScript编写。 |
+| ByteMD | Svelte | 自定义(基于Svelte) | 基于remark和rehype | 插件系统 | 本地 | 轻量级、框架无关,支持 SSR,内置XSS处理。 |
+| Mavon-Editor | Vue.js | 自定义(基于Vue.js) | Markdown-it | 插件系统 | 本地 | 支持Vue2和Vue3,提供丰富的API和工具栏自定义。 |
+| Editor.md | jQuery | CodeMirror | Marked | 插件系统 | 本地 | 使用JSX和TypeScript开发,适合Vue3。 |
+| Vditor | 无 | 自定义(基于Electron) | 基于markdown-it | 插件系统 | 本地/远程 | 所见即所得编辑体验,高效且可扩展。 |
+| Vue-Markdown-editor | Vue.js | 无 | 无 | 无 | 本地 | Vue组件,简单易用。 |
+| Md-editor-v3 | Vue.js | CodeMirror | marked.js | 插件系统 | 本地 | 支持Vue3,使用TypeScript和JSX开发,支持国际化。 |
+| tui.editor | 无 | 自定义 | 自定义 | API | 本地 | 基于jQuery,支持Markdown和HTML编辑,提供多种API。 |
+
+Cherry Markdown不依赖于任何特定的前端框架,采用纯JavaScript开发,同时采用了模块化的架构设计,允许代码被组织成独立的、可重用的单元,从而提高了代码的可维护性和可扩展性。
+
+模块化架构还促进了功能隔离,使得各个模块可以独立开发和测试,允许开发者通过简单的API调用快速集成编辑器到各种应用场景中。
+
+## 9.二开难易程度
+
+由于文档和社区支持可以快速帮助开发者理解和使用API和插件系统,提供良好的学习交流平台,降低二开的阻碍,API易用程度和支持拓展语言则直接影响了二开的耗时和可行性。
+
+因此,在讨论二开难易程度时,我们将文档和社区支持、API易用性和拓展语言支持作为衡量二开难易程度的指标。其中,社区支持程度由之前的活跃度分析数据得出。
+
+| 编辑器名称 | 文档完整性 | 社区支持 | API易用性 | 扩展语言支持 | 备注 |
+| ---------------------- | ----- | ---- | ------ | ------------------------ | ------------------------------------------------------------------- |
+| Cherry Markdown Editor | 高 | 活跃 | 高 | 支持JavaScript | 提供了丰富的API文档和配置选项,支持多种编辑模式和插件系统,API设计直观,适用于需要高度定制化的场景 |
+| ByteMD | 高 | 活跃 | 高 | 支持JavaScript, TypeScript | 提供了详细的安装和使用指南,以及丰富的示例和插件支持。API易用,支持高度定制化。 |
+| Mavon-Editor | 中 | 活跃 | 中 | 支持JavaScript | 专为Vue.js框架设计的Markdown编辑器,提供了基本的文档和示例,但社区支持相对较少,对于Vue开发者来说学习难度较低。 |
+| Editor.md | 高 | 中 | 中 | 支持JavaScript | 支持多种主题和插件,拥有活跃的社区和良好的官方支持,适用于多种应用场景。API一般,定制化难度适中。 |
+| Vditor | 高 | 活跃 | 高 | 支持JavaScript, TypeScript | 提供了详细的文档和丰富的示例,社区支持良好。API设计优秀,定制化灵活,学习曲线低。 |
+| Vue-Markdown-editor | 中 | 中 | 中 | 支持JavaScript | Vue组件简单易用,但文档和社区支持相对较少。作为Vue组件,对于Vue开发者来说使用简单。易于集成 |
+| Md-editor-v3 | 中 | 低 | 中 | 中 | 社区讨论及支持不足,但文档攥写比较规范,清晰易懂 |
+| tui.editor | 高 | 活跃 | 高 | 支持JavaScript | 基于jQuery,支持Markdown和HTML编辑,提供了详细的文档和API,社区支持良好。API设计优秀,定制化灵活,学习曲线低。 |
+
+![image.png](https://s2.loli.net/2024/10/11/Sg27GPtZNfUA4aq.png)
+
+
+综上,cherry-markdonw的提供了较为丰富的文档和良好的社区支持,二开难度小,易于用户进行自定义开发。
+
+## 10.总结
+
+在对Cherry Markdown Editor及其主要竞品进行全面分析后,我们可以得出以下结论:
+
+Editor.md和tui.editor等成熟项目凭借多年的市场沉淀,维持了较高的活跃度和热度。而Cherry Markdown Editor在新兴项目中表现出色,日均stars数量超越了一些老牌项目,显示出其强大的市场竞争力和发展潜力。
+
+在功能方面,CherryMarkdown支持丰富的额外语法特性,如图片尺寸调整、信息面板等,同时在自定义功能和插件系统方面表现出色,适合需要高度定制化的用户。移动端出现了工具栏右侧溢出问题,可以考虑进行优化。
+
+而在性能上,各编辑器在加载时间、首次渲染时间和编辑操作响应时间上表现相近,CherryMarkdownEditor在局部渲染和更新方面表现良好。
+
+安全方面,它提供了防XSS攻击和用户数据隔离的支持,通过内置安全钩子和DomPurify过滤,确保了编辑器的安全性。
+
+拓展能力方面,CherryMarkdownEditor的插件系统和APl丰富度表现优秀,提供了丰富的自定义选项和扩展语言支持,适合开发者进行二次开发。在未来也可也借鉴学习其他优秀开源markdown编辑器的功能,提高产品竞争力。
+
+CherryMarkdown采用纯JavaScript开发,模块化的架构设计提高了代码的可维护性和可扩展性。Cherry MarkdownEditor提供了丰富的文档和良好的社区支持,降低了二次开发的难度,易于用户进行自定义开发。
+
+综上,Cherry Markdown Editor在多个维度上展现出了强大的竞争力,特别是在语法能力、功能丰富度、安全性能和拓展能力方面。虽然作为一个较新的项目,它在社区支持和成熟度方面还有提升空间,但其创新的特性和积极的社区参与表明,它有潜力成为市场上的领先Markdown编辑器之一。对于寻求高度定制化和现代化编辑体验的用户来说,Cherry Markdown Editor无疑是一个值得考虑的选择。
+
+![image.png](https://s2.loli.net/2024/10/11/RYmjalLJbMAPf6S.png)
+
+
+
+以上为我的本次竞品分析项目内容,请各位导师批评指正。
diff --git a/docs/Competitive product display.md b/docs/Competitive product display.md
new file mode 100644
index 000000000..042de27f6
--- /dev/null
+++ b/docs/Competitive product display.md
@@ -0,0 +1,29 @@
+
+1.[Mavon-Editor](https://github.com/hinesboy/mavonEditor)![](https://img.shields.io/github/stars/hinesboy/mavonEditor.svg?style=social&label=Star&maxAge=2592000):一个基于Vue的Markdown编辑器库,提供了所见即所得的编辑体验,提供了丰富的功能,既可以用于编辑也可以用于解析。它支持标题、图片、备注、代码块、无序列表、有序列表、链接、表格等Markdown标签,并且对代码块和备注的支持较好。
+
+![image.png](https://s2.loli.net/2024/09/09/2Olr56Qh8LpRfWo.png)
+
+
+2.[Vue-Markdown-editor](https://github.com/code-farmer-i/vue-Markdown-editor)![](https://img.shields.io/github/stars/code-farmer-i/vue-markdown-editor.svg?style=social&label=Star&maxAge=2592000):这是一个基于Vue开发的Markdown编辑器组件。[在线演示](https://code-farmer-i.github.io/vue-markdown-editor/examples/base-editor.html#import)
+![image.png](https://s2.loli.net/2024/09/09/dI65CfA3jsP7BoS.png)
+
+
+3.[Md-editor-v3](https://github.com/imzbf/md-editor-v3)![](https://img.shields.io/github/stars/imzbf/md-editor-v3.svg?style=social&label=Star&maxAge=2592000):这是一个Markdown编辑器的Vue3版本,使用JSX和TypeScript语法开发,支持切换主题、Prettier美化文本等。
+[在线演示](https://imzbf.github.io/md-editor-v3/en-US/index)
+![image.png](https://s2.loli.net/2024/09/09/aeon5c87TVY2stK.png)
+
+
+4.[ByteMD](https://github.com/bytedance/bytemd?tab=readme-ov-file)![](https://img.shields.io/github/stars/pd4d10/bytemd.svg?style=social&label=Star&maxAge=2592000): 由字节跳动旗下掘金社区出品的轻量级、扩展性强的Markdown编辑器JavaScript库。它不需要导入任何UI Framework包,可以用于React、Vue和Angular等框架。ByteMD内置了基本Markdown语法的扩展插件系统,支持代码语法高亮显示、数学公式和流程图等。它还处理了常见的跨网站脚本攻击,兼容SSR。[在线演示](https://bytemd.js.org/playground/)
+![image.png](https://s2.loli.net/2024/09/09/wPcyiXKYRW4UFEI.png)
+
+
+5.[Editor.md](https://github.com/pandao/editor.md)![](https://img.shields.io/github/stars/pandao/editor.md.svg?style=social&label=Star&maxAge=2592000):这是一个基于CodeMirror、jQuery和Marked的开源可嵌入在线Markdown编辑器(组件)。它支持实时预览、图像上载、预格式化文本/代码块/表格插入、代码折叠、搜索替换、只读、主题、多语言、HTML实体、代码语法突出显示等功能。[在线演示](http://editor.md.ipandao.com/)
+![image.png](https://s2.loli.net/2024/09/09/krlFqvn1CG7ZASa.png)
+
+
+6.[tui.editor](https://github.com/nhn/tui.editor)![](https://img.shields.io/github/stars/nhn/tui.editor.svg?style=social&label=Star&maxAge=2592000):TOAST UI Editor是一个Markdown所见即所得编辑器,高效且可扩展。[在线演示](https://ui.toast.com/tui-editor)
+![image.png](https://s2.loli.net/2024/09/09/pLgE9RzOd1PaUHl.png)
+
+
+7.[Vditor](https://github.com/Vanessa219/vditor)![](https://img.shields.io/github/stars/Vanessa219/vditor.svg?style=social&label=Star&maxAge=2592000):这是一款浏览器端的Markdown编辑器,支持所见即所得(富文本)、即时渲染(类似Typora)和分屏预览模式。[在线演示](https://ld246.com/guide/markdown)
+![image.png](https://s2.loli.net/2024/09/09/27HPx9szteAIYNm.png)
diff --git a/docs/Competitor-Analysis.md b/docs/Competitor-Analysis.md
new file mode 100644
index 000000000..845480dbb
--- /dev/null
+++ b/docs/Competitor-Analysis.md
@@ -0,0 +1,490 @@
+# Cherry Markdown-competitor-analysis
+
+## 内容介绍
+
+本项目是[2024腾讯犀牛鸟开源人才培养计划—Cherry Markdown](https://github.com/Tencent/OpenSourceTalent/issues/41)中的竞品分析任务。此次分析将从语法能力、功能、安全、性能、扩展能力以及引擎实现方式和二次开发难易程度等多个维度展开,全面对比 Cherry Markdown 与其他主要 Markdown 编辑器的差异。
+
+## 文档结构
+
+![Cherry Markdown竞品分析.png](https://s2.loli.net/2024/10/11/wiqPGYrQI4lAMDL.png)
+
+
+## 1.Cherry Markdown项目简述
+
+### 1.1 项目介绍
+
+[Cherry Markdown Editor](https://github.com/Tencent/Cherry Markdown)是一款 **Javascript Markdown 编辑器**,具有**开箱即用、轻量简洁、易于扩展**等特点。它可以运行在**浏览器或服务端(NodeJs)。**
+
+![PixPin_2024-09-05_19-03-44.png](https://s2.loli.net/2024/09/09/gQCGNfY4Boyz8Rh.png)
+
+### 1.2 项目特性
+
+
+
+ Cherry Markdown 项目特性 |
+
+
+ 开箱即用 |
+ 调用与实例化 |
+ 开发者可以使用非常简单的方式调用并实例化 Cherry Markdown 编辑器 |
+
+
+ 默认支持 |
+ 支持大部分常用的 Markdown 语法(标题、目录、流程图、公式等) |
+
+
+ 易于拓展 |
+ 二次开发 |
+ 快速进行二次开发或功能扩展 |
+
+
+ 纯 JavaScript 实现 |
+ 不依赖 angular、vue、react 等框架技术,框架只提供容器环境 |
+
+
+ 语法特性 |
+ 图片 |
+ 缩放、对齐、引用 |
+
+
+ 图表 |
+ 根据表格内容生成图表 |
+
+
+ 字体 |
+ 颜色、大小 |
+
+
+ 背景 |
+ 颜色、上标、下标 |
+
+
+ 列表 |
+ Checklist |
+
+
+ 媒体 |
+ 音视频 |
+
+
+ 多种模式 |
+ 编辑预览 |
+ 双栏模式(支持同步滚动) |
+
+
+ 纯预览 |
+ 仅显示预览内容 |
+
+
+
+## 2.主要竞品概述
+
+### 2.1 目前主要的竞品
+
+确保所选竞品在技术实现和集成难度上具有可比性,我们精选了几款在社区中热度高、各项性能指标优秀、开源且具有良好可移植性的Web Markdown编辑器。
+
+我们将这些编辑器分为四个明确的类别:框架集成型编辑器、多功能Markdown编辑器、所见即所得(WYSIWYG)编辑器以及轻量级与高性能编辑器。
+
+> 各竞品的详情界面及链接展示见[[Competitive product display]]
+
+
+
+ 竞品编辑器分类与特点 |
+
+
+ 框架集成型编辑器-Vue.js 集成编辑器 |
+ 专为特定前端框架设计,提供与框架紧密集成的特性。 |
+ mavonEditor |
+
+
+ Vue Markdown Editor |
+
+
+ md-editor-v3 |
+
+
+ 多功能Markdown编辑器-图表与数学公式支持 |
+ 提供除基本Markdown编辑功能外的额外特性,如图表支持、数学公式等。 |
+ ByteMD(支持Mermaid和KaTeX) |
+
+
+ Editor.md(支持图表、数学公式、流程图) |
+
+
+ 所见即所得(WYSIWYG)编辑器 |
+ 提供类似于传统富文本编辑器的所见即所得编辑体验。 |
+ tui.editor |
+
+
+ 轻量级与高性能编辑器 |
+ 注重性能和加载速度,适合对性能要求较高的应用场景。 |
+ Vditor |
+
+
+
+### 2.2 竞争力分析
+
+鉴于项目均为开源编辑器,故对各竞品的竞争力采用star及forks数量对比来进行项目热度分析、采用last commit距今时间、issue及pull requsets数量对比来进行项目的活跃度分析,排序对比如下:
+
+**热度分析:**
+![](https://s2.loli.net/2024/10/11/8VkE9H1gBwDvJeO.png)
+
+**活跃度分析:**
+![image.png](https://s2.loli.net/2024/10/11/NpyjMFPJIlgmxot.png)
+
+
+在热度分析中,为了避免因项目年限不同而导致的stars和forks数量积累的偏差,我们选择日均stars数量作为一个更为客观的衡量指标。这一指标有效地平衡了项目年限的影响,为我们提供了一个更加公平的比较基准。
+
+根据这一指标,我们生成了以下排序图表,它直观地展示了各个Markdown编辑器项目的全球受欢迎程度。
+
+
+![image.png](https://s2.loli.net/2024/10/11/2zm8f1hPnus9CAI.png)
+
+从图表中可以明显看出,一些新兴项目虽然上线时间不长,但它们的日均stars数量已经超越了一些老牌项目,这表明了它们在短时间内迅速获得了开发者社区的认可和支持。
+
+通过综合考量热度、活跃度指标,我们可以得出结论:
+
+对于Editor.md和tui.editor这样的成熟Markdown编辑器,它们凭借九年多的市场沉淀,已经建立了坚实的用户基础和良好的口碑。这些项目不仅在功能上日臻完善,而且在用户体验和社区支持方面也表现出色,这使得它们在开源markdown编辑器中保持了较高的活跃度和热度。
+
+然而,在上线时间不足五年的众多新兴markdown编辑器中,Cherry Markdown通过积极的社区参与和持续的创新,凭借创新的语法功能特性和较高的拓展能力,也获得了众多开发者的青睐,在综合热度增长和活跃度指标上均位列第一,显示出其强大的市场竞争力和发展潜力。
+
+## 3.语法能力对比
+
+### 3.1 语法支持及特性
+
+| 编辑器名称 | Markdown基础语法 | 额外语法特性 |
+| ------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| ByteMD | ✅ | 扩展语法如代码高亮、数学公式和Mermaid流程图等 |
+| Mavon-Editor | ✅ | 图片上传事件和图片保存事件 |
+| Editor.md | ✅ | 实时预览、图像上载、代码折叠、搜索替换 |
+| Vditor | ✅ | GFM 语法:表格、任务列表项、删除线、自动链接、XSS 过滤、脚注、ToC、自定义标题 ID;图表语法:流程图、时序图、甘特图(Mermaid 支持)、Graphviz Graphviz (图形可视化)、折线图、饼图、脑图( ECharts 支持);五线谱( abc.js 支持);数学公式:数学公式块、行级数学公式(通过 MathJax 和 KaTeX 支持) |
+| Vue-Markdown-editor | ✅ | - |
+| Md-editor-v3 | ✅ | 深色主题、Prettier美化内容、直接渲染文章、图片粘贴上传、Mermaid图表和KaTeX数学公式 |
+| tui.editor | ✅ | 语法高亮、图形展示、UML绘制 |
+| Cherry Markdown | ✅ | 图片尺寸/阴影/边框/圆角;信息面板/手风琴;字体颜色/字体大小/对齐方式;图片缩放、表格自动生成图表、字体颜色和大小调整、音视频嵌入 |
+
+所有列出的编辑器都支持 Markdown 的基础语法,这意味着它们都能够处理标准的 Markdown 文本格式。
+
+此外,相比于其他竞品,Cherry Markdown的额外语法支持选项,这可以极大简化创作流程,增强markdown文本可读性,使得其在文档的视觉呈现上具有更多的自定义能力,适合需要对文档外观进行精细控制的用户。然而由于缺乏语法支持,Cherry Markdown编辑器的额外语法支持也可能导致与其他编辑器不兼容的问题。
+
+### 3.2 兼容性
+
+| 特性 | Cherry Markdown Editor | ByteMD | Mavon-Editor | Editor.md | Vditor | Vue-Markdown-editor | Md-editor-v3 | tui.editor |
+| -------------- | ------------------------------- | ------------------- | ------------ | ------------------------ | ----------------------------------------- | ------------------- | --------------------------- | ---------- |
+| 框架兼容性 | 不依赖特定框架 | 专为现代JavaScript框架设计 | 专为Vue.js设计 | 作为一个独立的组件 | - | 专为Vue.js设计 | 专为Vue3开发 | 作为一个独立的编辑器 |
+| 移动端兼容性 | 编辑栏和预览栏浏览良好,工具栏右侧部分溢出,无法浏览。布局美观 | 只能浏览编辑栏,工具栏无缺失,布局美观 | - | 编辑栏和预览栏浏览良好,工具栏无缺失,布局不美观 | 编辑栏浏览良好,工具栏无缺失,布局美观。但是切换到预览栏目后无法滑动浏览,浏览异常 | - | 只能浏览编辑栏,工具栏右侧部分溢出,无法浏览,布局正常 | - |
+| 服务器端渲染(SSR)兼容性 | 支持 | 支持 | - | - | - | - | - | - |
+| 编辑模式兼容性 | 所见即所得、分屏 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 | 所见即所得 |
+
+
+> 移动端兼容测试机型:iPhone13,仅测试了有在线演示链接的编辑器
+
+综上,Cherry Markdown相对比竞品,在各方面的兼容性十分优秀。同时,各测试的编辑器都在移动端存在浏览缺陷导致使用异常,但是Cherry Markdown仅存在工具栏部分溢出问题,可参考ByteMD、Editor.md、Vditor的解决方案,将工具栏进行响应式布局优化。
+## 4.功能对比
+
+| 编辑器名称 | 功能特性 |
+| ------------------- | ----------------------------------------------------------------------------------------------------------- |
+| Cherry Markdown | 复制 Html 粘贴成 MD 语法、经典换行&常规换行、多光标编辑、图片尺寸、导出长图/pdf、float toolbar 在新行行首支持快速工具栏、bubble toolbar 选中文字时联想出快速工具栏 |
+| ByteMD | 轻量级,不依赖于任何UI框架运行时bundle,易于适应其他库/框架插件系统,可扩展基本Markdown语法,如代码高亮、数学公式、Mermaid流程图等 |
+| Mavon-Editor | 支持代码高亮、数学公式、表格、流程图、序列图、UML图、思维导图等、提供丰富的功能,包括图片点击预览、复制HTML粘贴成Markdown等 |
+| Editor.md | 支持多种语言、代码高亮、图片上传、预览功能、支持自定义工具栏和快捷键、支持Markdown和HTML混排 |
+| Vditor | 所见即所得/即时渲染/分屏预览模式;多媒体、语音阅读、标题锚点、代码高亮及复制、graphviz、PlantUML 渲染;内置安全过滤、导出、图片懒加载、任务列表、多平台预览、多主题切换、复制到微信公众号/知乎功能 |
+| Vue-Markdown-editor | 支持Markdown和HTML编辑、提供自定义插件和工具栏选项、支持代码高亮和图表渲染 |
+| Md-editor-v3 | 支持基础的Markdown编辑和预览、支持图片上传、裁剪图片上传、支持暗黑主题和多光标编辑、提供API参考文档,支持内容格式化和屏幕全屏 |
+| tui.editor | 所见即所得的Markdown编辑器、实时预览、语法高亮、自动生成目录索引、支持表格、UML图和图表等内容的编辑、支持多种主题和样式 |
+Cherry Markdown Editor在自定义功能和插件系统方面表现出色,具有别的浏览器没有的功能比如导出长图、信息面板/手风琴等等,非常适合需要高度定制化和编程功能的用户。
+
+而其他编辑器也各有特点,比如Vditor可以实现复制到微信公众号和知乎功能,可以满足不同的使用场景和需求,Cherry Markdown编辑器在未来为了优化用户体验,也可以考虑引入同类竞品的个性化功能,打破功能垄断,提升竞争力。
+
+## 5.性能对比
+
+### 5.1 测试环境描述
+
+为了确保性能测试的准确性和可比性,本次测试在相同的硬件和网络环境下进行。测试环境的具体配置如下:
+
+| 规格 | 详情 |
+| ---- | ------------------ |
+| 操作系统 | macOS Ventura 13.0 |
+| 处理器 | Apple M1 Pro 芯片 |
+| 内存 | 16GB |
+| 存储 | 1TB 固态硬盘 |
+| 网络 | 500Mbps 光纤宽带 |
+
+所有测试均在干净的环境中进行,关闭了所有非测试相关的应用程序,以避免外部因素对测试结果的影响。
+
+### 5.2 局部渲染和更新
+
+| 编辑器名称 | 局部渲染支持 | 局部更新支持 | 描述 |
+| ---------------------- | ------ | ------ | -------------------------------------------------------- |
+| Cherry Markdown Editor | ✅ | ✅ | 利用virtual dom机制,判断用户变更段落,只渲染变更段落,实现局部更新,减少浏览器DOM操作,提高性能。 |
+| ByteMD | ✅ | ✅ | 支持局部渲染和更新,通过插件系统和优化的DOM操作实现。 |
+| ==Mavon-Editor== | ❌ | ❌ | 目前不支持局部渲染和更新,每次编辑都会重新渲染整个文档。 |
+| Editor.md | ❌ | ❌ | 同样不支持局部渲染和更新,编辑时性能会受到一定影响。 |
+| Vditor | ✅ | ✅ | 支持局部渲染和更新,特别是在所见即所得模式下表现良好。 |
+| Vue-Markdown-editor | ❌ | ❌ | 作为Vue组件,目前不支持局部渲染和更新。 |
+| Md-editor-v3 | ✅ | ✅ | 支持局部更新,但效果不如Cherry Markdown Editor和Vditor。 |
+| tui.editor | ✅ | ✅ | 支持局部渲染和更新,性能表现良好。 |
+
+### 5.3 性能测试结果
+
+通过对比在各种场景下的页面渲染速度来对比各种markdown插件的性能,我们将测试场景细分为以下三个关键维度:篇幅长短、内容复杂度、以及渲染类型。
+
+
+
+ 维度 |
+ 类别 |
+ 描述 |
+
+
+ 篇幅长短 |
+ 1. 10kb以内 |
+ 适用于短小文档或文章的快速渲染。 |
+
+
+ 2. 10kb~100kb |
+ 适用于中等长度文档的渲染,平衡速度与功能。 |
+
+
+ 3. 100kb以上 |
+ 适用于长篇文档,重点测试处理大量数据时的性能。 |
+
+
+ 内容复杂度 |
+ 1. 纯文本 |
+ 仅包含基础文本内容,无额外Markdown语法元素。 |
+
+
+ 2. 复杂文本 |
+ 包含多种Markdown语法元素,如标题、列表、代码块等。 |
+
+
+ 渲染类型 |
+ 1.浏览 |
+ 重点测试文档浏览性能,适用于阅读场景。 |
+
+
+ 2. 编辑 |
+ 重点测试文档编辑时的实时渲染性能。 |
+
+
+
+接下来我们根据**三个维度**设计了**12种不同情景**进行性能测试,**最终根据各种场景下的性能进行打分,并得出最终得分**。具体的测试过程整理见[[[cherry markdown performance testing]]](https://github.com/Zerwolrod/cherry-markdown-competitor-analysis/blob/analysis/docs/cherry%20markdown%20performance%20testing.md),测试工程文件见[[[test]]](https://github.com/Zerwolrod/test)。
+
+![](https://s2.loli.net/2024/10/11/CiMSO5d9XZkKl17.png)
+![image.png](https://s2.loli.net/2024/10/11/Tk1K73bovqjHGRs.png)
+![image.png](https://s2.loli.net/2024/10/11/9uQK1wWnZe4NRMC.png)
+![image.png](https://s2.loli.net/2024/10/11/nl8xhYLI67DpU1M.png)
+![image.png](https://s2.loli.net/2024/10/11/9SYsNZ3lUoitW6u.png)
+![image.png](https://s2.loli.net/2024/10/11/b7HJOGluvDWwnke.png)
+![image.png](https://s2.loli.net/2024/10/11/cH5ykBwRza2QZDU.png)
+
+我们综合以上数据为各个markdown编辑器按照0-10打分可以得出以下结论:
+### 短篇简单评分
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|cherry-markdown|38.3|20.12|29.21|9.75|
+|tui.editor|47.05|38.29|42.67|9.45|
+|md-editor-v3|56.24|46.63|51.44|9.05|
+|mavonEditor|67.51|30.49|49.00|9.15|
+|Vue Markdown Editor|73.26|46.29|59.78|8.75|
+|Vditor|103.48|79.06|91.27|7.35|
+|Editor.md|330.33|326.64|328.49|3.75|
+|ByteMD|345.51|335.29|340.40|3.50|
+
+### 短篇复杂评分
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|cherry-markdown|38.3|20.12|29.21|9.75|
+|tui.editor|47.05|38.29|42.67|9.45|
+|md-editor-v3|56.24|46.63|51.44|9.05|
+|mavonEditor|67.51|30.49|49.00|9.15|
+|Vue Markdown Editor|73.26|46.29|59.78|8.75|
+|Vditor|103.48|79.06|91.27|7.35|
+|Editor.md|330.33|326.64|328.49|3.75|
+|ByteMD|345.51|335.29|340.40|3.50|
+
+### 中篇简单评分
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|tui.editor|38.88|39.78|39.33|9.65|
+|cherry-markdown|89.24|65.54|77.39|8.00|
+|Editor.md|92.56|755.26|428.91|4.75|
+|mavonEditor|110.56|95.83|103.20|7.00|
+|md-editor-v3|157.37|137.25|147.31|5.75|
+|ByteMD|170.46|153.12|161.79|5.25|
+|Vditor|192.4|86.38|139.39|5.90|
+|Vue Markdown Editor|198.25|104.62|151.44|5.40|
+
+### 中篇复杂评分
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|Editor.md|179.46|154.62|167.04|5.75|
+|tui.editor|189.93|139.65|164.79|5.90|
+|cherry-markdown|208.21|162.22|185.22|4.90|
+|Vue Markdown Editor|221.63|161.31|191.47|4.75|
+|md-editor-v3|245.13|162.36|203.75|4.45|
+|mavonEditor|262.63|201.51|232.07|4.20|
+|Vditor|291.28|308.86|300.07|3.50|
+|ByteMD|315.25|256.62|285.94|3.75|
+
+### 长篇简单评分
+
+|项目名称|浏览渲染时长(ms)|编辑渲染时长(ms)|平均时长(ms)|评分|
+|---|---|---|---|---|
+|Editor.md|672.52|1714.36|1193.44|2.90|
+|md-editor-v3|713.26|1624.16|1168.71|3.10|
+|cherry-markdown|782.28|2129.58|1450.93|2.45|
+|mavonEditor|831.41|1724.61|1278.01|2.75|
+|ByteMD|915.51|1815.24|1365.38|2.60|
+|Vue Markdown Editor|1153.15|2915.42|2034.29|1.95|
+|tui.editor|1457.76|2150.60|1804.18|2.10|
+|Vditor|1854.10|5167.83|3510.97|1.00|
+
+### 长篇复杂评分
+
+| 项目名称 | 浏览渲染时长(ms) | 编辑渲染时长(ms) | 平均时长(ms) | 评分 |
+| ------------------- | ---------- | ---------- | -------- | ---- |
+| Editor.md | 1152.67 | 1712.51 | 1432.59 | 2.50 |
+| Vditor | 1263.60 | 1937.27 | 1600.44 | 2.20 |
+| mavonEditor | 1415.25 | 2621.13 | 2018.19 | 1.95 |
+| tui.editor | 1486.27 | 1681.66 | 1583.97 | 2.25 |
+| Vue Markdown Editor | 1514.52 | 1262.14 | 1388.33 | 2.60 |
+| ByteMD | 1521.51 | 2611.25 | 2066.38 | 1.90 |
+| cherry-markdown | 1533.16 | 711.02 | 1122.09 | 3.30 |
+| md-editor-v3 | 2562.45 | 1523.51 | 2042.98 | 1.90 |
+
+> 注:由于测试小规模增删时间太短且要一直键盘操作,本测试的编辑速度是通过“向文本开头插入一段与原文本相同规模的文本的速度”来判断的。
+
+> 由于vditor有默认的一秒延迟,记录的时候直接-1s进行测量。
+
+## 6.安全对比
+
+对于Markdown编辑器,主要面对的安全风险包括跨站脚本攻击(XSS)和数据泄露问题。具体见[[markdown editor security risks]]。针对这些安全风险,我们对各竞品选取了防XSS攻击、用户数据隔离两个指标作为对比,以评估它们的安全性能。
+
+参考资料:
+https://portswigger.net/web-security/cross-site-scripting
+https://info.support.huawei.com/info-finder/encyclopedia/zh/DLP.html
+
+| 编辑器名称 | 防XSS攻击 | 用户数据隔离 | 备注 |
+| ---------------------- | ------ | ------ | -------------------------- |
+| Cherry Markdown Editor | ✅ | ✅ | 内置安全Hook,使用DomPurify进行过滤 |
+| ByteMD | ✅ | ✅ | 默认安全,正确处理XSS攻击 |
+| Mavon-Editor | ✅ | ✅ | 提供xssOptions配置,防止脚本注入 |
+| Editor.md | ✅ | ❌ | 需要额外的安全措施,如不加载外部JavaScript |
+| Vditor | ✅ | ✅ | 内置安全过滤,支持开关 |
+| Vue-Markdown-editor | ✅ | ✅ | 高度可定制化,支持自定义安全设置 |
+| Md-editor-v3 | ✅ | ✅ | 使用JSX和TypeScript开发,提供安全特性 |
+| tui.editor | ✅ | ✅ | 所见即所得,提供实时预览和语法高亮 |
+
+在防XSS攻击方面,大多数编辑器都提供了一定程度的支持,如Cherry Markdown Editor使用DomPurify进行过滤,ByteMD和Mavon-Editor也提供了相应的安全配置。Vditor和Vue-Markdown-editor则提供了内置的安全过滤和高度可定制化的安全设置。Md-editor-v3利用JSX和TypeScript的优势,提供了安全特性。
+
+除了Editor.md外,其他编辑器都提供了用户数据隔离支持。这表明大多数编辑器能够确保用户数据的隔离,防止潜在的数据泄露或污染。
+
+Cherry Markdown Editor 内置了安全钩子,通过过滤白名单以及使用 DomPurify 进行扫描过滤,以防止 XSS 攻击等安全问题。这些安全措施的实施有助于保护用户数据免受XSS攻击和数据泄露的风险,同时也符合了数据丢失防护(DLP)的最佳实践,如Microsoft Security所定义的。通过这些措施,Markdown编辑器能够在保护数据安全的同时,提供高效的编辑体验。
+
+## 7.拓展能力对比
+
+### 7.1 插件系统
+
+插件系统是扩展编辑器功能的重要方式,允许用户根据需要添加或修改编辑器的特定功能。以下是各编辑器在插件系统方面的表现:
+
+| 编辑器名称 | 插件数量 | 插件质量 | 备注 |
+| ---------------------- | ---- | ---- | ------------------------------------------------------------------------- |
+| Cherry Markdown Editor | 中 | 高 | 支持插件系统,提供钩子(hooks)和APIs,允许开发者注入自定义逻辑,支持多种样式主题选择。允许深度定制编辑器的外观和行为。 |
+| ByteMD | 多样 | 高 | 通过插件系统,可以进行一定程度的外观和行为定制。支持语法高亮、数学公式、Mermaid流程图等插件。轻量级、框架无关,支持SSR,内置XSS处理。 |
+| Mavon-Editor | 多样 | 中 | 主要针对Vue.js,外观定制灵活,但行为定制一般。支持自定义工具栏按钮,例如插入视频资源等。 |
+| Editor.md | 多样 | 中 | 提供了一些基本的定制选项,但API丰富度一般。使用JSX和TypeScript开发,适合Vue3。 |
+| Vditor | 多样 | 高 | 支持高度自定义,包括外观、行为以及扩展语言。支持自定义皮肤和主题,提供丰富的API接口和插件系统。 |
+| Vue-Markdown-editor | 有限 | 中 | 作为Vue组件,外观定制灵活,但行为定制受限于Vue生态。支持Markdown和HTML编辑,提供自定义插件和工具栏选项。 |
+| Md-editor-v3 | 中 | 中 | 支持高度自定义,包括主题切换、Prettier文本美化等。支持Vue3,使用TypeScript和JSX开发,支持国际化。 |
+| tui.editor | 多样 | 高 | 提供了所见即所得编辑体验,外观和行为定制灵活。支持Markdown和HTML编辑,提供多种API,支持实时预览、语法高亮、自动生成目录索引等功能。 |
+
+### 7.2 自定义功能
+
+自定义功能允许用户根据自己的需求调整编辑器的行为和外观。以下是各编辑器在自定义功能方面的表现:
+
+| 编辑器名称 | 外观定制 | API丰富度 | 备注 |
+| ---------------------- | ---- | ------ | -------------------------------------------------------------------------------------------- |
+| Cherry Markdown Editor | 高 | 高 | 支持插件系统,提供钩子(hooks)和APIs,允许开发者注入自定义逻辑,支持多种样式主题选择。允许深度定制编辑器的外观和行为。 |
+| ByteMD | 中 | 高 | 通过插件系统,可以进行一定程度的外观和行为定制。支持语法高亮、数学公式、Mermaid流程图等插件。轻量级、框架无关,支持SSR,内置XSS处理。社区和个人开发者提供了丰富的自定义主题 |
+| Mavon-Editor | 高 | 中 | 主要针对Vue.js,外观定制灵活,但行为定制一般。支持自定义工具栏按钮,例如插入视频资源等。 |
+| Editor.md | 低 | 低 | 提供了一些基本的定制选项,但API丰富度一般。使用JSX和TypeScript开发,适合Vue3。 |
+| Vditor | 高 | 高 | 支持高度自定义,包括外观、行为以及扩展语言。支持自定义皮肤和主题,提供丰富的API接口和插件系统。 |
+| Vue-Markdown-editor | 高 | 中 | 作为Vue组件,外观定制灵活,但行为定制受限于Vue生态。支持Markdown和HTML编辑,提供自定义插件和工具栏选项。 |
+| Md-editor-v3 | 高 | 高 | 支持高度自定义,包括主题切换、Prettier文本美化等。支持Vue3,使用TypeScript和JSX开发,支持国际化。 |
+| tui.editor | 高 | 高 | 提供了所见即所得编辑体验,外观和行为定制灵活。支持Markdown和HTML编辑,提供多种API,支持实时预览、语法高亮、自动生成目录索引等功能。 |
+![image.png](https://s2.loli.net/2024/10/11/DpnFdIfHVQewJ16.png)
+
+
+在插件系统和自定义评分中,我们的参考指标主要为插件数量和质量、外观定制程度、API丰富度四大标准。这些编辑器在自定义功能方面各有千秋,Cherry Markdown Editor和ByteMD以其插件系统和API丰富度而脱颖而出,支持开发者通过编写自定义插件来扩展编辑器的功能。允许开发者在运行时注入自定义逻辑,满足特定需求。适合需要高度定制化的场景。虽然相较于有很长时间积淀的老牌markdown编辑器项目的还具有一定的成长空间,但是在新兴的markdown编辑器中已展现出良好的拓展能力。
+
+## 8.引擎实现方式
+
+技术栈的选择对于一个项目至关重要,其不仅是构建应用的基石,更是影响应用性能、可扩展性和可维护性的关键因素。对于Markdown编辑器而言,技术栈的选择尤为精细,因为它需要在提供丰富功能的同时,确保用户体验的流畅性和编辑器本身的高效性。
+
+以下是我们对各Markdown编辑器技术栈的详细分析:
+
+| 编辑器名称 | 前端框架/库 | 渲染引擎 | 解析器 | 扩展机制 | 存储方式 | 备注 |
+| ---------------------- | ------ | --------------- | --------------- | ---- | ----- | ----------------------------------- |
+| Cherry Markdown Editor | 无 | 自定义 | 自定义 | API | 本地/远程 | 不依赖特定前端框架,使用纯JavaScript编写。 |
+| ByteMD | Svelte | 自定义(基于Svelte) | 基于remark和rehype | 插件系统 | 本地 | 轻量级、框架无关,支持 SSR,内置XSS处理。 |
+| Mavon-Editor | Vue.js | 自定义(基于Vue.js) | Markdown-it | 插件系统 | 本地 | 支持Vue2和Vue3,提供丰富的API和工具栏自定义。 |
+| Editor.md | jQuery | CodeMirror | Marked | 插件系统 | 本地 | 使用JSX和TypeScript开发,适合Vue3。 |
+| Vditor | 无 | 自定义(基于Electron) | 基于markdown-it | 插件系统 | 本地/远程 | 所见即所得编辑体验,高效且可扩展。 |
+| Vue-Markdown-editor | Vue.js | 无 | 无 | 无 | 本地 | Vue组件,简单易用。 |
+| Md-editor-v3 | Vue.js | CodeMirror | marked.js | 插件系统 | 本地 | 支持Vue3,使用TypeScript和JSX开发,支持国际化。 |
+| tui.editor | 无 | 自定义 | 自定义 | API | 本地 | 基于jQuery,支持Markdown和HTML编辑,提供多种API。 |
+
+Cherry Markdown不依赖于任何特定的前端框架,采用纯JavaScript开发,同时采用了模块化的架构设计,允许代码被组织成独立的、可重用的单元,从而提高了代码的可维护性和可扩展性。
+
+模块化架构还促进了功能隔离,使得各个模块可以独立开发和测试,允许开发者通过简单的API调用快速集成编辑器到各种应用场景中。
+
+## 9.二开难易程度
+
+由于文档和社区支持可以快速帮助开发者理解和使用API和插件系统,提供良好的学习交流平台,降低二开的阻碍,API易用程度和支持拓展语言则直接影响了二开的耗时和可行性。
+
+因此,在讨论二开难易程度时,我们将文档和社区支持、API易用性和拓展语言支持作为衡量二开难易程度的指标。其中,社区支持程度由之前的活跃度分析数据得出。
+
+| 编辑器名称 | 文档完整性 | 社区支持 | API易用性 | 扩展语言支持 | 备注 |
+| ---------------------- | ----- | ---- | ------ | ------------------------ | ------------------------------------------------------------------- |
+| Cherry Markdown Editor | 高 | 活跃 | 高 | 支持JavaScript | 提供了丰富的API文档和配置选项,支持多种编辑模式和插件系统,API设计直观,适用于需要高度定制化的场景 |
+| ByteMD | 高 | 活跃 | 高 | 支持JavaScript, TypeScript | 提供了详细的安装和使用指南,以及丰富的示例和插件支持。API易用,支持高度定制化。 |
+| Mavon-Editor | 中 | 活跃 | 中 | 支持JavaScript | 专为Vue.js框架设计的Markdown编辑器,提供了基本的文档和示例,但社区支持相对较少,对于Vue开发者来说学习难度较低。 |
+| Editor.md | 高 | 中 | 中 | 支持JavaScript | 支持多种主题和插件,拥有活跃的社区和良好的官方支持,适用于多种应用场景。API一般,定制化难度适中。 |
+| Vditor | 高 | 活跃 | 高 | 支持JavaScript, TypeScript | 提供了详细的文档和丰富的示例,社区支持良好。API设计优秀,定制化灵活,学习曲线低。 |
+| Vue-Markdown-editor | 中 | 中 | 中 | 支持JavaScript | Vue组件简单易用,但文档和社区支持相对较少。作为Vue组件,对于Vue开发者来说使用简单。易于集成 |
+| Md-editor-v3 | 中 | 低 | 中 | 中 | 社区讨论及支持不足,但文档攥写比较规范,清晰易懂 |
+| tui.editor | 高 | 活跃 | 高 | 支持JavaScript | 基于jQuery,支持Markdown和HTML编辑,提供了详细的文档和API,社区支持良好。API设计优秀,定制化灵活,学习曲线低。 |
+
+![image.png](https://s2.loli.net/2024/10/11/Sg27GPtZNfUA4aq.png)
+
+
+综上,cherry-markdonw的提供了较为丰富的文档和良好的社区支持,二开难度小,易于用户进行自定义开发。
+
+## 10.总结
+
+在对Cherry Markdown Editor及其主要竞品进行全面分析后,我们可以得出以下结论:
+
+Editor.md和tui.editor等成熟项目凭借多年的市场沉淀,维持了较高的活跃度和热度。而Cherry Markdown Editor在新兴项目中表现出色,日均stars数量超越了一些老牌项目,显示出其强大的市场竞争力和发展潜力。
+
+在功能方面,CherryMarkdown支持丰富的额外语法特性,如图片尺寸调整、信息面板等,同时在自定义功能和插件系统方面表现出色,适合需要高度定制化的用户。移动端出现了工具栏右侧溢出问题,可以考虑进行优化。
+
+而在性能上,各编辑器在加载时间、首次渲染时间和编辑操作响应时间上表现相近,CherryMarkdownEditor在局部渲染和更新方面表现良好。
+
+安全方面,它提供了防XSS攻击和用户数据隔离的支持,通过内置安全钩子和DomPurify过滤,确保了编辑器的安全性。
+
+拓展能力方面,CherryMarkdownEditor的插件系统和APl丰富度表现优秀,提供了丰富的自定义选项和扩展语言支持,适合开发者进行二次开发。在未来也可也借鉴学习其他优秀开源markdown编辑器的功能,提高产品竞争力。
+
+CherryMarkdown采用纯JavaScript开发,模块化的架构设计提高了代码的可维护性和可扩展性。Cherry MarkdownEditor提供了丰富的文档和良好的社区支持,降低了二次开发的难度,易于用户进行自定义开发。
+
+综上,Cherry Markdown Editor在多个维度上展现出了强大的竞争力,特别是在语法能力、功能丰富度、安全性能和拓展能力方面。虽然作为一个较新的项目,它在社区支持和成熟度方面还有提升空间,但其创新的特性和积极的社区参与表明,它有潜力成为市场上的领先Markdown编辑器之一。对于寻求高度定制化和现代化编辑体验的用户来说,Cherry Markdown Editor无疑是一个值得考虑的选择。
+
+![image.png](https://s2.loli.net/2024/10/11/RYmjalLJbMAPf6S.png)
+
+
+
+以上为我的本次竞品分析项目内容,请各位导师批评指正。
diff --git a/docs/cherry markdown performance testing.md b/docs/cherry markdown performance testing.md
new file mode 100644
index 000000000..262503f94
--- /dev/null
+++ b/docs/cherry markdown performance testing.md
@@ -0,0 +1,95 @@
+## 测试方法:
+
+通过对比在各种场景下的页面渲染速度来对比各种markdown插件的性能,我们将测试场景细分为以下三个关键维度:篇幅长短、内容复杂度、以及渲染类型。
+
+
+
+ 维度 |
+ 类别 |
+ 描述 |
+
+
+ 篇幅长短 |
+ 1. 10kb以内 |
+ 适用于短小文档或文章的快速渲染。 |
+
+
+ 2. 10kb~100kb |
+ 适用于中等长度文档的渲染,平衡速度与功能。 |
+
+
+ 3. 100kb以上 |
+ 适用于长篇文档,重点测试处理大量数据时的性能。 |
+
+
+ 内容复杂度 |
+ 1. 纯文本 |
+ 仅包含基础文本内容,无额外Markdown语法元素。 |
+
+
+ 2. 复杂文本 |
+ 包含多种Markdown语法元素,如标题、列表、代码块等。 |
+
+
+ 渲染类型 |
+ 1.浏览 |
+ 重点测试文档浏览性能,适用于阅读场景。 |
+
+
+ 2. 编辑 |
+ 重点测试文档编辑时的实时渲染性能。 |
+
+
+
+接下来我们根据**三个维度**设计了**12种不同情景**进行性能测试,**最终根据各种场景下的性能进行打分,并得出最终得分**。
+
+## 测试过程截图(部分)
+
+![](https://s2.loli.net/2024/10/11/dGsEy4l9ZpoFAfh.png)
+![aad27171186c6361d3aa3250f49b1ac.png](https://s2.loli.net/2024/10/11/KQEPkcpsgCji9DO.png)
+![06ac019e8f40c5c37bc6b488748aeaa.png](https://s2.loli.net/2024/10/11/N6o3QFjpveswXfB.png)
+
+![06ac019e8f40c5c37bc6b488748aeaa.png](https://s2.loli.net/2024/10/11/qzlhIn9xUr5TRG1.png)
+![0ebbac09b7a03a49feb65ff761f2085.png](https://s2.loli.net/2024/10/11/5OcRHW9AdLI1EiJ.png)
+![c56e1850360d996846294d6c1bb9a46.png](https://s2.loli.net/2024/10/11/G5pdYxrQbfTlPDB.png)
+![10d0b0b2cd61a029aaa8b85baad1315.png](https://s2.loli.net/2024/10/11/Z8Fg4rO7Pi6f5xv.png)
+![](https://s2.loli.net/2024/10/11/Z8Fg4rO7Pi6f5xv.png)
+![5eca229b78baf180c871d20e0bf59fe.png](https://s2.loli.net/2024/10/11/nRiN7ckELDsU8Pl.png)
+![a93d605d6b1432bf4dcb5d1e58866d1.png](https://s2.loli.net/2024/10/11/F1kZH3Uzrd7gxfI.png)
+![](https://s2.loli.net/2024/10/11/F1kZH3Uzrd7gxfI.png)
+
+![66bc320b8efb40db698513193121612.png](https://s2.loli.net/2024/10/11/mgOVHFt9AKlT3Ms.png)
+![cc39dc5f104f0f7375dd9541abb3db5.png](https://s2.loli.net/2024/10/11/phOVUM8xy4PA7Xm.png)
+![f4fe19ada922b47a39c75b30fbc87bb.png](https://s2.loli.net/2024/10/11/c2ld4aTgwpmztuI.png)
+
+![f4fe19ada922b47a39c75b30fbc87bb.png](https://s2.loli.net/2024/10/11/M34FQLiTbfa8rgq.png)
+![16f75dc83e4d86cf52c5ef129896cc6.png](https://s2.loli.net/2024/10/11/DIfQwKTCd5uNUis.png)
+
+![f216f700e903a2ef7d149a530864971.png](https://s2.loli.net/2024/10/11/7FR3DyXPqfVC4A9.png)
+
+![f216f700e903a2ef7d149a530864971.png](https://s2.loli.net/2024/10/11/vyWXiKtE2hOQYNf.png)
+![4c92b574d8659dcf5a3c14fe44a7ae0.png](https://s2.loli.net/2024/10/11/aC6c2NQAwkL95Il.png)
+![703f866bea590587e88dc939301a3c2.png](https://s2.loli.net/2024/10/11/G2VIOxPZHtFqm69.png)
+![3623e2a173d7753096c17cb29c22a9d.png](https://s2.loli.net/2024/10/11/bMR36FUksVtelgj.png)
+![](https://s2.loli.net/2024/10/11/bMR36FUksVtelgj.png)
+![b188c5d359502d84a9afdb9699007df.png](https://s2.loli.net/2024/10/11/fsdgWaGhMYoFDCb.png)
+
+
+![154822676f1773c7e04bcd29f2d0464.png](https://s2.loli.net/2024/10/11/rUOlC1ozKqNcIiS.png)
+![](https://s2.loli.net/2024/10/13/WirCBVeLclpNJfx.png)
+![](https://s2.loli.net/2024/10/13/aZ8ub1G4oeTBRlF.png)
+![](https://s2.loli.net/2024/10/13/corXBp8bHEiTISG.png)
+![](https://s2.loli.net/2024/10/13/Iiv9cy4qSlXrj8C.png)
+![](https://s2.loli.net/2024/10/13/Ezlrp5TGXOVv9us.png)
+![](https://s2.loli.net/2024/10/13/GhNjgAZ3WU1Y9Vk.png)
+![](https://s2.loli.net/2024/10/13/gNABXs76eodpZVx.png)
+![](https://s2.loli.net/2024/10/13/ZyTeJVjFHG8p2wt.png)
+![](https://s2.loli.net/2024/10/13/HgEld9aoBtj8pbA.png)
+![](https://s2.loli.net/2024/10/13/qyRA1DQaFmLeN4E.png)
+![](https://s2.loli.net/2024/10/13/sCEOSw3Z4rMVPKk.png)
+![](https://s2.loli.net/2024/10/13/P9cK4B2JQykCbTs.png)
+![](https://s2.loli.net/2024/10/13/d7wEGR6itSNylru.png)
+![](https://s2.loli.net/2024/10/13/Q7H9cxfCG3uwsEe.png)
+![](https://s2.loli.net/2024/10/13/v2KmC5OnHQly67Z.png)
+![](https://s2.loli.net/2024/10/13/qH9ELofd6XSnR73.png)
+![](https://s2.loli.net/2024/10/13/SzZFt4UlBKcDqwO.png)
diff --git a/docs/markdown editor security risks.md b/docs/markdown editor security risks.md
new file mode 100644
index 000000000..962feacc1
--- /dev/null
+++ b/docs/markdown editor security risks.md
@@ -0,0 +1,23 @@
+### 跨站脚本攻击(XSS)
+
+Markdown编辑器在渲染Markdown内容为HTML时,如果没有正确处理用户输入,可能会将恶意脚本作为正常内容渲染。攻击者通过在Markdown内容中注入恶意JavaScript代码,当其他用户查看转换后的HTML内容时,恶意脚本在用户浏览器中执行导致XSS攻击。
+
+```markdown
+
+```
+
+这段Markdown内容在被转换为HTML并渲染时,会尝试加载一个不存在的图片资源,并在加载失败时执行`onerror`事件处理器中的JavaScript代码,弹出一个包含恶意信息的警告框。
+
+### 数据泄露
+
+某些编辑器支持加载外部资源,如图片、样式表或完整的网页(即`