@lancc/cmark 0.0.0-stage → 1.2.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.
Files changed (202) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +21 -0
  3. package/README.md +217 -2
  4. package/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  5. package/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  6. package/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  7. package/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  8. package/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  9. package/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  10. package/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  11. package/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  12. package/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  13. package/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  14. package/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  15. package/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  16. package/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  17. package/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  18. package/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  19. package/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  20. package/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  21. package/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  22. package/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  23. package/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  24. package/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  25. package/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  26. package/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  27. package/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  28. package/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  29. package/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  30. package/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  31. package/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  32. package/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  33. package/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  34. package/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  35. package/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  36. package/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  37. package/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  38. package/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  39. package/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  40. package/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  41. package/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  42. package/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  43. package/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  44. package/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  45. package/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  46. package/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  47. package/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  48. package/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  49. package/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  50. package/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  51. package/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  52. package/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  53. package/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  54. package/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  55. package/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  56. package/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  57. package/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  58. package/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  59. package/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  60. package/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  61. package/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  62. package/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  63. package/assets/abnfDiagram-WEYOIA3C-BgXsTF7a.js +1 -0
  64. package/assets/architectureDiagram-ZHVYKT53-BsCWa_qC.js +36 -0
  65. package/assets/blockDiagram-RJAE7QA3-wbIxEiYN.js +140 -0
  66. package/assets/c4Diagram-XDPPPE54-5zdyxFvA.js +38 -0
  67. package/assets/chunk-2E7WHVMD-F85Lca-i.js +88 -0
  68. package/assets/chunk-2Q5K7J3B-CjpAZ0OI.js +1 -0
  69. package/assets/chunk-4EMNKR2T-C8Kbh83c.js +1 -0
  70. package/assets/chunk-55XCU76K-BINcFiLN.js +1 -0
  71. package/assets/chunk-5VM5RSS4-Diy5h2LS.js +15 -0
  72. package/assets/chunk-JWPE2WC7-BXnjDdh1.js +1 -0
  73. package/assets/chunk-VQ5W62QI-BM7ZZo1I.js +1 -0
  74. package/assets/chunk-XXDRQBXY-CW8CjB1w.js +1 -0
  75. package/assets/chunk-ZCHMQSOR-C7ATz1L1.js +2 -0
  76. package/assets/classDiagram-v2-4MYWR3UA-CMoqNk-b.js +217 -0
  77. package/assets/cose-bilkent-JH36ORCC-6rqR5iJk.js +1 -0
  78. package/assets/cynefin-EF2NZ3EQ-DypLIJxl.js +141 -0
  79. package/assets/cynefinDiagram-WF24UDRP-8b2CEBlR.js +62 -0
  80. package/assets/cytoscape.esm-CjX6Hyah.js +331 -0
  81. package/assets/dagre-NK4GIZVX-Dv6vuUbR.js +4 -0
  82. package/assets/diagram-CBK3MWTC-DJgMDeYd.js +24 -0
  83. package/assets/diagram-I5XIIV2D-BB9cMoRW.js +24 -0
  84. package/assets/diagram-ODIL2UCW-BVcRtsdy.js +30 -0
  85. package/assets/diagram-PFBEJUXE-BbGSOtJx.js +3 -0
  86. package/assets/diagram-RJA3I4VV-CzkY_8Fo.js +41 -0
  87. package/assets/diagram-TYUNFSNR-YTl5QdfL.js +200 -0
  88. package/assets/ebnfDiagram-V4P3TTPT-COVjPAjE.js +1 -0
  89. package/assets/echarts-BAPDkhe3.js +61 -0
  90. package/assets/elk-QONTBCTQ-DHsjY8Z_.js +27 -0
  91. package/assets/erDiagram-KYQIGQAA-CUAbTUl1.js +99 -0
  92. package/assets/flowDiagram-IUGLLWBU-CWsiqTQC.js +213 -0
  93. package/assets/ganttDiagram-R7GPNTJY-DetBW0Wm.js +292 -0
  94. package/assets/gitGraphDiagram-PDYL7XHY-ByrdgJmw.js +106 -0
  95. package/assets/graph-D8UmR1vK.js +1 -0
  96. package/assets/index-B17NCAw4.js +758 -0
  97. package/assets/index-eB_q_VA3.css +1 -0
  98. package/assets/infoDiagram-MVDRKAX5-BM48fjhU.js +2 -0
  99. package/assets/ishikawaDiagram-HPEHV2GE-DtHYywHZ.js +70 -0
  100. package/assets/journeyDiagram-BOSHW7O7-DJ1LiRh3.js +139 -0
  101. package/assets/kanban-definition-FNSA4HC5-DPPt8pwJ.js +89 -0
  102. package/assets/katex-CQL9J12G.js +257 -0
  103. package/assets/markdown-DVehI1Sg.js +314 -0
  104. package/assets/mermaid-C_q9pug0.js +312 -0
  105. package/assets/mindmap-definition-6OY57UG3-zbqYOEY6.js +98 -0
  106. package/assets/pegDiagram-ECIUJNBX-e7QG7TMq.js +1 -0
  107. package/assets/pieDiagram-GNMPY74T-Duf6YP0N.js +39 -0
  108. package/assets/quadrantDiagram-D57K4MC3-B2eYoUUy.js +7 -0
  109. package/assets/railroadDiagram-Y72NRBL7-BWCzPcI_.js +1 -0
  110. package/assets/requirementDiagram-EQYSW5RA-HhPMEqB1.js +84 -0
  111. package/assets/sankeyDiagram-SY24JHO5-CMUTwFBB.js +40 -0
  112. package/assets/sequenceDiagram-BLEHNHQU-C9wR2ll7.js +169 -0
  113. package/assets/sizeCapture-INFHLROL-DXfz37S6.js +1 -0
  114. package/assets/stateDiagram-v2-A6IESKWZ-D_gtonhE.js +291 -0
  115. package/assets/swimlanes-B3ENRKFQ-DdJOuuMV.js +1 -0
  116. package/assets/swimlanesDiagram-AYQRV4AK-BWt3HxHV.js +8 -0
  117. package/assets/timeline-definition-JXYKGLGB-DQsdwJe-.js +120 -0
  118. package/assets/usecaseDiagram-WPOLBNNX-DTRyFq7d.js +370 -0
  119. package/assets/vennDiagram-Q3Y3IDCW-dihYszm0.js +34 -0
  120. package/assets/wardleyDiagram-IVAIDKWA-BoPpgYfK.js +78 -0
  121. package/assets/xychartDiagram-4URNHDU4-DoLjYxeB.js +7 -0
  122. package/export-file/github-markdown.css +550 -0
  123. package/export-file/index.html +33 -0
  124. package/fonts/KaTeX_AMS-Regular.ttf +0 -0
  125. package/fonts/KaTeX_AMS-Regular.woff +0 -0
  126. package/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  127. package/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  128. package/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  129. package/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  130. package/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  131. package/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  132. package/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  133. package/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  134. package/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  135. package/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  136. package/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  137. package/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  138. package/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  139. package/fonts/KaTeX_Main-Bold.ttf +0 -0
  140. package/fonts/KaTeX_Main-Bold.woff +0 -0
  141. package/fonts/KaTeX_Main-Bold.woff2 +0 -0
  142. package/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  143. package/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  144. package/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  145. package/fonts/KaTeX_Main-Italic.ttf +0 -0
  146. package/fonts/KaTeX_Main-Italic.woff +0 -0
  147. package/fonts/KaTeX_Main-Italic.woff2 +0 -0
  148. package/fonts/KaTeX_Main-Regular.ttf +0 -0
  149. package/fonts/KaTeX_Main-Regular.woff +0 -0
  150. package/fonts/KaTeX_Main-Regular.woff2 +0 -0
  151. package/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  152. package/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  153. package/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  154. package/fonts/KaTeX_Math-Italic.ttf +0 -0
  155. package/fonts/KaTeX_Math-Italic.woff +0 -0
  156. package/fonts/KaTeX_Math-Italic.woff2 +0 -0
  157. package/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  158. package/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  159. package/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  160. package/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  161. package/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  162. package/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  163. package/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  164. package/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  165. package/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  166. package/fonts/KaTeX_Script-Regular.ttf +0 -0
  167. package/fonts/KaTeX_Script-Regular.woff +0 -0
  168. package/fonts/KaTeX_Script-Regular.woff2 +0 -0
  169. package/fonts/KaTeX_Size1-Regular.ttf +0 -0
  170. package/fonts/KaTeX_Size1-Regular.woff +0 -0
  171. package/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  172. package/fonts/KaTeX_Size2-Regular.ttf +0 -0
  173. package/fonts/KaTeX_Size2-Regular.woff +0 -0
  174. package/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  175. package/fonts/KaTeX_Size3-Regular.ttf +0 -0
  176. package/fonts/KaTeX_Size3-Regular.woff +0 -0
  177. package/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  178. package/fonts/KaTeX_Size4-Regular.ttf +0 -0
  179. package/fonts/KaTeX_Size4-Regular.woff +0 -0
  180. package/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  181. package/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  182. package/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  183. package/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  184. package/index.html +15 -0
  185. package/katex.min.css +1 -0
  186. package/logo.png +0 -0
  187. package/package.json +31 -4
  188. package/plugin.json +31 -0
  189. package/preload/branch-bar.js +201 -0
  190. package/preload/export-css.js +59 -0
  191. package/preload/git-panel.js +1366 -0
  192. package/preload/git-service.js +1463 -0
  193. package/preload/host.js +130 -0
  194. package/preload/ndb.js +1407 -0
  195. package/preload/package.json +3 -0
  196. package/preload/remote-setup.js +392 -0
  197. package/preload/remote-wizard.js +328 -0
  198. package/preload/rename-note.js +150 -0
  199. package/preload/services.js +423 -0
  200. package/preload/settings-panel.js +959 -0
  201. package/preload/ws-prefs.js +55 -0
  202. package/preload.js +1870 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,36 @@
