如何建立个人知识库
如何建立个人知识库
劝退指南
本片文章不会涵盖所有平台的解决方案,或者一些基础内容如何使用的介绍,因此如果下方列出的问题,你无法独立解决或者无法接受,那么本片文章很有可能不适合你
- 因网络问题无法安装 Obsidian 插件,或者其他服务无法打开的情况
- 部分流程中需要额外付费
- 希望 All in one,无法/不愿意 尝试多方案整合
- 本片文章均以苹果生态下的设备做展示,因此部分功能其他平台很可能无法使用(需自行寻找替代),比如跨设备同步方案
iCloud
前期准备
再开始之前,先介绍一下整个方案需要用到的所有内容
名称 | 价格 | 是否必须 |
---|---|---|
Tophub | 终身 169 | ✓ |
教育邮箱 | 点击链接自行挑选 | ❌ |
Readwise | 8$/月,教育优惠 50% | ✓ |
Obsidian | 免费 | ✓ |
iCloud | 点击链接查看 | ❌ |
外区苹果账号 | 免费 | ❌ |
github 账号 | 免费 | ✓ |
vercel 账号 | 免费 | ✓ |
个人域名 | 域名提供商查询 | ❌ |
教育邮箱用途非常广泛,Readwise 使用教育优惠后,每年只需要 200¥,还是比较划算的。这里的外区苹果账号主要是为了在手机使用 App 浏览 Tophub 的内容(国区被下架了)
Readwise 最近要发布 Reader 的正式版,后面订阅价格会提升,所以使用教育优惠年付是比较明智的方案
成品效果可以阅读 个人 Obsidian 文档访问指南 配置好后,即可访问我的 Obsidian 服务
目标 & 背景
在去年早些时候,我从 Obsidian 专向使用 Heptabase 已经有一年多了,当时因为没有找到合适的 Obsidian self host 分享方案,再加上当时 Obsidian 也没有 Canvas 功能,所以全面转向了 Heptabase
然而近期偶然发现 digitalgarden
可以用一个非常低的成本完成分享的内容,因而萌生了重新捡起 Obsidian 的想法,更主要的原因是,自从开始使用 Heptabase 后,我记笔记的习惯逐渐减少了,我自己分析时得到了如下结论
白板的表现形式看起来非常出色,实际在我部分文章中配合 Heptabase 解释一些复杂关系时,表现非常好,但是这套流程对我个人来说却有一个致命问题
当我创建一个白板时,就需要想好这个白板的主题是什么,但是日常的笔记往往没有主题,而是一些碎知识,分布在各处。当这些碎知识积累到一定程度时,在某一天突然灵光一现,再使用白板将他们串起来
所以 Heptabase 的流程和我日常思维正好反了过来,这个问题的出现个人因素比较大,很可能在你身上并不会出现
这段时间我一直在思考如何规划自己的个人知识库,最终符合我想要的最终方案应当包含如下内容
- 信息搜集,需要信息来找我,而不是刻意搜索
- 阅读、批注
- 最好能解决视频的笔记问题
- 本地存档,跨设备同步
- 可以分享到 web 上,供其他人参考
- 所有功能可以在手机和电脑上操作,满足我个人不同场景的使用需求
在这套流程下,日常就变成了 Tophub 检索今天的新文章,找到合适的丢给 Readwise,接着在 Readwise 中标记、总结,然后同步到 Obsidian,最后使用 digitalgarden 发布到 vecel 免费的服务器上
为什么需要建立个人知识库
在 ChatGPT 发布后的这段时间,AI 的进步速度已经完全超出我的理解范围了,可能今天还需要人力参与的重复性劳动,明天就会被 AI 的新功能 cover 掉了,我个人认为,未来终身学习的比重会越来越重,因此个人知识库就会变得非常重要
或许未来有一天,每个人都可以训练专属自己的 AI 助手,而训练的资料或许就可以从这份知识库中检索
此外,作为程序员,养成解决具体问题时记笔记的习惯,对个人提升是非常大的。就我个人而言,我并不希望已经解决过一次的问题,第二次碰见时还需要从头踩坑。而且在我们项目组对新人转正要求中,也有一条记笔记写文档的习惯
信息搜集
这里需要理解为什么选 Tophub 作为这个环节的解决方案,而不是在 Readwise 中直接订阅 rss feed。首先大部分人并不清楚信息源到底有多少,以及国内病态的 信息孤岛
问题,导致很多平台的文章并没有有效的聚合方案(尤其是微信公众号!),多多少少需要手动完成一些信息的获取
而 远爸
的 Tophub 很好的解决了这个需求,我可以用一个非常小的成本,完成全平台的信息聚合检索,这里有很多我之前没有了解到的优秀站点,这样就完成了信息来找我们这件事
当前订阅的部分文章截图
除此之外,你还可以自定义关键字,当文章/标题出现这些关键字时,就会出现在追踪器里,比如下图的内容就是出现
Unity
、C#
或者是dotnet
关键字的文章
文章/视频 阅读、批注
这件事情的终极解决方案就是 Readwise,我也是最近才接触到这个工具,实在是有些相见恨晚。但是在这几天的折腾过程中,我首先尝试的是 简悦
这个工具,过程实在是曲折
简悦这套流程结合 Obsidian 时,需要配置 3 份工具,浏览器插件、客户端同步插件、Obsidian 插件,最后找到了 B站 zhihu的一只小胖子 的视频才最终配合
简悦本身提供的功能也非常强大,价格也很便宜。但是对于我个人来说,尤其是配置过程,就像当年面对索尼一百多个按钮的遥控器一样,至今我也只使用了遥控器上的换台、关机和加减音量的功能
但是 简悦
在手机端的流程旧断了,虽然借助 JSBox 可以一定程度上完成部分工作,但是最关键的导入至 Obsidian 却没了,比较遗憾
除此之外,在我日常记录的过程中,视频也是比较重要的一环,这里就不得不夸一下 Readwise 结合 GPT 对 Youtobe 视频的支持,我愿称为最强解决方案!
虽然 Readwise 支持油管的视频笔记,但平时 B 站的视频也占了我日常比较大的比重,目前并没有得到有效的支持,这点也比较遗憾,但是仍然有其他解决方案,具体可以参考
Nicole van der Hoeven 的这个视频,目前我还没想好 B 站的视频笔记方案要怎么选
如果是在电脑端,可以安装 Readwise 的浏览器插件,点一下即可完成文章的剪藏
如果需要在手机上将文章导入给 Reader 可以点分享按钮,然后选择 Reader。如果你手机上没有 Reader 的选项,可以向后划到最后,选择更多,接着自己调整顺序就好了
Obsidian 配置
Obsidian 的配置也很简单,这里给出我目前使用到的所有插件的截图。配合 Readwise 只需要安装 Readwise Official
插件即可,第一次配置时,需要登录,授权一下就好了~
免费账户只有 10次 转存的机会,所以如果希望保存到 Obsidian 中,付费是必须的
由于 Readwise 提供的默认模板我个人不是很喜欢,所以这里需要点 Customize 按钮,定制 Readwise 同步时的格式
下图为 Readwise 导出时的最终效果参考
- 首先我们需要移除 Page title 中的所有内容
- 修改 Page metadata
---
Arthur: {{author}}
Tags: Readwise, Readwise/{{category}}
url: {{url}}
CreateDate: {{date}}
dg-home: false
dg-publish: true
---
> [!md] 元数据
> **作者**: {% if author %}{{author}}{% endif %}
> **标题**: {{full_title}}
{% if document_note -%}
> **笔记**: {{document_note}}
{% endif -%}
{% if document_tags -%}
> **分类**: {% for tag in document_tags %}#{{tag}} {% endfor %}
{% endif -%}
{% if url -%}
> **地址**: {{url}}
{% endif -%}
- 修改 Highlights header
{% if is_new_page %}
## 笔记
{% elif has_new_highlights -%}
## 添加时间: {{date|date('F j, Y')}} at {{time}}
{% endif -%}
- 修改 Hightlight,注意最后有一个空行
> [!NOTE] {% if highlight_location and highlight_location_url %}{{highlight_text}} [跳转]({{highlight_location_url}}){% elif highlight_location %} ({{highlight_location}}){{highlight_text}}{% endif %}{% if highlight_tags %}
> 分类: {% for tag in highlight_tags %}#{{tag}} {% endfor %}{% endif %}{% if highlight_note %}
> {{ highlight_note }}{% endif %}
Readwise 贴心的提供了一个 preview 窗口,这个功能太赞了!最终你会在这里看到类似下图的格式
发布配置
首先需要在 Obsidian 中安装 Digital Garden 插件,先按照下图配置好 git 仓库,这里我的仓库名为 Obsidian-Publish
,token 需要点击插件中 here
根据引导一步步获取,最后的 Base URL
这个就是个人域名的作用了,如果没有的话,可以先填空,然后去 vercel
复制
接着我们需要在 github 上创建 Obsidian-Publish
仓库,这里建议创建一个 private 的私有仓库,免去一些麻烦。接着运行下方指令,注意替换你的地址
git clone https://github.com/oleeskild/digitalgarden Obsidian-Publish
cd Obsidian-Publish
rm -rf .git
git init .
git add .
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:你github 名称/Obsidian-Publish.git
git push -u origin main
接着回到 github 创建的仓库,刷新页面后,README 中会有一个 Deploy
按钮,这个就是 vercel 的打开链接,点击按钮跟着步骤一步步创建即可
vercel 的自动化做的非常省心,部署好了基本上再也不用管了
当 vercel 第一次构建结束后,你旧可以看到 vercel 替你生成的网站链接了,如果你没有自己的域名,用这个也是可以的,如果有域名的话,此时需要配置域名的 cname 解析,首先我们来到 vercel 配置 Domains
这里是最终结果,第一次配置时界面可能跟这里不太一样,会有一个 cname 的 dns 服务器地址,先复制下来
然后我们来到域名的后台,我的域名是在阿里买的,下面为阿里环境的截图,注意区分两个域名填写的内容是不一样的,vercel 需要填写全部内容,而域名后台只需要填写二级域名
接着在 Obsidian 的 Menu 中点击下图的按钮,会弹出 Digital Garden 发布的菜单
按需要点击不同按钮,点击时,每个文件的变化都会创建一条 git commmit,而每次 commit 都会触发 vecel 的构建,所以后面只需在这个界面发布就好了~ 剩下的可以完全交给自动化
由于这套解决方案,静态资源是存放在
cdn.jsdelivr.net
这个域名的 cdn 上,而刚好这个域名国内无法访问,记得配置代理时增加这个域名的解析,否则就会出现网页打开速度特别慢的问题
最后
这样整套个人知识库的搭建流程就介绍完毕了,对我来说,弄知识库也好,写博客也好,最重要的出发点是 教学 和 分享,如果你自己的流程不希望有分享的环节也无妨~
未来 AI 的能力会越来越强,现在一个完全不懂美术的程序,借助 AI 的绘画能力,也可以独立完成一部分专业美术的工作。以后这种能力交换的例子会越来越多,希望借助这套流程,未来的某一天现有技能被 AI 取代时,不至于那么狼狈
- 感谢你赐予我前进的力量