全部文章 共 39 篇
搬完家,一周装修完:博客新前台开发全记录
上一篇《把博客搬成纯静态》的结尾,我给主题重写留了一句「那会是另一个系列」。结果它没成系列——成了一次冲刺。九月二十三日迁移收官那天,新前台还只是个能跑的最简骨架:四十四个路由全部预渲染,全站却只有一套临时样式。到今天写下这些字,暗色主题、独立首页、路由体系、文章目录、图片灯箱、边缘加速、追番列表、
从 charabia 到 ICU:我的静态博客搜索里,两本词典打了一架
静态站没后端,全文搜索交给 Pagefind 在访客的浏览器里跑。上线第二天我用真实词一搜,复合词全军覆没,单字却条条命中。这篇记录了从复现到修复的全过程——根因是索引侧和查询侧各带一本中文词典、切法还不一样;修法是把索引侧对齐到浏览器这本,而查询侧连一点插手的余地都没有。 搜索是前一天刚上线的。静
我的透明 WebM,被 ffmpeg 冤枉了
用 ffmpeg 把绿幕素材抠成透明 WebM,ffprobe 一扫:pix_fmt=yuv420p,看上去透明通道没了。排查了一整晚:滤镜链、编码器、容器结构挨个过了一遍,中途一度「确认」文件缺失关键信号,还专门写了个二进制修补器去补。最后发现这根本不是一桩罪案:文件从头到尾清清白白,「没有透明」
从 zone.js 到 signal:把异步请求写成响应式
这篇写给两类人:刚接触 Angular、想搞明白 signal 到底是什么的新人;以及在 zone.js 时代的 Angular(v13~v16 之类)里写了多年 @Input + ngOnChanges + subscribe 赋值,最近升级发现世界变了的老兵。文章从「一个会撒谎的计数器」讲起,一
给 AI 一份外置记忆:我的个人知识库部署全记录
AI 编码助手什么都好,就是记性差:每次新会话都是一张白纸,上个月踩过的坑,这个月能原样再踩一遍。最近我把一套个人知识库跑顺了——Qdrant 负责存和搜,一个开源 MCP 服务器把它封装成 AI 助手随叫随到的检索工具,日常的定稿决策、踩坑结论、可复用配置都以「条目」为单位沉淀进去,随用随查。整套
把博客搬成纯静态:一次 WordPress → Halo 迁移的全记录
这个九月,我把跑了七年的 WordPress 博客整个搬了家:写作后台换成 Halo,前台重写成 Angular 静态站点,访客看到的每一个字节都来自 nginx 直出的静态文件——全站唯一还连着后端的,只剩评论区。这篇文章记录整个迁移的架构、流程和踩过的坑。坑的密度超出我的预期,其中最大的一个悬案
杀戮尖塔 2 效果实现教程 —— 卡牌 / 遗物 / 药水 / Power 怎么写
打个广告:我给《杀戮尖塔2》开发的《星塔旅人》mod《杀戮星塔》正在锐意开发(咕咕)中,欢迎来围观!仓库地址:Github:SinonJZH/slay-the-stella 写在前面:这是我和 AI 斗智斗勇了 6 个小时后弄出来的教程。 这份教程讲什么:只讲一件事——效果代码怎么写。从"造成 6
一个 p 标签,弄哑了我的 SPA 导航
博客迁移收官日,新前台上线不到一小时,我就发现顶栏点不动了。URL 会变、标题会变、页面纹丝不动,console 干净得像什么都没发生过。这牵出了一场持续一整天的悬案:一度结案为「Angular 框架 bug」,最后翻案——凶手是一个不合法的 <p> 标签,藏在我从 WordPress 主题里抄来的
Verilog学习笔记——分频器
分频器应该是verilog里最常用的一个模块了,原理也很简单,就是设置一个计数器,设置在计到指定的分频数的一半后反转输出波的电平,以实现指定数目的分频,以下是一个100,000分频的例子:(这个模块本来是用于将一个100mHz的晶振信号转化为周期为1ms的信号) module ms_clk(
汇编学习笔记——用户登录验证系统
突然发现好像很久没有写过博客了…… 正好最近在上微机课,稍微学了一点汇编,实验课做了个小程序,就正好来水一篇文章( 代码和逻辑还是比较简单的,也加了很多注释,应该可以看懂我就不细讲了( .486 DATA SEGMENT USE16 password DB 'B18020511$'