项目地址:biyuehu/moehub
演示网站:m.hotaru.icu
本网站设计初衷为自用,专门用于整理自己推过的 Galgame 中喜爱的角色。前端基于 React 实现,后端基于 Koa.js + Prisma 组合,值得一提的是 Koa.js 并非使用的正常模式,而是使用的 inversify-koa-utils 和 inversify 构建的 AOP + Dependency Injection 架构,类似于 Nest.js,至于为何此次不直接用 Nest.js 主要是为以后使用 Nest.js 作为后端重构博客打点基础,不至于到时上手 Nest.js 一头雾水。话又说回来,Koa.js 除了自带 types 和异步风格我是真不明白它哪点比 Express.js 强,轻量过头以至于 static、请求体解析这些东西都要单独装个包,一装下也轻量不到哪去,更不用提有些需求(比如说请求体解析)在 NPM 上有好几个不同实现,还一个比一个老。Prisma 在 Node.js 的 ORM 框架中表现是不错的,对 TypeScript 类型支持也极为友好(除了偶尔不知怎么地会发病)。项目结构依旧是喜闻乐见的基于 pnpm 实现的 monorepo 结构,顺带把以前用的 eslint 和 prettier 全删了,转而使用 Biome.js,前面那俩速度太慢了配置文件还多,不过换成 Biome.js 后开发 Kotori 时我意识到这似乎不是 lint 工具到上限了,而是 VSCode 到上限了,下次得考虑用 WebStorm 了。国际化实现当然是使用的 Kotori 的 @kotori-bot/i18n,更值得一提的是,这是首次与 Kotori-Bot
的联动,MoeHub 的后端控制台自带一个简约的交互式命令行,正是基于 @kotori-bot/core + @kotori-bot/kotori-plugin-helper 实现,不过在 Kotori 文档 中也提到过,@kotori-bot/core
作为 Kotori 的核心包,它完全支持在浏览器环境运行,实质上是支持任何支持 ES2021 及以上标准的环境,至于为什么偏偏是 2021,因为我特么写到后面发现字符串的 而这点将在接下来的项目 Misakura 中实现,包括日志记录器 @kotori-bot/logger (实际上 Misakura 这项目在年初的时候就开始企划并动工了,不过后面跑去写 Kotori 了,在六月份的时候 MoeHub 的企划也出来了,所以 Misakura 一直没啥进度)。.replaceAll()
方法是这个版本才加的,
细节
支持的角色类型
- 动画角色
- 漫画角色
- 游戏角色
- 视觉小说角色
- 轻小说角色
- 其它角色
国际化支持
- 日本語
- English
- 繁体中文
- 简体中文
CLI 支持
由 @kotori-bot/core 驱动
角色生日提醒
支持多种邮箱账号,支持自定义提醒模板
使用方法
- 下载 Github Release 版本
- 解压下载文件
- 安装依赖项(任选一条执行)
npm install
yarn
pnpm install
- 设置
.env
文件与数据库
DATABASE_URL="mysql://username:password@host:port/database"
# MoeHub server port
PORT=5000
# MoeHub logger level
LOG_LEVEL=30
- 导入
data.sql
到数据库 - 启动服务器(任选一个执行)
npm run serve
yarn serve
pnpm serve
- 登录
http://your-domain:5000/#/admin/settings
并设置你的网站
本文作者:Arimura Sena
本文链接:https://hotaru.icu/archives/363/
版权声明:转载时须注明出处及本声明
博主真是太厉害了!!!