CxMarkdown 是一个基于 Avalonia 12 和 AtomUI 6 构建的跨平台所见即所得 Markdown 编辑器,目标是提供接近 Typora 的原生桌面编辑体验。
项目当前重点是自研 Markdown 编辑控件:用户看到渲染后的文本,同时光标定位、删除、选择、复制粘贴、回车、键盘导航等操作都映射回 Markdown 源码位置。
- 原生 Avalonia 桌面应用,面向 Windows 和 macOS 跨平台使用。
- 基于 AtomUI 6 的控件风格,整体遵循 Ant Design 方向。
- 自研
InlineMarkdownEditor,支持所见即所得 Markdown 文档流编辑。 - 支持标题、段落、引用、无序列表、有序列表、任务列表。
- 支持链接、图片、粗体、斜体、删除线、行内代码、转义字符。
- 支持代码块、表格、脚注、目录、HTML 嵌入、Emoji shortcodes。
- 支持行内数学和块级数学公式。
- 支持源码模式和所见即所得模式切换。
- 支持最近文档、自动保存、打开/保存和发布脚本。
- 包含编辑器行为、解析、粘贴、性能和发布相关测试。
- .NET 8
- Avalonia 12
- AtomUI 6
- Markdig
- CommunityToolkit.Mvvm
- Sylinko.CSharpMath.Avalonia
dotnet restore
dotnet build
dotnet rundotnet run --project CxMarkdown.Tests\CxMarkdown.Tests.csproj.\scripts\publish.ps1 -RuntimeIdentifier win-x64
.\scripts\publish.ps1 -RuntimeIdentifier osx-x64
.\scripts\publish.ps1 -RuntimeIdentifier osx-arm64仓库内置了 Velopack 打包 workflow:.github/workflows/release.yml。
推送 tag 后会自动构建并打包 Windows、Linux 和 macOS 版本:
git tag v0.1.0
git push origin v0.1.0也可以在 GitHub Actions 页面手动执行 Release Packages,并填写 tag_name,例如 v0.1.0。workflow 会创建或更新对应 GitHub Release。
当前打包目标:
win-x64linux-x64osx-x64osx-arm64
atomui/ 目录是本地下载的 AtomUI 源码,仅用于开发参考,不属于 CxMarkdown 仓库内容,因此已在 .gitignore 中排除。
bin/、obj/、.qoder/、IDE 缓存和发布产物也不会提交到仓库。
CxMarkdown 目前处于早期开发阶段,核心编辑控件已经具备原型能力,后续会继续围绕 Typora 式编辑体验、复杂源码映射、大文档性能、输入法、撤销重做和跨平台一致性持续打磨。