Skip to content

Epub 在线阅读器

背景

用户希望导入的 epub 电子书能在网站上直接阅读,而非仅仅作为下载文件。

实现方式

架构

VitePress 页面 (iframe)  →  独立 HTML 阅读器  →  epub.js 渲染 epub 文件
  • VitePress 页面提供导航框架(顶栏、侧栏)
  • public/books/ 下放置独立 HTML 阅读器,通过 <iframe> 嵌入
  • 阅读器使用 epub.js 加载和渲染 epub

为什么用 iframe 而非直接嵌入

VitePress 在 SSR 构建时无法解析 CDN 的 ESM 模块,会导致构建失败。独立 HTML 文件不被 VitePress 处理,使用普通 <script> 标签加载 epub.js UMD 构建。

功能特性

  • 按钮翻页(上一页/下一页)
  • 键盘翻页(← → 方向键)
  • 移动端触摸滑动翻页
  • 章节目录跳转

关联文件

文件作用
public/books/money-dog.epub小狗钱钱电子书
public/books/rich-dad-series.epub富爸爸系列电子书
public/books/reader-money-dog.html小狗钱钱独立阅读器
public/books/reader-rich-dad.html富爸爸独立阅读器
01-personal-finance/books/小狗钱钱.mdVitePress 页面(iframe 嵌入)
01-personal-finance/books/富爸爸穷爸爸.mdVitePress 页面(iframe 嵌入)

注意事项

  • epub 文件名必须使用英文/拼音,避免中文 URI 编码问题
  • epub.js 从 jsdelivr CDN 加载,需网络连接

金融知识学习笔记