初始化:Astro 站点 + Sveltia CMS 后台 + 部署配置

This commit is contained in:
2026-06-11 17:18:51 +08:00
commit 53092b52db
37 changed files with 7586 additions and 0 deletions

73
public/admin/config.yml Normal file
View File

@@ -0,0 +1,73 @@
# Sveltia CMS 配置(兼容 Decap CMS 格式)
# 后端:自托管 Gitea通过 Gitea OAuth 登录鉴权
backend:
name: gitea
repo: shizhui/shizhui_website # Gitea 上的 <owner>/<repo>,部署时按实际创建调整
base_url: https://git.shizhui.xyz # Gitea 实例地址OAuth 在此完成)
api_root: https://git.shizhui.xyz/api/v1
branch: main
# 上传媒体(图片等)存放位置
media_folder: "public/uploads" # 文件实际写入仓库的此目录
public_folder: "/uploads" # 站点引用时的 URL 前缀
# 本地预览编辑(开发时无需登录 Gitea 即可试用界面)
# 运行 `npx @sveltia/cms-proxy-server` 后访问 /admin 可本地编辑
local_backend: true
# 站点地址(编辑器“在站点查看”跳转用)
site_url: https://shizhui.xyz
# 中文界面
locale: zh
collections:
# ── 博客 ─────────────────────────────────────────────
- name: blog
label: 博客文章
label_singular: 文章
folder: src/content/blog
create: true
slug: "{{slug}}"
extension: md
format: frontmatter
preview_path: blog/{{slug}}
summary: "{{title}} — {{pubDate | date('YYYY-MM-DD')}}"
sortable_fields: [pubDate, title]
fields:
- { name: title, label: 标题, widget: string }
- { name: description, label: 摘要, widget: text, required: false }
- { name: pubDate, label: 发布日期, widget: datetime, date_format: "YYYY-MM-DD", time_format: false, format: "YYYY-MM-DD" }
- { name: updatedDate, label: 更新日期, widget: datetime, date_format: "YYYY-MM-DD", time_format: false, format: "YYYY-MM-DD", required: false }
- { name: tags, label: 标签, widget: list, default: [], required: false }
- { name: draft, label: 草稿(不发布), widget: boolean, default: false }
- { name: body, label: 正文, widget: markdown }
# ── 项目 ─────────────────────────────────────────────
- name: projects
label: 项目
label_singular: 项目
folder: src/content/projects
create: true
slug: "{{slug}}"
extension: md
format: frontmatter
preview_path: projects/{{slug}}
summary: "{{title}}{{category}}"
sortable_fields: [order, date, title]
fields:
- { name: title, label: 名称, widget: string }
- { name: description, label: 简介, widget: text }
- name: category
label: 分类
widget: select
options: ["硬件", "软件", "通信", "机器人", "其他"]
default: "其他"
- { name: tags, label: 标签, widget: list, default: [], required: false }
- { name: date, label: 日期, widget: datetime, date_format: "YYYY-MM-DD", time_format: false, format: "YYYY-MM-DD", required: false }
- { name: repo, label: 源码链接, widget: string, required: false }
- { name: link, label: 访问链接, widget: string, required: false }
- { name: featured, label: 首页精选, widget: boolean, default: false }
- { name: order, label: 排序权重(大在前), widget: number, default: 0, value_type: int }
- { name: body, label: 详情, widget: markdown }

13
public/admin/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex" />
<title>内容管理 · ShiZhui</title>
</head>
<body>
<!-- Sveltia CMSDecap/Netlify CMS 的现代继任者,原生支持 Gitea 后端 -->
<script src="https://unpkg.com/@sveltia/cms/dist/sveltia-cms.js"></script>
</body>
</html>

5
public/favicon.svg Normal file
View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<rect width="32" height="32" rx="6" fill="#0a0e14"/>
<text x="50%" y="54%" dominant-baseline="middle" text-anchor="middle"
font-family="monospace" font-size="15" font-weight="700" fill="#39d0d8">&gt;_</text>
</svg>

After

Width:  |  Height:  |  Size: 284 B