这是一个使用现代技术栈构建的 HackerNews 中文版网站,提供实时翻译的英文科技新闻和讨论。
- 🚀 实时同步 HackerNews 最新内容
- 🤖 使用 OpenAI API 智能翻译
- 💻 现代化的用户界面设计
- ⚡ 快速的加载速度和响应式设计
- 🌐 支持多种内容分类浏览
- Next.js 14: React框架,用于构建现代化的服务端渲染应用
- Tailwind CSS: 用于样式开发的实用优先的CSS框架
- shadcn/ui: 高质量的UI组件库
- Lucide Icons: 现代简约风格的图标库
- Next.js API Routes: 服务端API实现
- Prisma: 现代化的ORM工具
- PostgreSQL: 主数据库
- OpenAI API: 提供高质量的内容翻译服务
- Vercel: 应用托管和自动部署
- Vercel Cron Jobs: 定时任务处理
- Vercel Postgres: 数据库服务
- Node.js 18+
- pnpm 8+
- PostgreSQL(本地开发可选)
-
克隆项目 ```bash git clone https://github.com/ViggoZ/hackernews-cn.git cd hackernews-cn ```
-
安装依赖 ```bash pnpm install ```
-
配置环境变量 ```bash cp .env.example .env ``` 然后编辑 .env 文件,填入必要的环境变量:
- DATABASE_URL: PostgreSQL 数据库连接URL
- OPENAI_API_KEY: OpenAI API密钥
- NEXT_PUBLIC_APP_URL: 应用URL
- CRON_SECRET: 定时任务密钥
-
初始化数据库 ```bash pnpm prisma db push ```
-
启动开发服务器 ```bash pnpm dev ```
访问 http://localhost:3000 查看应用。
本项目已配置为可以直接部署到 Vercel 平台。
- Fork 本项目到你的 GitHub 账号
- 在 Vercel 中导入项目
- 配置必要的环境变量:
DATABASE_URL
: 推荐使用 Vercel Postgres 数据库,在 Vercel 控制台中创建并获取连接 URLOPENAI_API_KEY
: 从 OpenAI 获取的 API 密钥NEXT_PUBLIC_APP_URL
: 您的 Vercel 部署 URL(例如:https://your-app.vercel.app)CRON_SECRET
: 设置一个安全的随机字符串,用于保护定时任务 API
- 初始化数据库:
- 部署完成后,在 Vercel 控制台中打开项目
- 进入 "Storage" 标签页,创建 Postgres 数据库
- 数据库会自动完成初始化
- 部署完成后即可访问
注意:项目已配置每小时自动更新内容,您可以在 Vercel 的 "Cron Jobs" 中监控定时任务的执行情况。
``` ├── src/ │ ├── app/ # Next.js 应用路由和页面 │ ├── components/ # React 组件 │ ├── lib/ # 工具函数和配置 │ └── types/ # TypeScript 类型定义 ├── prisma/ # 数据库模型和迁移 ├── public/ # 静态资源 └── ...配置文件 ```
- 实时同步 HackerNews 最新内容
- 每小时自动抓取最新内容
- 支持多种内容类型:最新、最热、Ask HN、Show HN、Jobs
- 智能翻译
- 使用 OpenAI API 进行高质量翻译
- 支持标题和正文的中英对照显示
- 保留原文链接便于对照
- 用户体验
- 现代简约的界面设计
- 响应式布局,完美支持移动端
- 快速的页面加载和转换
- 支持深色模式
- 系统特性
- 基于 Vercel 的可靠部署
- PostgreSQL 数据持久化
- 自动的定时更新机制
- ISR 增量静态再生成
欢迎提交 Pull Request 或创建 Issue!
如果您在使用过程中遇到任何问题,或有任何建议,请通过以下方式反馈:
- 在 GitHub 上提交 Issue
- 在 Twitter 上联系 @decohack
- 发送邮件至 [viggo.zw@gmail.com](请替换为您的邮箱)
MIT License