Carta 开源项目教程
1、项目介绍
Carta 是一个轻量级、快速且可扩展的 Svelte Markdown 编辑器和查看器。它由 unified、remark 和 rehype 提供支持,适用于现代开发环境。Carta 不包含代码编辑器,而是一个带有语法高亮、快捷键和其他功能的 textarea。
主要特性
- Markdown 语法高亮:支持 Shiki 进行语法高亮。
- 工具栏:可扩展的工具栏。
- 键盘快捷键:可扩展的键盘快捷键。
- 插件支持:支持超过 150 个插件。
- 滚动同步:支持滚动同步功能。
- 无障碍友好:对无障碍访问友好。
- SSR 兼容:支持服务器端渲染。
- KaTeX 支持:通过插件支持 KaTeX。
- Slash 命令:通过插件支持 Slash 命令。
- Emojis 支持:支持 Emojis,并包含搜索功能。
- TikZ 支持:通过插件支持 TikZ。
- 附件支持:通过插件支持附件。
- 锚链接:支持在标题中使用锚链接。
- 代码块语法高亮:通过插件支持代码块语法高亮。
- 嵌入组件:通过插件支持嵌入组件。
2、项目快速启动
安装
首先,确保你已经安装了 Node.js 和 npm。然后,通过以下命令安装 Carta 的核心包和插件:
npm install carta-md
npm install @carta-md/plugin-name
基本配置
在你的 Svelte 项目中,使用以下代码进行基本配置:
<script lang="ts">
import { Carta, MarkdownEditor } from 'carta-md';
import 'carta-md/default.css';
const carta = new Carta({
// 记得使用 sanitizer 防止 XSS 攻击
sanitizer: mySanitizer
});
</script>
<MarkdownEditor {carta} />
<style>
/* 或者在全局样式表中 */
/* 设置你的等宽字体(必须确保编辑器正常工作) */
:global(carta-font-code) {
font-family: '你的等宽字体', monospace;
font-size: 1.1rem;
}
</style>
运行项目
在项目根目录下运行以下命令启动项目:
npm run dev
3、应用案例和最佳实践
案例一:博客编辑器
Carta 可以作为博客平台的 Markdown 编辑器,提供丰富的功能和良好的用户体验。通过集成插件,可以实现代码高亮、数学公式显示、Emoji 插入等功能。
案例二:文档编辑器
在企业内部文档管理系统中,Carta 可以作为文档编辑器,支持多人协作编辑和版本控制。通过插件支持,可以实现附件上传、锚链接、代码块高亮等功能。
最佳实践
- 插件选择:根据项目需求选择合适的插件,避免不必要的功能冗余。
- 性能优化:在服务器端渲染时,可以通过 Vite 配置移除 Shiki,减少服务器负担。
- 无障碍优化:确保编辑器对无障碍访问友好,提升用户体验。
4、典型生态项目
生态项目一:unified
unified 是一个用于处理文本的接口,支持 Markdown 和 HTML 的解析、转换和渲染。Carta 基于 unified 构建,提供了强大的文本处理能力。
生态项目二:remark
remark 是一个用于处理 Markdown 的插件系统,支持丰富的插件扩展。Carta 通过 remark 支持超过 150 个插件,提供了强大的扩展能力。
生态项目三:rehype
rehype 是一个用于处理 HTML 的插件系统,支持 HTML 的解析、转换和渲染。Carta 通过 rehype 支持 HTML 的渲染和处理,提供了强大的 HTML 处理能力。
通过这些生态项目的支持,Carta 能够提供丰富的功能和良好的用户体验,适用于各种现代开发环境。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考