AstroPaper 是一个高度可定制的 Astro 博客主题。使用 AstroPaper,您可以根据个人品味自定义一切。本文将解释如何在配置文件中轻松进行一些自定义。
目录
配置 SITE
重要的配置位于 src/config.ts 文件中。在该文件中,您将看到 SITE 对象,您可以在其中指定网站的主要配置。
在开发过程中,将 SITE.website 留空是可以的。但在生产模式下,您应该在 SITE.website 选项中指定您的部署 URL,因为这将用于规范 URL、社交卡片 URL 等,这些对 SEO 很重要。
export const SITE = {
website: "https://astro-paper.pages.dev/", // 将其替换为您部署的域名
author: "Sat Naing",
profile: "https://satnaing.dev/",
desc: "A minimal, responsive and SEO-friendly Astro blog theme.",
title: "AstroPaper",
ogImage: "astropaper-og.jpg",
lightAndDarkMode: true,
postPerIndex: 4,
postPerPage: 4,
scheduledPostMargin: 15 * 60 * 1000, // 15 分钟
showArchives: true,
showBackButton: true, // 在文章详情页显示返回按钮
editPost: {
enabled: true,
text: "Suggest Changes",
url: "https://github.com/satnaing/astro-paper/edit/main/",
},
dynamicOgImage: true, // 启用自动动态 og-image 生成
dir: "ltr", // "rtl" | "auto"
lang: "en", // html 语言代码。将此设置为空,默认值将为 "en"
timezone: "Asia/Bangkok", // 默认全局时区(IANA 格式)https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
} as const;src/config.ts
以下是 SITE 配置选项
| 选项 | 描述 |
|---|---|
website | 您部署的网站 URL |
author | 您的名字 |
profile | 您的个人/作品集网站 URL,用于更好的 SEO。如果您没有,请输入 null 或空字符串 ""。 |
desc | 您的网站描述。对 SEO 和社交媒体分享很有用。 |
title | 您的网站名称 |
ogImage | 您网站的默认 OG 图片。对社交媒体分享很有用。OG 图片可以是外部图片 URL,也可以放在 /public 目录下。 |
lightAndDarkMode | 为网站启用或禁用浅色和深色模式。如果禁用,将使用主要配色方案。此选项默认启用。 |
postPerIndex | 在主页 Recent 部分下显示的文章数量。 |
postPerPage | 您可以指定每个文章页面将显示多少篇文章。(例如:如果您将 SITE.postPerPage 设置为 3,每页将仅显示 3 篇文章) |
scheduledPostMargin | 在生产模式下,具有未来 pubDatetime 的文章将不可见。但是,如果文章的 pubDatetime 在接下来的 15 分钟内,它将可见。如果您不喜欢默认的 15 分钟间隔,可以设置 scheduledPostMargin。 |
showArchives | 确定是否在网站上显示 Archives 菜单(位于 About 和 Search 菜单之间)及其相应的页面。此选项默认设置为 true。 |
showBackButton | 确定是否在每篇博客文章中显示 返回 按钮。 |
editPost | 此选项允许用户通过在博客文章标题下提供编辑链接来建议对博客文章的更改。可以通过将 SITE.editPost.enabled 设置为 false 来禁用此功能。 |
dynamicOgImage | 此选项控制如果博客文章 frontmatter 中没有指定 ogImage,是否生成动态 og-image。如果您有很多博客文章,您可能想要禁用此功能。有关更多详细信息,请参阅权衡。 |
dir | 指定整个博客的文本方向。用作 <html dir="ltr"> 中的 HTML dir 属性。支持的值:ltr | rtl | auto |
lang | 用作 <html lang"en"> 中的 HTML ISO 语言代码。默认值为 en。 |
timezone | 此选项允许您使用 IANA 格式指定您的时区。设置此选项可确保您的本地主机和部署站点之间的时间戳一致,消除时间差异。 |
更新布局宽度
整个博客的默认 max-width 为 768px(max-w-3xl)。如果您想更改它,可以轻松更新 global.css 中的 max-w-app 实用程序。例如:
@utility max-w-app {
@apply max-w-3xl;
@apply max-w-4xl xl:max-w-5xl;
}src/styles/global.css
您可以在 Tailwind CSS 文档中探索更多 max-width 值。
配置徽标或标题
在 AstroPaper v5 之前,您可以在 src/config.ts 文件内的 LOGO_IMAGE 对象中更新您的网站名称/徽标。但是,在 AstroPaper v5 中,此选项已被删除,改为使用 Astro 的内置 SVG 和 Image 组件。

您有 3 个选项可以执行:
选项 1:SITE 标题文本
这是最简单的选项。您只需更新 src/config.ts 文件中的 SITE.title。
选项 2:Astro 的 SVG 组件
如果您想使用 SVG 徽标,您可能想使用此选项。
-
首先在
src/assets目录中添加一个 SVG。(例如:src/assets/dummy-logo.svg) -
然后在
Header.astro中导入该 SVG--- // ... import DummyLogo from "@/assets/dummy-logo.svg"; ---src/components/Header.astro -
最后,用导入的徽标替换
{SITE.title}。<a href="/" class="absolute py-1 text-left text-2xl leading-7 font-semibold whitespace-nowrap sm:static" > <DummyLogo class="scale-75 dark:invert" /> <!-- {SITE.title} --> </a>
这种方法的最大优点是您可以根据需要自定义 SVG 样式。在上面的示例中,您可以看到如何在深色模式下反转 SVG 徽标颜色。
选项 3:Astro 的 Image 组件
如果您的徽标是图片但不是 SVG,您可以使用 Astro 的 Image 组件。
-
在
src/assets目录中添加您的徽标。(例如:src/assets/dummy-logo.png) -
在
Header.astro中导入Image和您的徽标--- // ... import { Image } from "astro:assets"; import dummyLogo from "@/assets/dummy-logo.png"; ---src/components/Header.astro -
然后,用导入的徽标替换
{SITE.title}。<a href="/" class="absolute py-1 text-left text-2xl leading-7 font-semibold whitespace-nowrap sm:static" > <image src="{dummyLogo}" alt="Dummy Blog" class="dark:invert" /> <!-- {SITE.title} --> </a>
使用这种方法,您仍然可以使用 CSS 类调整图像的外观。但是,这可能并不总是符合您的需求。如果您需要根据浅色或深色模式显示不同的徽标图像,请查看 Header.astro 组件内如何处理浅色/深色图标。
配置社交链接
您可以在 constants.ts 内的 SOCIALS 对象中配置社交链接。
export const SOCIALS = [
{
name: "GitHub",
href: "https://github.com/satnaing/astro-paper",
linkTitle: ` ${SITE.title} on GitHub`,
icon: IconGitHub,
},
{
name: "X",
href: "https://x.com/username",
linkTitle: `${SITE.title} on X`,
icon: IconBrandX,
},
{
name: "LinkedIn",
href: "https://www.linkedin.com/in/username/",
linkTitle: `${SITE.title} on LinkedIn`,
icon: IconLinkedin,
},
{
name: "Mail",
href: "mailto:yourmail@gmail.com",
linkTitle: `Send an email to ${SITE.title}`,
icon: IconMail,
},
] as const;src/constants.ts
配置分享链接
您可以在 src/constants.ts 内的 SHARE_LINKS 对象中配置分享链接。
结论
这是关于如何自定义此主题的简要说明。如果您懂一些编码,可以进行更多自定义。有关自定义样式,请阅读本文。感谢阅读。✌🏻