@lancc/cmark 1.1.0 → 1.2.1
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/CHANGELOG.md +27 -0
- package/LICENSE +21 -21
- package/README.md +54 -82
- package/assets/abnfDiagram-WEYOIA3C-CKV_7Upb.js +1 -0
- package/assets/architectureDiagram-ZHVYKT53-BvLudDvk.js +1 -0
- package/assets/blockDiagram-RJAE7QA3--gzkMGi2.js +1 -0
- package/assets/c4Diagram-XDPPPE54-ByfRiJGR.js +1 -0
- package/assets/chunk-2E7WHVMD-TfbC_dmh.js +1 -0
- package/assets/chunk-2Q5K7J3B-0YJgChVo.js +1 -0
- package/assets/chunk-4EMNKR2T-DHoYW7g5.js +1 -0
- package/assets/chunk-55XCU76K-Cq25Yw_G.js +1 -0
- package/assets/chunk-5VM5RSS4-CJaRXFHK.js +1 -0
- package/assets/chunk-JWPE2WC7-BP2iXBhe.js +1 -0
- package/assets/chunk-VQ5W62QI-B95zur4F.js +1 -0
- package/assets/chunk-XXDRQBXY-Ct0MhvQo.js +1 -0
- package/assets/chunk-ZCHMQSOR-C5VhW-wL.js +2 -0
- package/assets/classDiagram-v2-4MYWR3UA-C1G-Vkj0.js +1 -0
- package/assets/cose-bilkent-JH36ORCC-qIQoIBv0.js +1 -0
- package/assets/cynefin-EF2NZ3EQ-CR1E3YiZ.js +1 -0
- package/assets/cynefinDiagram-WF24UDRP-DaJFvZ3b.js +1 -0
- package/assets/cytoscape.esm-SjxgSg6I.js +9 -0
- package/assets/dagre-NK4GIZVX-BFRQhpii.js +1 -0
- package/assets/diagram-CBK3MWTC-DlueL6XZ.js +1 -0
- package/assets/diagram-I5XIIV2D-bITyafYX.js +1 -0
- package/assets/diagram-ODIL2UCW-Dlb4hg_-.js +1 -0
- package/assets/diagram-PFBEJUXE-CRfen0O7.js +1 -0
- package/assets/diagram-RJA3I4VV-CK-FlhGV.js +1 -0
- package/assets/diagram-TYUNFSNR-DmgVsxqa.js +1 -0
- package/assets/ebnfDiagram-V4P3TTPT-B9KGI9eQ.js +1 -0
- package/assets/echarts-CytsvCdp.js +25 -0
- package/assets/elk-QONTBCTQ-VgDftvsU.js +1 -0
- package/assets/erDiagram-KYQIGQAA-DkpP7sS4.js +1 -0
- package/assets/flowDiagram-IUGLLWBU-CRXa9Kxy.js +1 -0
- package/assets/ganttDiagram-R7GPNTJY-Cu2I55Wb.js +1 -0
- package/assets/gitGraphDiagram-PDYL7XHY-CwSo663I.js +1 -0
- package/assets/graph-Dz7AM1Q5.js +1 -0
- package/assets/index-BJ-NdQc4.js +100 -0
- package/assets/index-eB_q_VA3.css +1 -0
- package/assets/infoDiagram-MVDRKAX5-D3Qknzuo.js +1 -0
- package/assets/ishikawaDiagram-HPEHV2GE-9qYT75tk.js +1 -0
- package/assets/journeyDiagram-BOSHW7O7-DeSrJg9o.js +1 -0
- package/assets/kanban-definition-FNSA4HC5-DINkB6G7.js +1 -0
- package/assets/katex-DN8cTsI3.js +1 -0
- package/assets/markdown-S2mWvoE-.js +5 -0
- package/assets/mermaid-T_6Ze_cT.js +7 -0
- package/assets/mindmap-definition-6OY57UG3-DW5hqiAe.js +1 -0
- package/assets/pegDiagram-ECIUJNBX-BWy_tkzy.js +1 -0
- package/assets/pieDiagram-GNMPY74T-CniJbr6l.js +1 -0
- package/assets/quadrantDiagram-D57K4MC3-BVnDJkCv.js +1 -0
- package/assets/railroadDiagram-Y72NRBL7-BNKZpJJb.js +1 -0
- package/assets/requirementDiagram-EQYSW5RA-BETipHj0.js +1 -0
- package/assets/sankeyDiagram-SY24JHO5-ByEYqT7T.js +1 -0
- package/assets/sequenceDiagram-BLEHNHQU-BqCJ2tKG.js +1 -0
- package/assets/sizeCapture-INFHLROL-DlhrWFj-.js +1 -0
- package/assets/stateDiagram-v2-A6IESKWZ-DJUBWLTP.js +1 -0
- package/assets/swimlanes-B3ENRKFQ-D7k7tF5U.js +1 -0
- package/assets/swimlanesDiagram-AYQRV4AK-DoQBgB9o.js +1 -0
- package/assets/timeline-definition-JXYKGLGB-BCNhwnn6.js +1 -0
- package/assets/usecaseDiagram-WPOLBNNX-DRa_Rgl3.js +1 -0
- package/assets/vennDiagram-Q3Y3IDCW-Ba2eaO68.js +1 -0
- package/assets/wardleyDiagram-IVAIDKWA-W_i9vzY-.js +1 -0
- package/assets/xychartDiagram-4URNHDU4-ByfaGjvc.js +1 -0
- package/export-file/github-markdown.css +549 -549
- package/export-file/index.html +32 -32
- package/index.html +4 -4
- package/logo.png +0 -0
- package/package.json +1 -1
- package/plugin.json +8 -218
- package/preload/branch-bar.js +44 -2
- package/preload/export-css.js +59 -0
- package/preload/git-panel.js +102 -23
- package/preload/git-service.js +99 -6
- package/preload/host.js +130 -0
- package/preload/remote-setup.js +425 -0
- package/preload/remote-wizard.js +330 -0
- package/preload/rename-note.js +4 -5
- package/preload/services.js +6 -15
- package/preload/settings-panel.js +468 -356
- package/preload/ws-prefs.js +55 -0
- package/preload.js +291 -6
- package/assets/abnfDiagram-WEYOIA3C-BgXsTF7a.js +0 -1
- package/assets/architectureDiagram-ZHVYKT53-BsCWa_qC.js +0 -36
- package/assets/blockDiagram-RJAE7QA3-wbIxEiYN.js +0 -140
- package/assets/c4Diagram-XDPPPE54-5zdyxFvA.js +0 -38
- package/assets/chunk-2E7WHVMD-F85Lca-i.js +0 -88
- package/assets/chunk-2Q5K7J3B-CjpAZ0OI.js +0 -1
- package/assets/chunk-4EMNKR2T-C8Kbh83c.js +0 -1
- package/assets/chunk-55XCU76K-BINcFiLN.js +0 -1
- package/assets/chunk-5VM5RSS4-Diy5h2LS.js +0 -15
- package/assets/chunk-JWPE2WC7-BXnjDdh1.js +0 -1
- package/assets/chunk-VQ5W62QI-BM7ZZo1I.js +0 -1
- package/assets/chunk-XXDRQBXY-CW8CjB1w.js +0 -1
- package/assets/chunk-ZCHMQSOR-C7ATz1L1.js +0 -2
- package/assets/classDiagram-v2-4MYWR3UA-CMoqNk-b.js +0 -217
- package/assets/cose-bilkent-JH36ORCC-6rqR5iJk.js +0 -1
- package/assets/cynefin-EF2NZ3EQ-DypLIJxl.js +0 -141
- package/assets/cynefinDiagram-WF24UDRP-8b2CEBlR.js +0 -62
- package/assets/cytoscape.esm-CjX6Hyah.js +0 -331
- package/assets/dagre-NK4GIZVX-Dv6vuUbR.js +0 -4
- package/assets/diagram-CBK3MWTC-DJgMDeYd.js +0 -24
- package/assets/diagram-I5XIIV2D-BB9cMoRW.js +0 -24
- package/assets/diagram-ODIL2UCW-BVcRtsdy.js +0 -30
- package/assets/diagram-PFBEJUXE-BbGSOtJx.js +0 -3
- package/assets/diagram-RJA3I4VV-CzkY_8Fo.js +0 -41
- package/assets/diagram-TYUNFSNR-YTl5QdfL.js +0 -200
- package/assets/ebnfDiagram-V4P3TTPT-COVjPAjE.js +0 -1
- package/assets/echarts-BAPDkhe3.js +0 -61
- package/assets/elk-QONTBCTQ-DHsjY8Z_.js +0 -27
- package/assets/erDiagram-KYQIGQAA-CUAbTUl1.js +0 -99
- package/assets/flowDiagram-IUGLLWBU-CWsiqTQC.js +0 -213
- package/assets/ganttDiagram-R7GPNTJY-DetBW0Wm.js +0 -292
- package/assets/gitGraphDiagram-PDYL7XHY-ByrdgJmw.js +0 -106
- package/assets/graph-D8UmR1vK.js +0 -1
- package/assets/index-BLONSItV.css +0 -1
- package/assets/index-Cz6qaZbV.js +0 -744
- package/assets/infoDiagram-MVDRKAX5-BM48fjhU.js +0 -2
- package/assets/ishikawaDiagram-HPEHV2GE-DtHYywHZ.js +0 -70
- package/assets/journeyDiagram-BOSHW7O7-DJ1LiRh3.js +0 -139
- package/assets/kanban-definition-FNSA4HC5-DPPt8pwJ.js +0 -89
- package/assets/katex-CQL9J12G.js +0 -257
- package/assets/markdown-DVehI1Sg.js +0 -314
- package/assets/mermaid-C_q9pug0.js +0 -312
- package/assets/mindmap-definition-6OY57UG3-zbqYOEY6.js +0 -98
- package/assets/pegDiagram-ECIUJNBX-e7QG7TMq.js +0 -1
- package/assets/pieDiagram-GNMPY74T-Duf6YP0N.js +0 -39
- package/assets/quadrantDiagram-D57K4MC3-B2eYoUUy.js +0 -7
- package/assets/railroadDiagram-Y72NRBL7-BWCzPcI_.js +0 -1
- package/assets/requirementDiagram-EQYSW5RA-HhPMEqB1.js +0 -84
- package/assets/sankeyDiagram-SY24JHO5-CMUTwFBB.js +0 -40
- package/assets/sequenceDiagram-BLEHNHQU-C9wR2ll7.js +0 -169
- package/assets/sizeCapture-INFHLROL-DXfz37S6.js +0 -1
- package/assets/stateDiagram-v2-A6IESKWZ-D_gtonhE.js +0 -291
- package/assets/swimlanes-B3ENRKFQ-DdJOuuMV.js +0 -1
- package/assets/swimlanesDiagram-AYQRV4AK-BWt3HxHV.js +0 -8
- package/assets/timeline-definition-JXYKGLGB-DQsdwJe-.js +0 -120
- package/assets/usecaseDiagram-WPOLBNNX-DTRyFq7d.js +0 -370
- package/assets/vennDiagram-Q3Y3IDCW-dihYszm0.js +0 -34
- package/assets/wardleyDiagram-IVAIDKWA-BoPpgYfK.js +0 -78
- package/assets/xychartDiagram-4URNHDU4-DoLjYxeB.js +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.2.1 - 2026-10-28
|
|
4
|
+
|
|
5
|
+
- 修复 Gitee 一键建仓 / 同步报 403:HTTPS 的用户名原先写死成 `x-access-token`(只有 GitHub 接受这种占位),Gitee 要求用户名必须等于令牌所有者,否则回 `The token username invalid`。现在按远端推断用户名(`gitee.com/<owner>/` 取 owner,其它保持 `x-access-token`),已用旧版本绑过 Gitee 的用户升级后无需重新授权
|
|
6
|
+
- 修复「使用已有仓库」选到空仓库时报「合并远端分支失败」:远端没有任何分支时直接走首次推送,不再先 merge
|
|
7
|
+
- 认证类错误(令牌用户名不匹配、401/403)统一归类,提示改为「令牌无效或用户名不匹配」
|
|
8
|
+
- 修复「工作区变更记录」面板里混入单个文档状态的问题:状态条被整体覆盖后遗留裸 chip,导致全局的「分支 main / 工作区干净」和文档的「路径 / 与最近提交一致」叠在同一行
|
|
9
|
+
- 修复面板已打开时点另一个入口不切换模式,标题、内容与操作按钮停在上一模式
|
|
10
|
+
|
|
11
|
+
## 1.2.0 - 2026-10-27
|
|
12
|
+
|
|
13
|
+
同一份产物同时支持 ZTools 与 uTools,宿主自动识别,不再需要分叉维护。
|
|
14
|
+
|
|
15
|
+
- 新增主题设置:浅色 / 深色 / 跟随系统,主界面、设置面板、Git 面板一起切换
|
|
16
|
+
- 新增一键建仓:GitHub 设备码授权、Gitee 私人令牌,自动创建仓库、绑定远程并推送首次提交
|
|
17
|
+
- 自动适配宿主:`preload/host.js` 在启动最早期识别 `window.utools` / `window.ztools` 并互为别名,宿主晚注入也不会崩
|
|
18
|
+
- 支持 uTools 上架:`plugin.json` 补齐 `homepage` / `platform`,新增 `npm run pack:upx` 产出 uTools 插件包
|
|
19
|
+
- AI 生成适配两个宿主:模型字段归一化(ZTools 用 `value`、uTools 用 `id`),模型列表为空时回退默认模型
|
|
20
|
+
- 手填远程地址支持私有仓库:先免授权探测,需要授权时引导填访问令牌,令牌只存本机
|
|
21
|
+
- 修复 uTools 下 preload 不执行导致设置与 Git 面板打不开(`app/` 就近声明 `type: commonjs`)
|
|
22
|
+
- 修复文档里的裸邮箱、裸网址被写成尖括号或 Markdown 链接,源码不再自动插入转义符
|
|
23
|
+
- 表格:操作栏只在光标位于表格内时出现,滚动吸附不再闪烁;支持直接编辑表格源码;列对齐可持久化
|
|
24
|
+
- 拉取、推送、同步的成败提示改为插件底部浮窗,不再弹 Windows 系统通知
|
|
25
|
+
- 版本回溯的确认提示去掉并不存在的“改动前自动备份”说法
|
|
26
|
+
- 配色抽成设计令牌,深色下侧边栏、编辑区、面板统一,不再出现半深半浅
|
|
27
|
+
- README 补充 npm 与 uTools 安装方式(`@lancc/cmark`)
|
|
28
|
+
- 发布改为 GitHub Actions + npm Trusted Publishing,产物带 provenance 签名
|
|
29
|
+
|
|
3
30
|
## 1.1.0 - 2026-10-26
|
|
4
31
|
|
|
5
32
|
首个公开发布版本。
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Lancc
|
|
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.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lancc
|
|
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.
|
package/README.md
CHANGED
|
@@ -2,66 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
Obsidian 的轻量替代。本地 Markdown 笔记,文件是你的,版本用 Git 管,随时能带走。
|
|
4
4
|
|
|
5
|
-
跑在 [ZTools](https://github.com/ztools) 插件体系里。
|
|
6
|
-
|
|
7
5
|
<p align="center">
|
|
8
|
-
<
|
|
6
|
+
<img src="docs/editor-light.png" width="800" alt="CMark 主界面">
|
|
9
7
|
</p>
|
|
10
8
|
|
|
11
9
|
## 为什么用它
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
磁盘上的 `.md`,没有数据库、没有私有格式、没有云端账号。
|
|
16
|
-
|
|
17
|
-
用任何编辑器都能打开,用 Git 就能同步、回溯、协作。哪天真不想用了,直接删掉软件,
|
|
18
|
-
笔记一篇不少 —— 这一点从第一行代码起就没打算妥协。
|
|
19
|
-
|
|
20
|
-
### 版本回溯不用装插件、不用记命令
|
|
21
|
-
|
|
22
|
-
写完一段发现改坏了,翻开提交历史,点开任意一次提交就是那篇笔记当时的完整内容,
|
|
23
|
-
可以直接照着补回来。
|
|
24
|
-
|
|
25
|
-
想看具体改了什么,逐行 diff 摆在那儿;只想撤回一个文件的改动也行,不用连带其他。
|
|
26
|
-
整个过程在侧边栏里点几下,不用切终端、不用理解 Git 的分支模型。
|
|
27
|
-
|
|
28
|
-
### 自动同步到你自己的仓库
|
|
11
|
+
**笔记就是文件。** 磁盘上的 `.md`,没有数据库、没有私有格式、没有云端账号。用任何编辑器都能打开,用 Git 就能同步、回溯、协作。哪天真不想用了,删掉软件,笔记一篇不少 —— 这一点从第一行代码起就没打算妥协。
|
|
29
12
|
|
|
30
|
-
|
|
13
|
+
**版本回溯不用装插件、不用记命令。** 写完一段发现改坏了,翻开提交历史,点开任意一次提交就是那篇笔记当时的完整内容,可以直接照着补回来。想知道具体改了什么,逐行 diff 摆在那儿;只想撤回一个文件的改动也行,不用连带其他。
|
|
31
14
|
|
|
32
|
-
|
|
33
|
-
误删也有兜底。
|
|
15
|
+
**自动同步到你自己的仓库。** 定时提交并推送到 GitHub、Gitee 或自建服务器,配置一次之后就不必再管。连续失败会自动暂停并留下原因,不会在后台无声地失败;本地另留一份快照轮转,误删也有兜底。
|
|
34
16
|
|
|
35
17
|
## 界面
|
|
36
18
|
|
|
37
19
|
### 编辑区
|
|
38
20
|
|
|
39
|
-
|
|
21
|
+
<p align="center">
|
|
22
|
+
<img src="docs/editor-dark.png" width="800" alt="深色主题下的编辑区">
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
### 公式与代码
|
|
40
26
|
|
|
41
27
|
<p align="center">
|
|
42
|
-
<img src="docs/
|
|
28
|
+
<img src="docs/math-dialog.png" width="640" alt="公式编辑弹窗">
|
|
43
29
|
</p>
|
|
44
30
|
|
|
45
31
|
### 版本与改动
|
|
46
32
|
|
|
47
|
-
侧边栏里就能看逐行 diff、撤销单个文件的改动,或者切到提交历史。
|
|
48
|
-
|
|
49
33
|
<p align="center">
|
|
50
|
-
<img src="docs/
|
|
51
|
-
<img src="docs/
|
|
34
|
+
<img src="docs/git-history.png" width="300" alt="提交历史">
|
|
35
|
+
<img src="docs/git-diff.png" width="452" alt="改动对比">
|
|
52
36
|
</p>
|
|
53
37
|
|
|
54
38
|
### 设置
|
|
55
39
|
|
|
56
|
-
笔记目录、自动同步、提交选项都在一个面板里。
|
|
57
|
-
|
|
58
40
|
<p align="center">
|
|
59
|
-
<img src="docs/
|
|
41
|
+
<img src="docs/settings.png" width="320" alt="设置面板">
|
|
60
42
|
</p>
|
|
61
43
|
|
|
62
|
-
##
|
|
44
|
+
## 功能
|
|
63
45
|
|
|
64
|
-
###
|
|
46
|
+
### 编辑与导出
|
|
65
47
|
|
|
66
48
|
| 能力 | Obsidian | CMark |
|
|
67
49
|
|---|---|---|
|
|
@@ -72,9 +54,13 @@ Obsidian 的轻量替代。本地 Markdown 笔记,文件是你的,版本用
|
|
|
72
54
|
| 数学公式 | ✓ | ✓ 行内与块级,KaTeX |
|
|
73
55
|
| 图表 | 插件支持 | ✓ 内置 mermaid、echarts,编辑区直接渲染 |
|
|
74
56
|
| 任务列表 | ✓ | ✓ |
|
|
75
|
-
| 高亮 / 上下标 | 插件支持 | ✓
|
|
57
|
+
| 高亮 / 上下标 | 插件支持 | ✓ |
|
|
76
58
|
| 图片粘贴 | ✓ | ✓ 自动入库、按内容去重 |
|
|
77
|
-
| 图片缩放 | 插件支持 | ✓
|
|
59
|
+
| 图片缩放 | 插件支持 | ✓ 拖动调整,尺寸写回 Markdown |
|
|
60
|
+
| 导出 PDF | ✓ | ✓ |
|
|
61
|
+
| 导出 HTML | 插件支持 | ✓ 单文件,图片内嵌 |
|
|
62
|
+
| 导出长图 | 插件支持 | ✓ |
|
|
63
|
+
| 导出 Markdown | ✓ | ✓ |
|
|
78
64
|
|
|
79
65
|
### 组织与检索
|
|
80
66
|
|
|
@@ -99,52 +85,50 @@ Obsidian 的轻量替代。本地 Markdown 笔记,文件是你的,版本用
|
|
|
99
85
|
| 历史版本查看 | 插件支持 | ✓ 点任意提交看该版全文 |
|
|
100
86
|
| 差异对比 diff | 插件支持 | ✓ 工作区改动与单次提交都可看 |
|
|
101
87
|
| 自动同步 | 插件支持 | ✓ 定时提交推送,失败自动暂停 |
|
|
102
|
-
| 回收站 | ✓ |
|
|
103
|
-
|
|
104
|
-
### 导出
|
|
105
|
-
|
|
106
|
-
| 能力 | Obsidian | CMark |
|
|
107
|
-
|---|---|---|
|
|
108
|
-
| 导出 PDF | ✓ | ✓ |
|
|
109
|
-
| 导出 HTML | 插件支持 | ✓ 单文件,图片内嵌 |
|
|
110
|
-
| 导出长图 | 插件支持 | ✓ |
|
|
111
|
-
| 导出 Markdown | ✓ | ✓ |
|
|
88
|
+
| 回收站 | ✓ | — |
|
|
112
89
|
|
|
113
90
|
## 定位
|
|
114
91
|
|
|
115
92
|
CMark 不跟 Obsidian 抢生态。它只解决一件更窄的事:
|
|
116
93
|
|
|
117
|
-
手上已经有一堆 Markdown 文件,或者只想用 Git
|
|
118
|
-
工作区、插件市场和同步服务。这类需求下,Obsidian 的那些长处 —— 双链图谱、标签体系、
|
|
119
|
-
上千个插件 —— 用不上,但配置成本照样要付。
|
|
94
|
+
手上已经有一堆 Markdown 文件,或者只想用 Git 把它们管起来,不想为此再搭一整套工作区、插件市场和同步服务。这类需求下,Obsidian 的那些长处 —— 双链图谱、标签体系、上千个插件 —— 用不上,但配置成本照样要付。
|
|
120
95
|
|
|
121
|
-
所以 CMark 把 Obsidian
|
|
122
|
-
表格可视化编辑、图表渲染、Git 版本控制与自动同步。上面标「—」的那些能力
|
|
123
|
-
是有意不做的,换来的是不用建 Vault、不用挑插件、不用理解 Git 命令。
|
|
96
|
+
所以 CMark 把 Obsidian 里要靠插件才能做到的三件事做成了原生功能:表格可视化编辑、图表渲染、Git 版本控制与自动同步。上面标「—」的那些能力是有意不做的,换来的是不用建 Vault、不用挑插件、不用理解 Git 命令。
|
|
124
97
|
|
|
125
98
|
## 安装
|
|
126
99
|
|
|
127
|
-
|
|
100
|
+
| 渠道 | 适合 | 入口 |
|
|
101
|
+
|---|---|---|
|
|
102
|
+
| npm(推荐) | 想装最新版、不想等审核 | ZTools → 设置 → 已安装插件 → 从 npm 安装 |
|
|
103
|
+
| 插件市场 | 最省事 | ZTools 搜索框输入 `markdown` 或 `cmark` |
|
|
104
|
+
| 离线包 | 内网环境、锁定版本 | Releases 下载 `.zpx` / `.zip` → 导入本地插件 |
|
|
105
|
+
| uTools | 用的是 uTools | uTools 开发者中心 →「导入源码工程」选 `app/plugin.json` |
|
|
128
106
|
|
|
129
|
-
|
|
107
|
+
## 首次使用
|
|
130
108
|
|
|
131
|
-
|
|
109
|
+
1. 选笔记目录(可以就是你已有的 Markdown 目录)
|
|
110
|
+
2. 建仓库有两种方式:
|
|
111
|
+
- **一键建仓**(设置 → Git 集成):GitHub 点「授权建仓」,浏览器里输 8 位码即完成;Gitee 粘一个私人令牌。向导会自动建仓、绑定远程并推送首次提交
|
|
112
|
+
- 手动:初始化本地仓库后填远程地址(GitHub / Gitee / 自建都行),或者只建本地仓库
|
|
113
|
+
3. 打开「定时提交并推送」,插件会按设定策略自动 commit + push
|
|
132
114
|
|
|
133
|
-
|
|
115
|
+
### 把常用笔记挂成 ZTools 指令
|
|
134
116
|
|
|
135
|
-
|
|
136
|
-
2. 打开 ZTools → 设置 → 插件 → 右上角「更多」→ 导入本地插件
|
|
137
|
-
3. 选中刚下载的文件,确认安全提示后安装
|
|
138
|
-
4. 首次打开会让你选一个笔记目录:选空文件夹即可,选已有 `.md` 的目录也能直接接管
|
|
117
|
+
编辑器工具栏里点「设为全局搜索」后,这篇笔记会注册成 ZTools 的一个指令,指令名就是笔记标题。
|
|
139
118
|
|
|
140
|
-
|
|
119
|
+
- 在 ZTools 搜索框直接输入标题回车,一步打开那篇笔记(不会只停在面板上)
|
|
120
|
+
- 也可以在 ZTools 设置里给它配全局快捷键
|
|
121
|
+
- 再点一次按钮即取消,`.cmark/near.txt` 里记着哪些笔记挂过
|
|
141
122
|
|
|
142
|
-
|
|
143
|
-
- `.zip` —— 解压后就是插件根目录(约 10 MB)
|
|
123
|
+
## 笔记存在哪
|
|
144
124
|
|
|
145
|
-
|
|
125
|
+
笔记就是磁盘上的 `.md` 文件,没有私有格式。`.cmark/` 只存排序、只读标记、图片附件这类元数据,随仓库一起提交。
|
|
146
126
|
|
|
147
|
-
|
|
127
|
+
图片以内部协议存进 `.cmark/attachments/`,尺寸以 `<img ... width="320">` 写回 Markdown 本身 —— Obsidian / Typora / VS Code 打开同一份文件,看到的大小一致。
|
|
128
|
+
|
|
129
|
+
卸载插件不会删笔记(笔记在你自己选的目录里)。`~/.cmark-config.json` 记录着笔记目录路径,删掉它等于重新走首次引导。
|
|
130
|
+
|
|
131
|
+
## 开发与打包
|
|
148
132
|
|
|
149
133
|
```bash
|
|
150
134
|
npm install
|
|
@@ -161,25 +145,13 @@ node scripts/pack-zpx.mjs # 产出 release/cmark-<版本>.zpx
|
|
|
161
145
|
node scripts/pack-zpx.mjs --zip # 同时产出 .zip
|
|
162
146
|
```
|
|
163
147
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
1. 选笔记目录(可以就是你已有的 Markdown 目录)
|
|
167
|
-
2. 在左侧「版本控制」里初始化仓库:填远程地址(GitHub / Gitee 都行),或只建本地仓库
|
|
168
|
-
3. 打开「定时提交并推送」,插件会按设定间隔自动 commit + push
|
|
169
|
-
|
|
170
|
-
笔记就是磁盘上的 `.md` 文件,没有私有格式。`.cmark/` 只存排序、只读标记、图片附件这类元数据,随仓库一起提交。图片尺寸以 `<img ... width="320">` 写回 Markdown 本身,Obsidian / Typora / VS Code 打开同一份文件看到的大小一致。
|
|
148
|
+
给 uTools 打包:
|
|
171
149
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
- 也可以在 ZTools 设置里给它配全局快捷键
|
|
178
|
-
- 再点一次按钮即取消,`.cmark/near.txt` 里记着哪些笔记挂过
|
|
179
|
-
|
|
180
|
-
## 卸载
|
|
181
|
-
|
|
182
|
-
卸载插件不会删笔记(笔记在你自己选的目录里)。`~/.cmark-config.json` 记录着笔记目录路径,删掉它等于重新走首次引导。
|
|
150
|
+
```bash
|
|
151
|
+
npm run build
|
|
152
|
+
node scripts/pack.mjs # 准备 app/(plugin.json 的 main 指向 index.html)
|
|
153
|
+
npm run pack:upx # 产出 release/cmark-<版本>.upx
|
|
154
|
+
```
|
|
183
155
|
|
|
184
156
|
## 许可
|
|
185
157
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as e,r,d as t}from"./chunk-2E7WHVMD-TfbC_dmh.js";import{p as n}from"./chunk-JWPE2WC7-BP2iXBhe.js";import{_ as a,l as s}from"./mermaid-T_6Ze_cT.js";import{M as m,b as o}from"./cynefin-EF2NZ3EQ-CR1E3YiZ.js";import"./markdown-S2mWvoE-.js";var p=o().RailroadAbnf.parser.LangiumParser,i=a(e=>{const r=e.alternatives.map(l);return 1===r.length?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),l=a(e=>{const r=e.elements.map(c);return 1===r.length?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),u=a(e=>{if(e.includes("*")){const[r,t]=e.split("*");return{min:r?parseInt(r,10):0,max:t?parseInt(t,10):1/0}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),c=a(e=>{const r=f(e.primary);if(!e.repeat)return r;const{min:t,max:n}=u(e.repeat);return 0===t&&1===n?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:n}},"transformElement"),f=a(e=>{switch(e.$type){case"AbnfStringLiteral":case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),d=a(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),y=a(e=>{n(e,t),e.title&&t.setTitle(e.title),e.rules.map(e=>t.addRule(d(e)))},"populateDb"),g={parser:{parse:a(e=>{t.clear(),s.debug("[ABNF Parser] Starting Langium parse");const r=p.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new m(r);const n=r.value;s.debug("[ABNF Parser] Parsed rules:",n.rules.length),y(n),s.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:t}},db:t,renderer:r,styles:e};export{g as diagram};
|