Astro博客启动器

bloodstone — Astro 博客模板

作者 MauCariApa-com

Bloodstone 是一个面向 Astro 与 Preact 的极简编辑型博客主题,用于发布历史、传记与世界事件类文章,内置内容集合、搜索、系列与目录等模块。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-13查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

内置 posts、authors、pages 三类内容集合,文章支持分类、标签、系列与 heroImage

02

客户端文章搜索支持 ⌘K / Ctrl+K、Esc、↵ 快捷键,并可将文章保存到本地存储

03

文章详情页提供下拉式目录、系列索引与分享弹层(社交链接、原生分享、复制链接)

04

通过 Google AI Mode、DeepSeek、Perplexity 提供 AI 文章摘要入口

05

输出 sitemap.xml、Google News sitemap、Schema.org JSON-LD 以及 Open Graph 与 Twitter card 元数据

06

包含 PWA 支持(web app manifest 与离线 service worker)并声明以 WCAG 2.1 AA 为目标

模板详细介绍

Bloodstone 是一个静态编辑型博客主题,基于 Astro 与 Preact 构建,使用 Tailwind CSS 进行样式设计,并以 TypeScript 编写。它面向历史、传记和世界事件类文章的发布,强调中性语气与基于事实的叙述。主题内置 posts、authors、pages 三类内容集合,文章支持分类、标签、系列与 heroImage 等 frontmatter 字段。

功能层面,文章列表与详情页为响应式布局,详情页提供下拉式目录、系列索引、客户端文章搜索(支持 ⌘K / Ctrl+K、Esc、↵ 快捷键)、本地存储收藏文章、分享弹层(社交链接、原生分享、复制链接),以及通过 Google AI Mode、DeepSeek、Perplexity 触发的 AI 文章摘要。代码块使用 Shiki 高亮,站点输出 sitemap.xml 与 Google News sitemap,并包含 Schema.org JSON-LD、Open Graph 与 Twitter card 元数据。主题还提供 PWA 支持(web app manifest 与离线 service worker),并声明以 WCAG 2.1 AA 为目标,包含跳转链接、焦点指示、减少动效支持与无障碍声明页面。

配置方面,站点级参数集中在 src/consts.ts(SITE_NAME、SITE_URL、SITE_DESCRIPTION、SITE_EMAIL),同时需同步 astro.config.mjs 中的 site。捐赠模块位于 src/lib/donations.ts,支持 Ko-fi、Buy Me a Coffee、Liberapay、GitHub Sponsors、PayPal,各平台通过 enabled 布尔值控制显隐。内容以 Markdown 文件形式存放在 src/content/ 下的 posts、authors、pages 目录中。

限制与注意事项:README 要求 Node.js 18.17.1 或更高版本,包管理默认使用 pnpm,也提供 npm 命令。AI 摘要依赖外部服务,其可用性与费用不由主题代码决定。演示图片、字体、图标等第三方素材需按各自许可单独核对,MIT 许可仅覆盖代码本身。

Astro博客启动器

适合你的项目吗?

适用场景

  • 发布历史、传记与世界事件类文章,需要中性语气与基于事实叙述的编辑型博客
  • 为文章建立作者档案、系列合集与分类标签体系的内容站点
  • 需要客户端搜索、文章收藏与分享功能,但不依赖后端服务的静态博客
  • 希望集成 sitemap、结构化数据与 PWA 支持的 Astro 静态站点
  • 需要无障碍支持(跳转链接、焦点指示、减少动效)与无障碍声明页面的内容站点

