通过本地 Ollama 实例进行 AI 生成,README 称无 API 费用、不依赖云端 LLM
writeflow — Next.js 博客模板
作者 Aussielad89
WriteFlow 是一个基于 Next.js 的 AI 内容创作应用,通过本地 Ollama 实例生成博客、社交媒体、邮件、广告文案等内容,支持邮箱密码登录、项目管理与额度系统。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
提供博客文章、社交媒体、邮件、产品描述、广告文案、SEO 大纲六种内容模板
编辑器支持实时流式输出,可编辑、保存并迭代生成结果
使用 NextAuth v5 邮箱/密码认证,配合 Prisma adapter 与 bcrypt
额度系统分 Free(1 万 tokens)、Pro(10 万)、Agency(50 万)三档
README 列出 Vercel 部署方式,但注明 Ollama 仍需在本地运行
模板详细介绍
WriteFlow 是一个 Next.js 应用,用于生成博客文章、社交媒体内容、邮件、广告文案等,AI 生成完全依赖本地运行的 Ollama 实例,README 称其无需 API 费用、不依赖云端 LLM。
功能方面,README 列出六种内容模板:博客文章、社交媒体、邮件、产品描述、广告文案和 SEO 大纲。编辑器支持实时流式输出 AI 结果,可编辑、保存并迭代;项目可保存、组织和再次访问。认证采用 NextAuth v5 的邮箱/密码方式,配合 Prisma adapter 与 bcrypt。额度系统分为 Free(1 万 tokens)、Pro(10 万)、Agency(50 万)三档,README 说明额度限制用于免费层级的公平使用。
技术栈方面,README 写明前端使用 Next.js App Router、TypeScript 与 Tailwind CSS,后端为 Next.js API Routes 与 Prisma ORM,数据库在本地开发使用 SQLite、生产可选 PostgreSQL,状态管理使用 Zustand,表单使用 React Hook Form 与 Zod,AI 部分使用 Ollama 与 JSONL 流式传输。README 提到 Vercel 一键部署,但注明 Ollama 仍需保持在本地运行。
README 未提供关于多用户并发、生产环境安全加固或 Ollama 模型兼容性范围的进一步说明;定价表中的团队用户、API 访问、自定义模板等功能仅以表格形式列出,未给出实现细节。
适合你的项目吗?
适用场景
- 在本地运行 Ollama 后,生成博客文章初稿或 SEO 大纲
- 为社交媒体撰写推文串、LinkedIn 帖子或 Instagram 文案
- 撰写专业或随意的邮件内容
- 生成电商产品描述或广告标题与正文
适合人群
- 已安装 Ollama 并希望用本地模型进行内容生成的开发者
- 需要按模板批量起草多种文案的个人创作者
- 希望自行部署、以 SQLite 或 PostgreSQL 存储项目数据的用户
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 22+,并安装 Ollama 后拉取至少一个模型,例如 ollama pull llama3.2:3b
- 2
克隆仓库后执行 npm install,复制 .env.local.example 为 .env.local,OLLAMA_URL 默认指向 http://localhost:11434
- 3
运行 ollama serve 启动本地服务,再执行 npm run dev 启动开发服务器(http://localhost:3000)
- 4
执行 npx prisma db push 创建 SQLite 数据库与表结构,可选 npx prisma studio 在浏览器查看数据
- 5
README 提醒生产环境需更改 NEXTAUTH_SECRET
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- AI 生成完全依赖本地运行的 Ollama 实例,需自行安装 Ollama 并拉取模型,无法仅靠云端服务运行。
- README 注明 Vercel 一键部署时 Ollama 仍需保持在本地运行,因此托管部署无法独立完成 AI 生成。
- 额度系统分 Free(1 万 tokens)、Pro(10 万)、Agency(50 万)三档,Pro 与 Agency 为付费升级项,免费层仅含基础模板与社区支持。
- README 提醒生产环境需更改 NEXTAUTH_SECRET,属于部署前必须处理的安全配置。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
IyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
README 原文
IyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
README 原文
IyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
README 原文
https://github.com/Aussielad89/writeflow/blob/main/LICENSEhttps://github.com/Aussielad89/writeflow/blob/main/README.mdIyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-15。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 80 / 100
- 技术栈
- Next.js · React
- 网站类型
- 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-08
- 截图检查日期
- 2026-10-15
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261017 · 2026-10-16
查看当时使用的来源资料
SHA-256: 82985231cb33bd468d61c0dfc7d8a23efe45efa648d7545b3894e924cbb24957
2026-10-15T00:02:13.715Z
来源文件 / 仓库IyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

Nextjs-tailwindcss-blog-template
使用 Tailwind CSS 的 Next.js 博客。当前分支通过 Velite 处理 Markdown,早期 Contentlayer 实现保留在单独的历史分支中。
Next.js · 博客

Next-js-Blog-Boilerplate
Next-js-Blog-Boilerplate 是一套面向个人与技术博客的启动代码,基于 Next.js 12 与 Tailwind CSS 3 构建,同时集成了 TypeScript、ESLint、Prettier …
Next.js · 博客

nextjs-blog-theme
nextjs-blog-theme 是 Netlify 团队维护的一个博客启动模板,基于 Next.js 15(Pages Router)和 Tailwind CSS 4.x 构建,设计由 Bejamas 机构完成。
Next.js · 博客

blog
🚀 My personal blog made with Tailwind CSS and NextJS. Template from Timlrx. Feel free to fork, follow and use…
Next.js · 博客

tailnext
Tailnext 是一个基于 Next.js 14 App Router 和 Tailwind CSS 的免费开源模板,由 onWidget 团队创建并维护。
Next.js · 博客
