本项目是一个基于 Vue3 + Vite 的静态博客系统,是 CircleCoder 为自己和 Manifold 打造的博客。
主题设计参考了 hexo 系列的 shoka 主题,不会用于商用
- 登录 GitHub。
- 直接克隆本仓库的 manifold 分支:
git clone -b manifold https://github.com/CircleCoder05/shoka.git cd manifold - 你可以直接在本地修改仓库内容,后续如有问题也方便维护。
如你有 Node.js 环境,建议使用 Node.js 16+ 和 pnpm 包管理器。
pnpm install如你有本地环境,可运行:
pnpm dev浏览器访问 http://localhost:5173 查看效果。
没有本地环境也没关系! 你可以直接修改仓库内容,然后推送到 GitHub,自动化部署脚本会自动构建并发布到云服务器或 GitHub Pages,你只需等待几分钟即可在线预览。
所有配置文件都在 public/ 目录下,只需修改这些 json/yml 文件即可定制你的博客内容。
网站全局信息配置。
- 位置:
public/config.json - 主要字段:
site.bannerTitle:banner 大标题site.bannerSubtitle:banner 副标题site.description:网站描述site.author:作者名site.email:邮箱site.avatar:头像图片路径(如/img/avatar.png或外链)site.motto:个性签名site.social:社交链接(GitHub、邮箱、音乐等)footer:底部备案、起始日期等
关于页面内容配置。
- 位置:
public/about.json - 主要字段:
profile:个人信息(头像、昵称、头衔、简介等)mbti:MBTI 性格介绍(可选)academic:学术成果(可选)model3d:3D 形象(可选)
- 头像图片建议放在
public/img/下,路径如/img/avatar.png,也可以用外链(如https://xxx.com/avatar.png)。
- 在
public/3d/models-config.json中配置 3D 模型信息 - 支持 FBX、GLB 等格式,支持模型切换和交互控制
- 重要:当
models-config.json中没有配置模型时,系统会自动使用public/img/figure.png作为静态图片替代,无需额外配置
友链页面配置。
- 位置:
public/friends.json - 主要字段:
friends:数组,每个元素为一个分组(如“好友”、“喜欢的博主”)category:分组名description:分组描述items:友链列表(包含名称、网址、头像、简介、标签等)
- 头像可用网络图片或本地图片(如
/img/avatar.png或外链)。
分类封面映射表。
- 位置:
public/category-cover-map.json - 用于将中文分类名映射为英文 key,便于分类管理和封面图片自动匹配。
- 示例:
{ "杂谈": "gossip", "物理": "physics" }
文章封面图片池。
- 位置:
public/img/images.yml - 用于随机分配文章封面(如文章未指定 cover 字段时自动选用)
- 每行一个图片链接,可用外链(推荐)或本地图片路径(如
/img/xxx.jpg)。
-
所有图片字段(如头像、文章封面、友链头像等)都支持两种写法:
- 本地图片:放在
public/目录下,路径以/开头,如/img/avatar.png、/posts/physics/cover.jpg。 - 外链图片(推荐):直接填写图片的完整 URL,如
https://your-cdn.com/xxx.jpg。
- 本地图片:放在
-
文章封面、友链头像等更推荐使用外链,这样图片加载更快、不会因本地图片丢失导致显示异常。
-
举例:
- 本地图片:
/img/avatar.png、/posts/gossip/cover.jpg - 外链图片:
https://oss.yourdomain.com/202503292157001.jpg
- 本地图片:
-
注意:
- 本地图片必须实际存在于
public/目录下,否则无法显示。 - 外链图片建议使用稳定的图床或 CDN。
- 本地图片必须实际存在于
- 所有文章放在
public/posts/目录下,可以进行一级分类。 - 每篇文章建议使用如下 front matter(开头三条横线之间):
---
title: 文章标题
date: 2025-08-07
categories: [分类名]
tags: [标签1, 标签2]
cover: https://oss.yourdomain.com/202503292157001.jpg # 推荐外链,也可用 /posts/physics/cover.jpg
---
正文内容...---
title: PDF 文章标题
date: 2025-08-07
type: 'pdf'
path: '/pdf/your-file.pdf'
abstracts: 'PDF 文章摘要内容'
categories: [分类名]
tags: [标签1, 标签2]
cover: https://oss.yourdomain.com/202503292157001.jpg
---
# 这里可以写一些介绍性内容,或者留空- 封面图片建议用外链(如上),如用本地图片,放在对应分类文件夹下,路径如
/posts/physics/cover.jpg。 - PDF 文件也需要放在
public目录下。
- 修改完内容后,依次执行:
git add . git commit -m "提交信息" git push
- 推送后,GitHub Actions 会自动构建并部署,无需本地构建。
- 稍等几分钟后即可 http://manifold.buaapgy.cn 上访问你的博客。
- 图片无法显示?
- 检查图片路径是否以
/开头,且图片已放在public/目录下,或外链是否有效。
- 检查图片路径是否以
- 修改配置后无效?
- 清除浏览器缓存,或重启本地服务。
- 不会写 Markdown?
- 可参考网上的 Markdown 教程。
- PDF 文章无法显示?
- 确保 PDF 文件已放在
public/目录下,且路径正确。 - 检查 front matter 中的
type: "pdf"和path字段是否正确。
- 确保 PDF 文件已放在
- 3D 形象显示为静态图片?
- 这是正常现象,当
models-config.json中没有配置模型时,系统会自动使用静态图片替代。 - 如需显示 3D 模型,请在
public/3d/models-config.json中配置模型信息。
- 这是正常现象,当
- 本项目无需后端,所有内容均为静态文件,适合个人博客、作品集等用途。
- 如遇到问题可在 GitHub 提 issue,或联系 CircleCoder。
祝你玩得开心,打造属于自己的博客!