问题
站主反馈偶得里 `- [ ] 每天至少阅读1小时…` 没渲染成复选框,`[ ]` 原样显示;
同样的语法在文章里正常。原因不是语法写错,而是**两套渲染器**:
文章:Astro 内容管线 → Sätteri,配置里开了 gfm → 任务列表正常
偶得:src/lib/thoughts.ts 里裸的 new MarkdownIt() → 不含 GFM 扩展
实测确认:这条偶得(20260822-好好工作.md,任务列表嵌在引用块里)产出的是
<blockquote><ul><li>[ ] 每天至少阅读1小时…</li></ul></blockquote>
改法
新增 src/plugins/markdown-it/task-lists.mjs,输出刻意与 Sätteri 那边逐字对齐:
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" disabled> 文字</li>
</ul>
这样以后给任务列表写 CSS,文章和偶得两边都吃得到。
几个实现细节
- 判断任务项看的是 list_item_open → paragraph_open → inline 这个固定结构;
紧凑列表里 paragraph 是 hidden 的但 token 仍在,所以照样能判
- 找父级列表是按 token 层级往回扫,不是假设它在最外层 —— 因为站主的用法
正是把任务列表放在引用块里
- class 用 addClass 去重:一个列表里每个任务项都会来加一次,直接用 attrJoin
会变成 class="contains-task-list contains-task-list contains-task-list …"
- 方括号后必须跟空白才算任务项,`- [ ]紧贴文字` 按普通文本处理(与 GFM 一致)
验证
- 该偶得现在产出 contains-task-list / task-list-item / checkbox,与文章
树莓派云服务器的使用总结 里那处逐字一致
- 边界用例:`[x]`/`[X]` 正确勾选、有序任务列表可用、嵌套列表只标父级、
多个列表各自只加一次 class、普通列表项不受影响
- pnpm build 退出码 0
顺带在操作指南里记了「两套渲染器」这个根因,以及偶得目前还缺的 GFM 能力
(裸链接自动转换、脚注、数学公式、callout、智能标点)。
1.3 KiB
1.3 KiB
slug, title, published, location, tags, weather
| slug | title | published | location | tags | weather | |
|---|---|---|---|---|---|---|
| 2026/08-02 | 好好工作 | 2026-08-02T19:01:00+8:00 | 张掖·甘州区 |
|
晴 |
现在的状态就是浑浑噩噩,这一周退出值班之后,我发现自己的工作状态非常差,什么都不想做,只是一味的拖延,把精力浪费在了装机上面。现在买了一台四千多的组装电脑的各类配件,但是自己在工作上面却一事无成,特别是安排给自己的任务没有完成,就是拖!
看书也看不进去,自己充了微信读书的会员,并没有好好利用起来,我到底怎么了,晚上也不睡觉看片看短视频,我到底怎么了?
我如果继续这样下去只会越来越糟糕,我必须改变现状!从今天开始,休息时间除了打电话之外,尽可能不去看视频,多看看书📚,把自己的注意力集中起来,去做一些有意义的事情,而不是继续这样下去!
我必须改变,这需要自己去行动起来
- 每天至少阅读1小时(晚饭后20分钟,睡觉前30分钟,午睡前10分钟),每天坚持!
- 不看视频(特别是抖音)
- 今日的事情,尽心尽力了,无论结果如何,都应该高高兴兴地上床恬睡。
- 利用空闲时间更新一下自己的文章,对积淀一些东西