@bytechain.cn/colamd 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release.yml +66 -0
- package/.trae/documents/fix-mermaid-colors-and-sankey.md +50 -0
- package/CLAUDE.md +87 -0
- package/LICENSE +21 -0
- package/README.md +540 -0
- package/README_CN.md +543 -0
- package/demo.md +486 -0
- package/dist/main/index.js +735 -0
- package/dist/preload/index.js +71 -0
- package/dist/renderer/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/renderer/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/renderer/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/renderer/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/renderer/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/renderer/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/renderer/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/renderer/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/renderer/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/renderer/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/renderer/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/renderer/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/renderer/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/renderer/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/renderer/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/renderer/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/renderer/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/renderer/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/renderer/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/renderer/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/renderer/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/renderer/assets/arc-tTbbM8LO.js +131 -0
- package/dist/renderer/assets/architectureDiagram-3BPJPVTR-CEgYow6c.js +8720 -0
- package/dist/renderer/assets/blockDiagram-GPEHLZMM-LHyVtPwW.js +3825 -0
- package/dist/renderer/assets/c4Diagram-AAUBKEIU-C1P1eJrf.js +2482 -0
- package/dist/renderer/assets/channel-upve91Tq.js +7 -0
- package/dist/renderer/assets/chunk-2J33WTMH-lag2vhq9.js +24 -0
- package/dist/renderer/assets/chunk-4BX2VUAB-BXJ8Ggh-.js +16 -0
- package/dist/renderer/assets/chunk-55IACEB6-CiBpxRa1.js +13 -0
- package/dist/renderer/assets/chunk-727SXJPM-ODeKQFXC.js +2016 -0
- package/dist/renderer/assets/chunk-AQP2D5EJ-BK7xJolB.js +1953 -0
- package/dist/renderer/assets/chunk-FMBD7UC4-BxpCZPtz.js +19 -0
- package/dist/renderer/assets/chunk-ND2GUHAM-CqqaU9Ue.js +116 -0
- package/dist/renderer/assets/chunk-QZHKN3VN-Biq_K124.js +19 -0
- package/dist/renderer/assets/classDiagram-4FO5ZUOK-Cq95X99o.js +23 -0
- package/dist/renderer/assets/classDiagram-v2-Q7XG4LA2-Cq95X99o.js +23 -0
- package/dist/renderer/assets/cose-bilkent-S5V4N54A-XasiD0bu.js +4942 -0
- package/dist/renderer/assets/cytoscape.esm-CpHeHM5e.js +30269 -0
- package/dist/renderer/assets/dagre-BM42HDAG-Nq84Gfx4.js +705 -0
- package/dist/renderer/assets/defaultLocale-B2RvLBDe.js +206 -0
- package/dist/renderer/assets/diagram-2AECGRRQ-DwuB1GWt.js +301 -0
- package/dist/renderer/assets/diagram-5GNKFQAL-C2tgeI1h.js +169 -0
- package/dist/renderer/assets/diagram-KO2AKTUF-D5KzjNBc.js +632 -0
- package/dist/renderer/assets/diagram-LMA3HP47-C12xHS1c.js +212 -0
- package/dist/renderer/assets/diagram-OG6HWLK6-CnxI9oEa.js +851 -0
- package/dist/renderer/assets/erDiagram-TEJ5UH35-D_uPaKwn.js +1227 -0
- package/dist/renderer/assets/flowDiagram-I6XJVG4X-B6q_1-tE.js +2332 -0
- package/dist/renderer/assets/ganttDiagram-6RSMTGT7-CFo7ifF9.js +3720 -0
- package/dist/renderer/assets/gitGraphDiagram-PVQCEYII-WSexHTnq.js +1373 -0
- package/dist/renderer/assets/graph-DyX_9f6d.js +1988 -0
- package/dist/renderer/assets/index-DW7LS8C1.js +72292 -0
- package/dist/renderer/assets/index-dyHEFYvY.css +2184 -0
- package/dist/renderer/assets/infoDiagram-5YYISTIA-DaeJdLRq.js +31 -0
- package/dist/renderer/assets/init-ZxktEp_H.js +16 -0
- package/dist/renderer/assets/ishikawaDiagram-YF4QCWOH-DDCZc35f.js +967 -0
- package/dist/renderer/assets/journeyDiagram-JHISSGLW-BEdmpAgl.js +1255 -0
- package/dist/renderer/assets/kanban-definition-UN3LZRKU-BEFtQcFb.js +1052 -0
- package/dist/renderer/assets/layout-CAJgQHdw.js +2610 -0
- package/dist/renderer/assets/linear-B2ggJ8Am.js +340 -0
- package/dist/renderer/assets/mindmap-definition-RKZ34NQL-DSxVgHB5.js +1180 -0
- package/dist/renderer/assets/ordinal-DSZU4PqD.js +76 -0
- package/dist/renderer/assets/pieDiagram-4H26LBE5-CwYoJBuL.js +246 -0
- package/dist/renderer/assets/quadrantDiagram-W4KKPZXB-CST9Fvg9.js +1344 -0
- package/dist/renderer/assets/requirementDiagram-4Y6WPE33-DtrH52jS.js +1204 -0
- package/dist/renderer/assets/sankeyDiagram-5OEKKPKP-ca1tPzJ_.js +1274 -0
- package/dist/renderer/assets/sequenceDiagram-3UESZ5HK-Dfp1EJZ7.js +4514 -0
- package/dist/renderer/assets/stateDiagram-AJRCARHV-Bha2QoNB.js +450 -0
- package/dist/renderer/assets/stateDiagram-v2-BHNVJYJU-DWgFUYu1.js +21 -0
- package/dist/renderer/assets/timeline-definition-PNZ67QCA-C3h_-OTj.js +1596 -0
- package/dist/renderer/assets/vennDiagram-CIIHVFJN-DFzjSrZi.js +2486 -0
- package/dist/renderer/assets/wardley-L42UT6IY-Cx-VbqoS.js +30699 -0
- package/dist/renderer/assets/wardleyDiagram-YWT4CUSO-S2D9XqX6.js +975 -0
- package/dist/renderer/assets/xychartDiagram-2RQKCTM6-Cfxigbts.js +1932 -0
- package/dist/renderer/index.html +19 -0
- package/docs/agent-diff-view.md +48 -0
- package/electron-builder.yml +57 -0
- package/electron.vite.config.ts +30 -0
- package/package.json +40 -0
- package/resources/entitlements.mac.plist +12 -0
- package/resources/icon.icns +0 -0
- package/resources/icon.png +0 -0
- package/resources/icon.svg +23 -0
- package/resources/templates/slides/icon.png +0 -0
- package/resources/templates/slides/slides-template.md +74 -0
- package/resources/templates/slides/template.html +535 -0
- package/scripts/afterPack.js +13 -0
- package/src/main/index.ts +881 -0
- package/src/preload/index.ts +110 -0
- package/src/renderer/editor/editor.ts +204 -0
- package/src/renderer/editor/html-view.ts +15 -0
- package/src/renderer/editor/plugins/index.ts +76 -0
- package/src/renderer/editor/plugins/math-plugin.ts +297 -0
- package/src/renderer/editor/plugins/mermaid-plugin-custom.css +431 -0
- package/src/renderer/editor/plugins/mermaid-plugin-dark.css +428 -0
- package/src/renderer/editor/plugins/mermaid-plugin-elegant.css +443 -0
- package/src/renderer/editor/plugins/mermaid-plugin-newsprint.css +208 -0
- package/src/renderer/editor/plugins/mermaid-plugin.css +111 -0
- package/src/renderer/editor/plugins/mermaid-plugin.ts +679 -0
- package/src/renderer/env.d.ts +7 -0
- package/src/renderer/index.html +18 -0
- package/src/renderer/main.ts +303 -0
- package/src/renderer/themes/base.css +509 -0
- package/src/renderer/themes/theme-manager.ts +40 -0
- package/themes/README.md +280 -0
- package/themes/elegant.css +664 -0
- package/themes/guizang.css +732 -0
- package/tsconfig.json +14 -0
- package/tsconfig.main.json +11 -0
- package/tsconfig.preload.json +11 -0
- package/tsconfig.renderer.json +12 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
include:
|
|
15
|
+
- os: macos-latest
|
|
16
|
+
platform: mac
|
|
17
|
+
- os: windows-latest
|
|
18
|
+
platform: win
|
|
19
|
+
- os: ubuntu-latest
|
|
20
|
+
platform: linux
|
|
21
|
+
|
|
22
|
+
runs-on: ${{ matrix.os }}
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
|
|
27
|
+
- uses: actions/setup-node@v4
|
|
28
|
+
with:
|
|
29
|
+
node-version: 20
|
|
30
|
+
|
|
31
|
+
- run: npm install
|
|
32
|
+
|
|
33
|
+
- run: npm run build
|
|
34
|
+
|
|
35
|
+
- name: Build distributables
|
|
36
|
+
run: npx electron-builder --${{ matrix.platform }} --publish never
|
|
37
|
+
|
|
38
|
+
- uses: actions/upload-artifact@v4
|
|
39
|
+
with:
|
|
40
|
+
name: dist-${{ matrix.platform }}
|
|
41
|
+
path: |
|
|
42
|
+
release/*.dmg
|
|
43
|
+
release/*.zip
|
|
44
|
+
release/*.exe
|
|
45
|
+
release/*.AppImage
|
|
46
|
+
release/*.deb
|
|
47
|
+
release/*.yml
|
|
48
|
+
if-no-files-found: ignore
|
|
49
|
+
|
|
50
|
+
release:
|
|
51
|
+
needs: build
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
permissions:
|
|
54
|
+
contents: write
|
|
55
|
+
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/download-artifact@v4
|
|
58
|
+
with:
|
|
59
|
+
path: artifacts
|
|
60
|
+
merge-multiple: true
|
|
61
|
+
|
|
62
|
+
- name: Create GitHub Release
|
|
63
|
+
uses: softprops/action-gh-release@v2
|
|
64
|
+
with:
|
|
65
|
+
files: artifacts/*
|
|
66
|
+
generate_release_notes: true
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Mermaid 配色修复 & Sankey 语法修复计划
|
|
2
|
+
|
|
3
|
+
## 根因分析
|
|
4
|
+
|
|
5
|
+
| 问题 | 根因 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| 2.4 状态图配色未跟随 | `getMermaidTheme()` 对自定义主题返回 `'default'`,Mermaid 使用自带的蓝色调色板,`themeVariables` 中的自定义颜色被部分覆盖 |
|
|
8
|
+
| 2.7 饼图配色未跟随 | 同上,`'default'` 主题的 cScale 颜色优先级高于 `themeVariables` 中传入的自定义 cScale |
|
|
9
|
+
| 2.12 四象限图配色未跟随 | 同上,`'default'` 主题对 quadrant chart 使用自带的颜色方案 |
|
|
10
|
+
| 2.13 XY Chart 字偏高 | CSS 中 `.titleText` 和 `.label text` 等选择器统一设置了 `translateY(-3px)`,对 XY Chart 的轴标签和标题来说偏移过大 |
|
|
11
|
+
| 2.15 Sankey 渲染报错 | Mermaid sankey-beta 解析器不支持 CSV 风格的双引号字段格式(`"ColaMD","Math Plugin",35`),解析时把引号当作转义文本导致语法错误 |
|
|
12
|
+
|
|
13
|
+
## 修复方案
|
|
14
|
+
|
|
15
|
+
### 1. `mermaid-plugin.ts` — 将自定义主题的 Mermaid theme 从 `'default'` 改为 `'base'`
|
|
16
|
+
|
|
17
|
+
**文件**: `src/renderer/editor/plugins/mermaid-plugin.ts`
|
|
18
|
+
**函数**: `getMermaidTheme()`
|
|
19
|
+
|
|
20
|
+
**改动**: 当检测到 `theme-custom` 且非 dark 模式时,返回 `'base'` 而非 `'default'`。
|
|
21
|
+
|
|
22
|
+
**原因**:
|
|
23
|
+
- `'default'` 主题自带 Mermaid 官方的蓝绿色调色板,会在渲染时覆盖 `themeVariables` 中的自定义颜色
|
|
24
|
+
- `'base'` 主题完全由 `themeVariables` 控制颜色,不引入 Mermaid 自带的颜色方案
|
|
25
|
+
- `'base'` 主题的 SVG 输出使用 CSS 变量(如 `var(--primary-color)`),我们的 `mermaid-plugin-custom.css` 中 `!important` 规则会正确覆盖
|
|
26
|
+
|
|
27
|
+
### 2. `mermaid-plugin-custom.css` — 调整 XY Chart 文本垂直偏移
|
|
28
|
+
|
|
29
|
+
**文件**: `src/renderer/editor/plugins/mermaid-plugin-custom.css`
|
|
30
|
+
|
|
31
|
+
**改动**: 将全局的 `translateY(-3px)` 缩减为更温和的偏移量,并对 XY Chart 的轴标签单独设置偏移:
|
|
32
|
+
- `.titleText` 的 `translateY` 从 `-3px` 减为 `-1px`(标题不需要大幅偏移)
|
|
33
|
+
- `.xychart .axis text` 设为 `translateY(0)`(轴标签不应偏移)
|
|
34
|
+
|
|
35
|
+
### 3. `demo.md` — 修复 2.15 Sankey 语法
|
|
36
|
+
|
|
37
|
+
**文件**: `demo.md`
|
|
38
|
+
|
|
39
|
+
**改动**: 将 sankey-beta 数据从双引号 CSV 格式改为无引号格式:
|
|
40
|
+
- `"Math Plugin"` → `Math-Plugin`(空格替换为连字符)
|
|
41
|
+
- `"Mermaid Plugin"` → `Mermaid-Plugin`
|
|
42
|
+
- 移除所有双引号包裹
|
|
43
|
+
|
|
44
|
+
**原因**: 当前 Mermaid 版本的 sankey-beta 解析器不支持带引号的 CSV 字段。
|
|
45
|
+
|
|
46
|
+
## 影响范围
|
|
47
|
+
|
|
48
|
+
- 仅影响使用 `theme-custom` 类的自定义主题的 Mermaid 渲染
|
|
49
|
+
- 内置主题(dark、elegant、newsprint、default)不受影响
|
|
50
|
+
- 其他 Mermaid 图表类型(时序图、流程图、甘特图等)的配色也会因为 `theme: 'base'` 而更准确地反映自定义主题变量
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# ColaMD
|
|
2
|
+
|
|
3
|
+
## 产品定位
|
|
4
|
+
|
|
5
|
+
**Markdown as Database 的原生编辑器与模板渲染平台。**
|
|
6
|
+
|
|
7
|
+
### 解决的核心问题
|
|
8
|
+
|
|
9
|
+
HTML 难改——结构、样式、内容全混在一起,人改麻烦,Agent 改也要理解整个文件。
|
|
10
|
+
|
|
11
|
+
解法:把内容从 HTML 里剥离出来,放进 markdown。HTML 变成纯模板,markdown 变成数据库。改内容只改 markdown,完全不碰 HTML。
|
|
12
|
+
|
|
13
|
+
### 战略方向
|
|
14
|
+
|
|
15
|
+
- **内容层**:`.md` 文件,字段固定,人和 Agent 都能轻松编辑
|
|
16
|
+
- **模板层**:各种 HTML 模板(PPT、游戏化界面、博客、简历、产品落地页……)
|
|
17
|
+
- **ColaMD**:连接两者的工具,也是这个生态的入口
|
|
18
|
+
|
|
19
|
+
一份 markdown,多种渲染形态。未来第三方可以基于同一份 markdown 做自己的模板。
|
|
20
|
+
|
|
21
|
+
### 核心理念:Markdown as Database
|
|
22
|
+
|
|
23
|
+
Markdown 不只是文档,而是**结构化内容的数据源**。
|
|
24
|
+
|
|
25
|
+
- **Markdown = 数据**:用固定字段(frontmatter + 约定的 section 结构)承载内容,Agent 只需按字段改内容
|
|
26
|
+
- **HTML 模板 = 视图**:模板负责样式、动效、交互,不关心内容
|
|
27
|
+
- **解耦**:换模板就是换皮,换内容不影响模板
|
|
28
|
+
- **简单约定优先**:宁可让 markdown 字段固定一些,也不要让模板去猜语义
|
|
29
|
+
|
|
30
|
+
## 设计哲学
|
|
31
|
+
|
|
32
|
+
### 如非必要,勿增实体
|
|
33
|
+
|
|
34
|
+
这是 ColaMD 的第一原则。每增加一个 UI 元素、一个功能、一行代码,都要问:这是绝对必要的吗?默认答案是否。
|
|
35
|
+
|
|
36
|
+
- 不要工具栏(用户会用快捷键和 Markdown 语法)
|
|
37
|
+
- 不要侧边栏
|
|
38
|
+
- 不要状态栏
|
|
39
|
+
- 界面只有:标题栏(拖拽用)+ 编辑器
|
|
40
|
+
- 追求极致的简单,一个功能做到极致
|
|
41
|
+
|
|
42
|
+
### 核心功能优先级
|
|
43
|
+
|
|
44
|
+
1. **文件热更新**(核心卖点)— 外部 Agent 修改 .md 时自动刷新,实时看到 Agent 的工作
|
|
45
|
+
2. **所见即所得** — 输入 Markdown 即刻渲染为富文本
|
|
46
|
+
3. **主题系统** — CSS 主题,可导入自定义主题
|
|
47
|
+
4. **导出** — PDF、HTML
|
|
48
|
+
|
|
49
|
+
### 不做的事情
|
|
50
|
+
|
|
51
|
+
- 不做文件管理、文件树、工作区
|
|
52
|
+
- 不做知识库管理
|
|
53
|
+
- 不做云同步、协作编辑
|
|
54
|
+
- 不做笔记组织和标签系统
|
|
55
|
+
- 不加不必要的 UI 元素(工具栏、侧边栏等)
|
|
56
|
+
|
|
57
|
+
## 技术栈
|
|
58
|
+
|
|
59
|
+
- Electron(桌面跨平台)
|
|
60
|
+
- Milkdown(基于 ProseMirror 的 WYSIWYG Markdown 框架)
|
|
61
|
+
- TypeScript 严格模式
|
|
62
|
+
- electron-vite(构建)
|
|
63
|
+
- electron-builder(打包)
|
|
64
|
+
|
|
65
|
+
## 项目结构
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
src/
|
|
69
|
+
├── main/ # Electron 主进程
|
|
70
|
+
│ └── index.ts # 窗口管理、文件 I/O、菜单、文件监听
|
|
71
|
+
├── preload/ # 安全 IPC 桥接
|
|
72
|
+
│ └── index.ts
|
|
73
|
+
└── renderer/ # 渲染进程
|
|
74
|
+
├── index.html
|
|
75
|
+
├── main.ts # 入口,连接编辑器和 IPC
|
|
76
|
+
├── editor/ # Milkdown 编辑器核心
|
|
77
|
+
├── themes/ # CSS 主题 + 主题管理器
|
|
78
|
+
└── env.d.ts
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 开发规范
|
|
82
|
+
|
|
83
|
+
- TypeScript 严格模式
|
|
84
|
+
- 编辑器核心与 UI 解耦
|
|
85
|
+
- 主题 CSS 与编辑器逻辑完全分离
|
|
86
|
+
- 代码简洁,不过度设计
|
|
87
|
+
- 每个新功能先问:这是必要的吗?
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 marswave.ai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|