Markdown as Database 的原生编辑器与模板渲染平台。
HTML 难改——结构、样式、内容全混在一起,人改麻烦,Agent 改也要理解整个文件。
解法:把内容从 HTML 里剥离出来,放进 markdown。HTML 变成纯模板,markdown 变成数据库。改内容只改 markdown,完全不碰 HTML。
- 内容层:
.md文件,字段固定,人和 Agent 都能轻松编辑 - 模板层:各种 HTML 模板(PPT、游戏化界面、博客、简历、产品落地页……)
- ColaMD:连接两者的工具,也是这个生态的入口
一份 markdown,多种渲染形态。未来第三方可以基于同一份 markdown 做自己的模板。
Markdown 不只是文档,而是结构化内容的数据源。
- Markdown = 数据:用固定字段(frontmatter + 约定的 section 结构)承载内容,Agent 只需按字段改内容
- HTML 模板 = 视图:模板负责样式、动效、交互,不关心内容
- 解耦:换模板就是换皮,换内容不影响模板
- 简单约定优先:宁可让 markdown 字段固定一些,也不要让模板去猜语义
这是 ColaMD 的第一原则。每增加一个 UI 元素、一个功能、一行代码,都要问:这是绝对必要的吗?默认答案是否。
- 不要工具栏(用户会用快捷键和 Markdown 语法)
- 不要常驻侧边栏(打开文件时显示所在目录;无文件时默认显示文稿目录,可 ⌘\ 隐藏)
- 不要状态栏
- 界面只有:标题栏(拖拽用)+ 编辑器 + 文件列表面板
- 追求极致的简单,一个功能做到极致
- 文件热更新(核心卖点)— 外部 Agent 修改 .md 时自动刷新,实时看到 Agent 的工作
- 所见即所得 — 输入 Markdown 即刻渲染为富文本
- 文件列表面板 — 打开文件时显示所在目录的 Markdown 文件;无文件时默认显示文稿目录;支持轻量目录浏览、点击切换,Agent 新建/删除文件实时刷新
- 主题系统 — CSS 主题,可导入自定义主题
- 导出 — PDF、HTML
- 图标统一使用线性 SVG:功能图标不使用 Unicode 字符、Emoji 或系统字体图标代替。
- 线条统一:默认
stroke-width: 1.3,使用stroke-linecap="round"和stroke-linejoin="round";同一组图标的尺寸、视口和视觉重量保持一致。 - 同类控件统一:文件、文件夹、返回上级等图标应使用同一套线性图标语言,不允许单独引入粗细或风格不同的符号。
- 图标必须可理解:每个图标按钮都要有 hover 文字说明,同时设置
title和aria-label;说明文字使用简洁、自然的中文。 - 优先复用样式:图标尺寸、间距、颜色和 hover 状态统一放在共享 CSS 中,避免在业务代码里写零散样式。
- 克制可见元素:遵循“如非必要,勿增实体”,只在确有功能价值时增加图标、按钮或提示。
- 每个大版本更新后:在
resources/demo/changelog.md追加本版更新内容,并更新对应的演示文件(Help 菜单 → 新功能演示,⌘⇧D) - 演示目录是可玩的 changelog:changelog.md 记录更新历史,同目录的演示文件让用户上手玩,而不是只读文字
- 演示页已接入菜单,打包时随 extraResources 发布
- 文案不使用破折号(
—):列表项用冒号分隔(- **功能**: 说明),正文改用逗号、冒号或括号 - 官网在
gh-pages分支,index.html是唯一入口(手写双语,data-en/data-zh属性 + 语言切换脚本) - 官网首页的功能卡片固定 9 张,主题区排在功能卡片之前;完整功能列表只写在 README 里
- 产品定位讲用户价值(免费、优雅、简单、文件永远是最新的),不以「AI Agent 原生」自我定义;Agent 只作为同步功能的一个举例
- 不做持久化工作区和全量文件树(只提供当前目录与默认文稿目录的轻量浏览)
- 不做知识库管理
- 不做云同步、协作编辑
- 不做笔记组织和标签系统
- 不加不必要的 UI 元素(工具栏、状态栏等)
- Electron(桌面跨平台)
- Milkdown(基于 ProseMirror 的 WYSIWYG Markdown 框架)
- TypeScript 严格模式
- electron-vite(构建)
- electron-builder(打包)
src/
├── main/ # Electron 主进程
│ └── index.ts # 窗口管理、文件 I/O、菜单、文件监听
├── preload/ # 安全 IPC 桥接
│ └── index.ts
└── renderer/ # 渲染进程
├── index.html
├── main.ts # 入口,连接编辑器和 IPC
├── editor/ # Milkdown 编辑器核心
├── themes/ # CSS 主题 + 主题管理器
└── env.d.ts
- TypeScript 严格模式
- 编辑器核心与 UI 解耦
- 主题 CSS 与编辑器逻辑完全分离
- 代码简洁,不过度设计
- 每个新功能先问:这是必要的吗?
- UI、图标、间距和交互规范详见 design.md,所有参与者提交界面改动前都应检查贡献清单。
- 产品与工程的判断标准汇总在 PRINCIPLES.md:稳定性优先、用户数据不可丢、先测量再优化、决策留痕等。
- 本地打包验证的实测数据与规矩见 docs/packaging.md:本地只打单架构
--dir,不在软链node_modules的 worktree 里打包。