博客v0.6迭代记录

发布于 | 分类于 博客

博客v0.6.0将服务端主要模块迁移到TypeScript,同时补充自动部署和本地文章导入工具。

TypeScript迁移

2019-04-28开始引入TypeScript,迁移范围主要是Node.js服务端:

  • 应用入口由index.js调整为index.ts
  • 控制器、路由、模型和日志工具迁移为.ts文件。
  • MySQL访问逻辑集中到core/mysql.ts
  • 文章、书籍和标签模型改为TypeScript实现。
  • 新增tsconfig.json管理编译目标、模块格式和输出。

迁移过程中同步删除了旧的JavaScript控制器、模型和路由实现,避免两套服务端代码并存。

目录与构建调整

服务端源码最终集中到server目录,包含:

  • controller:页面与接口控制器。
  • model:文章、书籍和标签数据访问。
  • router:Koa路由注册。
  • isomorphic:页面与接口共用的响应处理。
  • lib:分页、Markdown、目录和Swig辅助逻辑。
  • build:模板渲染和静态资源映射读取。

构建配置停止跟踪历史Bundle和本地数据库配置,生成文件由构建流程负责输出。开发源码、服务器代码和产物目录的边界在这一阶段重新整理。

Webhook自动部署

2019-05-05增加Webhook服务和Shell部署脚本:

  1. Webhook服务接收代码仓库推送事件。
  2. 校验请求后触发部署命令。
  3. 部署脚本更新代码并重新启动博客服务。

原Node.js部署脚本被替换为deploy.sh,部署入口与博客运行服务分离。该版本页的确认时间对应提交f86b889

本地文章导入

2019年7月继续增加Markdown文章导入工具:

  • 解析本地Markdown文件及元数据。
  • 将Hexo文章转换为结构化数据。
  • 写入MySQL中的文章和标签数据。
  • 支持单文件和目录批量上传。
  • 增加upload命令,统一调用导入流程。

服务端控制器和模型同步增加文章写入、标签关联及错误日志处理,为从文件系统维护文章提供批量同步入口。

版本结果

  • 服务端核心模块完成TypeScript迁移。
  • 源码目录和构建产物边界完成调整。
  • Git推送后可通过Webhook触发自动部署。
  • 本地Markdown文章可以批量解析并写入数据库。
  • 页面端仍保留原有JavaScript和Swig结构,本次提交记录不能支持“整个前后端均已迁移到TypeScript”的结论。

提交依据

你要请我喝一杯奶茶?

版权声明:自由转载-非商用-保持署名和原文链接。

本站文章均为本人原创,参考文章我都会在文中进行声明,也请您转载时附上署名。