🎉「XG-Blog」基于 Astro 的静态博客程序 - ✍️ 你只需专注写作

XiaoGe  (UID: 2124) [复制链接]
帖子链接已复制到剪贴板
帖子已经有人评论啦,不支持删除!

175 2

最近又 Vibe Coding 了一个项目,之前心心念念的静态博客~

PS:代码可以烂,界面一定要过得去

项目介绍

🎉 XG-Blog 是一个基于 Astro 的静态博客程序。️ 你只需专注写文章「Markdown」,其余的由程序构建生成 ~

🎉「XG-Blog」基于 Astro 的静态博客程序 - ✍️ 你只需专注写作

喜欢的小伙伴,欢迎来个 🌟Star、👍点赞?

特性一览

  •  📝 使用 Markdown 写作,轻松上手~
  •  🏷️ 文章分类 + 标签,内容井井有条
  •  🔍 站内全文搜索(基于 Pagefind,按需加载)
  •  🧭 Banner、菜单等配置自由定制
  •  🔗 友情链接轻松管理
  •  📡 RSS、sitemap 等功能一应俱全
  •  📄 自定义页面,拓展无限可能
  •  💻 代码块高亮显示、复制按钮
  •  🌗 深色 / 浅色主题一键切换
  •  🎨 主题色可自定义,色彩随心
  •  📃 可视化编辑器(计划中)
  •  🗨️ 评论系统(已留字段,暂不做开发)

目录结构

👋️ 用户资产主要在 blog/ 目录和 .env 文件,降低维护难度。

./
├─ blog/                         # 用户站点内容
│  ├─ posts/                     # 用户文章;每篇文章一个文件夹
│  ├─ pages/                     # 用户自定义页面;每页一个文件夹
│  ├─ public/                    # 用户公开资源;构建后输出到站点根目录
│  ├─ menu.toml                  # 菜单配置,从 `example/menu.toml` 复制修改
│  ├─ categories.toml            # 分类配置,从 `example/categories.toml` 复制修改
│  ├─ tags.toml                  # 自定义标签,从 `example/tags.toml` 复制修改
│  ├─ links.toml                 # 友情链接,从 `example/links.toml` 复制修改
│  ├─ banner.toml                # banner 配置,从 `example/banner.toml` 复制修改
│  └─ head.toml                  # 全站 head 注入,从 `example/head.toml` 复制修改
├─ example/                      # 模板目录「空内容时的兜底示例」
│  ├─ posts/hello-world/
│  ├─ pages/demo-page/
│  ├─ public/
│  ├─ menu.toml
│  ├─ categories.toml
│  ├─ tags.toml
│  ├─ links.toml
│  ├─ banner.toml
│  └─ head.toml
├─ defaults/public/              # 程序缺省公开资源,不是用户内容模板
│  ├─ favicon.ico
│  └─ default/
│     ├─ default-logo.svg
│     ├─ default-logo-dark.svg
│     ├─ default-user.svg
│     ├─ default-cover.webp
│     └─ default-banner.webp
├─ src/                          # Astro 路由、组件、样式和核心逻辑
├─ .env                          # 用户自定义变量(从.env.example复制)
├─ .env.example                  # 模板,复制为 .env 后作为用户自定义变量
├─ astro.config.mjs
└─ package.json

.gitkeep 只是占位文件,用来让空目录保留在项目里。写入真实文章、页面或资源后,不需要管它。

如果是新站点,可以把 example/ 复制一份并重命名为 blog/,在 blog/ 里维护自己的内容。

配置顺序

站点基础信息来自环境变量:

  1. 部署平台或系统环境变量优先。
  2. 本地开发时复制 .env.example 为 .env,再修改 .env
  3. 没有配置时使用代码里的默认值,默认值见下方环境变量表。

.env.example 只是示例文件,程序不会直接把它当作本地配置读取。

内容配置使用 TOML:

文件 用途 使用方式
blog/menu.toml 导航菜单 从 example/menu.toml 复制后修改;不存在时使用示例文件
blog/categories.toml 分类显示名和描述 从 example/categories.toml 复制后修改;不存在时使用示例文件
blog/tags.toml 标签显示名 从 example/tags.toml 复制后修改;不存在时使用示例文件
blog/links.toml 友链数据 从 example/links.toml 复制后修改;不存在时使用示例文件
blog/banner.toml 首页 banner 从 example/banner.toml 复制后修改;不存在时使用示例文件
blog/head.toml 全站 <head> 注入 从 example/head.toml 复制后修改;不存在时不注入任何内容

除 blog/head.toml 外,blog/*.toml 只要存在,就会完全替换 example/*.toml。分类和标签会先从文章属性区自动收集;TOML 主要用于改显示名称和描述。

这家伙太懒了,什么也没留下。
已有评论 ( 2 )
提示:您必须 登录 才能查看此内容。
域名市场
   域名载入中...
创建新帖
自助推广 (点击空位或 这里 添加)
确认删除
确定要删除这篇帖子吗?删除后将无法恢复。
删除成功
帖子已成功删除,页面将自动刷新。
删除失败
删除帖子时发生错误,请稍后再试。