news 2026/7/5 4:21:56

五级Markdown目录模板

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
五级Markdown目录模板

五级Markdown目录模板

一级标题 第一章 项目总览

二级标题 1.1 系统架构设计

三级标题 1.1.1 前端模块划分
四级标题 1.1.1.1 编辑器核心组件
五级标题 1.1.1.1.1 Markdown编辑模块
  1. 支持分栏编辑、实时预览、滚动同步功能,内置mermaid图表渲染、代码高亮插件。
  2. 集成图片自动上传逻辑,粘贴/拖拽外链、本地图片可转站内资源链接。
  3. 提供树形目录提取,自动解析h1-h5标题生成侧边导航,支持锚点跳转。
五级标题 1.1.1.1.2 书籍设计器组件
  1. 封面、扉页、版权页、封底可视化拖拽编辑器,支持渐变/图片背景自定义。
  2. 文字块、SVG装饰图层、ISBN条码可视化实时预览,支持导出高清底图。
  3. 所有设计配置JSON持久化存储,修改后同步存入章节设计字段。
五级标题 1.1.1.1.3 页面布局容器
  1. 左侧配置面板、右侧实时预览双栏布局,支持50%/75%/100%缩放预览。
  2. 拖拽文本、形状、条码元素自由调整百分比坐标,实时更新样式参数。
  3. 导出时通过html2canvas生成PNG,调用上传接口保存至文件服务。
四级标题 1.1.1.2 用户权限模块
五级标题 1.1.1.2.1 登录鉴权逻辑
  1. JWT双令牌机制,access短期、refresh长效,过期自动无感刷新。
  2. 路由全局守卫拦截未登录请求,本地pinia持久化用户信息。
  3. 请求拦截器自动携带Authorization请求头,401状态强制跳转登录页。
五级标题 1.1.1.2.2 用户信息管理
  1. 支持账号注册、密码加密存储,头像、昵称、邮箱基础信息维护。
  2. 区分管理员/普通用户角色,后台预留权限拓展字段。
  3. 退出登录清空本地token与持久化仓库数据,销毁会话状态。
五级标题 1.1.1.2.3 全局状态仓库
  1. 使用Pinia管理书籍、章节、页面设计全局临时配置。
  2. 持久化插件缓存设计参数,刷新页面不丢失编辑内容。
  3. 跨组件响应式数据同步,修改配置实时同步预览画布。
三级标题 1.1.2 后端服务分层
四级标题 1.1.2.1 控制层接口
五级标题 1.1.2.1.1 图书管理接口
  1. 图书新增、编辑、删除、分页查询CRUD接口,绑定操作用户ID。
  2. Markdown全文导入接口,自动拆分树形层级生成章节数据。
  3. 图书预览接口拼接全部章节内容,返回完整MD文本用于前端渲染。
五级标题 1.1.2.1.2 章节操作接口
  1. 树形章节增删改查,支持拖拽排序自动更新sortOrder排序字段。
  2. 区分封面/扉页/正文/封底多类型章节,存储专属设计JSON。
  3. 支持父子层级嵌套,限制不能将节点拖拽至自身子树内。
五级标题 1.1.2.1.3 文件上传接口
  1. 接收multipart/form-data文件流,校验图片格式与10MB大小上限。
  2. 上传至服务本地uploads目录,返回相对访问路径供前端渲染。
  3. 跨域静态资源映射,通过/api/uploads访问图片资源。
四级标题 1.1.2.2 业务逻辑层
五级标题 1.1.2.2.1 PDF导出任务服务
  1. 异步任务接收导出参数,调用系统pandoc+XeLaTeX编译书籍PDF。
  2. 支持A4普通文档、A5骑马订小册子两种排版模式,自定义页边距。
  3. 生成文件存入output目录,记录导出状态、文件大小、报错信息。
五级标题 1.1.2.2.2 Markdown解析服务
  1. 读取原始MD文本,按#到#####标题切割分层章节数据。
  2. 自动区分一级至五级标题,生成树形parentId层级关系。
  3. 清理旧正文章节,批量插入新解析后的章节树。
