· 学海斋 · 11 min read
XPlayHub 项目结构与使用手册
XPlayHub 项目结构与使用手册
项目结构概览
XPlayHub 是一个基于 Astro 和 Tailwind CSS 构建的现代化网站项目,采用了清晰的目录结构和模块化设计。以下是项目的主要结构:
xplayhub/
├── src/
│ ├── components/ # 组件目录
│ ├── content/ # 内容配置
│ ├── data/ # 数据文件
│ ├── layouts/ # 页面布局
│ ├── pages/ # 页面文件
│ ├── utils/ # 工具函数
│ ├── config.ts # 配置文件
│ ├── navigation.ts # 导航配置
│ └── types.d.ts # 类型定义
├── public/ # 静态资源
├── astro.config.mjs # Astro 配置
├── package.json # 项目依赖
└── tailwind.config.mjs # Tailwind 配置详细目录说明
1. src/components/
用途:存放可复用的 UI 组件。
主要组件:
blog/- 博客相关组件(列表、分页、标签等)common/- 通用组件(按钮、卡片等)layout/- 布局相关组件
示例:
BlogList.astro- 博客文章列表组件Pagination.astro- 分页组件Tags.astro- 标签组件
2. src/content/
用途:内容配置目录,定义内容集合。
主要文件:
config.ts- 内容集合配置,定义了文章的结构和验证规则
示例:
const postCollection = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
pubDate: z.date(),
category: z.string().optional(),
image: z.string().optional(),
tags: z.array(z.string()).optional(),
}),
loader: glob({ pattern: ['**/*.md', '**/*.mdx'], base: 'src/data/post' }),
});3. src/data/
用途:存放实际的内容数据文件。
主要目录:
post/- 博客文章目录,按分类组织game/- 游艺馆分类pcgame/- 电脑游戏androidgame/- 安卓游戏modifier/- 修改器mods/- 游戏模组
soft/- 机巧堂分类system-software/- 系统软件office-study/- 办公学习android-software/- 安卓软件entertainment/- 休闲娱乐
videos/- 映画舫分类movies/- 电影series/- 剧集
music/- 听音阁分类chinese-music/- 华语音乐pop/- 流行精选classic/- 经典老歌cantonese/- 粤语金曲folk/- 民谣小调rap/- 说唱嘻哈rock/- 摇滚现场female/- 女声精选male/- 男声精选artist-collection/- 歌手合集
foreign-music/- 海外音乐western-pop/- 欧美流行japan-korea/- 日韩音乐english-classic/- 英文经典movie-songs/- 影视神曲western-edm/- 欧美电音foreign-folk/- 海外民谣band-collection/- 乐队精选artist-collection/- 歌手合集
pure-music/- 纯音乐light-music/- 轻音乐piano/- 钢琴曲classical/- 古典乐sleep/- 助眠音乐study/- 学习专注meditation/- 冥想放松background/- 背景音乐audiophile/- 发烧试听
soundtrack/- 原声配乐movie/- 影视原声anime/- 动漫原声game/- 游戏原声documentary/- 纪录片配乐classic-ost/- 经典OSTtheme-collection/- 主题曲合集
collection/- 音乐合集artist-collection/- 歌手合集album-complete/- 专辑全集year-hits/- 年度热歌合集car-music/- 车载音乐打包ktv-hits/- KTV热门歌曲包retro-hits/- 怀旧金曲合集douyin-hits/- 抖音热歌合集shop-background/- 店铺背景音乐合集
charts/- 榜单专区year-hot/- 年度热歌榜monthly-hot/- 月度热门榜platform-hot/- 平台热播榜new-releases/- 新歌速递retro-hits/- 怀旧金曲榜car-hot/- 车载热听榜
tools/- 音乐工具
tech/- 智算苑分类resources/- 百宝楼分类blog/- 学海斋分类
4. src/layouts/
用途:页面布局模板。
主要文件:
PageLayout.astro- 主页面布局BlogLayout.astro- 博客页面布局
5. src/pages/
用途:网站页面文件。
主要文件:
index.astro- 网站首页[...blog]/- 博客相关页面[category]/- 分类页面[tag]/- 标签页面[...slug].astro- 文章详情页
services.astro- 服务页面about.astro- 关于页面contact.astro- 联系页面
6. src/utils/
用途:工具函数目录。
主要文件:
blog.ts- 博客相关工具函数permalinks.ts- 链接生成工具seo.ts- SEO 相关工具
7. 配置文件
src/config.ts- 网站配置src/navigation.ts- 导航栏配置src/types.d.ts- TypeScript 类型定义astro.config.mjs- Astro 框架配置tailwind.config.mjs- Tailwind CSS 配置package.json- 项目依赖和脚本
导航配置
导航栏配置位于 src/navigation.ts 文件中,定义了网站的导航结构:
export const headerData = {
links: [
{
text: '主页',
links: [
{ text: 'SaaS', href: getPermalink('/homes/saas') },
{ text: 'Startup', href: getPermalink('/homes/startup') },
// 其他子链接...
],
},
{
text: 'Landing',
links: [
{ text: 'Lead Generation', href: getPermalink('/landing/lead-generation') },
// 其他子链接...
],
},
// 其他导航项...
],
actions: [{ text: 'Download', href: 'https://github.com/arthelokyo/astrowind', target: '_blank' }],
};分类系统
XPlayHub 采用了层级分类系统,主要分类包括:
游艺馆 (game)
- 电脑游戏 (pcgame)
- 安卓游戏 (androidgame)
- 修改器 (modifier)
- 游戏模组 (mods)
机巧堂 (soft)
- 系统软件 (system-software)
- 办公学习 (office-study)
- 安卓软件 (android-software)
- 休闲娱乐 (entertainment)
映画舫 (videos)
- 电影 (movies)
- 剧集 (series)
听音阁 (music)
- 华语音乐 (chinese-music)
- 流行精选 (chinese-pop)
- 经典老歌 (chinese-classic)
- 粤语金曲 (cantonese-music)
- 民谣小调 (chinese-folk)
- 说唱嘻哈 (chinese-rap)
- 摇滚现场 (chinese-rock)
- 女声精选 (chinese-female)
- 男声精选 (chinese-male)
- 歌手合集 (chinese-artist-collection)
- 海外音乐 (foreign-music)
- 欧美流行 (western-pop)
- 日韩音乐 (japan-korea)
- 英文经典 (english-classic)
- 影视神曲 (movie-songs)
- 欧美电音 (western-edm)
- 海外民谣 (foreign-folk)
- 乐队精选 (band-collection)
- 歌手合集 (foreign-artist-collection)
- 纯音乐 (pure-music)
- 轻音乐 (light-music)
- 钢琴曲 (piano)
- 古典乐 (classical)
- 助眠音乐 (sleep)
- 学习专注 (study)
- 冥想放松 (meditation)
- 背景音乐 (background)
- 发烧试听 (audiophile)
- 原声配乐 (soundtrack)
- 影视原声 (movie-soundtrack)
- 动漫原声 (anime-soundtrack)
- 游戏原声 (game-soundtrack)
- 纪录片配乐 (documentary-soundtrack)
- 经典OST (classic-ost)
- 主题曲合集 (theme-collection)
- 音乐合集 (music-collection)
- 歌手合集 (collection-artist-collection)
- 专辑全集 (album-complete)
- 年度热歌合集 (year-hits)
- 车载音乐打包 (car-music)
- KTV热门歌曲包 (ktv-hits)
- 怀旧金曲合集 (retro-hits)
- 抖音热歌合集 (douyin-hits)
- 店铺背景音乐合集 (shop-background)
- 榜单专区 (music-charts)
- 年度热歌榜 (year-hot)
- 月度热门榜 (monthly-hot)
- 平台热播榜 (platform-hot)
- 新歌速递 (new-releases)
- 怀旧金曲榜 (charts-retro-hits)
- 车载热听榜 (car-hot)
- 音乐工具 (entertainment)
- 华语音乐 (chinese-music)
智算苑 (tech)
百宝楼 (resources)
学海斋 (blog)
文章创建与管理
创建新文章
- 选择分类:根据文章内容选择合适的分类目录
- 创建文件:在对应分类目录中创建
.md或.mdx文件 - 添加 Frontmatter:在文件开头添加文章元数据
Frontmatter 示例:
---
title: 游戏标题
description: 游戏描述
pubDate: 2026-04-09
category: pcgame # 分类名称
image: ~/assets/images/game-image.jpg
tags: [游戏, 攻略]
---分类页面
- 点击导航栏中的分类名称会显示该分类下的所有文章
- 部分分类有子分类,点击子分类会显示对应子分类的文章
- 分类页面支持分页功能
开发与部署
开发环境
安装依赖:
npm install启动开发服务器:
npm run dev访问网站: 打开浏览器访问
http://localhost:4321
构建部署
构建项目:
npm run build预览构建结果:
npm run preview部署: 将
dist目录部署到您的服务器或静态网站托管服务
自定义配置
导航栏配置
修改 src/navigation.ts 文件可以自定义导航栏结构,包括添加新的导航项、修改现有导航项或调整导航顺序。
网站配置
修改 src/config.ts 文件可以自定义网站的基本配置,如网站标题、描述、作者信息等。
分类配置
修改 src/utils/blog.ts 文件可以自定义分类的处理逻辑,包括添加新分类、修改分类名称等。
常见问题与解决方案
文章不显示在分类页面
原因:文章的 category 字段设置不正确 解决方案:确保文章的 category 字段与分类的 slug 一致
分类页面显示 404 错误
原因:分类没有在 blog.ts 中注册 解决方案:在 blog.ts 文件中添加分类信息和处理逻辑
导航栏链接不工作
原因:链接路径不正确 解决方案:使用 getPermalink 函数生成正确的链接路径
总结
XPlayHub 是一个结构清晰、功能完善的现代化网站项目,采用了 Astro 和 Tailwind CSS 技术栈,提供了丰富的分类系统和导航结构。通过本手册,您应该已经了解了项目的基本结构和使用方法,可以开始创建和管理您的内容了。
如果您有任何问题或需要进一步的帮助,请参考项目的文档或咨询开发团队。



