用 Markdown Treeprocessor 根治 Django 博客双 H1,并顺手修好代码块可读性
个人技术站用纯服务端渲染 Markdown,常踩两个隐性坑:文章标题与正文 # 标题叠加出"双 H1"伤害 SEO;代码块在白天模式黑底浅字看不清。本文用自写的 Markdown Treeprocessor 扩展做标题降级(且不误伤代码块),并给出 Tailwind Typography 的代码块样式修复。
阅读全文 →记录 Web 工程实践:架构、性能、部署与踩过的坑。
个人技术站用纯服务端渲染 Markdown,常踩两个隐性坑:文章标题与正文 # 标题叠加出"双 H1"伤害 SEO;代码块在白天模式黑底浅字看不清。本文用自写的 Markdown Treeprocessor 扩展做标题降级(且不误伤代码块),并给出 Tailwind Typography 的代码块样式修复。
阅读全文 →同一个 "Expecting value: line 1 column 1 (char 0)" 可能对应空响应、HTML 错误页、裸字符串、Python None 四种完全不同的成因——光看报错根本分不出来。本文给出 8 种成因的实测报错原文对照表、一行定位脚本,以及本地文件/HTTP 接口/LLM 返回三类场景的排查清单。
阅读全文 →连接报错到底是"被拒绝"还是"超时"?本文用本机实测讲清 RST 与 DROP 的差异,并给出 Connection refused 排查清单。
阅读全文 →一个连接持有写锁未释放时,另一个连接写入就抛 database is locked。本文用最小复现讲清根因,并给出 busy_timeout、连接串行化、WAL 三种解法。
阅读全文 →用 utf-8 读取一个 GBK 文件就会抛 UnicodeDecodeError。本文给出最小复现,并对比 errors='replace' 与正确 encoding 两种修法。
阅读全文 →pip install 显示 Successfully installed,import 却报 ModuleNotFoundError。根因几乎总是"装包的 Python"和"跑代码的 Python"不是同一个。本文用同一台机器上的两个解释器实测复现,给出三行定位法与三类根因的对应解法。
阅读全文 →小程序有用户上传图片就必须接内容安全审核。很多人以为要买第三方服务,其实微信官方 imgSecCheck 免费,20 万次/天足够中小规模用。本文给出完整可运行代码(含 access_token 缓存、图片压缩、multipart 上传),并重点讲一个容易被忽略的设计:审核服务不可用时,绝不能默认放行。
阅读全文 →项目路径带中文,rm 报错还中断命令链、python -m venv 静默失败、node 说文件不存在、npm install 报 EPERM。四个看似无关的问题,其实是同一个根源。本文逐个拆解根因与解法,附可复现命令和排查清单。
阅读全文 →WSL2 里服务明明起来了,Windows 却访问不了?同一份配置隔了一晚行为完全相反。本文用一次真实排障,讲清 mirrored 与 NAT 两种网络模式的差异、三步定位法,以及为什么「先查 .wslconfig」比改端口转发有用得多。
阅读全文 →