Patchouli.js 文档
⚠️ 免责声明:本文档由 GLM4.7 自动生成,内容可能存在错误或不完整之处。请以人工书写的官方文档为准。


"知识与记忆的结晶,魔法书帕秋莉。"
欢迎使用 Patchouli.js 文档!这是一个基于 Vue 3 编写的 HTML 文档阅读器,支持单页和分页显示。
项目概述
Patchouli.js 是一个功能强大的文档阅读器,特别针对 EPUB 格式的电子书进行了优化。它提供了灵活的界面和便捷的功能,允许用户在不同模式下查看文档内容。
核心功能
- 单页与分页显示 - 切换不同的显示模式
- 翻页功能 - 上一页/下一页控制
- 字体大小调整 - 动态调整正文和标题字体
- 高阶分页引擎 - 复杂分页控制
- 折叠面板 - 浮动控制面板
- 在线图片分页 - 预缓存支持
项目状态
⚠️ 尚未达到发布标准
如需使用,请自行人工引入,并需自行修改挂载生命周期。
文档导航
📖 用户文档
如果你是用户,想要使用 Patchouli.js 阅读文档,请查看:
用户文档包含:
- 快速开始
- 阅读模式说明
- 功能使用指南
- EPUB 支持
- 常见问题
👨💻 开发者文档
如果你是开发者,想要了解内部实现或集成到你的项目,请查看:
开发者文档包含:
- 项目架构
- 分页引擎
- 组件说明
- 开发环境配置
- API 参考
项目基本信息
| 属性 | 值 |
|---|---|
| 版本 | 0.0.0 |
| 许可证 | MPL-2.0 |
| 开发语言 | TypeScript (Vue 3) |
| 目标平台 | Web |
技术栈
核心技术
- Vue 3 - 前端框架
- TypeScript - 类型安全
- Pinia - 状态管理
- Vite - 构建工具
依赖库
- fast-xml-parser - XML 解析
- jszip - ZIP 文件处理
- lodash-es - 工具函数
阅读模式
流式阅读器
直接渲染 RAW 文档,提供最强的兼容性。
高阶分页器
基于段落+字符碰撞实现的分页,显示效果略好,但目前不支持排版规则。
低阶分页器
基于段落碰撞实现的分页,能避免排版意外,但在某些段落上会遇到不可预料的错误(超长段落)。
分页引擎
源生成引擎
- HTML 生成器 (Basic) - ✅ 可用
- CSS 生成器 - ⏳ 计划中
指针引擎
- 基础解析 (Basic) - ✅ 可用
- 模板生成 (Middle) - ✅ 可用
- 复杂模板嵌套 (Advance) - ⏳ 计划中
公共组件
| 组件 | 状态 | 说明 |
|---|---|---|
| 段落切分器 | ✅ Basic | 基础切分 |
| CSS 处理器 | ✅ Basic | 自动引入、循环引用 |
| 生命周期钩子 | ✅ | afterRender |
| EPUB 支持 | ✅ 部分 | epub 开发服务器 |
待办事项
- [ ] JavaScript 支持
- [ ] 更好的分页引擎
- [ ] 显示区域调整
- [ ] 完整的弹出工具栏
- [ ] 上状态栏
- [ ] 下状态栏
- [ ] 注解支持
- [ ] 排版规则(暂无计划)
官方链接
- GitHub: patchouli.js
名字来源
Patchouli 的名字来源于 东方Project 中的角色 帕秋莉·诺蕾姬 (Patchouli Knowledge)。
帕秋莉是拥有"知识"与"司书"能力的魔法使,居住在红魔馆的图书馆中。她患有哮喘和哮喘,但拥有庞大的魔法知识库。
能力: 使用精妙魔法(主要是火、水、木、金、土、日、月七属性)主题曲: ラクトガール ~ 少女密室登场作: 东方红魔乡 ~ the Embodiment of Scarlet Devil.
在知识的海洋中,寻找属于你的那一页。📚