五级标题 1.1.2.3.3 用户认证服务
  1. BCrypt加密存储用户密码,禁止明文持久化至数据库。
  2. JWT签发、校验、刷新逻辑,Redis缓存登录状态。
  3. 注册参数校验用户名、邮箱、密码长度规则拦截非法输入。
四级标题 1.1.2.3 数据持久层
五级标题 1.1.2.3.1 数据库表结构
  1. MySQL采用utf8mb4字符集,支持emoji特殊字符存储。
  2. 用户、图书、章节、导出记录分表设计,添加索引优化查询。
  3. 所有业务表开启逻辑删除字段,不物理删除业务数据。
五级标题 1.1.2.3.2 MyBatis-Plus封装
  1. 通用分页、CRUD封装,自动填充创建/更新时间。
  2. JSON类型设计配置字段自动序列化、反序列化读写。
  3. 内置druid连接池,监控慢SQL打印日志便于排查。
五级标题 1.1.2.3.3 Redis缓存设计
  1. 缓存用户登录刷新令牌,控制会话有效期。
  2. 热门图书列表、导出任务状态做短时缓存减轻DB压力。
  3. 使用JSON序列化存取复杂对象,统一缓存格式。
三级标题 1.1.3 编译工具链
四级标题 1.1.3.1 Pandoc转换工具
五级标题 1.1.3.1.1 Lua emoji过滤器
  1. 遍历MD文本内Unicode表情,转换twemoji图片插入LaTeX代码。
  2. 匹配emoji编码区间,提取十六进制文件名引入图片资源。
  3. XeLaTeX编译时加载72px尺寸emoji矢量PNG素材。
五级标题 1.1.3.1.2 书籍LaTeX模板
  1. 两套模板booklet小册子、普通图书模板,适配不同开本。
  2. 内置页眉页脚、引用框、中文字体、目录全局样式配置。
  3. 支持封面、扉页、版权、封底多页面按需插入文档。
五级标题 1.1.3.1.3 编译参数控制
  1. 自定义纸张尺寸、内外边距、字体大小、行间距参数注入模板。
  2. 可选是否生成目录、封面、封底、版权页等附加页面。
  3. 骑马订模式自动分拼版,按每订纸张拆分页面顺序。
四级标题 1.1.3.2 容器部署环境
五级标题 1.1.3.2.1 后端Docker镜像
  1. 基于JDK17基础镜像,预装pandoc、texlive全套中文依赖包。
  2. 构建阶段打包SpringBoot Jar,持久化上传、输出文件夹。
  3. 配置阿里云镜像源加速依赖安装,减小镜像体积。
五级标题 1.1.3.2.2 前端Nginx镜像
  1. Node镜像打包Vite静态产物,nginx托管页面资源。
  2. 配置/api反向代理转发至后端8080服务端口。
  3. 区分开发、测试、生产三套环境环境变量配置。
五级标题 1.1.3.2.3 数据库容器
  1. MySQL容器初始化自动执行建表、管理员账号SQL脚本。
  2. Redis容器缓存会话与临时业务数据,独立网络互通。
  3. Compose一键编排前后端、数据库整套服务。

二级标题 1.2 业务流程梳理

三级标题 1.2.1 用户使用流程
四级标题 1.2.1.1 新建图书流程
五级标题 1.2.1.1.1 基础信息录入
  1. 填写书名、副标题、作者、出版社、ISBN图书基础元数据。
  2. 选择纸张尺寸、正文字号、全局行间距排版参数。
  3. 粘贴完整Markdown原文保存至图书MD字段。
五级标题 1.2.1.1.2 MD导入拆分章节
  1. 点击导入MD按钮,接口自动解析标题生成树形章节。
  2. 封面、扉页等特殊页面需手动新增对应类型章节。
  3. 支持重新导入覆盖所有正文章节内容。
五级标题 1.2.1.1.3 章节编辑调整
  1. 树形拖拽调整章节层级与排序,修改单章节标题内容。
  2. 特殊页面打开可视化设计器自定义版式与配图。
  3. 实时预览整书排版效果校验文字与布局。
四级标题 1.2.1.2 导出PDF流程
五级标题 1.2.1.2.1 导出参数配置
  1. 选择普通A4或A5骑马订小册子模式,设置装订页数。
  2. 勾选是否包含封面、扉页、目录、版权页、封底。
  3. 自定义上下左右页面边距毫米数值适配打印。
