-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathappcast.xml
More file actions
628 lines (591 loc) · 64 KB
/
appcast.xml
File metadata and controls
628 lines (591 loc) · 64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>FluxMarkdown</title>
<link>https://raw.githubusercontent.com/xykong/flux-markdown/master/appcast.xml</link>
<description>Most recent updates to FluxMarkdown</description>
<language>zh-CN</language>
<item>
<title>Version 1.19.256</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.19.256</link>
<sparkle:version>256</sparkle:version>
<sparkle:shortVersionString>1.19.256</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Wed, 25 Mar 2026 17:03:10 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.19.256/FluxMarkdown.dmg"
sparkle:edSignature="kB+KTDWjJetCCdZe6iZGAZHFOOVb8sXw9t/W2q86x2FLrK103RA9GT3HMjhRSwWAxJTCSA2F6f1QPPp3yzybDg=="
length="9893620"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Fixed</h3><ul><li><strong>链接导航支持文件名含空格 (%20 编码)</strong>: 点击链接现在可以正常打开目标文件</li><li> 新增 <code>LinkNavigation</code> 模块封装 URL 解析逻辑,使用 <code>removingPercentEncoding</code> 解码 href 中的空格</li><li> 新增测试用例覆盖 <code>%20</code> 编码的各种场景</li><li> 新增 <code>docs/debug/DEBUG_PERCENT_ENCODED_LINK_NAVIGATION.md</code> 记录问题和排查过程</li><li> 添加测试 fixture 文件用于手工验证</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.19.256">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.19.253</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.19.253</link>
<sparkle:version>253</sparkle:version>
<sparkle:shortVersionString>1.19.253</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Sat, 21 Mar 2026 13:25:47 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.19.253/FluxMarkdown.dmg"
sparkle:edSignature="jPWF7qDr9N3rIzA7Gc2QsgXPWAOnLdnWZR1ewL5QYzEpGvVOpPgEm/VOVVkpGkYWBoqyY5n59Z185t0fcas8Ag=="
length="9890124"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Fixed</h3><ul><li><strong>Mermaid sequenceDiagram participant 标签引号渲染</strong>: 修复 <code>participant U as "用户(飞书)"</code> 语法中引号被原样渲染到方块中的问题</li><li> Mermaid parser 不会自动剥除 <code>as "..."</code> 中的引号,导致用户看到 <code>"用户(飞书)"</code> 而非 <code>用户(飞书)</code></li><li> 预处理函数新增 quote stripping 逻辑,在渲染前剥除 participant/actor alias 的引号</li><li> 同时支持带 <code>
</code> 换行的 alias(如 <code>participant X as "line1
line2"</code>)</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.19.253">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.19.250</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.19.250</link>
<sparkle:version>250</sparkle:version>
<sparkle:shortVersionString>1.19.250</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Fri, 20 Mar 2026 18:35:18 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.19.250/FluxMarkdown.dmg"
sparkle:edSignature="RD50wKV9ERrFQfw3TeP1HEqjijDAYWZRpE/5MBAXSX3blSQiLUosQ7KqspyJa3IXCRomv9KoGSEY4KA3Z7YOCQ=="
length="9893479"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Fixed</h3><ul><li><strong>Sparkle 更新提示 Markdown 渲染</strong>: 修复更新提示界面中 <code><strong>粗体</strong></code> 等 Markdown 语法显示为原始星号的问题</li><li> <code>scripts/generate-appcast.sh</code> 新增 Markdown → HTML 转换逻辑</li><li> 支持 <code>### 标题</code> → <code><h3></code>、<code><strong>粗体</strong></code> → <code><strong></code>、`<code> </code>代码<code> </code><code> → </code><code><code>、</code>- 列表<code> → </code><ul><li>`</li><li> 批量修复 <code>appcast.xml</code> 中历史版本的 description 格式</li><li> 更新 <code>/publish</code> 命令文档,明确说明 description 必须是 HTML 格式</li><li><strong>帮助面板触发逻辑优化</strong> (Issue #12): 修复 Cmd 长按触发功能指南时,在 Cmd+Tab、Cmd+Space、老板键等快捷键组合下误触发的问题</li><li> 新增修饰键检测:按下非修饰键(如 Tab、Space、字母)时立即取消 Cmd-hold 计时器</li><li> 仅纯 Cmd 长按(不按其他功能键)才会触发帮助面板</li></ul><h3>Added</h3><ul><li><strong>帮助面板偏好设置</strong>: 新增复选框控制 Cmd 长按自动弹出功能</li><li> 用户可在帮助面板底部勾选/取消"按住 ⌘ 2 秒自动打开此面板"</li><li> 偏好设置持久化存储,重启后仍然生效</li><li> 仅 App 模式显示(QuickLook 模式下 Cmd 长按本来就不生效)</li></ul><h3>Changed</h3><ul><li><strong>帮助面板 badge 逻辑修正</strong>: App 专属快捷键显示 "App" badge,两平台通用的功能不再显示 badge</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.19.250">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.18.246</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.18.246</link>
<sparkle:version>246</sparkle:version>
<sparkle:shortVersionString>1.18.246</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Fri, 20 Mar 2026 16:41:41 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.18.246/FluxMarkdown.dmg"
sparkle:edSignature="rn97PGw+ATfwrPoeguFmPevyLL0ucXNTE7TrgwJXp9A0HjhKq2fGlvfrixgNfASX67ELNu+xkPBW1VEqGWiwBg=="
length="9883194"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>Mermaid 节点标签换行支持</strong>: AI 生成的 Mermaid 图表常在双引号节点标签中使用 <code>\n</code> 表示换行(如 <code>A["line1\nline2"]</code>),但 Mermaid 默认将其渲染为字面字符串<ul><li>新增预处理函数,自动将引号内的 <code>\n</code> 转换为 <code><br/></code> HTML 换行标签</li><li>用户无需手动修改 AI 生成的文档即可获得正确的换行效果</li><li>支持所有 Mermaid 图类型(flowchart、sequence、class 等)</li></ul></li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.18.246">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.17.243</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.17.243</link>
<sparkle:version>243</sparkle:version>
<sparkle:shortVersionString>1.17.243</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Mon, 16 Mar 2026 18:27:36 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.17.243/FluxMarkdown.dmg"
sparkle:edSignature="chFUqmr74c7obzbN3Jh/N50wWE1AHPsNi1KGzU3kWWyoXPYUDMWyJZxIDoSuidWNcjTMQGPqLM2q3jX2MiJyAQ=="
length="9883206"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Fixed</h3><ul><li><strong>App 模式文件实时刷新</strong>: 修复用外部编辑器修改文档后 App 窗口内容不更新的问题<ul><li>使用 DispatchSource (kqueue) 监听文件变更事件 (.write/.delete/.rename)</li><li>检测到变更后自动重新读取文件并触发重渲染</li><li>兼容原子写入(先写临时文件再 rename)的场景</li><li>通过 size + mtime 去重,避免无意义重渲染</li></ul></li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.17.243">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.17.239</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.17.239</link>
<sparkle:version>239</sparkle:version>
<sparkle:shortVersionString>1.17.239</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Sun, 08 Mar 2026 17:53:36 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.17.239/FluxMarkdown.dmg"
sparkle:edSignature="ZmF9vcb+XCiVE4HN08F/KlNRst6uCy6pNZzFyCFElPON7j4SZLmBGvM8Gwg1ha+MgX4SKPugn8mbcq23NPRUDg=="
length="9866504"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>功能帮助面板</strong>: 按 <code>?</code> 键或点击右上角 <code>?</code> 按钮显示完整的快捷键与功能指南<ul><li>区分 QuickLook 与 App 两种运行环境,显示不同的可用功能</li><li>QuickLook 环境显示黄色警告横幅,提示键盘事件被系统拦截</li><li>App 独占功能(导出、设置、检查更新)标记黄色 <code>App</code> badge</li><li>两端都支持的功能标记蓝色 <code>QuickLook</code> + 黄色 <code>App</code> badge</li><li>支持 <code>?</code> 键、按住 <code>⌘</code> 2秒、点击 <code>?</code> 按钮三种触发方式</li><li>首次打开时显示 Toast 提示</li></ul></li><li><strong>多语言支持</strong>: 帮助面板支持中英文切换<ul><li>Settings → Appearance → Language 选择 System Default / English / 中文</li><li>默认跟随系统语言设置</li></ul></li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.17.239">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.16.236</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.16.236</link>
<sparkle:version>236</sparkle:version>
<sparkle:shortVersionString>1.16.236</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Thu, 05 Mar 2026 05:00:25 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.16.236/FluxMarkdown.dmg"
sparkle:edSignature="g2mmEEWsHyIxk+xyncJ96KMpkWFFjVvvL8Z1i3Btfjo7l89bQQgT1EFOKif2SsrRqhLohZE7s1fFN8dsTY94Dw=="
length="9835273"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>链接状态栏</strong>: 鼠标悬停在链接上时,当显示文字与实际链接不一致,在窗口左下角显示实际链接地址<ul><li>支持 QuickLook 预览和主应用</li><li>自动解码 URL 编码的中文链接(如 <code>#%E4%B8%AD%E6%96%87</code> 显示为 <code>⚓ #中文</code>)</li><li>显示链接类型图标:🔗 外部链接、⚓ 内部锚点、✉️ 邮件链接</li><li>裸链接(显示文字即 URL)不显示状态栏,避免冗余</li></ul></li></ul><h3>Fixed</h3><ul><li><strong>Help 菜单修复</strong>: 修复 Help 菜单显示 "Help isn't available for FluxMarkdown" 的问题<ul><li>添加自定义 Help 菜单,替换默认的 macOS Help 菜单</li><li>FluxMarkdown Help (Cmd+?) 打开在线帮助文档</li><li>添加 README、Report an Issue、Release Notes 快捷链接</li></ul></li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.16.236">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.16.231</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.16.231</link>
<sparkle:version>231</sparkle:version>
<sparkle:shortVersionString>1.16.231</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Sat, 28 Feb 2026 04:14:25 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.16.231/FluxMarkdown.dmg"
sparkle:edSignature="EknyQP8jS2PbN+pMk7iAW9nw4MU7h7HFaYiBVKFuAcBkyVGbVy+NAC77hDMluJF0I7ItpDD1IDdjrjVWA0+hAA=="
length="9817277"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Fixed</h3><ul><li><strong>搜索框自动大写修复</strong>: 禁用 macOS 在搜索框中自动将句首字母大写的行为<ul><li>添加 <code>autocapitalize="off"</code> 属性禁用自动大写</li><li>添加 <code>autocorrect="off"</code> 属性禁用自动纠正</li><li>添加 <code>autocomplete="off"</code> 属性禁用自动完成</li><li>添加 <code>spellcheck="false"</code> 属性禁用拼写检查</li></ul></li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.16.231">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.16.226</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.16.226</link>
<sparkle:version>226</sparkle:version>
<sparkle:shortVersionString>1.16.226</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Sat, 28 Feb 2026 03:40:06 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.16.226/FluxMarkdown.dmg"
sparkle:edSignature="nYJs/TOBWFFYXc1CqIPlYpSmf2DHTy/jUL/FK0k6tYYT/5hggVEBCXgcnvHGyeoqlitQXMs/OEcIFHJPdhvUAg=="
length="9817185"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>DMG 安装界面设计</strong>: 全新的 DMG 安装界面,提供专业的用户体验<ul><li>现代化明亮风格背景设计,包含中文安装指引(「拖拽到 Applications 安装」)</li><li>Retina/HiDPI 支持:使用多分辨率 TIFF 背景图,确保在 Retina 显示屏上文字清晰锐利</li><li>新增 <code>assets/dmg/</code> 目录存放 DMG 相关资源(SVG 源文件、PNG 背景图、TIFF 多分辨率图)</li></ul></li></ul><h3>Changed</h3><ul><li><strong>DMG 构建工具迁移</strong>: 从已废弃的 <code>appdmg</code> 迁移到 <code>create-dmg</code><ul><li>更可靠的背景图片渲染</li><li>原生支持 macOS Finder 布局特性</li></ul></li></ul><h3>Fixed</h3><ul><li><strong>DMG 背景图片显示</strong>: 修复背景图片不显示、只显示在左上角、不铺满窗口等问题</li><li><strong>DMG Retina 支持</strong>: 修复 Retina 显示屏上背景文字模糊的问题</li><li><strong>DMG 窗口滚动条</strong>: 修复 DMG 窗口出现横向和纵向滚动条的问题<ul><li>调整窗口尺寸以适配 macOS 标题栏高度</li><li>隐藏文件 <code>.background</code> 定位到窗口内,避免触发滚动条</li></ul></li><li><strong>Applications 文件夹图标</strong>: 修复 Applications 快捷方式显示为空白方框的问题<ul><li>使用 <code>--app-drop-link</code> 参数确保正确的 Finder 图标渲染</li></ul></li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.16.226">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.16.204</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.16.204</link>
<sparkle:version>204</sparkle:version>
<sparkle:shortVersionString>1.16.204</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Fri, 27 Feb 2026 03:52:33 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.16.204/FluxMarkdown.dmg"
sparkle:edSignature="Rxpm/VTZGeLXcW5gAL+KwnTEsOZCiqASQy7YHVNp8Lg1+TdAXnvUBYpY4eGIeHNP5LU2A07H8IRZV6pMUqpOAg=="
length="9979365"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>PDF 导出分页功能</strong>: 导出 PDF 时自动将长文档分页为标准 A4 页面<ul><li>使用 CoreGraphics 将单页 PDF 切片为多个 A4 页面</li><li>添加 <code>@media print</code> CSS 规则优化打印样式(防止代码块、图片跨页截断)</li><li>最后一页内容自动对齐到页面顶部</li></ul></li><li><strong>欢迎窗口 (Welcome Window)</strong>: 直接启动 App 时显示友好的欢迎界面,引导用户快速上手<ul><li>大号 "+" 按钮支持点击打开文件或拖拽文件到窗口</li><li>简洁的使用提示:QuickLook 空格预览、双击打开、拖拽文件</li><li>快捷入口:Open Settings (Cmd+,)、Troubleshooting 帮助文档</li><li>显示应用图标,提升品牌识别度</li></ul></li><li><strong>用户友好帮助文档</strong>: 新增 <code>docs/user/HELP.md</code>,由浅入深引导用户<ul><li>先体验成功(Space 预览)</li><li>常见问题由简到难排查</li><li>文末引导到高级排障文档</li></ul></li></ul><h3>Fixed</h3><ul><li><strong>HTML 导出功能重构</strong>: 参考 MPE (Markdown Preview Enhanced) 方案,彻底重构 HTML 导出逻辑<ul><li>生成纯净的独立 HTML 文件,不再包含臃肿的 JS Bundle(文件体积大幅缩小)</li><li>内联所有 CSS 样式,确保离线打开时格式、字体、代码高亮正确显示</li><li>自动将本地图片(GIF、PNG、JPG、SVG、WebP)转换为 base64 Data URI,确保图片在任意环境下正常显示</li><li>导出的 HTML 可直接分享给他人,无需依赖原始文件路径</li></ul></li><li><strong>构建过程警告修复</strong>: 清理 <code>make install</code> 过程中的冗余警告信息<ul><li>抑制 xcodebuild 的 DVTDeviceOperation 内部警告(Xcode 15/16 已知问题)</li><li>抑制 Vite 打包的 chunk size 警告(本地应用无需严格限制块大小)</li><li>静默 Vite 详细构建日志,提升输出可读性</li></ul></li><li><strong>安装脚本兼容性修复</strong>: 修复 macOS 新版本上默认应用设置失败的问题<ul><li>将废弃的 Python LaunchServices 脚本替换为 Swift 原生实现</li><li>修复 macOS 12+ 不再自带 LaunchServices Python 模块的问题</li></ul></li><li><strong>应用图标透明通道修复</strong>: 修复 macOS 12.7 和 15.7 上应用图标显示白色方形背景的问题<ul><li>使用 AI 图像分割 (rembg) 精准移除白色背景,保留图标内部的白色纸张区域</li><li>强制对齐图标边缘为数学直线,消除 AI 抠图产生的波浪边缘</li><li>完美保留下拉阴影的半透明渐变效果</li></ul></li></ul><h3>Changed</h3><ul><li><strong>Troubleshooting 文档优化</strong>: 在 <code>docs/user/TROUBLESHOOTING.md</code> 顶部添加提示,引导普通用户先看 HELP.md</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.16.204">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.16.195</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.16.195</link>
<sparkle:version>195</sparkle:version>
<sparkle:shortVersionString>1.16.195</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Thu, 26 Feb 2026 04:56:34 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.16.195/FluxMarkdown.dmg"
sparkle:edSignature="gXBe9AM00IoCAM1stTXPrU4hmY76Q7TgSQ2wNdQP1QiyU5BJUoNLISoQHltC5EifyahEszR+KnnumNel90DRAw=="
length="10085352"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Changed</h3><ul><li><strong>文档结构重组</strong>: 按主题分层重构 <code>docs/</code> 目录结构,提升文档可维护性和可发现性</li><li> 新增 <code>docs/README.md</code> 作为文档总索引</li><li> 按主题分层:<code>docs/{user,dev,release,design,debug,testing,performance,research,licenses,history}/</code></li><li> 合并图片相关文档到 <code>docs/features/IMAGES.md</code>,原始详细文档归档至 <code>docs/history/images/</code></li><li> 合并性能相关文档到 <code>docs/performance/PERFORMANCE.md</code>,原始详细文档归档至 <code>docs/history/performance/</code></li><li> 统一测试路径引用:<code>tests/</code> → <code>Tests/</code></li><li> 删除根目录竞品 README 副本,仅保留 <code>docs/research/COMPETITIVE_ANALYSIS.md</code> 中的分析</li><li> 清理所有 <code>.DS_Store</code> 文件</li></ul><h3>Fixed</h3><ul><li><strong>搜索功能导致文件被标记为已编辑</strong>: 修复在 Host App 中使用搜索功能时,Markdown 文件被错误标记为「已编辑」且修改时间戳更新的问题 (#8)</li><li> Host App: 为 <code>ResizableWKWebView</code> 隔离独立的 <code>UndoManager</code>,避免搜索输入触发 <code>DocumentGroup</code> 的 autosave</li><li> QuickLook Extension: 修复 security-scoped 资源访问泄漏,添加文件监控的 size/mtime 门禁</li><li> Web Renderer: 移除搜索框的 100ms 延迟 focus,添加 <code>stopPropagation()</code> 防止按键冒泡</li></ul><h3>Added</h3><ul><li><strong>脚注支持(Footnotes)</strong>: 使用 <code>[^1]</code> 语法添加脚注,脚注内容自动渲染在文档底部</li><li><strong>上标 / 下标</strong>: 支持 <code>H~2~O</code>(下标)和 <code>x^2^</code>(上标)语法,适用于化学式和数学表达式</li><li><strong><code>==高亮==</code> 语法</strong>: 使用 <code>==文本==</code> 语法高亮标注重要内容,渲染为 <code><mark></code> 标签</li><li><strong>Smart 排版(Typographer)</strong>: 自动转换直引号为弯引号(<code>"</code> → <code>""</code>),<code>--</code> 为连接号(–),<code>---</code> 为破折号(—)</li><li><strong>Raw 源码切换</strong>: 点击预览窗口右上角 <code></></code> 按钮,可在渲染视图与原始 Markdown 源码(带语法高亮)之间切换</li></ul><h3>Added</h3><ul><li><strong>YAML Frontmatter 支持</strong>: 自动解析文档头部的 YAML 元数据,以表格形式美观展示</li><li><strong>GitHub Alerts 支持</strong>: 渲染 <code>> [!NOTE]</code>、<code>> [!WARNING]</code> 等 GitHub 风格提示框</li><li><strong>扩展代码高亮</strong>: 新增 20+ 种语言支持(Scala、Perl、R、Dart、Lua、Haskell、Elixir、Groovy、Verilog、VHDL、Makefile、TOML、Protobuf、GraphQL、PowerShell、Objective-C 等)</li><li><strong>Vega/Vega-Lite 图表</strong>: 支持 <code>vega</code> 和 <code>vega-lite</code> 代码块渲染为交互式 SVG 图表</li><li><strong>Graphviz 图表</strong>: 支持 <code>dot</code>/<code>graphviz</code> 代码块渲染为 SVG 图</li><li><strong>导出功能</strong>: 新增「导出为 HTML」和「导出为 PDF」菜单项(Cmd+Shift+E / Cmd+Shift+P)</li><li><strong>Settings 界面</strong>: 全新设计的偏好设置窗口(Cmd+,),支持:</li><li> Appearance: Light / Dark / System 主题切换</li><li> Rendering: Mermaid / KaTeX / Emoji 开关</li><li> Editor: 字体大小调整、代码高亮主题选择(Default / GitHub / Monokai / Atom One Dark)</li><li><strong>文件格式支持</strong>: 新增 <code>.mdx</code>、<code>.rmd</code>、<code>.qmd</code>、<code>.mdoc</code>、<code>.mkd</code>、<code>.mkdn</code>、<code>.mkdown</code> 扩展名</li></ul><h3>Fixed</h3><ul><li><strong>Host App Loading 卡死</strong>: 修复 Host App 打开文档后一直显示 "Loading renderer..." 的问题(添加 <code>allowUniversalAccessFromFileURLs</code> 配置)</li><li><strong>Settings 主题按钮点击失效</strong>: 修复 Appearance 界面 Light/Dark/System 按钮随机无法点击的问题(ZStack 重构 hit-test 层级)</li><li><strong>字体大小设置不生效</strong>: 修复 Editor 中调整字体大小后文档无变化的问题</li><li><strong>代码高亮主题不生效</strong>: 修复 Editor 中切换代码主题后文档无变化的问题</li><li><strong>KaTeX 开关不生效</strong>: 修复 Rendering 中关闭 KaTeX 后公式仍然渲染的问题(动态重建 MarkdownIt 实例)</li><li><strong>Emoji 开关不生效</strong>: 修复 Rendering 中关闭 Emoji 后 <code>:name:</code> 格式仍然转换为图标的问题</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.16.195">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.16.182</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.16.182</link>
<sparkle:version>182</sparkle:version>
<sparkle:shortVersionString>1.16.182</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Sun, 22 Feb 2026 18:07:26 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.16.182/FluxMarkdown.dmg"
sparkle:edSignature="SOWSf0hdvAEm1wLQYQgU1XgrplaIL5dkQwYMQ+/ylCoZKfbu43CSXoFCMYTvFU09E8oWutAkHqqDtpwVHnBHCg=="
length="7494960"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>YAML Frontmatter 支持</strong>: 自动解析文档头部的 YAML 元数据,以表格形式美观展示</li><li><strong>GitHub Alerts 支持</strong>: 渲染 <code>> [!NOTE]</code>、<code>> [!WARNING]</code> 等 GitHub 风格提示框</li><li><strong>扩展代码高亮</strong>: 新增 20+ 种语言支持(Scala、Perl、R、Dart、Lua、Haskell、Elixir、Groovy、Verilog、VHDL、Makefile、TOML、Protobuf、GraphQL、PowerShell、Objective-C 等)</li><li><strong>Vega/Vega-Lite 图表</strong>: 支持 <code>vega</code> 和 <code>vega-lite</code> 代码块渲染为交互式 SVG 图表</li><li><strong>Graphviz 图表</strong>: 支持 <code>dot</code>/<code>graphviz</code> 代码块渲染为 SVG 图</li><li><strong>导出功能</strong>: 新增「导出为 HTML」和「导出为 PDF」菜单项(Cmd+Shift+E / Cmd+Shift+P)</li><li><strong>Settings 界面</strong>: 全新设计的偏好设置窗口(Cmd+,),支持:</li><li> Appearance: Light / Dark / System 主题切换</li><li> Rendering: Mermaid / KaTeX / Emoji 开关</li><li> Editor: 字体大小调整、代码高亮主题选择(Default / GitHub / Monokai / Atom One Dark)</li><li><strong>文件格式支持</strong>: 新增 <code>.mdx</code>、<code>.rmd</code>、<code>.qmd</code>、<code>.mdoc</code>、<code>.mkd</code>、<code>.mkdn</code>、<code>.mkdown</code> 扩展名</li></ul><h3>Fixed</h3><ul><li><strong>Host App Loading 卡死</strong>: 修复 Host App 打开文档后一直显示 "Loading renderer..." 的问题(添加 <code>allowUniversalAccessFromFileURLs</code> 配置)</li><li><strong>Settings 主题按钮点击失效</strong>: 修复 Appearance 界面 Light/Dark/System 按钮随机无法点击的问题(ZStack 重构 hit-test 层级)</li><li><strong>字体大小设置不生效</strong>: 修复 Editor 中调整字体大小后文档无变化的问题</li><li><strong>代码高亮主题不生效</strong>: 修复 Editor 中切换代码主题后文档无变化的问题</li><li><strong>KaTeX 开关不生效</strong>: 修复 Rendering 中关闭 KaTeX 后公式仍然渲染的问题(动态重建 MarkdownIt 实例)</li><li><strong>Emoji 开关不生效</strong>: 修复 Rendering 中关闭 Emoji 后 <code>:name:</code> 格式仍然转换为图标的问题</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.16.182">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.15.165</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.15.165</link>
<sparkle:version>165</sparkle:version>
<sparkle:shortVersionString>1.15.165</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Sun, 22 Feb 2026 05:50:25 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.15.165/FluxMarkdown.dmg"
sparkle:edSignature="uirFmADAJ3+CmhPvACaT1qLU1217A66Y7iTQDEz3W0BJBkU1cRAfTAC/0p9fcHWh5k/1grHysMgLriOufhCkAA=="
length="7494934"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>性能基线测试基础设施</strong>:</li><li> 新增三层性能测试框架 (JS 引擎层 / Swift-WKWebView 层 / QuickLook 系统层)</li><li> 新增 7 个标准 Markdown fixture 文件用于可重复性测试</li><li> 新增 <code>benchmark/js-bench/</code> - Playwright 驱动的 JS 渲染基准测试</li><li> 新增 <code>benchmark/swift-bench/</code> - XCTest 驱动的 WKWebView 桥接层测试</li><li> 新增 <code>benchmark/ql-bench/</code> - qlmanage 端到端系统层测试</li><li> 新增 <code>benchmark/compare.py</code> - 优化前后对比脚本</li><li> 新增 <code>benchmark/run-all.sh</code> - 一键运行全部测试</li><li>新增 <code>docs/history/performance/BENCHMARK_BASELINE.md</code> - 完整基线测试报告文档</li><li> 记录了优化前的性能基线数据,为后续优化提供量化对比基准</li></ul><h3>Changed</h3><ul><li><strong>重大性能优化 (7项)</strong>:</li><li> <strong>P0 Bundle 拆分</strong>: 移除 <code>vite-plugin-singlefile</code>,改用标准多文件输出 + <code>loadFileURL</code></li><li> <code>index.html</code> 从 5.5 MB 降至 1.84 KB (-99.97%)</li><li> Swift 侧从 <code>loadHTMLString()</code> 改为 <code>loadFileURL(_:allowingReadAccessTo:)</code></li><li> <strong>P1-A highlight.js Tree-shaking</strong>: 全量导入改为 <code>highlight.js/core</code> + 按需注册 24 种语言</li><li> hljs 贡献从 ~400 KB 降至 ~80 KB (-80%)</li><li> <strong>P1-B Mermaid 单例化</strong>: <code>mermaid.initialize()</code> 改为仅主题变化时调用</li><li> mermaid 热渲染从 ~186ms 降至 ~46ms (-75%)</li><li> <strong>P2-A 图片 I/O 异步化</strong>: <code>collectImageData()</code> 移至后台 <code>Task.detached</code></li><li> 消除主线程图片 I/O 阻塞</li><li> <strong>P2-B LocalSchemeHandler 启用</strong>: 注册已实现未启用的 <code>local-md://</code> scheme handler</li><li> 删除 ~50 行 base64→Blob 转换代码,图片改为按需加载</li><li> <strong>KaTeX 懒加载</strong>: 改为按需动态 import,仅含公式文档加载</li><li> <code>index.js</code> 从 554 KB 降至 317 KB (-43%)</li><li> <strong>Mermaid 预热</strong>: 渲染后空闲时刻预热 mermaid chunk</li><li> 同会话二次打开 mermaid 文档从 ~380ms 降至 ~20ms</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.15.165">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.14.164</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.14.164</link>
<sparkle:version>164</sparkle:version>
<sparkle:shortVersionString>1.14.164</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Wed, 18 Feb 2026 08:56:28 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.14.164/FluxMarkdown.dmg"
sparkle:edSignature="QFPox+n+Q7/XMEq5R6OhABi4UImp4vXJl9pma3A+Bed0J7if9yp2jsE3es34ezxqAhcEZ3PJ9KcrNQvx7aldDA=="
length="7494893"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Changed</h3><ul><li><strong>⚠️ LICENSE 变更为双许可证模式(重大变更)</strong>:</li><li> <strong>开源许可证</strong>: 从 Non-Commercial 改为 <strong>GPL-3.0</strong></li><li> ✅ 个人、教育、开源项目可免费使用</li><li> ✅ 任何修改必须以 GPL-3.0 开源</li><li> ✅ 满足 Homebrew 官方 cask 提交要求</li><li> <strong>商业许可证</strong>: 为闭源商业使用提供选项</li><li> 📧 联系 xy.kong.com 咨询商业授权</li><li> 📜 详情见 <code>LICENSE.COMMERCIAL</code></li><li> <strong>影响</strong>:</li><li> ✅ 移除了商业使用的硬性限制</li><li> ✅ 允许提交到 Homebrew 官方仓库</li><li> ✅ 允许企业和开源项目自由采用</li><li> ⚠️ 如需闭源商业化,需购买商业许可证</li></ul><h3>Added</h3><ul><li><strong>README 首屏优化</strong>: 改进项目首页的视觉呈现和用户体验</li><li> 添加演示 GIF (<code>docs/assets/demo.gif</code>),展示 Mermaid、KaTeX、代码高亮、TOC 等核心功能</li><li> 添加 GitHub badges(Stars、Release、Downloads、License)以增强信任度</li><li> 添加快速导航链接(中文文档、安装、常见问题)</li><li> 添加显式 Star CTA(Call-to-Action)以提升 Star 转化率</li><li> 改进 Troubleshooting 部分使用折叠式 <code><details></code>,降低视觉噪音</li><li> 同步更新中英文 README(README.md 和 README_ZH.md)</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.14.164">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.13.158</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.13.158</link>
<sparkle:version>158</sparkle:version>
<sparkle:shortVersionString>1.13.158</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Mon, 16 Feb 2026 15:45:02 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.13.158/FluxMarkdown.dmg"
sparkle:edSignature="d5y3bDHmhRDkLVNZkOvRBG+3y+ZgBttdnG9qhoIITxC02Hgs63AIoWW3waRfV9q0RChKKYUmbWEO9L+LCRWvDg=="
length="7494879"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Added</h3><ul><li><strong>更新后自动恢复文件</strong>: 更新后自动打开上次查看的 Markdown 文件</li><li> 在主应用打开文件时自动保存文件路径</li><li> 通过 Sparkle 更新器检测更新安装事件</li><li> 更新完成后应用重启时自动恢复上次打开的文件</li><li> 使用 App Groups (group.com.xykong.Markdown) 实现跨进程持久化存储</li><li> 如果用户之前查看的文件已被删除,会优雅地处理失败情况</li><li> 只在更新后触发恢复,正常启动不会影响用户体验</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.13.150">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.13.149</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.13.149</link>
<sparkle:version>149</sparkle:version>
<sparkle:shortVersionString>1.13.149</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Thu, 12 Feb 2026 17:00:30 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.13.149/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="czMOX4jubu9MD2aNls9+uO09X0oocCREJH+6X9x+xHSklU7eOBzqmFKlgFhjZFYCiPgSoUOYLmXTzSxgWI36AA=="
length="7319688"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Fixed</h3><ul><li><strong>菜单重复问题</strong>: 修复主应用菜单栏中出现两个 "View" 菜单的问题</li><li> 将 <code>CommandMenu("View")</code> 改为 <code>CommandGroup(after: .windowArrangement)</code></li><li> 菜单项现在正确添加到系统默认的 View 菜单中,而不是创建新的独立菜单</li><li><strong>国际化支持 (i18n)</strong>: 修复"检查更新"菜单项和 QuickLook 预览中的 Toast 消息在英文系统中显示中文的问题</li><li> 将硬编码的中文文本替换为 <code>NSLocalizedString</code> 调用</li><li> 在 <code>en.lproj/Localizable.strings</code> 和 <code>zh-Hans.lproj/Localizable.strings</code> 中添加对应的翻译</li><li> 修复的字符串包括:</li><li> "Check for Updates..." (检查更新...)</li><li> "QuickLook preview does not support link navigation" (QuickLook 预览模式不支持链接跳转)</li><li> "Double-click .md file to open in main app for full functionality" (请双击 .md 文件用主应用打开以使用完整功能)</li></ul><h3>Changed</h3><ul><li><strong>菜单布局优化</strong>: 优化菜单栏结构以符合 Apple Human Interface Guidelines (HIG)</li><li> <strong>Find 菜单曲目</strong>: 从 Window 菜单移至 Edit 菜单(位置:.textEditing 组)</li><li> 符合 macOS 标准惯例,快捷键 ⌘+F</li><li> <strong>Show Source 菜单项</strong>: 从 Window 菜单移至 View 菜单(位置:.toolbar 组)</li><li> 快捷键 ⌘+⇧+M,更适合视图切换操作</li><li> <strong>Appearance 子菜单</strong>: 从 Window 菜单移至 View 菜单(位置:.toolbar 组)</li><li> 主题选择属于视图配置,不符合窗口管理范畴</li><li> <strong>Window 菜单</strong>: 现在仅保留窗口管理相关功能</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.13.149">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.13.141</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.13.141</link>
<sparkle:version>141</sparkle:version>
<sparkle:shortVersionString>1.13.141</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Thu, 12 Feb 2026 16:18:52 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.13.141/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="EF/GwvLKmxpniNtCHNkhmrLUK5GdTeyFxptLZ60itGYVVKNMR3pwQFvNi/a8MFvLU6/YncgY1xQ6fYfCEOq4Dw=="
length="7429119"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><h3>Fixed</h3><ul><li><strong>锚点跳转宽容匹配(Anchor Link Tolerant Matching)</strong>: 修复手写目录链接与自动生成的 anchor ID 不匹配的问题。</li><li> <strong>问题场景</strong>: 用户手写目录时,链接可能使用多个连字符(<code>---</code>)或混淆下划线(<code>_</code>)与连字符(<code>-</code>),导致跳转失败</li><li> <strong>解决方案</strong>: 实现三层渐进式匹配策略</li><li> <strong>Level 1(最高优先级)</strong>: 精确匹配,保证准确性</li><li> <strong>Level 2</strong>: 压缩多个连续连字符(<code>---</code> → <code>-</code>),解决手写目录多连字符问题</li><li> <strong>Level 3</strong>: 统一下划线和连字符(<code>_</code> ≈ <code>-</code>),解决视觉相似字符混淆问题</li><li> <strong>优先级保证</strong>: 当文档中同时存在相似标题时,优先跳转到精确匹配的标题</li><li> <strong>技术实现</strong>:</li><li> 新增 <code>compressMultipleHyphens()</code> 函数压缩连字符</li><li> 新增 <code>unifyUnderscoreAndHyphen()</code> 函数统一下划线和连字符</li><li> 新增 <code>findElementByAnchor()</code> 函数实现三层渐进式查找</li><li> 更新主内容区和目录面板的链接点击处理器</li><li> <strong>测试覆盖</strong>: 新增 <code>test/anchor-matching.test.ts</code>,包含 10 个测试用例,覆盖所有匹配层级和优先级场景</li><li> <strong>兼容性</strong>: 与主流 Markdown 编辑器(Typora、VSCode)的宽容行为一致,提升用户体验</li><li> <strong>用户体验</strong>:</li><li> 手写目录小错误不再影响跳转</li><li> 不需要精确记住下划线还是连字符</li><li> 容错设计,减少用户认知负担</li></ul><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.13.141">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.12.137</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.12.137</link>
<sparkle:version>137</sparkle:version>
<sparkle:shortVersionString>1.12.137</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Wed, 11 Feb 2026 12:48:19 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.12.137/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="PiNAoPDeIvouQ9k7y9ZY7nKenxngWaCqahIsYH1dfq04ecAIcMe0VKjyj4kO1daw7sAalUvTFOqcRdohO2OxBA=="
length="7428647"
type="application/octet-stream" />
<description><![CDATA[
<h2>更新内容</h2><p><a href="https://github.com/xykong/flux-markdown/releases/tag/v1.12.137">查看完整更新日志</a></p>
]]></description>
</item>
<item>
<title>Version 1.11.130</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.11.130</link>
<sparkle:version>131</sparkle:version>
<sparkle:shortVersionString>1.11.130</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Tue, 11 Feb 2026 11:09:00 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.11.130/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="mN7YER9FykmegvX7im5BbSL9YGUNE82eDXYG+i/OVLbaOyL5glqFYRkf85fMPhuppMdLdC7GOMtqC5smxuNJBg=="
length="7386706"
type="application/octet-stream" />
<description><![CDATA[
<h2>新增功能 / Added</h2>
<ul>
<li><strong>链接导航 (Link Navigation)</strong>: 为 Markdown 文档添加完整的链接跳转支持</li>
<li><strong>主应用 (Main App)</strong>:
<ul>
<li>外部 URL 链接 (http/https) 在默认浏览器中打开</li>
<li>相对路径链接 (<code>../file.md</code>, <code>./dir/file.md</code>) 正确解析并打开目标文件</li>
<li>页内锚点链接 (<code>#section</code>) 平滑滚动定位</li>
<li>支持所有文件类型 (<code>.md</code>, <code>.sql</code>, <code>.py</code>, <code>.json</code> 等)</li>
</ul>
</li>
<li><strong>QuickLook 预览 (Preview)</strong>:
<ul>
<li>由于 macOS 沙盒限制,所有链接点击时显示优雅的 toast 提示</li>
<li>Toast 位置: 顶部居中,自动关闭 (3 秒)</li>
<li>非阻塞: 用户可继续浏览文档</li>
</ul>
</li>
<li><strong>技术实现</strong>:
<ul>
<li>端到端桥接: JavaScript 通过 <code>window.webkit.messageHandlers.linkClicked</code> 传递链接信息给 Swift</li>
<li>页内锚点: JavaScript 直接处理平滑滚动</li>
<li>文件路径解析: 支持相对路径、绝对路径、<code>file://</code> 协议</li>
</ul>
</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.10.127</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.10.127</link>
<sparkle:version>127</sparkle:version>
<sparkle:shortVersionString>1.10.127</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Mon, 09 Feb 2026 16:29:41 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.10.127/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="1J1xAwMv3yhvn2c+GCEl15dIY+kDZ1d0bpz+sinG2knhiyXMKHqH1iyYOmEhRdbejOCrPpIXUVY1uk/KPESgBw=="
length="7366532"
type="application/octet-stream" />
<description><![CDATA[
<h2>新增功能 / Added</h2>
<ul>
<li><strong>滚动位置记忆</strong>: 自动记录每个 Markdown 文件的滚动位置,下次打开时自动恢复到上次查看的位置</li>
<li>支持记录最近 100 个文件的位置</li>
<li>使用 LRU(最近最少使用)策略自动管理存储</li>
<li>存储位置通过 App Group 在主 App 和 QuickLook 扩展间共享</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.10.124</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.10.124</link>
<sparkle:version>124</sparkle:version>
<sparkle:shortVersionString>1.10.124</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Mon, 09 Feb 2026 13:11:00 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.10.124/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="1jwS+0KXQWR318HC8K8RkMeWVz7ezl0waKQqIb6KH9fD7oIgIdNye2ShrKsqtxE5Xg1ozK7hhid5jZB7V+dCAw=="
length="7342465"
type="application/octet-stream" />
<description><![CDATA[
<h2>安全性改进 / Security</h2>
<ul>
<li><strong>沙盒权限优化</strong>: 将 QuickLook 扩展的文件访问权限从整个文件系统 (/) 缩小到仅用户主目录 ($HOME/)</li>
<li><strong>权限对话框改进</strong>: 文案从"访问所有数据"改为更友好的"访问您的主文件夹"</li>
<li><strong>安全性提升</strong>: 无法访问系统目录、其他用户数据和应用程序数据</li>
<li><strong>用户体验</strong>: 权限对话框更清晰易懂,仅需授权一次</li>
<li><strong>功能影响</strong>: 覆盖 99% 的真实使用场景(相对路径和用户主目录内的绝对路径仍可正常工作)</li>
</ul>
<h2>修复 / Fixed</h2>
<ul>
<li><strong>WKWebView 进程泄漏</strong>: 修复 QuickLook 扩展中 WKWebView 进程累积导致严重内存占用问题</li>
<li><strong>修复效果</strong>: Web Content 进程数量从 30+ 降低到 1-2 个,总内存占用从 2GB+ 降低到 100-200MB</li>
</ul>
<h2>文档 / Docs</h2>
<ul>
<li>添加首次使用权限请求说明</li>
<li>添加完整的 Troubleshooting 章节</li>
<li>更新技术文档说明新的安全限制</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.10.119</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.10.119</link>
<sparkle:version>119</sparkle:version>
<sparkle:shortVersionString>1.10.119</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Sun, 09 Feb 2026 03:51:37 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.10.119/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="7zs5iZ6fXSrWGaEHmLr5YbHsGy/fUS9oPLjd0KHkelhXB/3qOJFgWMxah1zhQwGtL4+Nti+VZgW/Vhkn88ACDw=="
length="7340051"
type="application/octet-stream" />
<description><![CDATA[
<h2>修复 / Fixed</h2>
<ul>
<li><strong>WKWebView 进程泄漏</strong>: 修复 QuickLook 扩展中 WKWebView 进程累积导致严重内存占用问题</li>
<li><strong>问题表现</strong>: 预览多个 Markdown 文件时,会累积创建 30+ 个 "Web Content" 进程,每个进程占用 60-80MB,总内存占用达 2GB+</li>
<li><strong>根本原因</strong>: 缺少 WKProcessPool 共享机制、自定义 URL scheme handler 阻止进程共享、WKWebView 没有被正确清理</li>
<li><strong>解决方案</strong>: 添加共享 WKProcessPool、移除不必要的 custom scheme handler、在 viewWillDisappear 和 deinit 中添加完整清理逻辑</li>
<li><strong>修复效果</strong>: Web Content 进程数量从 30+ 降低到 1-2 个,总内存占用从 2GB+ 降低到 100-200MB</li>
</ul>
<p><strong>相关 Issue</strong>: <a href="https://github.com/xykong/flux-markdown/issues/6">#6</a></p>
]]></description>
</item>
<item>
<title>Version 1.8.114</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.8.114</link>
<sparkle:version>114</sparkle:version>
<sparkle:shortVersionString>1.8.114</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Thu, 05 Feb 2026 06:23:51 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.8.114/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="5VxgworFFL4pMFZN4y1WK2RAy9MOheAzf9aFYWoIQaPMvIjWaywSYfXK2EhGf7ZZnLDmqWl74WNDxU+p/FACBA=="
length="7338577"
type="application/octet-stream" />
<description><![CDATA[
<h2>新增 / Added</h2>
<ul>
<li><strong>页内搜索功能</strong>: 为主应用添加完整的页内搜索功能</li>
<li>✅ 浏览器风格的搜索工具栏 (Cmd+F 触发)</li>
<li>✅ 实时高亮所有匹配项 (黄色背景)</li>
<li>✅ 当前匹配项特殊高亮 (橙色背景)</li>
<li>✅ 匹配计数显示 (如 "3/15")</li>
<li>✅ 上一个/下一个匹配导航</li>
<li>✅ 支持多种搜索模式: 普通搜索、大小写敏感、全字匹配、正则表达式</li>
<li>✅ View 菜单和右键菜单集成</li>
<li>✅ 国际化支持 (英文/简体中文)</li>
<li>✅ 自动适配亮色/深色主题</li>
</ul>
<h2>修复 / Fixed</h2>
<ul>
<li><strong>Swift 编译警告</strong>: 修复 startAccessingSecurityScopedResource() 返回值未使用的警告</li>
</ul>
<p><strong>注意</strong>: QuickLook 预览模式暂不支持搜索功能</p>
]]></description>
</item>
<item>
<title>Version 1.6.102</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.6.102</link>
<sparkle:version>102</sparkle:version>
<sparkle:shortVersionString>1.6.102</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Wed, 04 Feb 2026 02:02:00 +0800</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.6.102/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="V7HqjuQrdaDbfUlDUyE1ttgy1cjSbr7w76uj+tSCmKIUZVQsF17FSSJB2obxfMr8LPiNbjhnUxCImurd4H4qDA=="
length="7290034"
type="application/octet-stream" />
<description><![CDATA[
<h2>修复 / Fixed</h2>
<ul>
<li><strong>自动更新</strong>: 实现密钥迁移支持,允许从旧版本(v1.6.96 及更早)平滑更新</li>
<li>添加 <code>SUPublicEDKeyChain</code> 数组,同时包含新旧两个公钥</li>
<li>旧版本用户现在可以成功验证并安装新版本的更新</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.6.100</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.6.100</link>
<sparkle:version>100</sparkle:version>
<sparkle:shortVersionString>1.6.100</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Wed, 04 Feb 2026 01:54:00 +0800</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.6.100/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="FODdhq7ltEKzdS5v+zgTlnQD/ti25CTPr/fJjXNU4HfBgmgbbwsXtjkZM2ZhNzXeOTSErR/svWsyerytpdZNAA=="
length="7289961"
type="application/octet-stream" />
<description><![CDATA[
<h2>修复 / Fixed</h2>
<ul>
<li><strong>自动更新</strong>: 修复签名验证错误 "improperly signed" 的问题</li>
<li>更新公钥以匹配新生成的 EdDSA 密钥对</li>
<li>重新签名所有更新包以确保签名验证通过</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.6.99</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.6.99</link>
<sparkle:version>99</sparkle:version>
<sparkle:shortVersionString>1.6.99</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Wed, 04 Feb 2026 01:45:00 +0800</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.6.99/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="h048is5CZv6SafC4IbrMdwjEra7N7Ajos8Qi8BfQPFKkfxIPVHcLQwSSvvTZH4ccgQM0IRVcpLMgHVo77rz9Dw=="
length="7292396"
type="application/octet-stream" />
<description><![CDATA[
<h2>修复 / Fixed</h2>
<ul>
<li><strong>自动更新</strong>: 修复安装新版本时报错 "An error occurred while running the updater" 的问题</li>
<li>使用正确的 Sparkle XPC 服务名称:<code>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</code> 和 <code>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</code></li>
<li>之前使用的服务名 <code>com.xykong.Markdown.Installer</code> 不符合 Sparkle 规范</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.6.96</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.6.96</link>
<sparkle:version>96</sparkle:version>
<sparkle:shortVersionString>1.6.96</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Wed, 04 Feb 2026 01:33:00 +0800</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.6.96/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="rt8MW/xG3PLHpxt2FcDnYu9M3qgPhBrtXhpczcYh9uiqt9EQNxLCNQSiH06egqkOWH+IxTzacVon/mZEOYv+BA=="
length="7289941"
type="application/octet-stream" />
<description><![CDATA[
<h2>修复 / Fixed</h2>
<ul>
<li><strong>自动更新</strong>: 修复安装新版本时报错 "An error occurred while launching the installer" 的问题</li>
<li>添加沙盒权限例外,允许 Sparkle 安装器与主应用通信并写入 /Applications 目录</li>
<li>启用 SUEnableInstallerLauncherService 支持沙盒应用的安装器启动服务</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.6.93</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.6.93</link>
<sparkle:version>93</sparkle:version>
<sparkle:shortVersionString>1.6.93</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Tue, 03 Feb 2026 17:00:16 +0000</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.6.93/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="hbNYXHeSGGbkfuXxPe2knjnqAxgwf4HiqrHCW/Rusf3qMcFwPfnYwIkqy0LNK4BV8GqLfXDwef1tTdLuS38LAQ=="
length="7289575"
type="application/octet-stream" />
<description><![CDATA[
<h2>修复 / Fixed</h2>
<ul>
<li><strong>自动更新</strong>: 修复手动检查更新无响应的问题</li>
<li>使用 SPUStandardUpdaterController 替代手动组装,这是 Sparkle 2.x 推荐的 SwiftUI 集成方式</li>
<li>使用 NSApp.sendAction() 正确触发更新检查的 AppKit action</li>
</ul>
]]></description>
</item>
<item>
<title>Version 1.6.90</title>
<link>https://github.com/xykong/flux-markdown/releases/tag/v1.6.90</link>
<sparkle:version>90</sparkle:version>
<sparkle:shortVersionString>1.6.90</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>11.0</sparkle:minimumSystemVersion>
<pubDate>Mon, 03 Feb 2026 23:25:00 +0800</pubDate>
<enclosure
url="https://github.com/xykong/flux-markdown/releases/download/v1.6.90/MarkdownPreviewEnhanced.dmg"
sparkle:edSignature="dJkl2q8746f8GZLBvUFQxGndAtlmWCtnU1QlCkufJt876oNXuwd440TexH1HomcCqxdJCaK8xL2KvORSUAnGCg=="
length="7284896"
type="application/octet-stream" />
<description><![CDATA[
<h2>重要更新 / Major Update</h2>
<ul>
<li><strong>统一更新策略</strong>: 所有用户(Homebrew 和 DMG)现在都使用 Sparkle 自动更新</li>
<li><strong>菜单按钮</strong>: 所有用户都能看到"检查更新..."按钮(快捷键 ⌘U)</li>
<li><strong>及时更新</strong>: Homebrew 用户可立即获取更新,无需等待 Cask 维护者</li>
</ul>
<h2>改进 / Improvements</h2>
<ul>
<li>删除 82 行代码,简化更新逻辑(45% 代码减少)</li>
<li>遵循业界标准(与 iTerm2、Docker Desktop、VSCode 一致)</li>
<li>更好的用户体验:统一、及时、安全</li>
</ul>
<h2>技术细节 / Technical Details</h2>
<ul>
<li>移除所有 Homebrew 检测逻辑</li>
<li>总是初始化 Sparkle 自动更新器</li>
<li>Homebrew Cask 的 <code>auto_updates true</code> 防止冲突</li>
</ul>
]]></description>
</item>
</channel>
</rss>