Skip to content

Repository files navigation

🏝️ 博客群岛 — Blog Archipelago

独立博客聚合发现平台。通过 RSS 航线连接分散的岛屿,让优质内容互相发现。

功能特性

  • 岛屿入驻 — 提交独立博客进行收录申请,自动解析 RSS 获取最新文章
  • 审核管理 — 管理员后台审核、编辑、批准或驳回入驻申请
  • 邮件通知 — 申请提交、审核通过/驳回时自动发送邮件通知(支持 QQ 邮箱 SMTP)
  • 发现漂流瓶 — 精选优质内容展示
  • 最热访问 — 根据浏览量自动排序热门文章
  • 随机航行 — 一键随机跳转到某个收录博客
  • 留言板 — 访客留言 + 管理员回复功能
  • 团队展示 — 项目维护成员公开页面
  • 标签分类 — 可自定义内容分类标签
  • 定时抓取 — 可配置定时自动刷新所有 RSS 源
  • 验证码保护 — 数学算式验证码 + Honeypot 双重反垃圾机制

技术栈

类型 技术
前端 React 19 + TypeScript + Vite
样式 Tailwind CSS v4
动效 Motion (Framer Motion)
后端 Express + tsx
RSS rss-parser
邮件 nodemailer
路由 React Router v7

本地运行

环境要求:Node.js v20+

# 安装依赖
npm install

# 启动开发服务器(含 CSS watch)
npm run dev

# 仅启动后端
npm run dev:app

# 仅启动 CSS watch
npm run dev:css

# 构建生产版本
npm run build

# 运行生产版本
npm run start

服务器运行在 http://localhost:3000

配置说明

创建 .env.local 文件(可选):

# 管理员初始账号(选填,默认 admin / admin1990)
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your_password

邮件设置在管理员后台「邮件设置」页面中配置(SMTP 主机、端口、用户名、授权码等)。

目录结构

blogfind/
├── server.ts              # Express 服务端(API + Vite 中间件)
├── vite.config.ts         # Vite 构建配置
├── tsconfig.json          # TypeScript 配置
├── messages.json          # 留言板数据持久化
├── src/
│   ├── App.tsx            # 主组件(路由、导航、页脚)
│   ├── main.tsx           # 应用入口
│   ├── index.css          # 全局样式 + Tailwind
│   ├── hooks.ts           # 自定义 Hooks + 共享类型
│   ├── utils.ts           # 工具函数
│   ├── components/
│   │   └── ui.tsx         # 通用 UI 组件(Card, Button)
│   └── pages/
│       ├── Home.tsx       # 首页
│       ├── Admin.tsx      # 管理后台
│       ├── Apply.tsx      # 登岛申请
│       ├── Islands.tsx    # 全部岛屿
│       ├── IslandDetail.tsx # 岛屿详情
│       ├── Feeds.tsx      # 全部航线
│       ├── Status.tsx     # 进度查询
│       ├── About.tsx      # 关于群岛
│       ├── Team.tsx       # 维护团队
│       ├── Guestbook.tsx  # 留言板
│       ├── Agreement.tsx  # 入驻协议
│       └── Privacy.tsx    # 隐私协议

管理员入口

访问 /admin 或点击页脚「管理」链接进入管理后台。页脚入口仅在页面底部显示,不在主导航中。默认账号 admin,密码 admin1990(请及时修改)。

开源协议

MIT License

About

寻找

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages