Astro 博客主题使用指南

#Astro #Theme #Blog 2024/11/14 02:59:57
目录
  1. 🚀 快速开始
    1. 环境要求
    2. 安装步骤
  2. 📝 内容管理
    1. 文章目录结构
    2. 创建新文章
    3. 文章头信息配置
  3. ⚙️ 基础配置
    1. 网站信息配置
    2. 静态资源管理
  4. ✨ 主题特性
    1. 核心功能
    2. 技术栈
  5. 📖 Markdown 语法支持
    1. 基础文本格式
      1. 标题层级
      2. 文本样式
      3. 列表
      4. 任务列表
    2. 引用和注释
      1. 普通引用
      2. 脚注
      3. 警告框
    3. 代码相关
      1. 行内代码
      2. 代码块
      3. 代码高亮和标注
    4. 图片展示
  6. 🚀 部署指南
    1. 构建项目
    2. 部署平台
      1. Vercel 部署
      2. Cloudflare Pages 部署
      3. GitHub Pages 部署
    3. 自定义域名
  7. 🎨 自定义主题
    1. 修改颜色主题

这是一个基于 AstroTailwindCSS 构建的现代化博客主题,具有简洁的设计、优秀的性能和丰富的功能特性。本文将详细介绍如何使用这个主题以及支持的 Markdown 语法。

🚀 快速开始

环境要求

  • Node.js >= 20.0.0
  • 包管理器:推荐使用 pnpmyarn

安装步骤

  1. 克隆项目

    git clone https://github.com/babybluue/astro-blog-theme
    cd astro-blog-theme
  2. 安装依赖

    pnpm install
    # 或
    yarn install
  3. 启动开发服务器

    pnpm dev
    # 或
    yarn dev
  4. 访问博客 打开浏览器访问 http://localhost:4321 即可预览博客。

📝 内容管理

文章目录结构

博客支持两种内容类型:

  • src/data/blogs/ - 正式发布的博客文章
  • src/data/notes/ - 笔记和草稿内容

创建新文章

使用内置脚本快速创建文章:

# 在 drafts 目录创建草稿
pnpm run new --title='文章标题' --dir=drafts

# 在 blogs 目录创建正式文章
pnpm run new --title='文章标题' --dir=blogs

文章头信息配置

每篇文章都需要在文件顶部添加 YAML 头信息:

---
title: 文章标题
date: 2024-11-14T02:59:57.109Z
abbrlink: c3009907 # 文章唯一标识符
tags:
  - 标签1
  - 标签2
description: '文章描述'
cover: '@images/cover.jpg' # 可选:文章封面图
---

⚙️ 基础配置

网站信息配置

constant.ts 文件中修改网站基本信息:

export const config = {
  postsPerPage: 12, // 每页文章数量
  siteName: '博客名称',
  author: '作者名称',
  language: 'zh-CN', // 语言设置
}

静态资源管理

  • 网站图标:替换 public/favicon.svg
  • PWA 图标:更新 public/pwa-*.png 系列图标
  • 文章图片:将图片放在 src/data/images/ 目录下

✨ 主题特性

核心功能

  • 🚀 极速性能:基于 Astro 的静态站点生成,页面加载速度极快
  • 📱 PWA 支持:可安装为桌面应用,支持离线访问
  • 🔍 全文搜索:基于 Pagefind 的客户端搜索功能
  • 🌙 深色模式:自动适配系统主题,支持手动切换
  • 📱 响应式设计:完美适配各种设备尺寸
  • 🎨 现代化 UI:基于 TailwindCSS 的精美界面设计
  • 📊 SEO 优化:自动生成 sitemap,支持 meta 标签优化
  • 🔗 自动链接:外部链接自动添加 nofollowtarget="_blank"

技术栈

  • 框架:Astro 5.x
  • 样式:TailwindCSS 4.x
  • 搜索:Pagefind
  • PWA:Vite PWA
  • 代码高亮:Shiki
  • 构建工具:Vite

📖 Markdown 语法支持

本主题支持丰富的 Markdown 语法,下面通过实例展示各种用法:

基础文本格式

标题层级

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

文本样式

**粗体文本**_斜体文本_
~~删除线文本~~ 和 `行内代码`
==高亮文本== 和 ++下划线文本++

列表

- 无序列表项 1
- 无序列表项 2
  - 嵌套列表项

1. 有序列表项 1
2. 有序列表项 2

任务列表

- [x] 已完成的任务
- [ ] 未完成的任务
- [x] 另一个已完成的任务

引用和注释

普通引用

> 这是一个引用块
> 可以包含多行内容
>
> 支持**粗体***斜体*格式

脚注

这是一个脚注示例[^1],可以添加多个脚注[^2]。

[^1]: 这是第一个脚注的内容

[^2]: 这是第二个脚注的内容

警告框

> [!NOTE]
> 有用的信息,用户应该了解的内容

> [!TIP]
> 有用的建议,帮助用户更好地完成任务

> [!IMPORTANT]
> 重要信息,用户需要了解的关键内容

> [!WARNING]
> 警告信息,需要用户立即注意以避免问题

> [!CAUTION]
> 谨慎提醒,关于某些操作的风险或负面结果

代码相关

行内代码

使用 `console.log()` 来输出调试信息

代码块

```javascript
function greet(name) {
  console.log(`Hello, ${name}!`)
}
```

代码高亮和标注

```ts {1-3}
title: 关于这个博客主题
date: 2024-11-14T02:59:57.109Z
abbrlink: c3009907
tags:
- Astro
- Theme
- Blog
description: '这是一个使用 Astro 框架搭建的博客。'
cover: '@images/c3009907.png'
```

图片展示

Lighthouse 性能测试结果

Lighthouse 性能测试显示该主题具有优秀的加载性能

🚀 部署指南

构建项目

# 构建生产版本
pnpm build

# 预览构建结果
pnpm preview

部署平台

本主题支持多种部署平台:

Vercel 部署

  1. 连接 GitHub 仓库到 Vercel
  2. 选择框架预设为 Astro
  3. 自动部署完成

Cloudflare Pages 部署

  1. 连接 GitHub 仓库到 Cloudflare Pages
  2. 构建命令:pnpm build
  3. 输出目录:dist

GitHub Pages 部署

  1. 在仓库设置中启用 GitHub Pages
  2. 选择 GitHub Actions 作为源
  3. 使用提供的 workflow 文件

自定义域名

在部署平台配置自定义域名,并更新 constant.ts 中的 site 变量。

🎨 自定义主题

修改颜色主题

src/styles/global.css 中自定义 CSS 变量:

:root {
  --color-primary: #3b82f6;
  --color-secondary: #64748b;
  --color-accent: #f59e0b;
}

如果你觉得这个主题有用,请给个 ⭐ Star 支持一下!