五级标题 1.2.1.2.2 任务异步生成
  1. 前端提交导出请求生成导出记录,状态初始为等待中。
  2. 后端异步调用pandoc执行编译,实时更新处理状态。
  3. 编译失败记录错误信息,成功存储PDF文件路径。
五级标题 1.2.1.2.3 文件下载预览
  1. 导出记录列表实时轮询刷新任务状态。
  2. 成功文件支持浏览器直接打开、本地下载两种操作。
  3. 超大PDF流式blob返回避免内存溢出。
三级标题 1.2.2 页面设计流程
四级标题 1.2.2.1 封面设计流程
五级标题 1.2.2.1.1 主题与背景配置
  1. 内置多款预设主题一键套用渐变配色与装饰线条。
  2. 支持纯色、线性/径向渐变、自定义图片四种背景模式。
  3. 调整透明度、填充适配书籍整体风格。
五级标题 1.2.2.1.2 文字块排版
  1. 标题、副标题、作者、出版社固定文本块可修改字号颜色。
  2. 百分比坐标自由控制文字位置、对齐方式、行高透明度。
  3. 支持变量自动填充图书名称等全局信息。
五级标题 1.2.2.1.3 装饰元素编辑
  1. 新增矩形、线条SVG装饰图层,调整填充描边透明度。
  2. 实时预览210mm*297mm标准A5封面尺寸画布。
  3. 导出高清封面图自动上传并保存配置JSON。
四级标题 1.2.2.2 封底设计流程
五级标题 1.2.2.2.1 简介文本编辑
  1. 大段图书简介、作者简介文本分块排版,自定义字体样式。
  2. 支持文本阴影、背景底色、圆角内边距高级样式。
  3. 拖拽文本块自由摆放任意页面位置。
五级标题 1.2.2.2.2 标签与条码配置
  1. 多标签输入生成标签组,调整颜色、字号、摆放坐标。
  2. 内置EAN-13 ISBN条码自动渲染,控制尺寸显隐。
  3. 条码、标签组均可拖拽移动定位。
五级标题 1.2.2.2.3 底部出版信息
  1. 出版社名称、定价文本独立文字块配置样式。
  2. 底部分割线、装饰线条美化封底底部区域。
  3. 完整设计配置同步存入章节designConfig字段。

二级标题 1.3 功能模块清单

三级标题 1.3.1 工作台模块
四级标题 1.3.1.1 数据统计卡片
五级标题 1.3.1.1.1 图书统计卡片
  1. 统计当前账号创建全部图书总数量,点击跳转图书列表。
  2. 区分草稿/已发布图书状态计数展示。
  3. 卡片hover悬浮阴影提升交互体验。
五级标题 1.3.1.1.2 导出记录卡片
  1. 统计所有PDF导出任务总条数,快速进入导出记录页面。
  2. 实时识别处理中任务,页面自动定时刷新。
  3. 图标搭配数字直观展示业务总量。
五级标题 1.3.1.1.3 用户信息卡片
  1. 展示当前登录账号昵称与头像缩略图。
  2. 无头像时自动截取用户名首字母作为占位图。
  3. 仅展示基础账号信息,无操作入口。
四级标题 1.3.1.2 快捷操作区域
五级标题 1.3.1.2.1 功能快捷按钮
  1. 快速创建图书、管理图书、查看导出记录三大入口。
  2. 区分不同功能按钮主题色便于快速识别。
  3. 按钮内置图标提升页面辨识度。
五级标题 1.3.1.2.2 最近图书列表
  1. 展示最近更新5本图书条目,显示状态标签。
  2. 点击条目直接进入对应章节管理页面。
  3. 无图书时展示空白友好提示文本。
五级标题 1.3.1.2.3 页面布局适配
  1. 采用两栏栅格布局均分页面宽度。
  2. 卡片统一圆角、阴影、内边距规范。
  3. 适配不同分辨率自动缩放排版。
三级标题 1.3.2 账号权限模块
四级标题 1.3.2.1 登录页面
五级标题 1.3.2.1.1 表单校验逻辑
  1. 用户名、密码非空校验,失去焦点触发提示。
  2. 密码框支持显示/隐藏密码切换。
  3. 登录按钮加载状态防止重复点击。
