五级Markdown目录模板
一级标题 第一章 项目总览
二级标题 1.1 系统架构设计
三级标题 1.1.1 前端模块划分
四级标题 1.1.1.1 编辑器核心组件
五级标题 1.1.1.1.1 Markdown编辑模块
- 支持分栏编辑、实时预览、滚动同步功能,内置mermaid图表渲染、代码高亮插件。
- 集成图片自动上传逻辑,粘贴/拖拽外链、本地图片可转站内资源链接。
- 提供树形目录提取,自动解析h1-h5标题生成侧边导航,支持锚点跳转。
五级标题 1.1.1.1.2 书籍设计器组件
- 封面、扉页、版权页、封底可视化拖拽编辑器,支持渐变/图片背景自定义。
- 文字块、SVG装饰图层、ISBN条码可视化实时预览,支持导出高清底图。
- 所有设计配置JSON持久化存储,修改后同步存入章节设计字段。
五级标题 1.1.1.1.3 页面布局容器
- 左侧配置面板、右侧实时预览双栏布局,支持50%/75%/100%缩放预览。
- 拖拽文本、形状、条码元素自由调整百分比坐标,实时更新样式参数。
- 导出时通过html2canvas生成PNG,调用上传接口保存至文件服务。
四级标题 1.1.1.2 用户权限模块
五级标题 1.1.1.2.1 登录鉴权逻辑
- JWT双令牌机制,access短期、refresh长效,过期自动无感刷新。
- 路由全局守卫拦截未登录请求,本地pinia持久化用户信息。
- 请求拦截器自动携带Authorization请求头,401状态强制跳转登录页。
五级标题 1.1.1.2.2 用户信息管理
- 支持账号注册、密码加密存储,头像、昵称、邮箱基础信息维护。
- 区分管理员/普通用户角色,后台预留权限拓展字段。
- 退出登录清空本地token与持久化仓库数据,销毁会话状态。
五级标题 1.1.1.2.3 全局状态仓库
- 使用Pinia管理书籍、章节、页面设计全局临时配置。
- 持久化插件缓存设计参数,刷新页面不丢失编辑内容。
- 跨组件响应式数据同步,修改配置实时同步预览画布。
三级标题 1.1.2 后端服务分层
四级标题 1.1.2.1 控制层接口
五级标题 1.1.2.1.1 图书管理接口
- 图书新增、编辑、删除、分页查询CRUD接口,绑定操作用户ID。
- Markdown全文导入接口,自动拆分树形层级生成章节数据。
- 图书预览接口拼接全部章节内容,返回完整MD文本用于前端渲染。
五级标题 1.1.2.1.2 章节操作接口
- 树形章节增删改查,支持拖拽排序自动更新sortOrder排序字段。
- 区分封面/扉页/正文/封底多类型章节,存储专属设计JSON。
- 支持父子层级嵌套,限制不能将节点拖拽至自身子树内。
五级标题 1.1.2.1.3 文件上传接口
- 接收multipart/form-data文件流,校验图片格式与10MB大小上限。
- 上传至服务本地uploads目录,返回相对访问路径供前端渲染。
- 跨域静态资源映射,通过/api/uploads访问图片资源。
四级标题 1.1.2.2 业务逻辑层
五级标题 1.1.2.2.1 PDF导出任务服务
- 异步任务接收导出参数,调用系统pandoc+XeLaTeX编译书籍PDF。
- 支持A4普通文档、A5骑马订小册子两种排版模式,自定义页边距。
- 生成文件存入output目录,记录导出状态、文件大小、报错信息。
五级标题 1.1.2.2.2 Markdown解析服务
- 读取原始MD文本,按#到#####标题切割分层章节数据。
- 自动区分一级至五级标题,生成树形parentId层级关系。
- 清理旧正文章节,批量插入新解析后的章节树。
五级标题 1.1.2.3.3 用户认证服务
- BCrypt加密存储用户密码,禁止明文持久化至数据库。
- JWT签发、校验、刷新逻辑,Redis缓存登录状态。
- 注册参数校验用户名、邮箱、密码长度规则拦截非法输入。
四级标题 1.1.2.3 数据持久层
五级标题 1.1.2.3.1 数据库表结构
- MySQL采用utf8mb4字符集,支持emoji特殊字符存储。
- 用户、图书、章节、导出记录分表设计,添加索引优化查询。
- 所有业务表开启逻辑删除字段,不物理删除业务数据。
五级标题 1.1.2.3.2 MyBatis-Plus封装
- 通用分页、CRUD封装,自动填充创建/更新时间。
- JSON类型设计配置字段自动序列化、反序列化读写。
- 内置druid连接池,监控慢SQL打印日志便于排查。
五级标题 1.1.2.3.3 Redis缓存设计
- 缓存用户登录刷新令牌,控制会话有效期。
- 热门图书列表、导出任务状态做短时缓存减轻DB压力。
- 使用JSON序列化存取复杂对象,统一缓存格式。
三级标题 1.1.3 编译工具链
四级标题 1.1.3.1 Pandoc转换工具
五级标题 1.1.3.1.1 Lua emoji过滤器
- 遍历MD文本内Unicode表情,转换twemoji图片插入LaTeX代码。
- 匹配emoji编码区间,提取十六进制文件名引入图片资源。
- XeLaTeX编译时加载72px尺寸emoji矢量PNG素材。
五级标题 1.1.3.1.2 书籍LaTeX模板
- 两套模板booklet小册子、普通图书模板,适配不同开本。
- 内置页眉页脚、引用框、中文字体、目录全局样式配置。
- 支持封面、扉页、版权、封底多页面按需插入文档。
五级标题 1.1.3.1.3 编译参数控制
- 自定义纸张尺寸、内外边距、字体大小、行间距参数注入模板。
- 可选是否生成目录、封面、封底、版权页等附加页面。
- 骑马订模式自动分拼版,按每订纸张拆分页面顺序。
四级标题 1.1.3.2 容器部署环境
五级标题 1.1.3.2.1 后端Docker镜像
- 基于JDK17基础镜像,预装pandoc、texlive全套中文依赖包。
- 构建阶段打包SpringBoot Jar,持久化上传、输出文件夹。
- 配置阿里云镜像源加速依赖安装,减小镜像体积。
五级标题 1.1.3.2.2 前端Nginx镜像
- Node镜像打包Vite静态产物,nginx托管页面资源。
- 配置/api反向代理转发至后端8080服务端口。
- 区分开发、测试、生产三套环境环境变量配置。
五级标题 1.1.3.2.3 数据库容器
- MySQL容器初始化自动执行建表、管理员账号SQL脚本。
- Redis容器缓存会话与临时业务数据,独立网络互通。
- Compose一键编排前后端、数据库整套服务。
二级标题 1.2 业务流程梳理
三级标题 1.2.1 用户使用流程
四级标题 1.2.1.1 新建图书流程
五级标题 1.2.1.1.1 基础信息录入
- 填写书名、副标题、作者、出版社、ISBN图书基础元数据。
- 选择纸张尺寸、正文字号、全局行间距排版参数。
- 粘贴完整Markdown原文保存至图书MD字段。
五级标题 1.2.1.1.2 MD导入拆分章节
- 点击导入MD按钮,接口自动解析标题生成树形章节。
- 封面、扉页等特殊页面需手动新增对应类型章节。
- 支持重新导入覆盖所有正文章节内容。
五级标题 1.2.1.1.3 章节编辑调整
- 树形拖拽调整章节层级与排序,修改单章节标题内容。
- 特殊页面打开可视化设计器自定义版式与配图。
- 实时预览整书排版效果校验文字与布局。
四级标题 1.2.1.2 导出PDF流程
五级标题 1.2.1.2.1 导出参数配置
- 选择普通A4或A5骑马订小册子模式,设置装订页数。
- 勾选是否包含封面、扉页、目录、版权页、封底。
- 自定义上下左右页面边距毫米数值适配打印。
五级标题 1.2.1.2.2 任务异步生成
- 前端提交导出请求生成导出记录,状态初始为等待中。
- 后端异步调用pandoc执行编译,实时更新处理状态。
- 编译失败记录错误信息,成功存储PDF文件路径。
五级标题 1.2.1.2.3 文件下载预览
- 导出记录列表实时轮询刷新任务状态。
- 成功文件支持浏览器直接打开、本地下载两种操作。
- 超大PDF流式blob返回避免内存溢出。
三级标题 1.2.2 页面设计流程
四级标题 1.2.2.1 封面设计流程
五级标题 1.2.2.1.1 主题与背景配置
- 内置多款预设主题一键套用渐变配色与装饰线条。
- 支持纯色、线性/径向渐变、自定义图片四种背景模式。
- 调整透明度、填充适配书籍整体风格。
五级标题 1.2.2.1.2 文字块排版
- 标题、副标题、作者、出版社固定文本块可修改字号颜色。
- 百分比坐标自由控制文字位置、对齐方式、行高透明度。
- 支持变量自动填充图书名称等全局信息。
五级标题 1.2.2.1.3 装饰元素编辑
- 新增矩形、线条SVG装饰图层,调整填充描边透明度。
- 实时预览210mm*297mm标准A5封面尺寸画布。
- 导出高清封面图自动上传并保存配置JSON。
四级标题 1.2.2.2 封底设计流程
五级标题 1.2.2.2.1 简介文本编辑
- 大段图书简介、作者简介文本分块排版,自定义字体样式。
- 支持文本阴影、背景底色、圆角内边距高级样式。
- 拖拽文本块自由摆放任意页面位置。
五级标题 1.2.2.2.2 标签与条码配置
- 多标签输入生成标签组,调整颜色、字号、摆放坐标。
- 内置EAN-13 ISBN条码自动渲染,控制尺寸显隐。
- 条码、标签组均可拖拽移动定位。
五级标题 1.2.2.2.3 底部出版信息
- 出版社名称、定价文本独立文字块配置样式。
- 底部分割线、装饰线条美化封底底部区域。
- 完整设计配置同步存入章节designConfig字段。
二级标题 1.3 功能模块清单
三级标题 1.3.1 工作台模块
四级标题 1.3.1.1 数据统计卡片
五级标题 1.3.1.1.1 图书统计卡片
- 统计当前账号创建全部图书总数量,点击跳转图书列表。
- 区分草稿/已发布图书状态计数展示。
- 卡片hover悬浮阴影提升交互体验。
五级标题 1.3.1.1.2 导出记录卡片
- 统计所有PDF导出任务总条数,快速进入导出记录页面。
- 实时识别处理中任务,页面自动定时刷新。
- 图标搭配数字直观展示业务总量。
五级标题 1.3.1.1.3 用户信息卡片
- 展示当前登录账号昵称与头像缩略图。
- 无头像时自动截取用户名首字母作为占位图。
- 仅展示基础账号信息,无操作入口。
四级标题 1.3.1.2 快捷操作区域
五级标题 1.3.1.2.1 功能快捷按钮
- 快速创建图书、管理图书、查看导出记录三大入口。
- 区分不同功能按钮主题色便于快速识别。
- 按钮内置图标提升页面辨识度。
五级标题 1.3.1.2.2 最近图书列表
- 展示最近更新5本图书条目,显示状态标签。
- 点击条目直接进入对应章节管理页面。
- 无图书时展示空白友好提示文本。
五级标题 1.3.1.2.3 页面布局适配
- 采用两栏栅格布局均分页面宽度。
- 卡片统一圆角、阴影、内边距规范。
- 适配不同分辨率自动缩放排版。
三级标题 1.3.2 账号权限模块
四级标题 1.3.2.1 登录页面
五级标题 1.3.2.1.1 表单校验逻辑
- 用户名、密码非空校验,失去焦点触发提示。
- 密码框支持显示/隐藏密码切换。
- 登录按钮加载状态防止重复点击。
五级标题 1.3.2.1.2 页面视觉样式
- 渐变紫色全屏背景居中登录卡片。
- 卡片阴影圆角柔和,区分标题与说明文字。
- 底部跳转注册页面文字链接。
五级标题 1.3.2.1.3 登录状态处理
- 登录成功存储双Token至持久化仓库。
- 路由跳转工作台首页,弹窗提示登录成功。
- 登录失败展示后端返回错误信息。
四级标题 1.3.2.2 注册页面
五级标题 1.3.2.2.1 注册表单校验
- 用户名校验3-50字符长度限制。
- 密码最低6位长度校验,邮箱格式校验。
- 所有输入框绑定回车快捷提交。
五级标题 1.3.2.2.2 账号注册存储
- 后端接收参数加密密码存入用户表。
- 注册完成自动登录,直接跳转工作台。
- 重复用户名拦截并弹窗提示。
五级标题 1.3.2.2.3 页面跳转入口
- 底部文字链接返回登录页面。
- 页面布局、背景与登录页保持统一风格。
- 输入框、按钮样式全局统一规范。
一级标题 第二章 前端技术栈详解
二级标题 2.1 核心框架与依赖
三级标题 2.1.1 Vue3 生态
四级标题 2.1.1.1 基础框架
五级标题 2.1.1.1.1 Vue3 Composition API
- 全部页面采用setup语法糖开发,代码模块化拆分。
- ref/reactive区分基础值与复杂响应式对象。
- computed计算属性缓存页面派生数据减少重复计算。
五级标题 2.1.1.1.2 Vue Router路由
- 前端路由权限拦截,未登录自动跳转登录页。
- 路由元信息区分免登录页面、页面标题。
- 嵌套布局路由统一侧边栏、头部公共布局。
五级标题 2.1.1.1.3 Pinia状态管理
- 拆分auth、design独立仓库,解耦全局状态。
- 持久化插件保存页面设计、登录信息本地存储。
- 仓库模块化避免全局变量污染。
四级标题 2.1.1.2 UI组件库
五级标题 2.1.1.2.1 Element Plus
- 全局注册组件、图标,统一中文本地化语言包。
- 表格、弹窗、表单、树形组件作为基础页面载体。
- 自定义主题变量覆盖全局边距、圆角、主色调。
五级标题 2.1.1.2.2 表单与弹窗封装
- 全局统一弹窗关闭逻辑,销毁页面释放资源。
- 表单校验复用后端约束规则,前端提前拦截非法输入。
- 树形拖拽组件实现章节排序、层级调整。
五级标题 2.1.1.2.3 图标全局注册
- 遍历全部Element图标批量全局注册组件。
- 侧边栏、按钮、工具栏统一图标规范。
- 大小、颜色行内样式灵活自定义。
三级标题 2.2 工程化构建工具
四级标题 2.2.1 Vite构建工具
五级标题 2.2.1.1 开发环境配置
- 本地3000端口启动,代理/api转发后端接口。
- 分开发、测试、生产三套环境env变量文件。
- 路径别名@映射src目录简化导入路径。
五级标题 2.2.2 打包配置
- 生产打包输出dist目录,关闭sourcemap减少包体积。
- 静态资源自动分目录归类,assets存放静态文件。
- Html插件自动注入页面标题环境变量。
五级标题 2.2.3 插件集成
- vite-plugin-vue解析单文件组件。
- svg-icons实现全局svg图标批量引入。
- html插件注入全局页面标题参数。
四级标题 2.2.2 类型系统
五级标题 2.2.2.1 TypeScript全局类型
- 接口统一定义请求、响应、图书、章节实体。
- 路由、文件、设计器通用类型抽离types文件。
- env.d.ts声明环境变量、vue模块类型。
五级标题 2.2.2.2 类型校验脚本
- typecheck命令全局校验项目类型错误。
- 打包前自动执行类型检查阻断报错构建。
- tsconfig配置路径别名、ECMAScript版本。
五级标题 2.2.2.3 全局工具类型
- 分页通用PageParam、PageResult基础泛型。
- 登录、导出、图书请求DTO统一约束字段。
- 设计器页面配置、文本、形状完整TS接口。
二级标题 2.3 第三方业务库
三级标题 2.3.1 Markdown渲染相关
四级标题 2.3.1.1 markdown-it
五级标题 2.3.1.1.1 Markdown基础解析
- 解析标准MD语法:标题、列表、引用、代码块、表格。
- 开启链接自动识别、印刷美化排版配置。
- 自定义代码块高亮渲染回调函数。
五级标题 2.3.1.1.2 标题目录提取插件
- 重写heading渲染钩子,自动收集h1-h5标题文本与ID。
- 生成树形目录数据供给侧边目录组件渲染。
- 给标题标签绑定锚点ID实现页面滚动跳转。
五级标题 2.3.1.1.3 Mermaid图表支持
- 识别```mermaid代码块生成图表容器。
- 页面渲染完成后执行mermaid渲染函数绘图。
- 捕获渲染异常避免编辑器页面崩溃。
四级标题 2.3.1.2 highlight.js
五级标题 2.3.1.2.1 多语言代码高亮
- 支持Java、JS、TS、Shell等数十种编程语言语法上色。
- 暗黑风格代码主题适配编辑器预览。
- 无语言标记代码块使用默认纯色底色。
五级标题 2.3.1.2.2 代码换行配置
- 代码块自动换行,超长文本不横向溢出页面。
- 换行符号小箭头标识折行位置。
- 统一代码块内边距、圆角样式。
五级标题 2.3.1.2.3 样式全局注入
- 全局scss引入高亮主题样式。
- 预览页面.markdown-body类统一代码样式。
- 区分行内短代码与整块代码容器。
三级标题 2.3.2 图片与画布工具
四级标题 2.3.2.1 html2canvas
五级标题 2.3.2.1.1 页面转图片
- 将封面/封底预览画布导出高清PNG二进制。
- scale=2两倍分辨率保证打印清晰度。
- 跨域图片开启useCORS解决画布污染。
五级标题 2.3.2.1.2 画布导出流程
- 临时缩放预览至100%保证画布完整尺寸。
- 生成Blob文件封装File对象上传接口。
- 上传完成恢复预览缩放比例。
五级标题 2.3.2.1.3 异常捕获处理
- 画布渲染失败弹窗提示保存失败。
- 异步任务增加延时等待DOM渲染完成。
- 关闭日志输出减少控制台冗余信息。
四级标题 2.3.2.2 jszip(预留)
五级标题 2.3.2.1.1 多文件打包
- 预留批量导出多张封面压缩包功能。
- 可将多页面设计图打包zip下载。
- 前端内存生成压缩文件无需后端中转。
五级标题 2.3.2.2.2 文件流处理
- 接收多个File对象写入压缩包。
- 自定义压缩层级、文件命名规则。
- 生成blob链接自动触发浏览器下载。
五级标题 2.3.2.3.3 按需引入
- 当前版本未启用,预留后续批量导出需求。
- 不打包时不加载减少初始包体积。
- 动态import按需加载降低首屏加载耗时。
一级标题 第三章 后端技术架构
二级标题 3.1 SpringBoot核心框架
三级标题 3.1 Web分层架构
四级标题 3.1.1 控制层Controller
五级标题 3.1.1.1 图书接口
- 图书增改查分页接口,绑定用户ID隔离数据权限。
- MD文本导入、图书预览全文接口提供解析能力。
- 请求参数统一@Valid参数校验拦截非法数据。
五级标题 3.1.1.2 章节接口
- 树形查询、新增、编辑、删除全套接口。
- 拖拽排序接口批量更新节点sortOrder。
- 区分不同章节类型存储设计JSON配置。
五级标题 3.1.1.3 文件&导出接口
- 文件上传接收二进制文件返回存储路径。
- PDF导出提交任务接口,异步后台编译。
- 导出记录查询、文件下载blob流式返回。
四级标题 3.1.2 业务Service层
五级标题 3.1.2.1 用户认证服务
- 账号密码校验、BCrypt加密、JWT签发刷新。
- 登录状态Redis缓存,控制会话生命周期。
- 注册参数校验与用户记录新增。
五级标题 3.1.2.2 图书解析服务
- MD文本按#五级标题切割分层章节。
- 递归生成树形父子层级关系。
- 清理旧正文批量插入新章节数据。
五级标题 3.1.2.3 Pandoc编译服务
- 拼接完整pandoc shell执行命令。
- 传入页面尺寸、边距、模板文件参数。
- 捕获编译标准输出与错误日志保存记录。
三级标题 3.2 数据持久化
四级标题 3.2.1 MyBatis-Plus
五级标题 3.2.1.1 CRUD封装
- 内置分页、批量操作、逻辑删除封装。
- 自动填充创建、更新时间字段。
- JSON类型字段自动序列化存储设计配置。
五级标题 3.2.1.2 数据源连接池
- Druid连接池配置初始、最大、最小连接数。
- 慢SQL日志打印便于性能排查。
- 内置监控面板查看数据库执行情况。
五级标题 3.2.1.3 多表关联查询
- 图书关联章节树形递归查询。
- 导出记录关联用户、图书信息展示。
- 单表优先减少多表联查提升性能。
四级标题 3.2.2 Redis缓存
五级标题 3.2.2.1 会话缓存
- 刷新令牌存入Redis控制登录有效期。
- 过期自动清除,强制下线失效令牌。
- JSON序列化存取用户简单信息。
五级标题 3.2.2.2 业务临时缓存
- 导出任务状态短时缓存减少DB查询。
- 首页图书统计数据缓存减轻查询压力。
- 设置过期时间自动清理冷数据。
五级标题 3.2.2.3 Redis配置类
- 自定义RedisTemplate序列化规则。
- Key使用字符串序列化避免乱码。
- Value采用JSON序列化存储对象。
二级标题 3.3 第三方依赖
三级标题 3.3 安全与文档
四级标题 3.3.1 JWT认证
五级标题 3.3.1.1 令牌生成校验
- 基于jjwt生成短期访问令牌、刷新令牌。
- 校验签名、过期时间拦截非法请求。
- 拦截篡改、过期token跳转登录。
五级标题 3.3.1.2 全局安全拦截器
- SpringSecurity全局拦截所有接口。
- 放行登录注册上传白名单接口。
- 提取token解析用户ID存入上下文。
五级标题 3.3.1.3 密码安全
- Passay密码规则校验,限制弱密码。
- BCrypt单向加密存储密码,不可反向解密。
- 禁止明文传输密码字段。
四级标题 3.3.2 SpringDoc Swagger
五级标题 3.3.2.1 接口文档自动生成
- 扫描全部Controller生成在线API文档。
- 统一Bearer JWT全局鉴权配置。
- DTO自动展示入参、出参字段注释。
五级标题 3.3.2.2 开发调试工具
- 开发环境直接在线调试接口。
- 自动填充JSON请求样例减少手写参数。
- 区分生产环境可关闭文档入口。
五级标题 3.3.2.3 全局OpenAPI配置
- 统一项目名称、版本、接口描述。
- 全局鉴权组件配置所有接口携带Token。
- 适配SpringBoot3新版本规范。
一级标题 第四章 部署与运维
二级标题 4.1 Docker容器化
三级标题 4.1 前端容器
四级标题 4.1.1 Node构建阶段
五级标题 4.1.1.1 依赖安装
- node:20-alpine轻量基础镜像,减小体积。
- 切换阿里npm镜像加速依赖下载。
- 分配4G内存防止打包内存溢出。
五级标题 4.1.1.2 Vite打包构建
- 执行build生产打包生成dist静态资源。
- 区分生产环境变量注入API地址。
- 清理开发依赖减少镜像层级大小。
五级标题 4.1.1.3 产物拷贝
- 多阶段构建,仅拷贝dist至Nginx镜像。
- 丢弃node_modules开发依赖层。
- 不保留源码保护项目代码。
四级标题 4.1.2 Nginx运行阶段
五级标题 4.1.2.1 Nginx基础镜像
- nginx:alpine轻量级镜像,安全漏洞更少。
- 替换默认nginx配置文件适配前端路由。
- 暴露80标准http端口提供访问。
五级标题 4.1.2.2 反向代理配置
- /api路径转发至后端容器8080端口。
- 前端路由history模式404重定向index.html。
- 静态资源缓存策略优化加载速度。
五级标题 4.1.2.3 容器启动命令
- 前台运行Nginx防止容器退出。
- 无后台守护进程适配容器编排。
- 日志标准输出便于收集。
三级标题 4.2 后端容器
四级标题 4.2.1 基础镜像依赖
五级标题 4.2.1.1 JDK运行环境
- eclipse-temurin:17-jre纯净运行镜像,无编译工具。
- 预装pandoc、全套Tex中文编译包。
- 预装中文字体、emoji字体支持书籍渲染。
五级标题 4.2.1.2 系统依赖安装
- 预装curl、pdf处理工具poppler-utils。
- 阿里Ubuntu源加速apt安装依赖。
- 清理安装缓存缩小镜像体积。
五级标题 4.2.1.3 目录持久化
- 创建uploads、output、模板持久化目录。
- 容器挂载外部数据卷防止文件丢失。
- pandoc过滤器、模板目录内置镜像。
四级标题 4.2.2 Jar运行配置
五级标题 4.2.2.1 Jar包拷贝
- 构建产物app.jar拷贝至容器工作目录。
- .dockerignore过滤源码、测试文件减小构建上下文。
- 仅打包运行必需编译产物。
五级标题 4.2.2.2 启动入口
- java -jar前台运行SpringBoot服务。
- 暴露8080后端接口访问端口。
- 容器崩溃自动重启恢复服务。
五级标题 4.2.2.3 多环境配置
- application-docker.yml容器专用配置。
- MySQL、Redis容器服务域名对接。
- 上传输出目录指向容器挂载路径。
二级标题 4.2 数据库部署
三级标题 4.1 MySQL
四级标题 4.1.1 初始化脚本
五级标题 4.1.1.1 数据库创建
- 自动创建markdown_to_book数据库。
- utf8mb4完整字符集支持表情、特殊文字。
- 排序规则unicode_ci兼容中文检索。
五级标题 4.1.1.2 业务数据表
- 用户、图书、章节、导出记录五张核心业务表。
- 增加索引、唯一键、逻辑删除字段。
- 注释区分字段业务含义便于维护。
五级标题 4.1.1.3 管理员账号
- 初始化admin管理员账号,密码加密存入。
- 重复执行脚本不重复创建账号。
- 角色默认ADMIN超级管理员权限。
四级标题 4.1.2 容器配置
五级标题 4.1.2.1 账号密码配置
- 容器环境变量设置数据库账号密码。
- 生产环境禁止弱密码,自定义复杂密钥。
- 数据卷挂载持久库文件。
五级标题 4.1.2.2 时区配置Asia/Shanghai
- 容器时区统一国内时区避免时间错乱。
- 数据库时间字段与服务时间对齐。
- 关闭ssl本地开发简化连接。
五级标题 4.1.2.3 性能参数
- 调整最大连接数适配后端并发请求。
- 开启慢查询日志用于线上排查。
- innodb引擎优化读写性能。
三级标题 4.2 Redis
四级标题 4.2.1 缓存配置
五级标题 4.2.1.1 密码保护
- 设置Redis访问密码防止非法访问。
- 容器环境变量注入密码配置。
- 生产禁止无密码裸跑Redis。
五级标题 4.2.1.2 数据库分片
- 使用db0存储业务缓存数据。
- 区分多业务可拆分db1/db2隔离数据。
- 超时自动淘汰冷键释放内存。
五级标题 4.2.1.3 持久化策略
- RDB快照持久化防止容器重启丢失缓存。
- 自定义快照存储挂载数据卷。
- 平衡内存占用与数据安全性。
二级标题 4.3 编译脚本测试
三级标题 4.1 Pandoc测试脚本
四级标题 4.1.1 curl测试脚本
五级标题 4.1.1.1 请求头配置
- 携带浏览器标准请求头模拟前端请求。
- 携带Bearer认证Token鉴权。
- Content-Type指定JSON请求体。
五级标题 4.1.1.2 请求参数
- 传入图书ID、小册子/普通导出参数。
- 开启封面、目录、封底全部页面选项。
- 骑马订每订6张纸默认参数。
五级标题 4.1.1.3 接口返回
- 提交导出任务返回导出记录ID。
- 控制台打印接口返回JSON查看任务状态。
- 用于后端开发快速调试导出逻辑。
四级标题 4.1.2 本地编译调试
五级标题 4.1.1.1 本地pandoc命令调试
- 手动执行pandoc命令排查编译报错。
- 替换模板、资源路径定位缺失文件。
- 单独测试emoji过滤器图片加载问题。
五级标题 4.1.1.2 LaTeX报错排查
- 查看XeLaTeX编译日志定位字体、宏包缺失。
- 校验twemoji图片路径是否正确配置。
- 调整页面边距、纸张尺寸参数测试排版。
五级标题 4.1.1.3 图片资源校验
- 检查上传目录图片权限,防止无法读取。
- 校验相对路径/绝对路径编译差异。
- 背景图、封面图缺失容错处理。