Skip to content

用 Astro 搭建一个高性能博客

Updated: at 12:05 PM

Astro 是集多功能于一体的 Web 框架,用于构建快速、以内容为中心的网站。 🎉 主要特性是以内容为中心,Astro 专为内容丰富的网站而设计。 服务器优先:网站在服务器上渲染 HTML 时运行速度更快。 默认快速:在 Astro 中构建缓慢的网站是不可能的。 易于使用:您不需要成为专家即可使用 Astro 构建某些内容。 功能齐全且灵活:超100多种 Astro 集成可供选择。

目录

需要的环境

npm install -g pnpm

创建你的博客项目

拷贝主题 / 项目模板(仓库)

只需要使用包管理器即可(推荐使用 pnpm):

# npm 6.x
npm create astro@latest --template satnaing/astro-paper
# npm 7+, extra double-dash is needed:
npm create astro@latest -- --template satnaing/astro-paper
# yarn
yarn create astro --template satnaing/astro-paper

完成后的目录如下:

/
├── public/
│   ├── assets/
│   │   └── logo.svg
│   │   └── logo.png
│   └── favicon.svg
│   └── astropaper-og.jpg
│   └── robots.txt
│   └── toggle-theme.js
├── src/
│   ├── assets/
│   │   └── socialIcons.ts
│   ├── components/
│   ├── content/
│   │   |  blog/
│   │   |    └── some-blog-posts.md
│   │   └── config.ts
│   ├── layouts/
│   └── pages/
│   └── styles/
│   └── utils/
│   └── config.ts
│   └── types.ts
└── package.json

安装必要的内容:

npm install

如果你迫不及待想看看自己的博客,可以启动 Astro 开发服务:

npm run dev

你应该能在终端中看到 Astro 正在以开发模式运行的提示信息。

在浏览器中输入 http://localhost:4321/ 即可即时预览。

个性化你的博客

config.ts
里面包含了网站的一些基本信息,下面是 AstroPaper 的 config.ts

// file: src/config.ts
export const SITE = {
  website: "https://astro-paper.pages.dev/",
  author: "Sat Naing",
  desc: "A minimal, responsive and SEO-friendly Astro blog theme.",
  title: "AstroPaper",
  ogImage: "astropaper-og.jpg",
  lightAndDarkMode: true,
  postPerPage: 3,
  scheduledPostMargin: 15 * 60 * 1000, // 15 minutes
};
选项描述
website您部署的网站URL
author您的姓名
desc您的网站描述。对于SEO和社交媒体分享很有用
title您的网站名称
ogImage您网站的默认OG图像。对于社交媒体分享很有用。OG图像可以是外部图像URL,也可以放置在/public目录下
lightAndDarkMode启用或禁用网站的明亮和暗黑模式。如果禁用,将使用主色彩方案。此选项默认启用。
postPerPage您可以指定每个帖子页面上显示多少帖子。(例如:如果将SITE.postPerPage设置为3,则每页只显示3篇帖子)
scheduledPostMargin在生产模式下,具有将来pubDatetime的帖子将不可见。但是,如果帖子的pubDatetime在接下来的15分钟内,它将是可见的。如果您不喜欢默认的15分钟间隔,可以设置scheduledPostMargin

新文章

blog/ 文件夹中放的就是你的文章,用一般的 MarkDown 格式编写即可,注意里面的 frontmatter,不同的主题可能有不同的 frontmatter 规则,详见主题仓库的 README.md。

下面是 AstroPaper 的 frontmatter 规则:

属性描述备注
title文章的标题 (h1)必填*
description文章的描述。用于文章摘要和文章的站点描述必填*
pubDatetime发布的日期时间,使用 ISO 8601 格式必填*
modDatetime修改的日期时间,使用 ISO 8601 格式。 (仅在博客文章修改时添加此属性)可选
author文章的作者默认 = SITE.author
slug文章的Slug。此字段是可选的,但不能是空字符串。 (slug: ""❌)默认 = slugified文件名
featured是否在首页的特色部分显示此文章默认 = false
draft将此文章标记为’未发布’默认 = false
tags此文章的相关关键词。以数组 yaml 格式编写默认 = others
ogImage文章的OG图像。对于社交媒体分享和SEO很有用默认 = SITE.ogImage 或生成的OG图像
canonicalURL规范的URL(绝对路径),以防文章已经存在于其他来源。默认 = Astro.site + Astro.url.pathname

部署你的博客项目

随便找一个托管平台部署即可,这里使用 Vercel 。

将你的项目托管至 GitHub

这个不用多说了吧:

git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin 你的仓库地址
git push -u origin main

托管 Vercel

总结

这是如何用 Astro 搭建一个高性能博客的简要说明。如果你知道一些编码,你可以自定义更多。要定制样式,请阅读本文. 感谢阅读✌🏻