五级标题 1.3.2.1.2 页面视觉样式
  1. 渐变紫色全屏背景居中登录卡片。
  2. 卡片阴影圆角柔和,区分标题与说明文字。
  3. 底部跳转注册页面文字链接。
五级标题 1.3.2.1.3 登录状态处理
  1. 登录成功存储双Token至持久化仓库。
  2. 路由跳转工作台首页,弹窗提示登录成功。
  3. 登录失败展示后端返回错误信息。
四级标题 1.3.2.2 注册页面
五级标题 1.3.2.2.1 注册表单校验
  1. 用户名校验3-50字符长度限制。
  2. 密码最低6位长度校验,邮箱格式校验。
  3. 所有输入框绑定回车快捷提交。
五级标题 1.3.2.2.2 账号注册存储
  1. 后端接收参数加密密码存入用户表。
  2. 注册完成自动登录,直接跳转工作台。
  3. 重复用户名拦截并弹窗提示。
五级标题 1.3.2.2.3 页面跳转入口
  1. 底部文字链接返回登录页面。
  2. 页面布局、背景与登录页保持统一风格。
  3. 输入框、按钮样式全局统一规范。

一级标题 第二章 前端技术栈详解

二级标题 2.1 核心框架与依赖

三级标题 2.1.1 Vue3 生态
四级标题 2.1.1.1 基础框架
五级标题 2.1.1.1.1 Vue3 Composition API
  1. 全部页面采用setup语法糖开发,代码模块化拆分。
  2. ref/reactive区分基础值与复杂响应式对象。
  3. computed计算属性缓存页面派生数据减少重复计算。
五级标题 2.1.1.1.2 Vue Router路由
  1. 前端路由权限拦截,未登录自动跳转登录页。
  2. 路由元信息区分免登录页面、页面标题。
  3. 嵌套布局路由统一侧边栏、头部公共布局。
五级标题 2.1.1.1.3 Pinia状态管理
  1. 拆分auth、design独立仓库,解耦全局状态。
  2. 持久化插件保存页面设计、登录信息本地存储。
  3. 仓库模块化避免全局变量污染。
四级标题 2.1.1.2 UI组件库
五级标题 2.1.1.2.1 Element Plus
  1. 全局注册组件、图标,统一中文本地化语言包。
  2. 表格、弹窗、表单、树形组件作为基础页面载体。
  3. 自定义主题变量覆盖全局边距、圆角、主色调。
五级标题 2.1.1.2.2 表单与弹窗封装
  1. 全局统一弹窗关闭逻辑,销毁页面释放资源。
  2. 表单校验复用后端约束规则,前端提前拦截非法输入。
  3. 树形拖拽组件实现章节排序、层级调整。
五级标题 2.1.1.2.3 图标全局注册
  1. 遍历全部Element图标批量全局注册组件。
  2. 侧边栏、按钮、工具栏统一图标规范。
  3. 大小、颜色行内样式灵活自定义。
三级标题 2.2 工程化构建工具
四级标题 2.2.1 Vite构建工具
五级标题 2.2.1.1 开发环境配置
  1. 本地3000端口启动,代理/api转发后端接口。
  2. 分开发、测试、生产三套环境env变量文件。
  3. 路径别名@映射src目录简化导入路径。
五级标题 2.2.2 打包配置
  1. 生产打包输出dist目录,关闭sourcemap减少包体积。
  2. 静态资源自动分目录归类,assets存放静态文件。
  3. Html插件自动注入页面标题环境变量。
五级标题 2.2.3 插件集成
  1. vite-plugin-vue解析单文件组件。
  2. svg-icons实现全局svg图标批量引入。
  3. html插件注入全局页面标题参数。
四级标题 2.2.2 类型系统
五级标题 2.2.2.1 TypeScript全局类型
  1. 接口统一定义请求、响应、图书、章节实体。
  2. 路由、文件、设计器通用类型抽离types文件。
  3. env.d.ts声明环境变量、vue模块类型。
五级标题 2.2.2.2 类型校验脚本
  1. typecheck命令全局校验项目类型错误。
  2. 打包前自动执行类型检查阻断报错构建。
  3. tsconfig配置路径别名、ECMAScript版本。
