长文长这样:列表页只给标题和摘要
超过 700 字的会折叠成一行摘要。这条同时演示 dek 字段——它是长文在列表页唯一的门面,值得单独写一句,而不是从正文里剪一段。
这是一条样例,用来验证杂谈列表页的长文形态。写第一条真内容时把它删掉。
为什么长短要分开处理
杂谈这个栏目的价值在于发布阻力低——想到什么写什么,不需要先想好结构。 但如果所有条目在列表页都只显示标题加摘要,那些两百字就说完的短想法会显得 比实际更重,读者点进去发现只有一屏,来回一趟不值得。
反过来,如果全部展开,一篇长文会把整个列表页占满,后面的条目谁也看不见。
所以按长度分开:短的当场读完,长的给个入口。这个判断由正文字数自动做出, 不需要写的时候多想一步。
dek 字段该怎么写
长文在列表页只有标题和 dek 两行可用,所以 dek 不是摘要,是钩子:
它要回答"我为什么该点进去",而不是复述正文第一段。
短帖可以不写 dek,因为全文已经展开了。
小标题不编号
档案条目的 ## 会被 CSS 自动编号成 01–07,因为那七段确实是一个固定顺序的
调查流程,序号承载读者需要的信息。杂谈的小标题顺序是任意的,编号就成了噪音,
所以这里用的是 .prose-plain,不带编号。
阈值定在哪
列表页按字符数判断,不是字节数——中文一个字在 UTF-8 里占 3 字节, 按字节定阈值会差出三倍,实际效果就是所有中文短帖都被误判成长文。 这个坑很容易踩,因为在英文内容上两者几乎相等,测不出来。
当前阈值是 500 字。这个数字是这么来的:正文宽 643px、字号 16.5px, 一行大约放 38 个中文字,行高 1.85 大约 30px。500 字就是 13 行、约 400px 高—— 在列表里顺手读完不费劲,又不至于把后面的条目全挤到屏幕外面去。
想调就改 src/pages/notes/index.astro 里的 SHORT 常量,只有那一处。
什么时候该手动覆盖
expand 字段存在的意义是应付判断失灵的少数情况,不是让你每篇都标一次:
- 一条很短但结构完整、值得有自己页面的,写
expand: false强制折叠 - 一条超了阈值但其实是流水账、点进去很失望的,写
expand: true直接摊开
如果你发现自己每篇都在写 expand,那说明阈值定错了,去改 SHORT,
而不是继续一篇篇标。
关于本文,有问题、使用反馈或不同的实测结果,都欢迎留言。 涉及设备实测时,请尽量附上设备型号、固件版本和测试条件。 我会在对应留言下回复,已核实的修正会补进正文。
留言需登录 GitHub。不方便使用或评论未加载时,可以邮件反馈(itscraper@hotmail.com),邮件已预填本文链接。