W28
8.1.2528 周刊V2528:知识图谱和Obsidian脚本优化实现自动标题管理¶
这周去贵阳旅游,就没有及时的更新
知识管理方法¶
- 关于索引笔记的实践,任何一个实体/概念都可以是一个索引笔记。原因是,一个实体/概念随着时间推移,功能和形态会变化,自己对这个实体/概念的认知也会发生变化,这些认知甚至是相互矛盾的都有可能。 所以该实体/概念下应该有很多闪念笔记或者文献笔记。把实体/概念用一句话进行总结,并形成一个以"实体/概念"为名称的标签,把实体/概念笔记作为索引笔记,基于标签和编码,把已有笔记进行组织,沉淀自己的思考过程。不断的回顾和修正该实体/概念,就能针对这个实体/概念形成丰富的心理表征。
知识图谱相关¶
- 实体的统一可以通过以下几种方法实现:
- 建立规范词汇表:建立一个词汇表,将所有实体的名称进行规范化,统一使用规范名称进行表示。这种方法需要一定的人工标注和维护工作,但可以有效地解决实体名称的异构性问题。
- 实体链接技术:通过实体链接技术,将不同来源的实体链接到同一个标准实体上。这种方法需要进行实体识别和实体链接的工作,可以利用外部知识库和语义相似度计算来提高实体链接的准确性。
- 语义建模:通过对实体进行语义建模,将不同名称和描述的实体映射到同一个语义空间中。这种方法需要对实体进行语义表示和相似度计算,可以利用机器学习和自然语言处理等技术来实现。
- 协同标注:通过协同标注的方式,让多个领域专家对实体进行统一标注和描述,以减少实体异构性的问题。这种方法需要进行协同工作和标注管理,需要一定的协调和组织能力。 总之,实体统一是知识图谱中的一个重要问题,需要结合具体场景和需求,采用合适的方法和技术进行处理和解决。
- 知识图谱的挖掘过程,可以类比知识管理能力:
- 实体识别。找出输入文本中的概念。
- 同义词挖掘,缩略词挖掘。解决概念的同义不同名问题。
- 关系抽取。找到两个节点(概念-概念或关系-概念或关系-关系)之间的联系。
笔记整理心得¶
- 在解析PDF时,我发现使用DeepSeek V3或者非深度思考模式,解析得更加准确且速度更快。相比之下,深度思考模式反而很慢。
- 在GET笔记中,语音笔记转录成功后,可以将其移动到对应的知识库,以表示这条笔记已经被处理过。
- 在使用Get笔记的AI助手时,可以通过深度思考模式提升笔记的价值。如果不折叠思考过程,保存笔记时就能将完整的思考过程一并记录下来;如果不需要保存这些内容,也可以选择将思考过程折叠,这样就不会被保存。这个技巧还是群友提醒我才知道的,否则我还真没注意到。
- 修改了一个commander聚合命令向下刷新的功能,包括格式化笔记以及同步笔记
内容发布策略¶
- 独立发布墨问笔记,而不需要和我的官网进行混合在一起,可以考虑在墨问上做自己的5分钟阅读记录
- 下线pandawiki,专注使用WordPress:编写pandawiki文章的时候,服务器会卡掉,停了docker,
- 官网笔记同步至聆龙的设置 obsidian commander 做了一个设置,发布到官网的笔记也会同时回传到聆龙。发布到官网的笔记,在回传到聆龙笔记时,内链标签会消失。可以通过这一标志来判断笔记是否已经发布到官网。

