PageSourceSearch

https://purocean.github.io/assets/js/43.cf903738.js

js purocean.github.io collected 2026-10-03 09:47:56 UTC 9,039 bytes, 1 lines download raw bytes

1(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{578:function(t,a,e){t.exports=e.p+"assets/img/image-20260712125722.41b11a4e.png"},579:function(t,a,e){t.exports=e.p+"assets/img/image-20260712125810.fd26536e.png"},644:function(t,a,e){"use strict";e.r(a);var _=e(5),n=Object(_.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("blockquote",[a("p",[a("a",{attrs:{href:"https://github.com/purocean/yn",target:"_blank",rel:"noopener noreferrer"}},[t._v("Yank Note"),a("OutboundLink")],1),t._v(" 是我编写的笔记应用。这里会写下一些关于 Yank Note 的文章")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"/yank-note-01"}},[t._v("Yank Note 系列 01 - 为什么要自己写笔记软件?")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-02"}},[t._v("Yank Note 系列 02 - Markdown 渲染性能优化之路")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-03"}},[t._v("Yank Note 系列 03 - 同内存泄露的艰难战斗!")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-04"}},[t._v("Yank Note 系列 04 - 编辑和预览同步滚动方案")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-05"}},[t._v("Yank Note 系列 05 - 关于本地历史功能")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-06"}},[t._v("Yank Note 系列 06 - 使用人工智能写文章是什么体验?")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-07"}},[t._v("Yank Note 系列 07 - 性能暴增 132 倍的秘密——重写")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-08"}},[t._v("Yank Note 系列 08 - 优化 Katex 公式渲染性能")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-09"}},[t._v("Yank Note 系列 09 - 关于流的使用")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-10"}},[t._v("Yank Note 系列 10 - 新增自定义快捷键功能")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-11"}},[t._v("Yank Note 系列 11 - 预览内查找功能")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-12"}},[t._v("Yank Note 系列 12 - 高效构建仓库索引与知识图谱")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-13"}},[t._v("Yank Note 系列 13 - 让 AI Agent 进入笔记工作流")])]),t._v(" "),a("li",[a("a",{attrs:{href:"/yank-note-14"}},[t._v("Yank Note 系列 14 - 我和 AI 怎么一起写文章")])])])]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/purocean/yn/releases/tag/v3.92.1",target:"_blank",rel:"noopener noreferrer"}},[t._v("Yank Note 3.92.1"),a("OutboundLink")],1),t._v(" 发布了。这版本体升级了 Markdown 渲染、扩展 API、浮动编辑器和终端体验,也新增了“编辑装订线”和“审阅批注”两个扩展。")]),t._v(" "),a("p",[t._v("在我看来,它们都指向同一个问题:"),a("strong",[t._v("当 AI 参与写作后,人应该怎样更好地参与修改循环。")])]),t._v(" "),a("h2",{attrs:{id:"ai-写作不是一次生成"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ai-写作不是一次生成"}},[t._v("#")]),t._v(" AI 写作不是一次生成")]),t._v(" "),a("p",[t._v("只给 AI 一个题目,生成后不满意就换提示词重来,很难得到真正符合自己意图的文章。文章不只有内容,还包含作者的观点、语气、取舍和上下文,这些不能交给 AI 一次决定。")]),t._v(" "),a("p",[t._v("所以我更倾向于把 AI 写作看成一个循环:")]),t._v(" "),a("ol",[a("li",[t._v("人给目标和材料")]),t._v(" "),a("li",[t._v("AI 生成草稿或修改建议")]),t._v(" "),a("li",[t._v("人阅读、批注、删改、补充判断")]),t._v(" "),a("li",[t._v("AI 根据这些反馈继续修改")]),t._v(" "),a("li",[t._v("人再次审阅,直到文章变成自己的东西")])]),t._v(" "),a("p",[a("a",{attrs:{href:"/yank-note-13"}},[t._v("上一篇文章")]),t._v("介绍了怎样让 Agent 进入 Yank Note,这次 3.92.1 继续解决另一个问题:"),a("strong",[t._v("AI 进来以后,人怎样更好地控制这个循环。")])]),t._v(" "),a("h2",{attrs:{id:"审阅批注扩展"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#审阅批注扩展"}},[t._v("#")]),t._v(" 审阅批注扩展")]),t._v(" "),a("p",[t._v("这次新增的“审阅批注”扩展,可以在预览中选择一段文字,然后添加批注。")]),t._v(" "),a("p",[a("img",{staticClass:"lazy",attrs:{alt:"Img","data-src":e(578),loading:"lazy"}})]),t._v(" "),a("p",[t._v("以前让我指出某一段的问题,需要在提示词里重新描述位置和上下文,非常麻烦。审阅批注把反馈直接绑定到选中的文本,并以人和 AI 都容易读的 Markdown 结构保存在文档末尾。这样下一轮 Agent 读取文档时,就能同时看到原文和人的修改意见。")]),t._v(" "),a("h2",{attrs:{id:"编辑装订线扩展"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#编辑装订线扩展"}},[t._v("#")]),t._v(" 编辑装订线扩展")]),t._v(" "),a("p",[t._v("另一个新增扩展是“编辑装订线”。它会在 Monaco 编辑器装订线中显示新增、修改和删除的è
1¡Œã€‚")]),t._v(" "),a("p",[a("img",{staticClass:"lazy",attrs:{alt:"Img","data-src":e(579),loading:"lazy"}})]),t._v(" "),a("p",[t._v("AI 改文章时,最怕的是它悄悄改了很多你没注意到的地方。")]),t._v(" "),a("p",[t._v("写代码有 diff,写文章也需要 diff。特别是让 AI Agent 直接改 Markdown 文件时,人需要快速知道:")]),t._v(" "),a("ol",[a("li",[t._v("哪些段落被重写了")]),t._v(" "),a("li",[t._v("哪些句子只是润色")]),t._v(" "),a("li",[t._v("有没有偷偷删掉重要观点")])]),t._v(" "),a("p",[t._v("编辑装订线不能替你判断好坏,但它能把“哪里变了”这个问题变得很显眼。这样人就可以把精力放到真正需要判断的地方。")]),t._v(" "),a("p",[t._v("这类功能在 AI 写作里会越来越重要。以前我们关注的是“如何让 AI 生成更多内容”,现在更应该关注“如何让人看得清 AI 做了什么”。")]),t._v(" "),a("h2",{attrs:{id:"markdown-相关升级"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#markdown-相关升级"}},[t._v("#")]),t._v(" Markdown 相关升级")]),t._v(" "),a("p",[t._v("这次还把 Markdown-it 升级到了 14.3.0,并增加了 CJK-friendly 强调解析,优化中文、日文文本的渲染。")]),t._v(" "),a("p",[t._v("AI 生成的 Markdown 常把 "),a("code",[t._v("*")]),t._v("、"),a("code",[t._v("_")]),t._v(" 紧贴中文或标点。Markdown 会根据标记两侧的空白和标点判断强调从哪里开始、在哪里结束,这套规则遇到通常不靠空格分词的中日韩文字时,结果有时不合直觉。CJK-friendly 解析就是针对这些情况做了适配。")]),t._v(" "),a("p",[t._v("另外新增了原始 HTML 容器,支持在 Markdown 内容中混合并直接渲染 HTML 区块。这对一些更复杂的文档和自定义内容会更方便。")]),t._v(" "),a("h2",{attrs:{id:"其他修复"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#其他修复"}},[t._v("#")]),t._v(" 其他修复")]),t._v(" "),a("p",[t._v("这次还修复了几个细节问题:")]),t._v(" "),a("ol",[a("li",[t._v("修复带语言标记的纯文本代码围栏重复转义")]),t._v(" "),a("li",[t._v("修复应用启动时无法正确恢复 HTML 及其他非 Markdown 文本文件内容")]),t._v(" "),a("li",[t._v("避免终端横向溢出导致输入法界面位置偏移")]),t._v(" "),a("li",[t._v("Electron 升级到 41,并更新依赖和安全相关的间接依赖")])]),t._v(" "),a("p",[t._v("其中终端 IME 位置偏移这个问题,对中文用户尤其明显。既然现在侧栏终端和 AI Agent 会越来越常用,终端里的输入体验也就变得更重要了。")]),t._v(" "),a("h2",{attrs:{id:"最后"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#最后"}},[t._v("#")]),t._v(" 最后")]),t._v(" "),a("p",[t._v("AI 可以起草、整理和润色,但文章最后留下什么,仍要由人决定。什么重要、什么该删、哪句话像自己,这些判断不能外包。")]),t._v(" "),a("p",[t._v("因此,我把 MCP、CLI、侧栏终端、审阅批注和编辑装订线看作一组协作工具:AI 可以直接推进文档,人也能看见改动、留下意见,再决定下一步。")]),t._v(" "),a("p",[t._v("我希望 Yank Note 能给你提供一个更适合人和 AI 一起写文章的工作台。")]),t._v(" "),a("p",[t._v("如果你对 Yank Note 感兴趣,想使用或者参与贡献,可以到 "),a("a",{attrs:{href:"https://github.com/purocean/yn",target:"_blank",rel:"noopener noreferrer"}},[t._v("Github"),a("OutboundLink")],1),t._v(" 了解更多。")]),t._v(" "),a("blockquote",[a("p",[t._v("本文由「"),a("a",{attrs:{href:"https://github.com/purocean/yn",target:"_blank",rel:"noopener noreferrer"}},[t._v("Yank Note - 一款强大可扩展的 Markdown 编辑器,为生产力而生"),a("OutboundLink")],1),t._v("」撰写")])])])}),[],!1,null,null,null);a.default=n.exports}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.