适合人群

  • 使用 Astro 与 Preact 构建静态博客的开发者
  • 以历史、传记、世界事件为内容方向的编辑团队或个人作者
  • 需要内容集合、搜索、系列与目录等开箱模块的博客项目
  • 关注 WCAG 2.1 AA 无障碍与 PWA 支持的站点维护者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node.js 18.17.1 或更高版本,依赖安装可使用 pnpm install 或 npm install

  2. 2

    在 src/consts.ts 中配置 SITE_NAME、SITE_URL、SITE_DESCRIPTION、SITE_EMAIL,并同步修改 astro.config.mjs 中的 site

  3. 3

    文章、作者与页面分别以 Markdown 文件放在 src/content/posts、src/content/authors、src/content/pages 目录

  4. 4

    捐赠平台在 src/lib/donations.ts 中通过 enabled 布尔值控制显隐,并替换各平台的 url

  5. 5

    构建产物位于 dist/ 目录,可部署到任意静态托管服务

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • AI 文章摘要功能依赖 Google AI Mode、DeepSeek、Perplexity 等外部服务,需自行访问这些第三方服务,其可用性与费用不由主题代码决定。
  • 运行与构建需要 Node.js 18.17.1 或更高版本,低于该版本无法使用。
  • 部署前必须将 astro.config.mjs 中的 site 与 src/consts.ts 中的 SITE_URL 替换为实际生产 URL,否则站点元数据与 sitemap 不正确。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

AI-powered article summaries via Google AI Mode, DeepSeek, and Perplexity

README 原文

Requires Node.js **18.17.1** or later.

README 原文

Replace `site` in `astro.config.mjs` and `SITE_URL` in `src/consts.ts` with your production URL

README 原文
https://github.com/MauCariApa-com/bloodstone/blob/main/LICENSEhttps://github.com/MauCariApa-com/bloodstone/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Astro
网站类型
博客 · 启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-09-16
截图检查日期
2026-10-13

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-13

查看当时使用的来源资料

SHA-256: 91e3b49a163e2885ea259727b3673f0c45e8e6e89e471a15d2617740019b6ecb

2026-10-13T01:31:34.858Z

来源文件 / 仓库
# Bloodstone

