我把几十篇笔记整理成了 LLM Wiki——Karpathy 方案实践

背景 用了这么久的 Logseq 和 Hugo 博客,笔记越攒越多。Hugo 博客里有二十多篇文章,Logseq 里更是有几十上百页的技术笔记,但问题是——这些东西虽然都在,用的时候却很难快速找到。 比如我想知道"之前是怎么配 Syncthing 的",得去 Logseq 里翻半天,再去 Hugo 博客里看一遍旧文章,两边内容还可能有冲突。 说白了,我的笔记系统有个根本性问题:写的时候很爽,用的时候找不到。 后来看到了 Andrej Karpathy(前特斯拉 AI 总监、OpenAI 联合创始人)分享的一个模式,叫做 LLM Wiki。看完觉得这思路很适合我,于是实践了一下,把现有的 Hugo 博客文章和 Logseq 笔记整理成了一个结构化的 Wiki。 这篇就来分享一下整个整理的方法和方案。 为什么不用传统笔记管理方式 我之前其实试过几种方式: 纯靠 Logseq 搜索——关键词能搜到,但搜出来的结果往往很散,一个知识点分布在好几条笔记里,每次看都要重新拼凑 建一堆目录分类——技术/运维/开发/AI 这样分,但很多内容跨领域,比如 Docker 既是技术又是运维工具,放哪儿都不对 Obsidian + 标签——标签系统灵活是灵活,但标签多了之后跟没分一样,#docker 下面挂了 50 个完全不相关的笔记 核心问题是:传统笔记系统是"存储导向"的,我需要什么再去翻。而 LLM Wiki 的思路是"知识导向"——先把知识提炼出来,整理成结构化的页面,之后不管谁(人或 AI)来问,都能直接给出答案。 什么是 LLM Wiki 简单说,LLM Wiki 就是一个纯 Markdown 文件组成的知识库,没有数据库,没有特殊软件,就是一个文件夹里的 .md 文件。 但它跟普通笔记有几个关键区别: 分层结构——原始素材和提炼后的知识分开存放 实体和概念分离——“Docker 是什么”(实体)和"容器化的设计思想"(概念)是两种不同类型的页面 强制交叉引用——每个页面必须用 [[wikilink]] 链接到至少 2 个其他页面 不可变原始素材——导入的笔记原文不动,提炼出的知识写在另外的页面里 操作日志——每次整理都记录到 log.md,方便追溯 整体架构 最终我的 Wiki 目录长这样: ...

April 22, 2026

告别自建CI,博客改用GitHub Actions自动化部署

背景 之前这个博客的自动化部署一直是用自建 Drone CI 来跑的,相关文章可以翻翻:Blog All Process 和 Drone自动化部署Java应用。 用了两三年,功能上没问题,push 代码后自动构建部署一条龙。但最近越来越觉得维护这套东西的成本太高了: 需要一台服务器专门跑 Drone——drone-server + drone-runner-docker 两个容器,还得配 NGINX 反代、HTTPS 证书 GitHub OAuth 应用要维护——Drone 登录依赖 GitHub OAuth,得在 GitHub 上建 OAuth App,配回调地址 服务器迁移就全得重来——之前从宝塔换到 1Panel,Drone 的 docker socket 映射、目录映射全部得重新搞 资源占用不划算——就为了跑个博客构建,长期跑两个容器,内存白白占着 说白了,就我一个用户,建一个博客项目,为了这点需求长期维护一套 CI 系统,性价比太低了。 于是就想,能不能把这套东西干掉,找个现成的、不用自己维护的方案。 方案选择 目前主流的 CI 服务就这几个: GitHub Actions——GitHub 自带的,免费额度够用,仓库就在 GitHub 上,天然集成 GitLab CI——如果项目放 GitLab 上可以用,但我项目已经在 GitHub 了 Jenkins——更重了,跟 Drone 一个性质,需要自己维护服务器 Drone Cloud——官方托管版,但免费额度有限 没怎么犹豫就选了 GitHub Actions,原因很简单: 仓库本身就在 GitHub 上,push 就触发,零延迟 免费额度:每月 2000 分钟,博客构建一次不到 2 分钟,根本用不完 不用维护任何服务器,GitHub 帮你跑 配置就是一个 .yml 文件,放项目里就行 之前的部署流程 先回顾一下之前 Drone 的流程长什么样: ...

April 20, 2026

Hugo使用自定义字体

