{"id":46278012,"url":"https://github.com/seamain/blog-new","last_synced_at":"2026-04-01T20:48:05.982Z","repository":{"id":204303911,"uuid":"711251074","full_name":"Seamain/Blog-New","owner":"Seamain","description":"Use Astro to bulid my new website","archived":false,"fork":false,"pushed_at":"2026-02-25T04:00:24.000Z","size":1616,"stargazers_count":1,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-25T09:49:37.203Z","etag":null,"topics":["astro","front-end","template","web"],"latest_commit_sha":null,"homepage":"https://seamain.org","language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Seamain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-28T17:02:00.000Z","updated_at":"2026-02-25T04:00:20.000Z","dependencies_parsed_at":"2026-01-18T16:02:15.456Z","dependency_job_id":null,"html_url":"https://github.com/Seamain/Blog-New","commit_stats":null,"previous_names":["seamain/blog-new"],"tags_count":2,"template":true,"template_full_name":null,"purl":"pkg:github/Seamain/Blog-New","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seamain%2FBlog-New","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seamain%2FBlog-New/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seamain%2FBlog-New/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seamain%2FBlog-New/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Seamain","download_url":"https://codeload.github.com/Seamain/Blog-New/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seamain%2FBlog-New/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30071895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T03:25:38.285Z","status":"ssl_error","status_checked_at":"2026-03-04T03:25:05.086Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astro","front-end","template","web"],"created_at":"2026-03-04T05:01:48.007Z","updated_at":"2026-04-01T20:48:05.974Z","avatar_url":"https://github.com/Seamain.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Seamain's Blog\n\n\u003e S09指挥官Seamain的个人纪录 · 记录技术、产品与生活的灵感\n\n一个基于 [Astro](https://astro.build) 构建的静态个人博客，后端接入 [Strapi](https://strapi.io) CMS，支持 AI 摘要生成、全文搜索、动态 OG 图、RSS 订阅等功能。\n\n**线上地址：** [seamain.org](https://seamain.org)\n\n---\n\n## 技术栈\n\n| 层级 | 技术 |\n|------|------|\n| 框架 | [Astro v5](https://astro.build)（静态站点生成） |\n| 样式 | [Tailwind CSS v4](https://tailwindcss.com) |\n| CMS | [Strapi](https://strapi.io)（私有部署） |\n| 搜索 | [Pagefind](https://pagefind.app)（本地全文检索） |\n| OG 图 | [Satori](https://github.com/vercel/satori) + [@resvg/resvg-js](https://github.com/yisibl/resvg-js) |\n| AI 摘要 | [DeepSeek API](https://platform.deepseek.com) |\n| 认证 | [Cloudflare Access](https://www.cloudflare.com/zero-trust/products/access/)（Service Token） |\n| 图标 | [astro-icon](https://github.com/natemoo-re/astro-icon) |\n| 订阅 | RSS Feed（[@astrojs/rss](https://docs.astro.build/en/guides/rss/)） |\n| Sitemap | [@astrojs/sitemap](https://docs.astro.build/en/guides/integrations-guide/sitemap/) |\n\n---\n\n## 特性\n\n- **毛玻璃 ACG 风格 UI** — 背景图 + `backdrop-filter` 磨砂效果，粉紫渐变色调\n- **响应式布局** — 手机、平板、桌面全端适配\n- **文章 OG 图自动生成** — 每篇文章构建时自动生成 1200×630 专属预览图，支持中文\n- **AI 智能摘要** — 接入 DeepSeek，为每篇文章自动生成摘要\n- **全文搜索** — 基于 Pagefind 的本地离线搜索，无需后端\n- **暗色模式** — 系统跟随 + 手动切换，无闪烁\n- **RSS 订阅 \u0026 Sitemap** — 开箱即用\n- **SEO 完整** — Open Graph、Twitter Card、canonical URL、article 结构化数据\n\n---\n\n## 本地开发\n\n### 前置要求\n\n- Node.js ≥ 18\n- npm ≥ 9\n- 一个运行中的 Strapi 实例（或向 [@Seamain](https://github.com/Seamain) 申请只读 API Token）\n\n### 安装\n\n```bash\ngit clone https://github.com/Seamain/Blog-New.git\ncd Blog-New\nnpm install\n```\n\n### 环境变量\n\n在项目根目录创建 `.env` 文件，填入以下变量：\n\n```env\n# Strapi API\nAPI_URL=https://your-strapi-instance.example.com\nAPI_TOKEN=your_strapi_api_token\n\n# Cloudflare Access（如果 Strapi 部署在 Cloudflare Access 后方）\nCF_ACCESS_ID=your_cf_access_client_id\nCF_ACCESS_SECRET=your_cf_access_client_secret\n\n# DeepSeek API（用于 AI 摘要生成）\nDEEPSEEK_API_KEY=your_deepseek_api_key\n```\n\n### 启动开发服务器\n\n```bash\nnpm run dev\n```\n\n访问 [http://localhost:4321](http://localhost:4321)\n\n### 构建\n\n```bash\n# 标准构建\nnpm run build\n\n# 构建并生成 Pagefind 搜索索引\nnpm run build:pagefind\n```\n\n构建产物输出至 `dist/` 目录。\n\n### 预览构建结果\n\n```bash\nnpm run preview\n```\n\n---\n\n## 项目结构\n\n```\nsrc/\n├── api/            # Strapi API 封装（文章、分类、导航等）\n├── components/     # 可复用 Astro 组件（Navbar、PostCard、AISummary 等）\n├── interfaces/     # TypeScript 类型定义\n├── layouts/        # 页面布局（BasicStyle）\n├── libs/           # 工具函数（fetchAvatar、generateOgImages、strapi 等）\n├── pages/          # 路由页面\n│   ├── index.astro         # 首页\n│   ├── posts/\n│   │   ├── [slug].astro    # 文章详情页\n│   │   └── [slug].png.ts   # 文章 OG 图生成\n│   ├── categories/         # 分类页\n│   ├── og.png.ts           # 首页 OG 图生成\n│   ├── feed.xml.js         # RSS Feed\n│   └── ...\n├── styles/\n│   └── global.css          # 全局样式（Tailwind + 自定义 ACG 样式）\n└── templates/\n    └── og-templates/       # OG 图 JSX 模板（Satori）\n        ├── post.tsx        # 文章 OG 图模板\n        └── site.tsx        # 首页 OG 图模板\n```\n\n---\n\n## 贡献\n\n欢迎提交 Issue 和 Pull Request。\n\n1. Fork 本仓库\n2. 创建你的特性分支：`git checkout -b feat/your-feature`\n3. 提交修改：`git commit -m 'feat: add some feature'`\n4. 推送分支：`git push origin feat/your-feature`\n5. 发起 Pull Request\n\n---\n\n## License\n\n[MIT](LICENSE) © Seamain\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseamain%2Fblog-new","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseamain%2Fblog-new","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseamain%2Fblog-new/lists"}