Skip to content

Patchouli.js 文档

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


Patchouli
Patchouli.js

"知识与记忆的结晶,魔法书帕秋莉。"

欢迎使用 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 支持
  • [ ] 更好的分页引擎
  • [ ] 显示区域调整
  • [ ] 完整的弹出工具栏
  • [ ] 上状态栏
  • [ ] 下状态栏
  • [ ] 注解支持
  • [ ] 排版规则(暂无计划)

官方链接

名字来源

Patchouli 的名字来源于 东方Project 中的角色 帕秋莉·诺蕾姬 (Patchouli Knowledge)

帕秋莉是拥有"知识"与"司书"能力的魔法使,居住在红魔馆的图书馆中。她患有哮喘和哮喘,但拥有庞大的魔法知识库。

能力: 使用精妙魔法(主要是火、水、木、金、土、日、月七属性)主题曲: ラクトガール ~ 少女密室登场作: 东方红魔乡 ~ the Embodiment of Scarlet Devil.


在知识的海洋中,寻找属于你的那一页。📚