我的个人博客,使用 Gleam 和 Lustre 构建,由 Blogatto 驱动。
最初使用 Gatsby 构建,现已迁移为由 Gleam/OTP 生成的纯静态站点。
| 技术 | 用途 |
|---|---|
| Gleam | 编程语言(编译为 Erlang/OTP) |
| Lustre | UI 组件框架 |
| Blogatto | 博客引擎 / 静态站点生成器 |
| Tailwind CSS | 样式 |
| Vercel | 托管 |
blog.chunyan.dev/
├── src/blog/ # Gleam 源代码
│ ├── blog.gleam # 入口与 Blogatto 配置
│ ├── components/ # 可复用 UI 组件
│ ├── pages/ # 首页与博客列表页
│ └── template/ # 页面模板、顶栏、页脚
├── blog/ # Markdown 文章(含 frontmatter)
├── assets/ # CSS 源文件(Tailwind 输入)
├── static/ # 静态文件(favicon、头像、OG 图片)
└── dist/ # 构建输出(构建后生成)- Gleam >= 1.14.0
- Erlang/OTP >= 28
- Docker(用于本地预览)
- just(可选的任务运行器)
gleam run # 将静态站点构建到 ./dist
gleam test # 运行测试
gleam format # 格式化代码
just dev # 启动开发服务器,端口 3000,支持热重载站点通过 GitHub Actions 部署到 Vercel:
- 推送到
main:生产环境部署 - 拉取请求(Pull Request):预览环境部署
- 代码:MIT
- 内容:CC-BY-NC-ND-4.0
- A Blog in Gleam
- blogatto:使用 Gleam 编写的博客引擎
- glailglind:Gleam 的 Tailwind CSS 安装器
- webls:网站的 Sitemap、robots 与 RSS 订阅源