1
+ # Changelog
2
+
3
+ ## 1.2.0 - 2026-10-27
4
+
5
+ 同一份产物同时支持 ZTools 与 uTools,宿主自动识别,不再需要分叉维护。
6
+
7
+ - 新增主题设置:浅色 / 深色 / 跟随系统,主界面、设置面板、Git 面板一起切换
8
+ - 新增一键建仓:GitHub 设备码授权、Gitee 私人令牌,自动创建仓库、绑定远程并推送首次提交
9
+ - 自动适配宿主:`preload/host.js` 在启动最早期识别 `window.utools` / `window.ztools` 并互为别名,宿主晚注入也不会崩
10
+ - 支持 uTools 上架:`plugin.json` 补齐 `homepage` / `platform`,新增 `npm run pack:upx` 产出 uTools 插件包
11
+ - AI 生成适配两个宿主:模型字段归一化(ZTools 用 `value`、uTools 用 `id`),模型列表为空时回退默认模型
12
+ - 手填远程地址支持私有仓库:先免授权探测,需要授权时引导填访问令牌,令牌只存本机
13
+ - 修复 uTools 下 preload 不执行导致设置与 Git 面板打不开(`app/` 就近声明 `type: commonjs`)
14
+ - 修复文档里的裸邮箱、裸网址被写成尖括号或 Markdown 链接,源码不再自动插入转义符
15
+ - 表格:操作栏只在光标位于表格内时出现,滚动吸附不再闪烁;支持直接编辑表格源码;列对齐可持久化
16
+ - 拉取、推送、同步的成败提示改为插件底部浮窗,不再弹 Windows 系统通知
17
+ - 版本回溯的确认提示去掉并不存在的“改动前自动备份”说法
18
+ - 配色抽成设计令牌,深色下侧边栏、编辑区、面板统一,不再出现半深半浅
19
+ - README 补充 npm 与 uTools 安装方式(`@lancc/cmark`)
20
+ - 发布改为 GitHub Actions + npm Trusted Publishing,产物带 provenance 签名
21
+
22
+ ## 1.1.0 - 2026-10-26
23
+
24
+ 首个公开发布版本。
25
+
26
+ - 本地 Markdown 笔记,直接读写 `.md` 文件,无私有格式、无云端账号
27
+ - 所见即所得编辑,Markdown 源码始终保持标准语法
28
+ - 代码块语法高亮,27 种语言,可切换语言、一键复制
29
+ - 表格可视化增删行列与对齐
30
+ - mermaid 流程图 / 时序图、echarts 统计图,编辑区直接渲染
31
+ - KaTeX 行内与块级公式
32
+ - Git 内置:改动 diff、历史版本回溯、单文件撤销
33
+ - 自动同步:定时提交并推送到自己的仓库,失败自动暂停
34
+ - 导出 Markdown / HTML / PDF / 长图,按编辑区快照生成,所见即所得
35
+ - 图片粘贴自动入库并按内容去重,可拖动缩放
36
+ - 全文搜索命中高亮、源码模式带行号、只读模式
package/LICENSE ADDED
@@ -0,0 +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.
package/README.md CHANGED
@@ -1,3 +1,218 @@
1
- # Temporary Holding Version
1
+ # CMark
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Obsidian 的轻量替代。本地 Markdown 笔记,文件是你的,版本用 Git 管,随时能带走。
4
+
5
+ 跑在 [ZTools](https://github.com/ztools) 插件体系里。
6
+
7
+ <p align="center">
8
+ <a href="https://github.com/LanccBy2016/cmark/blob/main/docs/screenshot.png">看一篇覆盖全部语法的笔记,导出成长图的样子</a>
9
+ </p>
10
+
11
+ ## 为什么用它
12
+
13
+ ### 笔记就是文件
14
+
15
+ 磁盘上的 `.md`,没有数据库、没有私有格式、没有云端账号。
16
+
17
+ 用任何编辑器都能打开,用 Git 就能同步、回溯、协作。哪天真不想用了,直接删掉软件,
18
+ 笔记一篇不少 —— 这一点从第一行代码起就没打算妥协。
19
+
20
+ ### 版本回溯不用装插件、不用记命令
21
+
22
+ 写完一段发现改坏了,翻开提交历史,点开任意一次提交就是那篇笔记当时的完整内容,
23
+ 可以直接照着补回来。
24
+
25
+ 想看具体改了什么,逐行 diff 摆在那儿;只想撤回一个文件的改动也行,不用连带其他。
26
+ 整个过程在侧边栏里点几下,不用切终端、不用理解 Git 的分支模型。
27
+
28
+ ### 自动同步到你自己的仓库
29
+
30
+ 定时自动提交并推送到 GitHub、Gitee 或自建服务器,配置一次之后就不必再管。
31
+
32
+ 连续失败会自动暂停并留下原因,不会在后台无声地失败。本地另留一份快照轮转,
33
+ 误删也有兜底。
34
+
35
+ ## 界面
36
+
37
+ ### 编辑区
38
+
39
+ 左边是磁盘上的真实目录和当前分支,右边是编辑区,格式工具栏在上方。
40
+
41
+ <p align="center">
42
+ <img src="docs/ui-editor.png" width="800" alt="编辑区">
43
+ </p>
44
+
45
+ ### 版本与改动
46
+
47
+ 侧边栏里就能看逐行 diff、撤销单个文件的改动,或者切到提交历史。
48
+
49
+ <p align="center">
50
+ <img src="docs/ui-diff.png" width="430" alt="改动对比">
51
+ <img src="docs/ui-history.png" width="430" alt="提交历史">
52
+ </p>
53
+
54
+ ### 设置
55
+
56
+ 笔记目录、自动同步、提交选项都在一个面板里。
57
+
58
+ <p align="center">
59
+ <img src="docs/ui-settings.png" width="430" alt="设置面板">
60
+ </p>
61
+
62
+ ## 功能对比
63
+
64
+ ### 编辑
65
+
66
+ | 能力 | Obsidian | CMark |
67
+ |---|---|---|
68
+ | 所见即所得 | ✓ | ✓ 全程所见即所得 |
69
+ | 源码模式 | ✓ | ✓ 带行号 |
70
+ | 表格编辑 | 插件支持 | ✓ 可视化增删行列、调对齐 |
71
+ | 代码块 | ✓ | ✓ 高亮,27 种语言,可切换语言、可复制 |
72
+ | 数学公式 | ✓ | ✓ 行内与块级,KaTeX |
73
+ | 图表 | 插件支持 | ✓ 内置 mermaid、echarts,编辑区直接渲染 |
74
+ | 任务列表 | ✓ | ✓ |
75
+ | 高亮 / 上下标 | 插件支持 | ✓ `==高亮==` `^上标^` `~下标~` |
76
+ | 图片粘贴 | ✓ | ✓ 自动入库、按内容去重 |
77
+ | 图片缩放 | 插件支持 | ✓ 拖动调整 |
78
+
79
+ ### 组织与检索
80
+
81
+ | 能力 | Obsidian | CMark |
82
+ |---|---|---|
83
+ | 文件树 | ✓ | ✓ 直接映射磁盘,支持拖拽、改名、新建 |
84
+ | 全文搜索 | ✓ | ✓ 标题与正文,命中高亮,上下键跳转 |
85
+ | 标签 `#tag` | ✓ | — |
86
+ | 双链 `[[笔记]]` | ✓ | — |
87
+ | 反向链接 | ✓ | — |
88
+ | 关系图谱 | ✓ | — |
89
+ | 大纲 / 目录 | ✓ | — |
90
+ | 书签 | ✓ | — |
91
+ | 模板 | ✓ | — |
92
+ | Canvas 白板 | ✓ | — |
93
+
94
+ ### 版本与同步
95
+
96
+ | 能力 | Obsidian | CMark |
97
+ |---|---|---|
98
+ | Git 版本控制 | 插件支持 | ✓ 内置,侧边栏操作 |
99
+ | 历史版本查看 | 插件支持 | ✓ 点任意提交看该版全文 |
100
+ | 差异对比 diff | 插件支持 | ✓ 工作区改动与单次提交都可看 |
101
+ | 自动同步 | 插件支持 | ✓ 定时提交推送,失败自动暂停 |
102
+ | 回收站 | ✓ | ✓ 内置git版本回溯 |
103
+
104
+ ### 导出
105
+
106
+ | 能力 | Obsidian | CMark |
107
+ |---|---|---|
108
+ | 导出 PDF | ✓ | ✓ |
109
+ | 导出 HTML | 插件支持 | ✓ 单文件,图片内嵌 |
110
+ | 导出长图 | 插件支持 | ✓ |
111
+ | 导出 Markdown | ✓ | ✓ |
112
+
113
+ ## 定位
114
+
115
+ CMark 不跟 Obsidian 抢生态。它只解决一件更窄的事:
116
+
117
+ 手上已经有一堆 Markdown 文件,或者只想用 Git 把它们管起来,不想为此再搭一整套
118
+ 工作区、插件市场和同步服务。这类需求下,Obsidian 的那些长处 —— 双链图谱、标签体系、
119
+ 上千个插件 —— 用不上,但配置成本照样要付。
120
+
121
+ 所以 CMark 把 Obsidian 里要靠插件才能做到的三件事做成了原生功能:
122
+ 表格可视化编辑、图表渲染、Git 版本控制与自动同步。上面标「—」的那些能力
123
+ 是有意不做的,换来的是不用建 Vault、不用挑插件、不用理解 Git 命令。
124
+
125
+ ## 安装
126
+
127
+ ### 方式一:npm(推荐)
128
+
129
+ ZTools 3.3.0-beta 起内置了 npm 安装入口,不用等市场审核、也不用导入安装包:
130
+
131
+ 1. ZTools → 设置 → 已安装插件 → **从 npm 安装**
132
+ 2. 填包名 `@lancc/cmark`(带 scope,`@lancc/` 不能省)
133
+ 3. **不要**勾「使用国内镜像」:官方源可直连,勾了可能因镜像同步延迟装到旧版本
134
+ 4. 装完重启 ZTools,搜索框输入 `cmark` 或 `markdown` 打开
135
+
136
+ 升级走同一个入口,重装即覆盖,笔记与配置都保留。
137
+
138
+ ### 方式二:插件市场
139
+
140
+ ZTools 里搜 `markdown` 或 `cmark`,装上即用。
141
+
142
+ ### 方式三:离线安装包(GitHub Releases)
143
+
144
+ 适合市场审核期间、内网环境,或者想锁定某个版本。
145
+
146
+ 1. 到 [Releases](https://github.com/LanccBy2016/cmark/releases) 下载最新的 `cmark-<版本>.zpx`(或 `.zip`)
147
+ 2. 打开 ZTools → 设置 → 插件 → 右上角「更多」→ 导入本地插件
148
+ 3. 选中刚下载的文件,确认安全提示后安装
149
+ 4. 首次打开会让你选一个笔记目录:选空文件夹即可,选已有 `.md` 的目录也能直接接管
150
+
151
+ 两种包内容完全一样,装一个就够:
152
+
153
+ - `.zpx` —— asar 的 gzip 压缩包,体积小(约 4 MB)
154
+ - `.zip` —— 解压后就是插件根目录(约 10 MB)
155
+
156
+ 两条渠道装的是同一个插件位(插件名相同),后装的会覆盖先装的,**插件数据(配置、历史)保留**。
157
+
158
+ ### 方式四:从源码构建
159
+
160
+ ```bash
161
+ npm install
162
+ npm run dev # 本地调试(vite 热更新)
163
+ npm run build # 前端构建,产物在 app/
164
+ node scripts/pack.mjs # 把 plugin.json / preload 复制进 app/
165
+ node scripts/register.cjs # 打成 asar 并注册到本机 ZTools(执行前先退出 ZTools)
166
+ ```
167
+
168
+ 打离线包(需要 `@electron/asar`,可用 `ASAR_CLI` 环境变量指定路径):
169
+
170
+ ```bash
171
+ node scripts/pack-zpx.mjs # 产出 release/cmark-<版本>.zpx
172
+ node scripts/pack-zpx.mjs --zip # 同时产出 .zip
173
+ ```
174
+
175
+ ### 方式五:uTools
176
+
177
+ 同一份产物同时支持 uTools 和 ZTools —— `preload/host.js` 会自动识别宿主(`window.utools` / `window.ztools`)并补齐缺失的那个全局对象,其余代码不用分支。
178
+
179
+ ```bash
180
+ npm run build
181
+ node scripts/pack.mjs # 准备 app/(plugin.json 的 main 指向 index.html)
182
+ npm run pack:upx # 产出 release/cmark-<版本>.upx
183
+ ```
184
+
185
+ 上架走的是**导入源码工程**,不是传 upx:
186
+
187
+ - uTools 开发者中心 → 插件详情 → 「导入源码工程」→ 选 `app/plugin.json`(`app/` 本身就是完整插件工程:`plugin.json` 的 `main` 指向 `index.html`,同级有 `index.html` / `preload.js` / `preload/` / `logo.png` / `assets/`,10.6 MB,不含 node_modules 与 src)
188
+ - 导入后在开发者工具里点「打包」生成上架用的 upx;`npm run pack:upx` 产出的 `.upx` 适合本地分发/离线测试
189
+
190
+ 改完代码要让 uTools 里的工程更新:`npm run build && node scripts/pack.mjs`(`app/` 会被重建,开发者工具会自动重载)。
191
+
192
+ 宿主识别结果可在控制台查看:`window.__CMARK_HOST`(`utools` / `ztools` / `browser`)。
193
+
194
+ ## 首次使用
195
+
196
+ 1. 选笔记目录(可以就是你已有的 Markdown 目录)
197
+ 2. 建仓库有两种方式:
198
+ - **一键建仓**(设置 → 一键建仓):GitHub 点「授权建仓」,浏览器里输入 8 位码即完成;Gitee 粘一个私人令牌。向导会自动建仓、绑定远程并推送首次提交。
199
+ - 手动:在左侧「版本控制」里初始化仓库,填远程地址(GitHub / Gitee 都行),或只建本地仓库
200
+ 3. 打开「定时提交并推送」,插件会按设定间隔自动 commit + push
201
+
202
+ 笔记就是磁盘上的 `.md` 文件,没有私有格式。`.cmark/` 只存排序、只读标记、图片附件这类元数据,随仓库一起提交。图片尺寸以 `<img ... width="320">` 写回 Markdown 本身,Obsidian / Typora / VS Code 打开同一份文件看到的大小一致。
203
+
204
+ ### 把常用笔记挂成 ZTools 指令
205
+
206
+ 编辑器工具栏里点「设为全局搜索」后,这篇笔记会注册成 ZTools 的一个指令,指令名就是笔记标题。
207
+
208
+ - 在 ZTools 搜索框直接输入标题回车,一步打开那篇笔记(不会只停在面板上)
209
+ - 也可以在 ZTools 设置里给它配全局快捷键
210
+ - 再点一次按钮即取消,`.cmark/near.txt` 里记着哪些笔记挂过
211
+
212
+ ## 卸载
213
+
214
+ 卸载插件不会删笔记(笔记在你自己选的目录里)。`~/.cmark-config.json` 记录着笔记目录路径,删掉它等于重新走首次引导。
215
+
216
+ ## 许可
217
+
218
+ [MIT](LICENSE)。第三方组件见 [THIRD-PARTY.md](THIRD-PARTY.md)。
@@ -0,0 +1 @@
1
+ import{g as p,r as u,d as a}from"./chunk-2E7WHVMD-F85Lca-i.js";import{p as f}from"./chunk-JWPE2WC7-BXnjDdh1.js";import{_ as n,l as o}from"./mermaid-C_q9pug0.js";import{M as c,b as d}from"./cynefin-EF2NZ3EQ-DypLIJxl.js";import"./markdown-DVehI1Sg.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};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"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};