有一天看到了别人的博客,发现那个字体真好看啊 F12 去看了下随后去搜了搜,发现了是一个开源的字体 https://github.com/lxgw/LxgwWenKai 名字起的也挺好听的:霞鹜文楷 下面介绍一下我的博客修改这个字体的方法 博客说明 Hugo + PaperMod 可参考:Blog All Process 参考 在官方 github 上找到了 cdn:https://github.com/lxgw/LxgwWenKai/issues/24 下面是原话: 关于chawyehsu制作的webfont, 我向cdnjs提了pr, 目前merge了, 国内已有镜像, 有需要的可以使用. https://cdn.staticfile.org/lxgw-wenkai-webfont/1.6.0/style.css https://cdn.staticfile.org/lxgw-wenkai-screen-webfont/1.6.0/style.css 目前只有这两个, 其他的没提交 参考引入 <html> <head> <link rel="stylesheet" href="https://cdn.staticfile.org/lxgw-wenkai-webfont/1.6.0/style.css" /> <!-- 没有Lite version, 有需要的可以向cdnjs发pr看看能不能通过--> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lxgw-wenkai-lite-webfont@1.1.0/style.css" /> <!-- 没有TC version, 有需要的可以向cdnjs发pr看看能不能通过--> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lxgw-wenkai-tc-webfont@1.0.0/style.css" /> <!-- Screen version --> <link rel="stylesheet" href="https://cdn.staticfile.org/lxgw-wenkai-screen-webfont/1.6.0/style.css" /> <style> body { font-family: "LXGW WenKai", sans-serif; /* Lite version */ font-family: "LXGW WenKai Lite", sans-serif; /* TC version */ font-family: "LXGW WenKai TC", sans-serif; /* Screen version */ font-family: "LXGW WenKai Screen", sans-serif; } </style> </head> <body> <!-- blablabla --> </body> </html> 使用方式 两个关键文件 ...

May 3, 2023

Blog All Process

该篇文章记录的是这个博客的整个搭建流程. Hugo + PaperMod + Drone 目标 Logseq 用来日常记录使用,不对外开放 使用博客作为日常分享以及知识产出的对外平台 第一目标是轻量 其次是自动化 随后是美观 方案选型 简单调研了几个平台: WordPress:不够轻量,放弃 Typecho:不够轻量,放弃(主要是提供的有后台编辑工具,我用不到,性价比就很低了,并且也就导致不够轻量) Solo:强制加入社区,导出还需要积分,不是我想要的,放弃 Holo:与上面类似吧,没仔细研究 Hugo:目前使用的,够轻量,没有多余的内容,没有平台,只是静态资源生成工具 可以看到,个人的博客目前是比较小的,暂时是不考虑做的很大,因此轻量是当前的一个重要因素 希望的是所有的数据在自己手里,以写 Markdown 的方式记录博客,Hugo 就刚好满足 关于 Hugo 不做过多介绍,贴一个官网:https://gohugo.io/ 关于主题 看了一些之后,考虑了两个: PaperMod LoveIt LoveIt 还是比较丰富的,看起来漂亮一点儿,甚至我当时都考虑在主题上面放弃 “轻量”,但后来发现开源协议是GPL3,也就是版权和许可声明必须保留,放弃了 在此声明一下:刚才又去看了下,看着是 MIT的,不知道是不是我之前看错了,不过也因为此吧,放弃了,正好也感觉有点儿重 PaperMod 整体看着还是很干净简约的,目前我就是要这种风格吧 开发工具 就 Typora 吧,不需要系统性的 生成新的博客的时候,直接使用 Hugo 命令:hugo new posts/first-blog/index.md 随后用 Typora 打开编写 关于图片 可以看到我上面的命令里面新建文章的时候,用的是 /first-blog/index.md,这种是为了解决引入本地文件的问题 也就是假如我们想直接使用项目中的图片或者文件采用如下方法: 新建博客时候中间多一层目录,实际的 md 文件放在这个目录中,叫做 index.md,该目录中定义资源目录,如 pics 用于存放图片,files 用来存放可以下载的附件 index.md 中引用到图片或者文件的时候,直接写相对路径 ![测试照片](pics/test.png) 整体的目录结构: themes static ... assets content: posts: first-blog: files pics: test.png index.md 参考了该博客: ...

May 2, 2023

First

体验一下 Hugo 的静态生成能力 让 ChatGPT 随便写一篇博客看看先 拖延症是一个我们都可能面对的问题。当面临任务时,我们常常会感到压力和焦虑,因此选择逃避或拖延任务。虽然这种行为可能会给我们带来短暂的缓解,但它通常会导致更多的困难和压力。 那么,我们应该如何克服拖延症呢? 首先,要意识到自己的拖延行为。只有意识到自己的问题,才能开始解决它。其次,制定一个实际可行的计划。将任务分解成较小的步骤,并为每个步骤设定截止日期。这样可以让任务看起来更加可管理和容易完成。 接下来,通过培养良好的习惯来克服拖延症。例如,每天早上设定目标并记录自己的进展情况,或者使用番茄工作法(即集中精力工作25分钟,休息5分钟)来提高工作效率。 最后,找到激励自己的理由。将注意力集中在任务的结果和收益上,而不是任务本身。这将有助于增强自己的意愿和动力,从而帮助克服拖延症。 总之,克服拖延症需要一些时间和精力。但如果我们能够意识到自己的问题并采取行动,就能够摆脱拖延的影响,并开始更加高效地工作和生活。

April 27, 2023 · 晓寒轻