Astro 与 Vue 岛屿组件结合,使用 Tailwind CSS 与 TypeScript
astro-cat-portfolio — Astro 作品集模板
作者 sindurigf
基于 Astro 与 Vue 的个人作品集与博客模板,采用新粗野主义风格,默认深色并支持浅色模式,内置博客、演讲幻灯片、联系表单与无障碍测试。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
新粗野主义视觉风格,默认深色并支持浅色模式
内置博客与订阅源、演讲幻灯片、联系表单
About 页面包含动画猫元素
在 Chromium、Firefox 和 WebKit 中按 WCAG 2.2 AA 进行测试
联系表单基于 Cloudflare Workers 与 D1 数据库
模板详细介绍
这是一个面向个人网站的作品集与博客模板,使用 Astro 搭配 Vue 岛屿组件、Tailwind CSS 与 TypeScript,部署目标为 Cloudflare Workers。视觉上采用新粗野主义风格,默认深色主题并提供浅色模式;About 页面包含动画猫元素。内容侧提供博客与订阅源、演讲幻灯片(talk slideshow)以及联系表单。无障碍方面,模板在 Chromium、Firefox 和 WebKit 三个浏览器中按 WCAG 2.2 AA 进行测试,并附带无障碍声明、自动化覆盖说明与手动测试清单。联系表单依赖 Cloudflare 的 D1 数据库与邮件发送配置,在数据库创建并迁移前会返回 503;若不需要表单,可将 contact 配置设为 none,此时联系页改为显示邮箱地址。使用前需要替换占位文案、示例文章与演讲、照片,并更新 SECURITY.md、ACCESSIBILITY.md 与 AI_DISCLOSURE.md。模板还包含可选的 /brand 设计系统页面,可通过删除对应文件与链接移除。
适合你的项目吗?
适用场景
- 搭建个人作品集网站,展示项目与个人简介
- 运营带订阅源的个人博客并发布文章
- 为技术演讲提供幻灯片展示页面
- 通过联系表单接收访客消息(需配置 D1 与邮件)
适合人群
- 需要作品集与博客二合一站点的个人开发者或设计师
- 重视无障碍标准并希望有 WCAG 2.2 AA 测试覆盖的站点
- 偏好 Astro 与 Vue 组合、并计划部署到 Cloudflare Workers 的用户
- 接受新粗野主义视觉风格并愿意替换占位内容的用户
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
通过 Use this template 创建仓库后克隆,使用 nvm use、npm ci、npx playwright install --with-deps chromium firefox 与 npm run dev 启动
- 2
编辑 src/site.config.ts 配置站点名称与 URL、姓名、职位、邮箱、社交资料、journeyPost 以及分析和联系开关,无效值会导致构建失败
- 3
替换占位文案、示例文章与演讲、照片,并更新 SECURITY.md、ACCESSIBILITY.md 与 AI_DISCLOSURE.md
- 4
联系表单需要创建并迁移 D1 数据库,否则返回 503;不需要表单时可将 contact 下的 form 设为 none,并移除 wrangler.jsonc 中的 d1_databases 与 send_email 配置
- 5
部署到 Cloudflare 前参考 docs/DEPLOYMENT.md;/brand 页面为可选,可通过删除对应文件与链接移除
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 联系表单在创建并迁移 D1 数据库之前会返回 503,需配置 Cloudflare D1 才能正常使用。
- 若不使用联系表单,需在 src/site.config.ts 的 contact 下将 form 设为 'none',并移除 wrangler.jsonc 中的 d1_databases 与 send_email 配置。
- 部署目标为 Cloudflare Workers,需使用 Cloudflare 平台进行部署。
- src/assets/photos/ 与 src/assets/blog/ 中的照片采用 CC BY 4.0 许可,需保留 LICENSE-photos 中的署名;替换照片时应更新或移除该文件及对应行。
- src/assets/social-icons.svg 中的品牌图标路径来自 Simple Icons,采用 CC0 1.0 许可。
- Lexend 字体采用 SIL Open Font License 1.1,版权归 2019 The Lexend Project Authors。
- 使用前需替换占位文案(lorem ipsum)、示例文章与演讲以及照片。
- 需更新 SECURITY.md、ACCESSIBILITY.md 与 AI_DISCLOSURE.md 以描述你自己的站点。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
The contact form answers 503 until its D1 database is created and migrated
README 原文
To go without a form, set `form: 'none'` under `contact` in `src/site.config.ts`
README 原文
Deploy to Cloudflare:
README 原文
Photographs in `src/assets/photos/` and `src/assets/blog/` | CC BY 4.0, with the credit in [LICENSE-photos](LICENSE-photos)
README 原文
`src/assets/social-icons.svg` | Brand icon paths from [Simple Icons](https://simpleicons.org), CC0 1.0
README 原文
Lexend | SIL Open Font License 1.1, copyright 2019 The Lexend Project Authors
README 原文
Replace the placeholder copy (lorem ipsum), the sample posts and talk, and the photos.
README 原文
https://github.com/sindurigf/astro-cat-portfolio/blob/main/LICENSEhttps://github.com/sindurigf/astro-cat-portfolio/blob/main/README.mdUpdate [SECURITY.md](SECURITY.md), [ACCESSIBILITY.md](ACCESSIBILITY.md) and [AI_DISCLOSURE.md](AI_DISCLOSURE.md) to describe your site.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-04。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Astro · Vue
- 网站类型
- 作品集 · 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-04
- 截图检查日期
- 2026-10-04
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-05
查看当时使用的来源资料
SHA-256: fb88a7d354cbb8532e12f6109056ebbf8d7088352c5e68c5a5523e55999dfbb2
2026-10-04T20:28:29.647Z
来源文件 / 仓库# astro-cat-portfolio
A personal website template: Astro, Vue islands, Tailwind CSS and TypeScript on
Cloudflare Workers. Neo-brutalist, dark by default with a light mode, a blog
with feeds, a talk slideshow, a contact form, and animated cats on the About
page. Tested for WCAG 2.2 AA in Chromium, Firefox and WebKit.
## First steps
1. Create your repository with "Use this template", then clone it.
2. Install and run it:
```sh
nvm use
npm ci
npx playwright install --with-deps chromium firefox
npm run dev
```
3. Edit [`src/site.config.ts`](src/site.config.ts): site name and URL, your
name, job title, email and profiles, the post your pages point to for the
longer story (`journeyPost`), and the analytics and contact switches. The build fails on an invalid value.
4. Replace the placeholder copy (lorem ipsum), the sample posts and talk, and
the photos. Update [SECURITY.md](SECURITY.md),
[ACCESSIBILITY.md](ACCESSIBILITY.md) and
[AI_DISCLOSURE.md](AI_DISCLOSURE.md) to describe your site.
`/brand` shows your design system and links to your `repository`; it is
optional. To drop it, delete `src/pages/brand.astro`,
`src/components/brand/` and `tests/brand.spec.ts`, the Brand link in
`src/components/Footer.astro`, and every `'/brand'` under `tests/`.
5. Run the gate in [AGENTS.md](AGENTS.md#done-means): build, typecheck,
check and every test suite. CI runs the same on every pull request and
needs no secrets.
6. Deploy to Cloudflare:
[docs/DEPLOYMENT.md](docs/DEPLOYMENT.md#before-the-first-deploy).
- The contact form answers 503 until its D1 database is created and
migrated ([D1](docs/DEPLOYMENT.md#d1)).
- To go without a form, set `form: 'none'` under `contact` in
`src/site.config.ts`: `/contact` then shows your email address. Remove
the `d1_databases` and `send_email` blocks from `wrangler.jsonc` too
([contact options](docs/DEPLOYMENT.md#contact-options)).
## Documentation
- [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md): requirements, commands, layout,
posts, talks
- [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md): Cloudflare, D1, email, contact
options, Umami, dashboard and repository settings
- [ARCHITECTURE.md](ARCHITECTURE.md): stack, site config, tokens, content,
assets, headers
- [docs/STYLEGUIDE.md](docs/STYLEGUIDE.md): visual rules and page patterns
- [ACCESSIBILITY.md](ACCESSIBILITY.md): accessibility statement, automated
coverage, known gaps, reporting a barrier
- [docs/MANUAL_TESTING.md](docs/MANUAL_TESTING.md): by-hand accessibility
checklist
- [AGENTS.md](AGENTS.md): working rules, for people and agents
- [SECURITY.md](SECURITY.md): reporting a vulnerability
- [AI_DISCLOSURE.md](AI_DISCLOSURE.md): AI tooling used; none at runtime
## Contributing
Issues and pull requests are welcome. Report a security vulnerability privately
instead: [SECURITY.md](SECURITY.md). Pull requests use
[the template](.github/PULL_REQUEST_TEMPLATE.md) and the rules in
[AGENTS.md](AGENTS.md).
## Licence
| What | Licence |
| ---------------------------------------------------------- | ---------------------------------------------------------------------- |
| Source code, docs and everything not listed below | MIT, [LICENSE](LICENSE) |
| Photographs in `src/assets/photos/` and `src/assets/blog/` | CC BY 4.0, with the credit in [LICENSE-photos](LICENSE-photos) |
| `src/assets/social-icons.svg` | Brand icon paths from [Simple Icons](https://simpleicons.org), CC0 1.0 |
| Lexend | SIL Open Font License 1.1, copyright 2019 The Lexend Project Authors |
- The build writes `/licenses.txt` covering every third-party package,
vendored script and font sent to a browser (`scripts/licenses.mjs`).
- When you replace the photos with your own, update `LICENSE-photos`, or
remove it and its row.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

astrowind
⭕️ AstroWind: A free template using Astro v7 and Tailwind CSS v4. Astro starter theme.
Astro · 博客

astro-paper
A minimal, accessible and SEO-friendly Astro blog theme.
Astro · 博客

fuwari
✨A static blog template built with Astro.
Astro · 博客

Firefly
Firefly 是一款基于 Astro 的静态博客主题,由 CuteLeaf 在 saicaca 的 Fuwari 模板基础上二次开发,主打清新美观的视觉风格。
Astro · 博客

astro-theme-cactus
A simple Astro theme. Use it to create your blog or website.
Astro · 作品集

astrofy
Astrofy is a free and open-source template for your Personal Portfolio Website built with Astro and TailwindCS…
Astro · 作品集
