目录
582 字
3 分钟
博客新增 PDF 下载与浏览页
最近把博客里的 PDF 分发流程收了一次口,目标很明确:不要再为每个 PDF 单独写页面,也不要每加一个文件就改一次代码。
现在的做法是固定一个投放目录:public/pdfs/。只要把 PDF 放进去,博客里的 PDF 页面就会在构建时自动扫描这些文件,并生成可浏览、可下载的条目。
现在能做什么
这个页面集中提供了四件事:
- 自动列出 public/pdfs/ 里的所有 PDF。
- 按最后修改时间倒序展示,新的资料会更靠前。
- 在页面里直接展开预览。
- 支持新窗口打开和直接下载。
页面入口已经放进 Exhibition 下面,访问路径也固定成了 /pdfs/。
为什么不再用仓库根目录
最开始的想法是“把 PDF 直接拖到仓库根目录就行”。这个想法看起来简单,但不适合 Astro 的静态资源发布模型。
根目录文件不会自动变成可公开访问的站点资源。真正适合放公开文件的位置,是 public 下面的目录。所以最后把工作流改成了 public/pdfs/,这样页面扫描和最终部署都是一致的。
现在的使用方式
后续新增 PDF 时,只需要按下面做:
- 把 PDF 复制到 public/pdfs/。
- 启动或重启本地开发服务器。
- 打开 /pdfs/ 检查是否已经出现。
如果是移动端设备,内嵌 PDF 预览不一定总是稳定,所以页面里保留了“新窗口打开”作为兜底入口。
这次实现刻意没有做的事
这版没有引入额外的元数据文件、封面抽取、分类和分页。原因很简单:当前目标是把维护动作压到最低,而不是先把系统做重。
如果之后 PDF 数量明显增长,再考虑为单个文件补充描述、封面或者筛选能力会更合适。
小结
这次调整之后,PDF 的维护成本就变成了一个非常直接的动作:放文件。
对内容侧来说,这比“每次加资料都要改模板”稳定得多;对读者来说,也终于有了一个统一的 PDF 浏览和下载入口。
部分信息可能已经过时