{"id":16665556,"url":"https://github.com/ycjcl868/blog","last_synced_at":"2025-04-06T16:12:00.901Z","repository":{"id":43049663,"uuid":"140098499","full_name":"ycjcl868/blog","owner":"ycjcl868","description":"🍳 Zero-cost blog implements with Notion and Cloudflare Pages.","archived":false,"fork":false,"pushed_at":"2025-03-26T04:10:42.000Z","size":4869,"stargazers_count":75,"open_issues_count":0,"forks_count":26,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T14:11:13.723Z","etag":null,"topics":["cloudflare","cloudflare-pages","nextjs","notion","react"],"latest_commit_sha":null,"homepage":"https://www.rustc.cloud","language":"TypeScript","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/ycjcl868.png","metadata":{"files":{"readme":"README-zh-CN.md","changelog":null,"contributing":null,"funding":".github/funding.yml","license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":["ycjcl868"]}},"created_at":"2018-07-07T16:09:06.000Z","updated_at":"2025-03-26T04:10:45.000Z","dependencies_parsed_at":"2024-04-20T04:29:02.193Z","dependency_job_id":"11db1a8c-8f7f-4709-a44f-a8e9221c8fc8","html_url":"https://github.com/ycjcl868/blog","commit_stats":{"total_commits":234,"total_committers":4,"mean_commits":58.5,"dds":"0.017094017094017144","last_synced_commit":"726c0b3d7baf1cf99f6a69c0ecbe4af5f58def25"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycjcl868%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycjcl868%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycjcl868%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycjcl868%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ycjcl868","download_url":"https://codeload.github.com/ycjcl868/blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247509223,"owners_count":20950232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cloudflare","cloudflare-pages","nextjs","notion","react"],"created_at":"2024-10-12T11:07:28.128Z","updated_at":"2025-04-06T16:12:00.896Z","avatar_url":"https://github.com/ycjcl868.png","language":"TypeScript","funding_links":["https://github.com/sponsors/ycjcl868"],"categories":[],"sub_categories":[],"readme":"# 📝 Notion Blog - 零成本实时更新的现代化博客系统\n\n中文 | [English](./README.md)\n\n[![Cloudflare Pages](https://img.shields.io/badge/Deployed_on-Cloudflare_Pages-F38020?logo=cloudflare)](https://developers.cloudflare.com/pages/)\n[![Remix Framework](https://img.shields.io/badge/Built_with-Remix-1E1F21?logo=remix)](https://remix.run/)\n\n基于 Remix 和 Notion 构建，部署在 Cloudflare Pages ，使用 Edge Function 的无成本、可实时更新的博客站点。\n\n![](https://user-images.githubusercontent.com/13595509/221388253-a719a869-c4b9-4387-a513-101caa35df27.png)\n\n## 🔥 特性\n\n- 直接使用你的 Notion 页面创建博客，博客内容访问实时更新\n- 支持智能缓存（`stale-while-revalidate`），确保页面快速加载的同时，自动在后台更新内容\n- 使用 [Remix](https://remix.run/) 构建，最新的技术栈\n- 已经部署到 Cloudflare Pages，无需费用\n- 使用 [TailwindCSS](https://tailwindcss.com/) 设计简洁美观的博客\n- 支持分类标签和搜索功能\n- 支持 RSS Feed\n- 主题 Light/Dark 切换\n- [ ] 国际化支持，运行时大语言模型翻译\n\n## 🚀 性能\n\n[PageSpeed Insights](https://pagespeed.web.dev/analysis/https-www-rustc-cloud/1zuls2fmg9?hl=zh-cn\u0026form_factor=desktop)\n\n![](https://github.com/user-attachments/assets/b505fdf9-1cfa-410d-8f6f-98872263e75b)\n\n\n## 📦 安装\n\n使用以下指令将该项目克隆到你本地\n\n```\ngit clone https://github.com/ycjcl868/blog\n```\n\n接下来，使用 pnpm 安装依赖\n\n```\npnpm i\n```\n\n## 生成 Notion 数据库\n\n复制这个 [Notion 模板](https://ycjcl868.notion.site/b7e25fb9b29a48269e92e36f65a3ffbb)，共享生成连接。\n\n![](https://github.com/user-attachments/assets/cb894cb4-4e1b-4f1e-adb4-d35ce67e5df4)\n\n链接中对应的 `PAGE_ID` 是：`https://www.notion.so/{workspace_name}/{page_id}`，通常是地址后 32 位数字\n\n## 🔨 本地开发\n\n新建 `.dev.vars`，配置如下：\n\n```bash\nNOTION_PAGE_ID=xxxx   # Notion 共享 ID\nNOTION_ACCESS_TOKEN=secret_xxx # 在这里申请一个 TOKEN：https://developers.notion.com/docs/create-a-notion-integration\n```\n\n然后执行启动命令：\n\n```\nnpm run start\n```\n\n访问 `localhost:3000` 即可访问\n\n## 📝 发表你的想法\n\n如果你有任何建议，欢迎提交 issue 或者 pull request。\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=ycjcl868/blog\u0026type=Date)](https://star-history.com/#ycjcl868/blog\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fycjcl868%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fycjcl868%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fycjcl868%2Fblog/lists"}