五级标题 2.2.2.3 全局工具类型
  1. 分页通用PageParam、PageResult基础泛型。
  2. 登录、导出、图书请求DTO统一约束字段。
  3. 设计器页面配置、文本、形状完整TS接口。

二级标题 2.3 第三方业务库

三级标题 2.3.1 Markdown渲染相关
四级标题 2.3.1.1 markdown-it
五级标题 2.3.1.1.1 Markdown基础解析
  1. 解析标准MD语法:标题、列表、引用、代码块、表格。
  2. 开启链接自动识别、印刷美化排版配置。
  3. 自定义代码块高亮渲染回调函数。
五级标题 2.3.1.1.2 标题目录提取插件
  1. 重写heading渲染钩子,自动收集h1-h5标题文本与ID。
  2. 生成树形目录数据供给侧边目录组件渲染。
  3. 给标题标签绑定锚点ID实现页面滚动跳转。
五级标题 2.3.1.1.3 Mermaid图表支持
  1. 识别```mermaid代码块生成图表容器。
  2. 页面渲染完成后执行mermaid渲染函数绘图。
  3. 捕获渲染异常避免编辑器页面崩溃。
四级标题 2.3.1.2 highlight.js
五级标题 2.3.1.2.1 多语言代码高亮
  1. 支持Java、JS、TS、Shell等数十种编程语言语法上色。
  2. 暗黑风格代码主题适配编辑器预览。
  3. 无语言标记代码块使用默认纯色底色。
五级标题 2.3.1.2.2 代码换行配置
  1. 代码块自动换行,超长文本不横向溢出页面。
  2. 换行符号小箭头标识折行位置。
  3. 统一代码块内边距、圆角样式。
五级标题 2.3.1.2.3 样式全局注入
  1. 全局scss引入高亮主题样式。
  2. 预览页面.markdown-body类统一代码样式。
  3. 区分行内短代码与整块代码容器。
三级标题 2.3.2 图片与画布工具
四级标题 2.3.2.1 html2canvas
五级标题 2.3.2.1.1 页面转图片
  1. 将封面/封底预览画布导出高清PNG二进制。
  2. scale=2两倍分辨率保证打印清晰度。
  3. 跨域图片开启useCORS解决画布污染。
五级标题 2.3.2.1.2 画布导出流程
  1. 临时缩放预览至100%保证画布完整尺寸。
  2. 生成Blob文件封装File对象上传接口。
  3. 上传完成恢复预览缩放比例。
五级标题 2.3.2.1.3 异常捕获处理
  1. 画布渲染失败弹窗提示保存失败。
  2. 异步任务增加延时等待DOM渲染完成。
  3. 关闭日志输出减少控制台冗余信息。
四级标题 2.3.2.2 jszip(预留)
五级标题 2.3.2.1.1 多文件打包
  1. 预留批量导出多张封面压缩包功能。
  2. 可将多页面设计图打包zip下载。
  3. 前端内存生成压缩文件无需后端中转。
五级标题 2.3.2.2.2 文件流处理
  1. 接收多个File对象写入压缩包。
  2. 自定义压缩层级、文件命名规则。
  3. 生成blob链接自动触发浏览器下载。
五级标题 2.3.2.3.3 按需引入
  1. 当前版本未启用,预留后续批量导出需求。
  2. 不打包时不加载减少初始包体积。
  3. 动态import按需加载降低首屏加载耗时。

一级标题 第三章 后端技术架构

二级标题 3.1 SpringBoot核心框架

三级标题 3.1 Web分层架构
四级标题 3.1.1 控制层Controller
五级标题 3.1.1.1 图书接口
  1. 图书增改查分页接口,绑定用户ID隔离数据权限。
  2. MD文本导入、图书预览全文接口提供解析能力。
  3. 请求参数统一@Valid参数校验拦截非法数据。
五级标题 3.1.1.2 章节接口
  1. 树形查询、新增、编辑、删除全套接口。
  2. 拖拽排序接口批量更新节点sortOrder。
  3. 区分不同章节类型存储设计JSON配置。
五级标题 3.1.1.3 文件&导出接口
  1. 文件上传接收二进制文件返回存储路径。
  2. PDF导出提交任务接口,异步后台编译。
  3. 导出记录查询、文件下载blob流式返回。
四级标题 3.1.2 业务Service层
五级标题 3.1.2.1 用户认证服务
  1. 账号密码校验、BCrypt加密、JWT签发刷新。
  2. 登录状态Redis缓存,控制会话生命周期。
  3. 注册参数校验与用户记录新增。
五级标题 3.1.2.2 图书解析服务
  1. MD文本按#五级标题切割分层章节。
  2. 递归生成树形父子层级关系。
  3. 清理旧正文批量插入新章节数据。
五级标题 3.1.2.3 Pandoc编译服务
  1. 拼接完整pandoc shell执行命令。
  2. 传入页面尺寸、边距、模板文件参数。
  3. 捕获编译标准输出与错误日志保存记录。
三级标题 3.2 数据持久化
四级标题 3.2.1 MyBatis-Plus
五级标题 3.2.1.1 CRUD封装
  1. 内置分页、批量操作、逻辑删除封装。
  2. 自动填充创建、更新时间字段。
  3. JSON类型字段自动序列化存储设计配置。
五级标题 3.2.1.2 数据源连接池
  1. Druid连接池配置初始、最大、最小连接数。
  2. 慢SQL日志打印便于性能排查。
  3. 内置监控面板查看数据库执行情况。
五级标题 3.2.1.3 多表关联查询
  1. 图书关联章节树形递归查询。
  2. 导出记录关联用户、图书信息展示。
  3. 单表优先减少多表联查提升性能。
四级标题 3.2.2 Redis缓存
五级标题 3.2.2.1 会话缓存
  1. 刷新令牌存入Redis控制登录有效期。
  2. 过期自动清除,强制下线失效令牌。
  3. JSON序列化存取用户简单信息。
五级标题 3.2.2.2 业务临时缓存
  1. 导出任务状态短时缓存减少DB查询。
  2. 首页图书统计数据缓存减轻查询压力。
  3. 设置过期时间自动清理冷数据。
五级标题 3.2.2.3 Redis配置类
  1. 自定义RedisTemplate序列化规则。
  2. Key使用字符串序列化避免乱码。
  3. Value采用JSON序列化存储对象。

二级标题 3.3 第三方依赖

三级标题 3.3 安全与文档
四级标题 3.3.1 JWT认证
五级标题 3.3.1.1 令牌生成校验
  1. 基于jjwt生成短期访问令牌、刷新令牌。
  2. 校验签名、过期时间拦截非法请求。
  3. 拦截篡改、过期token跳转登录。
五级标题 3.3.1.2 全局安全拦截器
  1. SpringSecurity全局拦截所有接口。
  2. 放行登录注册上传白名单接口。
  3. 提取token解析用户ID存入上下文。
五级标题 3.3.1.3 密码安全
  1. Passay密码规则校验,限制弱密码。
  2. BCrypt单向加密存储密码,不可反向解密。
  3. 禁止明文传输密码字段。
四级标题 3.3.2 SpringDoc Swagger
五级标题 3.3.2.1 接口文档自动生成
  1. 扫描全部Controller生成在线API文档。
  2. 统一Bearer JWT全局鉴权配置。
  3. DTO自动展示入参、出参字段注释。
五级标题 3.3.2.2 开发调试工具
  1. 开发环境直接在线调试接口。
  2. 自动填充JSON请求样例减少手写参数。
  3. 区分生产环境可关闭文档入口。
五级标题 3.3.2.3 全局OpenAPI配置
  1. 统一项目名称、版本、接口描述。
  2. 全局鉴权组件配置所有接口携带Token。
  3. 适配SpringBoot3新版本规范。

一级标题 第四章 部署与运维

二级标题 4.1 Docker容器化

三级标题 4.1 前端容器
四级标题 4.1.1 Node构建阶段
五级标题 4.1.1.1 依赖安装
  1. node:20-alpine轻量基础镜像,减小体积。
  2. 切换阿里npm镜像加速依赖下载。
  3. 分配4G内存防止打包内存溢出。
五级标题 4.1.1.2 Vite打包构建
  1. 执行build生产打包生成dist静态资源。
  2. 区分生产环境变量注入API地址。
  3. 清理开发依赖减少镜像层级大小。
五级标题 4.1.1.3 产物拷贝
  1. 多阶段构建,仅拷贝dist至Nginx镜像。
  2. 丢弃node_modules开发依赖层。
  3. 不保留源码保护项目代码。
四级标题 4.1.2 Nginx运行阶段
五级标题 4.1.2.1 Nginx基础镜像
  1. nginx:alpine轻量级镜像,安全漏洞更少。
  2. 替换默认nginx配置文件适配前端路由。
  3. 暴露80标准http端口提供访问。
五级标题 4.1.2.2 反向代理配置
  1. /api路径转发至后端容器8080端口。
  2. 前端路由history模式404重定向index.html。
  3. 静态资源缓存策略优化加载速度。
五级标题 4.1.2.3 容器启动命令
  1. 前台运行Nginx防止容器退出。
  2. 无后台守护进程适配容器编排。
  3. 日志标准输出便于收集。
三级标题 4.2 后端容器
四级标题 4.2.1 基础镜像依赖
五级标题 4.2.1.1 JDK运行环境
  1. eclipse-temurin:17-jre纯净运行镜像,无编译工具。
  2. 预装pandoc、全套Tex中文编译包。
  3. 预装中文字体、emoji字体支持书籍渲染。
五级标题 4.2.1.2 系统依赖安装
  1. 预装curl、pdf处理工具poppler-utils。
  2. 阿里Ubuntu源加速apt安装依赖。
  3. 清理安装缓存缩小镜像体积。
五级标题 4.2.1.3 目录持久化
  1. 创建uploads、output、模板持久化目录。
  2. 容器挂载外部数据卷防止文件丢失。
  3. pandoc过滤器、模板目录内置镜像。
四级标题 4.2.2 Jar运行配置
五级标题 4.2.2.1 Jar包拷贝
  1. 构建产物app.jar拷贝至容器工作目录。
  2. .dockerignore过滤源码、测试文件减小构建上下文。
  3. 仅打包运行必需编译产物。
五级标题 4.2.2.2 启动入口
  1. java -jar前台运行SpringBoot服务。
  2. 暴露8080后端接口访问端口。
  3. 容器崩溃自动重启恢复服务。
五级标题 4.2.2.3 多环境配置
  1. application-docker.yml容器专用配置。
  2. MySQL、Redis容器服务域名对接。
  3. 上传输出目录指向容器挂载路径。

二级标题 4.2 数据库部署

三级标题 4.1 MySQL
四级标题 4.1.1 初始化脚本
五级标题 4.1.1.1 数据库创建
  1. 自动创建markdown_to_book数据库。
  2. utf8mb4完整字符集支持表情、特殊文字。
  3. 排序规则unicode_ci兼容中文检索。
五级标题 4.1.1.2 业务数据表
  1. 用户、图书、章节、导出记录五张核心业务表。
  2. 增加索引、唯一键、逻辑删除字段。
  3. 注释区分字段业务含义便于维护。
五级标题 4.1.1.3 管理员账号
  1. 初始化admin管理员账号,密码加密存入。
  2. 重复执行脚本不重复创建账号。
  3. 角色默认ADMIN超级管理员权限。
四级标题 4.1.2 容器配置
五级标题 4.1.2.1 账号密码配置
  1. 容器环境变量设置数据库账号密码。
  2. 生产环境禁止弱密码,自定义复杂密钥。
  3. 数据卷挂载持久库文件。
五级标题 4.1.2.2 时区配置Asia/Shanghai
  1. 容器时区统一国内时区避免时间错乱。
  2. 数据库时间字段与服务时间对齐。
  3. 关闭ssl本地开发简化连接。
五级标题 4.1.2.3 性能参数
  1. 调整最大连接数适配后端并发请求。
  2. 开启慢查询日志用于线上排查。
  3. innodb引擎优化读写性能。
三级标题 4.2 Redis
四级标题 4.2.1 缓存配置
五级标题 4.2.1.1 密码保护
  1. 设置Redis访问密码防止非法访问。
  2. 容器环境变量注入密码配置。
  3. 生产禁止无密码裸跑Redis。
五级标题 4.2.1.2 数据库分片
  1. 使用db0存储业务缓存数据。
  2. 区分多业务可拆分db1/db2隔离数据。
  3. 超时自动淘汰冷键释放内存。
五级标题 4.2.1.3 持久化策略
  1. RDB快照持久化防止容器重启丢失缓存。
  2. 自定义快照存储挂载数据卷。
  3. 平衡内存占用与数据安全性。

二级标题 4.3 编译脚本测试

三级标题 4.1 Pandoc测试脚本
四级标题 4.1.1 curl测试脚本
五级标题 4.1.1.1 请求头配置
  1. 携带浏览器标准请求头模拟前端请求。
  2. 携带Bearer认证Token鉴权。
  3. Content-Type指定JSON请求体。
五级标题 4.1.1.2 请求参数
  1. 传入图书ID、小册子/普通导出参数。
  2. 开启封面、目录、封底全部页面选项。
  3. 骑马订每订6张纸默认参数。
五级标题 4.1.1.3 接口返回
  1. 提交导出任务返回导出记录ID。
  2. 控制台打印接口返回JSON查看任务状态。
  3. 用于后端开发快速调试导出逻辑。
四级标题 4.1.2 本地编译调试
五级标题 4.1.1.1 本地pandoc命令调试
  1. 手动执行pandoc命令排查编译报错。
  2. 替换模板、资源路径定位缺失文件。
  3. 单独测试emoji过滤器图片加载问题。
五级标题 4.1.1.2 LaTeX报错排查
  1. 查看XeLaTeX编译日志定位字体、宏包缺失。
  2. 校验twemoji图片路径是否正确配置。
  3. 调整页面边距、纸张尺寸参数测试排版。
五级标题 4.1.1.3 图片资源校验
  1. 检查上传目录图片权限,防止无法读取。
  2. 校验相对路径/绝对路径编译差异。
  3. 背景图、封面图缺失容错处理。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 4:21:08

SVGcode终极指南:3分钟学会免费在线图像矢量化转换

SVGcode终极指南:3分钟学会免费在线图像矢量化转换 【免费下载链接】SVGcode Convert color bitmap images to color SVG vector images. 项目地址: https://gitcode.com/gh_mirrors/sv/SVGcode 想要将普通的JPG、PNG图片转换成可无限缩放的矢量图形吗&#…

作者头像 李华
网站建设 2026/7/5 4:20:52

抖店订单利润低但有销量要不要继续卖商家怎么判断取舍

抖店订单利润低但有销量要不要继续卖?商家怎么判断取舍 有些抖店商品销量不错,但每单利润很低,甚至遇到售后就亏。商家这时候很纠结:继续卖怕白忙,不卖又舍不得流量。判断这类商品,不能只看销量&#xff0c…

作者头像 李华
网站建设 2026/7/5 4:20:22

应用框架架构设计实践 - 概述

我研究领域驱动设计已经近4年时间了,在这4年里,我从了解领域驱动设计的基本思想开始,系统地学习了与领域驱动设计相关的概念、开发模式以及应用系统架构风格,并将其运用在了实际的项目架构与开发中。在此之前,我一直被…

作者头像 李华
网站建设 2026/7/5 4:19:49

DayZ社区离线模组:5步打造完美单人末日生存体验

DayZ社区离线模组:5步打造完美单人末日生存体验 【免费下载链接】DayZCommunityOfflineMode A community made offline mod for DayZ Standalone 项目地址: https://gitcode.com/gh_mirrors/da/DayZCommunityOfflineMode DayZCommunityOfflineMode是一个由社…

作者头像 李华
网站建设 2026/7/5 4:18:14

Day3 第二章 链表part2

了解链表 1. 什么是链表 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)…

作者头像 李华
网站建设 2026/7/5 4:18:06

163、调试手记:虚拟机里PCIE设备怎么“丢”了?

163、调试手记:虚拟机里PCIE设备怎么“丢”了? 最近在实验室里折腾KVM虚拟化环境,遇到个邪门事儿:宿主机上明明认得好好的PCIE网卡,一到虚拟机里就时隐时现。dmesg里偶尔飘过一句“Device not found”,像极了硬件接触不良,可物理卡插得稳稳当当。这让我不得不重新审视P…

作者头像 李华