A minimalist editorial blog theme for [Astro](https://astro.build/) and [Preact](https://preactjs.com/). Bloodstone publishes history, biography, and world-event articles with a neutral tone and fact-based narrative.

[![Astro](https://img.shields.io/badge/Astro-7-48477C?logo=astro&logoColor=white&labelColor=1F1F2E)](https://astro.build/)
[![Preact](https://img.shields.io/badge/Preact-10-673AB8?logo=preact&logoColor=white&labelColor=1F1F2E)](https://preactjs.com/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4-38BDF8?logo=tailwindcss&logoColor=white&labelColor=1F1F2E)](https://tailwindcss.com/)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)

![Bloodstone screenshot](./screenshot.png)

## Live Preview
[Bloodstone](https://bloodstone-oss.pages.dev/)

## Description

Bloodstone is a static, editorial blog theme built with Astro 7 and Preact 10, styled with Tailwind CSS 4. It includes content collections for posts, authors, and pages, plus a search overlay, article saving, sharing, series browsing, and a table of contents, all ready to use out of the box.

## Features

- Content collections for **posts**, **authors**, and **pages**
- Responsive article list and detail pages
- Dropdown table of contents on article pages
- Article series with a dedicated series index
- Client-side article search with keyboard shortcuts (`⌘K` / `Ctrl+K`, `Esc`, `↵`)
- Save articles to local storage
- Share popover with social links, native sharing, and copy link
- AI-powered article summaries via Google AI Mode, DeepSeek, and Perplexity
- Syntax-highlighted code blocks with Shiki
- `sitemap.xml` and Google News sitemap
- Schema.org JSON-LD structured data
- Open Graph and Twitter card metadata
- PWA support with a web app manifest and offline service worker
- WCAG 2.1 AA accessibility (skip links, focus indicators, reduced-motion support, accessibility statement)
- Mobile-first responsive layout

## Accessibility (WCAG)

Bloodstone is built with accessibility in mind and targets conformance to the **Web Content Accessibility Guidelines (WCAG) 2.1 Level AA**.

### Accessibility Features

- **Skip navigation** – A skip-to-content link lets keyboard users bypass the header and jump straight to the main content.
- **Semantic HTML** – Correct landmark regions, heading hierarchy, and native elements throughout the theme.
- **Keyboard support** – All interactive components (search, menus, popovers) are fully keyboard-operable with visible focus indicators.
- **ARIA attributes** – Icon-only buttons and dynamic regions use appropriate ARIA labels and states.
- **Color contrast** – Text and interactive elements meet AA contrast ratios.
- **Alt text** – All meaningful images include descriptive alt text; decorative icons are hidden from screen readers.
- **Responsive design** – Content is usable at all screen sizes and zoom levels up to 200%.
- **Reduced motion** – Animation and transitions are disabled for users who prefer reduced motion.
- **Accessibility statement** – A dedicated page at `/accessibility` documents the theme's accessibility features and provides a feedback channel.

## Tech Stack

- [Astro](https://astro.build/) 7
- [Preact](https://preactjs.com/) 10
- [Tailwind CSS](https://tailwindcss.com/) 4
- [TypeScript](https://www.typescriptlang.org/)
- [Shiki](https://shiki.style/) for syntax highlighting
- [Lucide](https://lucide.dev/) icons
- [pnpm](https://pnpm.io/) for package management

## Demo

Replace `site` in `astro.config.mjs` and `SITE_URL` in `src/consts.ts` with your production URL, then deploy the generated `dist/` directory to any static hosting service.

## Quick Start

Requires Node.js **18.17.1** or later.

```bash
# install dependencies
pnpm install
# or
npm install

# start the dev server
npm run dev

# build for production
npm run build

# preview the production build
npm run preview
```

## Configuration

All site-wide values live in `src/consts.ts`:

- `SITE_NAME`: the site name shown in metadata, the header, and the footer.
- `SITE_URL`: the canonical production URL used by sitemaps and JSON-LD.
- `SITE_DESCRIPTION`: the default meta description.
- `SITE_EMAIL`: the contact email used by the contact page.

Also update `site` in `astro.config.mjs` so it matches `SITE_URL`.

## Project Structure

```
public/            # Static assets (favicon, manifest, service worker, robots.txt, etc.)
src/
  components/      # Reusable UI and interactive components
  content/         # Markdown content for authors, pages, and posts
  content.config.ts# Content collections schema
  hooks/           # Custom Preact hooks
  layouts/         # Astro page layouts
  lib/             # Utility modules
  pages/           # Astro routes
  styles/          # Global Tailwind CSS
astro.config.mjs   # Astro configuration
package.json       # Dependencies and scripts
```

## Donations

Bloodstone supports multiple donation platforms. All configuration lives in `src/lib/donations.ts`.

### Supported Platforms

- **Ko-fi**
- **Buy Me a Coffee**
- **Liberapay**
- **GitHub Sponsors**
- **PayPal**

### Activating / Deactivating Platforms

Each platform has an `enabled` boolean in `src/lib/donations.ts`. Set it to `true` to show the platform or `false` to hide it:

```ts
{
  id: 'kofi',
  name: 'Ko-fi',
  description: 'Buy us a coffee on Ko-fi',
  url: 'https://ko-fi.com/yourusername',
  enabled: true, // ← toggle this
},
```

### Updating Your Donation Links

Replace the `url` value for each platform with your actual donation link.

### Components

- **DonateButton** – Popover button in the footer that lists all active platforms.
- **DonationSwitcher** – Interactive selector on the `/donate` page where visitors pick their preferred platform.
- **DonatePlaceholder** – Reusable placeholder widget that lists all active platforms. Add it anywhere (e.g., end of an article) with `<DonatePlaceholder client:load />`.

## Content Guide

### Posts

Create new posts inside `src/content/posts/` as Markdown files with frontmatter:

```yaml
---
title: Article Title
description: Short description of the article.
pubDate: 2026-08-08T08:00:00Z
authors:
  - Bloodstone
category:
  - History
tags:
  - tag-name
series: Series Name
heroImage: https://example.com/image.jpg
---
```

### Authors

Author profiles live in `src/content/authors/`:

```yaml
---
name: Author Name
avatar: https://example.com/avatar.jpg
bio: Brief bio.
position: Editorial
social:
  github: username
---
```

### Pages

Static pages such as About, FAQ, and Contact are managed as Markdown entries in `src/content/pages/`. The contact page itself is a dedicated route at `src/pages/contact.astro`.

## License

[MIT](./LICENSE)
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。