大家好!祝大家新年快乐 🎉,愿 2024 一切顺利!我们很高兴地宣布 AstroPaper v4 正式发布。这是一次重要更新,带来了多项新功能、优化改进以及问题修复,全面提升你的博客使用体验。特别感谢所有贡献者的宝贵意见与努力,让 v4 成为可能!

Table of contents
重大变更
升级至 Astro v4 #202
AstroPaper 现已基于 Astro v4 构建,充分利用其强大能力。不过这是一次相对平滑的升级,大多数 Astro 用户不会受到破坏性影响。

使用 Astro Content slug 替代 postSlug #197
在 AstroPaper v4 中,博客内容 schema 里的 postSlug 已被移除。
在早期版本中,由于 Astro 本身没有内置 slug 机制,我们只能自行实现。自 Astro v3 起,Astro 提供了内容集合(Content Collection)和 slug 功能。因此现在正式采用 Astro 官方内置的 slug 特性。
file: src/content/blog/astro-paper-4.md
---
author: Sat Naing
pubDatetime: 2024-01-01T04:35:33.428Z
title: AstroPaper 4.0
slug: "astro-paper-v4" # if slug is not specified, it will be 'astro-paper-4' (file name).
# slug: "" ❌ cannot be an empty string
---
slug 的行为现在略有不同:
在旧版本中,如果未指定 postSlug,系统会将文章标题自动转换为 slug 并使用。
而在 AstroPaper v4 中,如果未指定 slug,则会使用 Markdown 文件名作为 slug。注意:slug 字段可以省略,但不能是空字符串(slug: "" ❌)。
如果你是从 v3 升级到 v4,请务必将 src/content/blog/*.md 文件中的 postSlug 替换为 slug。
新功能
为内容创建新增代码片段(Snippets)#206
AstroPaper 现已内置 VSCode 代码片段,用于创建新的博客文章,无需再手动复制粘贴 frontmatter 和内容结构(目录、标题、摘要等)。
有关 VSCode Snippets 的更多信息,请参考官方文档。
博客文章新增修改时间显示 #195
现在可以在博客文章中显示修改时间,让读者了解文章的最新更新状态。这不仅提升用户对内容时效性的信任,也有助于博客 SEO 表现。

You can add a modDatetime to your blog post if you’ve made modifications. Now, the sorting behavior of the posts is slightly different. All posts are sorted by both pubDatetime and modDatetime. If a post has both a pubDatetime and modDatetime, its sorting position will be determined by the modDatetime. If not, only pubDatetime will be considered to determine the post’s sorting order.
新增返回顶部按钮 #188
在文章详情页中新增返回顶部按钮,优化阅读导航体验

标签页新增分页功能 #201
为标签页添加分页功能,提升内容组织与浏览体验。当某个标签下文章较多时,读者不会一次性被大量内容淹没。
动态生成 robots.txt #130
AstroPaper v4 现在会动态生成 robots.txt 文件,让你更灵活地控制搜索引擎抓取行为。
同时,sitemap URL 也会自动添加到 robots.txt 文件中。
新增 Docker-Compose 文件 #174
现在提供 Docker-Compose 文件,使部署与环境管理更加简单高效。
重构与问题修复
标签页标题不再使用 Slug 格式 #198
为提升可读性、用户体验与 SEO,标签页标题不再显示为 slug 形式(如 Tag: some-tag),而是显示为正常格式(如 Tag: Some Tag)。

使用 100svh 作为最小高度 (79d569d)
将 body 的最小高度更新为 100svh,为移动端用户带来更好的体验。
统一站点 URL 为单一数据源 #143
网站网址现在成为唯一的真实来源,简化了配置并避免了不一致。更多内容请参见本 PR 及其相关问题。
修复浅色模式下代码块文字不可见问题 #163
修复了浅色模式下代码块文本不可见的问题。
面包屑中标签 Unicode 解码优化 #175
面包屑导航中标签的最后一部分现在会进行解码,使非英文 Unicode 字符显示更友好。
更新 LOCALE 配置以支持更多语言 (cd02b04)
LOCALE 配置已更新,支持更广泛的语言环境,满足更多用户需求。
结语
我们相信这些更新将显著提升你的 AstroPaper 使用体验。感谢所有贡献代码、解决问题以及为项目点赞的朋友们。期待看到你使用 AstroPaper v4 创作出更多精彩内容!
Happy Blogging!
Sat Naing
AstroPaper 创建者