笔记工具探索¶
Dinox¶
- 把聊天记录复制到dinox, 在使用捷径生成笔记,很方便:酷口与shanks讨论了Dinox应用的使用体验和更新问题。酷口表示对Dinox的依赖,并担心应用更新问题。Shanks回应称由于个人开发进度有限,会先完成框架再逐步丰富功能。双方认同创业不易,提到Obsidian和Flomo等应用通过低调运营得以长期存活。
- dinox mac端推出新的客户端,可以快速的提问和创建笔记,快捷键:
- 新建笔记:contorl+N
- 保存笔记:cmd+S
Obsidian¶
- Obsidian 1.9.5 桌面版(抢先体验)更新:
- 基础功能: 新增公式编辑器,支持语法高亮、自动补全和文档显示。
- 画布: 嵌入的Base视图可被固定。
- 解析器: 改进了大型表格和提示的处理。
- Base: 历史记录中保留滚动位置;卡片视图支持无属性显示;公式和文件属性显示日期和时间根据操作系统区域设置;新增"添加项目"和"添加视图"命令等。
- 函数: 新增 List#filter 和 List#map 函数;file.links 包含嵌入;link() 支持非 HTTP URL。
- 修复: 属性在内联嵌入中隐藏;修复 MathJax 块点击问题;Base 在画布卡片中更新等问题。
- 使用obsidian 插件 templater,实现了脚本更新yaml的标题属性, 配合 Commander ,将这个能力绑定到保存宏组合中,尝试了豆包、元宝,最终使用kimi实验成功
使用方法:
/* setTitleFromFilename.js */ async function setTitleFromFilename() { const file = app.workspace.getActiveFile(); if (!file) return; /* ===== 排除指定文件 ===== */ if (['Inbox', '待办记录.components'].includes(file.basename)) return; /* ========== 1. 读取并标准化标签 ========== */ const cache = app.metadataCache.getFileCache(file); const rawTags = cache?.frontmatter?.tags ?? cache?.frontmatter?.tag ?? []; const tags = Array.isArray(rawTags) ? rawTags.map(t => String(t).toLowerCase()) : [String(rawTags).toLowerCase()]; /* ========== 2. 标签 → 前缀 映射表(按优先级排序) ========== */ const tagRules = [ { match: ['清单'], prefix: '7.1' }, { match: ['人物', '角色'], prefix: '3.1' }, { match: ['企业'], prefix: '1.1' }, { match: ['记录'], prefix: '1.4' }, { match: ['酷口家数字花园'], prefix: '0.0' }, { match: ['思维模型'], prefix: '2.1' }, { match: ['技术'], prefix: '2.2' }, { match: ['城市', '地名'], prefix: '4.1' }, { match: ['app','法宝'], prefix: '5.1' }, { match: ['灵兽'], prefix: '5.2' }, { match: ['功法'], prefix: '5.3' }, { match: ['上线记录'], prefix: '8.2' }, { match: ['攻略'], prefix: '6.1' }, { match: ['法宝'], prefix: '5.1' }, { match: ['门派'], prefix: '3.2' }, { match: ['方法论'], prefix: '2.2' }, { match: ['参考资料','书名'], prefix: '9.1' }, { match: ['自媒体'], prefix: '9.2' }, { match: ['插件'], prefix: '5.2' }, { match: ['行业'], prefix: '1.0' } ]; /* ========== 3. 根据标签确定前缀(命中即停) ========== */ let prefixBase = '8.1'; for (const rule of tagRules) { if (rule.match.some(k => tags.includes(k))) { prefixBase = rule.prefix; break; } } /* ========== 4. 拼完整前缀:基础 + 年月日 ========== */ const today = new Date(); const y = today.getFullYear(); const m = String(today.getMonth() + 1).padStart(2, '0'); const d = String(today.getDate()).padStart(2, '0'); const datePart = `${y}${m}${d}`; const datePrefix = `${prefixBase}.${datePart}`; /* ========== 5. 处理 title ========== */ const currentTitle = String(cache?.frontmatter?.title ?? '').trim(); const shouldPrefix = prefixBase; // 不含日期 const shouldFull = `${prefixBase}.${datePart}`; // 含今天日期 const parts = currentTitle.match(/^([\d.]+)\s*(.*)$/); const oldPrefixRaw = parts ? parts[1] : ''; const body = parts ? parts[2] : (currentTitle || file.basename); // 只取前两段,忽略第三段及以后 const pureOld = oldPrefixRaw.replace(/\.\d{8}$/, '').split('.').slice(0, 2).join('.'); let newTitle = ''; if (pureOld !== shouldPrefix) { // 规则1:标签不一致 → 重拼 newTitle = `${shouldFull} ${body.trim()}`; } else if (/^\d$/.test(pureOld)) { // 规则2:单数字且一致 → 重拼 newTitle = `${shouldFull} ${body.trim()}`; } else { // 规则3:X.X.X 且一致 → 仅补空格 newTitle = `${oldPrefixRaw} ${body.trim()}`; } if (newTitle !== currentTitle) { await app.fileManager.processFrontMatter(file, fm => fm.title = newTitle); new Notice(`✅ 已更新:${newTitle}`); } /* ========== 6. 写回 frontmatter ========== */ await app.fileManager.processFrontMatter(file, fm => { fm.title = newTitle; }); new Notice(`✅ title 已更新:${newTitle}`); } module.exports = setTitleFromFilename; - js保存为 setTitleFromFilename.js(放在 Templater 的 Scripts 目录):
- 新建摸板笔记,在任意模板或空模板里放一行: 最终绑定到commander.
get笔记¶
- Get笔记v2.1.0版本核心功能更新 📸 多图转笔记:一次搞定10张图
- 支持批量上传10张图片,AI自动识别文字并整合成结构化笔记
- 提供「智能总结」「全文提取」两种AI处理模式,支持自定义风格要求
- 适用场景:读书、培训、会议中的PPT/资料图片快速整理 🔗 链接分享笔记:图文音频一体化
- 生成包含文字、图片、录音的完整笔记链接,支持微信/朋友圈等多渠道分享
- 可自由开启/关闭「分享录音音频」选项,兼顾便捷性与隐私保护 🎙️ 会议记录优化:随手记+拍重点
- 录音过程中可随时拍照补充PPT画面或输入灵感,AI同步整合
- 支持修改发言人名称(如将"发言人1"改为"张总"),多人讨论记录更清晰 🔒 知识库权限管理
- 可设置「仅允许提问,不允许查看笔记原文」模式,平衡协作与隐私保护 🗑️ 一键清理缓存
- 设置页支持快速清理录音、图片、PDF等缓存文件,释放设备空间(保留近7天录音)
幕布¶
幕布推出文字挖空功能,可将笔记转换为个性化填空题,用于检验和巩固知识。使用步骤为: * 网页/电脑客户端在大纲笔记模式下选中需回忆文本,点击悬浮工具栏挖空按钮(或快捷键ctrl/command+shift+x),再点击右上角预览模式进入挖空背诵模式; * 手机/平板则在大纲模式选中文本后点击下方挖空按钮,再点击阅读模式进入背诵模式。 该功能支持导出PDF打印,目前已全平台上线,仅在大纲模式下可用,表格、公式、思维导图模式尚未完全匹配。
ima¶
ima网页版已上线,不挑系统,通过浏览器即可使用。用户访问ima.qq.com并登录账号后,可基于全网或知识库内容提问,也可逛知识库广场、加入感兴趣的知识库。此外,ima还提供划线记笔记、浏览器插件、小窗问答等轻便功能。 网页版::ima.copilot-腾讯AI工作台