6.MarkDown
| 项目 | 徽章 | 说明 |
|---|---|---|
| Yank Note | 在线体验 文件目录、分屏预览、插件拓展 | |
| wj-markdown-editor | 轻量、强大的 md 编辑器 | |
| hedgedoc | 基于网页、自托管的协作式 markdown 编辑器,支持分屏预览 | |
| dillinger | 在线 md 编辑器,分屏预览 | |
| Arya | 在线 Markdown 编辑器 | |
| md | 适配微信的 Markdown 编辑器 | |
| 微信公众号markdown排版工具 | mardown 官网网页编辑器 | 适配微信,分屏预览 |
| markdown-online-editor | 在线 Markdown 编辑器 | |
| joplin | 笔记应用,全平台同步 资源占用高 文档存储在软件数据内,没有独立文件 |
|
| ghostwriter | 不能导出pdf | |
| mdx-notes | 比较简陋,web版 | |
| Archive-Markdown-Editor | 独创.mdz 格式绑定多媒体文件 还比较简陋 |
|
| retext | 自行打包,发布到PyPi 更新频率低,还有不少问题 |
|
| markor | Android | |
| tui.editor | JavaScript Markdown 编辑器组件库 | |
| milkdown | JavaScript 库 | |
| mavonEditor | Vue.js 组件 | |
| react-markplus | React 组件 | |
| react-md-editor | React 组件 | |
| Raneto | Node.js 的 Markdown 驱动知识库维基 | |
| cherry-markdown | 腾讯开源的 Javascript Markdown 编辑器 运行在浏览器或服务端(NodeJs) |
总结和选择建议:¶
| 组件名称 | 类型 | 主要输出格式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|---|
streamlit-ace |
代码编辑器 | Markdown | 语法高亮,纯Markdown输出,稳定,可配置。 | 非WYSIWYG,需熟悉Markdown语法。 | 面向技术用户,需要高效、带有语法高亮的Markdown编写体验。 |
streamlit-quill |
富文本编辑器 (RTE) | HTML | WYSIWYG,用户友好,提供工具栏,功能强大。 | 主要输出HTML,转换为Markdown可能不完美,需额外库。 | 面向非技术用户,希望像Word一样编辑,对纯Markdown格式要求不高。 |
streamlit-code-editor |
代码编辑器 | Markdown | 出色语法高亮 (Monaco),类VS Code体验,纯Markdown输出,高度可配置。 | 非WYSIWYG,需熟悉Markdown语法,组件本身和底层库体积可能较大。 | 面向技术用户,特别是VS Code用户,追求极致的Markdown编辑体验。 |
如何选择:
- 对于非技术用户,追求“所见即所得”的体验: 考虑
streamlit-quill。但请注意其主要输出HTML,如果最终必须是Markdown,需要额外的转换处理,且转换效果可能不完美。 - 对于技术用户,熟悉Markdown语法,追求高效编写和语法高亮:
streamlit-ace和streamlit-code-editor是非常好的选择。streamlit-ace更轻量和广泛使用。streamlit-code-editor提供更接近VS Code的现代化体验,但在某些情况下可能体积稍大。
- 最简单的基础需求 (无需额外安装): 如果只是简单的Markdown输入和预览,并且用户愿意手动输入语法,
st.text_area配合st.markdown的实时预览方案仍然是最佳选择。
选择合适的组件取决于你的目标用户、对Markdown格式的严格要求(纯文本还是HTML可接受)、以及你愿意引入的额外依赖和复杂性。
streamlit-uiw-markdown-editor (你之前提到并尝试过的 @uiw/react-md-editor 的 Streamlit 封装)
streamlit-ace (封装了 Ace Editor)