2 items
A customizable reader overlay for Pixiv novel pages. # Pixiv Novel Reader 一个面向 Pixiv 小说页面的非官方 Chrome 扩展。它把 Pixiv 原本较难阅读的小说页面重新整理成可调节的阅读器,让你可以自由调整字体、字号、行距、段距、配色、正文宽度和阅读进度。 > 本项目与 Pixiv 官方没有隶属、授权或赞助关系。Pixiv 是其相应权利人的商标。 ## 项目状态 当前版本是 `0.1.0`,属于个人项目和早期可用原型。核心阅读流程已经可以使用,但图片解析、跨设备数据管理和 Chrome Web Store 发布材料仍在完善中。 ## 功能 - 仅在 Pixiv 小说详情页显示阅读器入口。 - 使用 Pixiv 当前登录会话请求同源小说接口 `/ajax/novel/{id}`。 - 将小说标题、作者、简介、标签、页数和正文重新渲染为阅读器界面。 - 支持衬线、无衬线、等宽字体和自定义字体栈。 - 支持字号、字重、行距、字距、段首缩进、段距、文字对齐、正文宽度和页面边距。 - 支持背景色、文字色和强调色自定义。 - 提供“文档”“沉浸”“紧凑”“稿纸”版式预设。 - 提供“纸张”“夜读”“雾绿”“晨光”“石板”主题预设。 - 支持“每行一段”和“空行分段”两种正文换段方式。 - 支持显示或隐藏作品信息卡、页码标签。 - 支持 `[chapter:标题]` 章节目录和章节跳转。 - 支持 `[newpage]` 分页和 `[jump:页码]` 页内跳转。 - 支持 `[[jumpuri:标题 > URL]]` 外部链接和 `[[rb:正文 > 注音]]` 注音标记。 - 对 Pixiv 插图引用提供跳转入口;能从接口取得直链的上传插图会直接显示。 - 保存阅读器设置和每篇小说的滚动进度。 - 阅读器入口按钮支持拖动,并记住拖动后的位置。 - 通过 Manifest V3 service worker 处理已打开 Pixiv 标签页和 Pixiv 单页路由变化。 ## 快速开始 ### 环境要求 - Google Chrome 或其他支持 Manifest V3 的 Chromium 浏览器。 - 能正常访问 `https://www.pixiv.net`。 - 如果小说需要登录才能阅读,浏览器中需要先登录 Pixiv。 ### 加载开发版 1. 打开 `chrome://extensions`。 2. 打开右上角的“开发者模式”。 3. 点击“加载已解压的扩展程序”。 4. 选择本项目目录,例如 `G:\pixiv小说`。 5. 打开或刷新 Pixiv 小说详情页,页面右下角应该会出现“打开阅读器”。 如果浏览器中已经打开了 Pixiv 页面,加载扩展后后台脚本会尝试自动注入阅读器;如果页面处于受限页面、正在跳转或浏览器拒绝脚本注入,请手动刷新该页面。 ## 使用方法 打开 Pixiv 小说详情页后,点击右下角的“打开阅读器”。阅读器打开后: - 左侧控制区调整版式、主题、字体、颜色和显示选项。 - 右侧正文区域滚动阅读。 - 章节目录可以跳转到带有 `[chapter:标题]` 标记的章节。 - 再次点击关闭按钮,或按 `Escape`,可以退出阅读器。 - 拖动“打开阅读器”按钮即可改变入口位置。 - 点击“重置样式”恢复默认设置;阅读进度不会因此清除。 ## 实机截图 以下截图来自 Chrome 浏览器加载本地开发版扩展,图片尺寸均为 `1280x800`。为了避免公开作品标题、作者、标签、摘要和正文内容,截图中的小说与作品详情已经统一进行马赛克处理;马赛克仅用于展示界面,不代表扩展功能限制。 | 截图 | 展示内容 | | --- | --- | | [纸张主题](docs/screenshots/reader-paper.jpg) | 纸张主题、快速预设和阅读进度 | | [夜读主题](docs/screenshots/reader-night.jpg) | 夜读主题和字体相关设置 | | [布局控制](docs/screenshots/reader-controls.jpg) | 换段规则、对齐、段首缩进和段距 | | [主题与显示](docs/screenshots/reader-themes.jpg) | 主题颜色、作品信息卡、页码标签和章节区域 |  ## 支持的 Pixiv 正文标记 | 标记 | 当前行为 | | --- | --- | | `[newpage]` | 创建新的阅读页 | | `[chapter:章节标题]` | 创建章节标题并加入目录 | | `[jump:3]` | 创建跳转到第 3 页的链接 | | `[[jumpuri:标题 > https://example.com]]` | 创建新标签页外部链接 | | `[[rb:漢字 > かんじ]]` | 使用 HTML ruby 显示注音 | | `[pixivimage:123]` | 显示 Pixiv 作品链接占位块 | | `[pixivimage:123-2]` | 显示指定页码的 Pixiv 作品链接占位块 | | `[uploadedimage:ID]` | 有直链时显示图片,否则显示占位信息 | Pixiv 标记本身可能随着 Pixiv 接口变化而变化。扩展只处理当前代码中明确支持的格式,不会执行小说正文中的任意 HTML 或 JavaScript。 ## 项目结构 ```text . ├── manifest.json # Manifest V3 配置、权限和注入规则 ├── icons/ # Chrome 扩展图标 │ └── icon128.png ├── background.js # service worker,处理已打开标签页和 SPA 路由 ├── content.js # 页面识别、接口请求、解析、渲染和存储 ├── content.css # 阅读器样式、主题和响应式布局 ├── README.md # 项目首页和快速开始 ├── PRIVACY.md # 隐私政策草案,可用于商店隐私政策页面 ├── CONTRIBUTING.md # 开发和贡献指南 ├── SECURITY.md # 安全问题报告方式 ├── CHANGELOG.md # 版本变更记录 ├── LICENSE # MIT 许可证 ├── .github/ # Issue 和 Pull Request 模板 └── docs/ ├── CHROME_WEB_STORE.md # Chrome Web Store 发布指南 └── screenshots/ # 1280x800 实机截图和截图说明 ``` ## 开发与验证 本项目是无构建步骤的原生 JavaScript Chrome 扩展,没有 `package.json` 或第三方运行时依赖。修改后可以执行以下静态检查: ```powershell node --check .\content.js node --check .\background.js Get-Content -Raw .\manifest.json | ConvertFrom-Json | Out-Null ``` 然后在 `chrome://extensions` 点击扩展卡片上的刷新按钮,再重新打开 Pixiv 小说页验证。 建议至少验证以下路径: - 新打开小说页时入口是否出现。 - 不刷新页面,使用 Pixiv 站内导航进入另一篇小说时是否能重新加载。 - 点击“夜读”后侧栏、标题和正文颜色是否同步变化。 - 调整段距、字号、行距和正文宽度是否立即生效。 - 拖动入口后刷新页面,入口位置是否保持。 - 阅读一段内容后刷新页面,滚动进度是否恢复。 - 登录失效、作品不可见或接口返回错误时是否显示可理解的错误信息。 ## 本地打包 Chrome Web Store 上传的 ZIP 必须让 `manifest.json` 位于 ZIP 根目录。发布前请先添加商店图标,再从项目根目录执行: ```powershell New-Item -ItemType Directory -Force .\dist | Out-Null Compress-Archive -Path @( ".\manifest.json", ".\background.js", ".\content.js", ".\content.css", ".\icons" ) -DestinationPath ".\dist\pixiv-novel-reader-v0.1.0.zip" -Force ``` 不要把 `.pnr-dev-server.py`、测试截图、个人配置或其他与扩展运行无关的文件放进发布 ZIP。完整发布清单见 [`docs/CHROME_WEB_STORE.md`](./docs/CHROME_WEB_STORE.md)。 ## 权限说明 | 权限 | 用途 | | --- | --- | | `storage` | 保存阅读器设置、入口位置和每篇小说的阅读进度 | | `scripting` | 在必要时向已经打开的 Pixiv 标签页注入阅读器 | | `tabs` | 查找已经打开的 Pixiv 标签页,以便处理扩展启动或更新后的注入 | | `webNavigation` | 监听 Pixiv 单页应用的历史路由变化 | | `https://www.pixiv.net/*` | 识别小说详情页,并请求当前页面同源的 Pixiv 小说接口 | 权限只用于阅读器功能,不用于广告、用户画像、浏览历史收集或向开发者服务器上传内容。发布前仍应根据最终代码检查是否可以进一步减少权限。 ## 数据与隐私 扩展会读取当前 Pixiv 小说页面所需的作品内容,用于在页面中渲染阅读器。阅读器样式和入口位置优先保存到 Chrome Storage Sync,每篇小说的阅读进度保存到 Chrome local storage;在扩展 API 不可用时,代码提供页面本地存储回退。当前项目没有开发者自有服务器、统计服务、广告 SDK 或远程代码加载。 详细说明见 [`PRIVACY.md`](./PRIVACY.md)。如果提交到 Chrome Web Store,请把该政策发布到一个用户可以访问的 HTTPS 页面,并在开发者控制台中填写对应地址。 ## 已知限制 - 只匹配 `www.pixiv.net`,不覆盖其他 Pixiv 镜像域名或第三方客户端页面。 - 只在小说详情路由 `/novel/show.php` 上渲染阅读器。 - 小说接口和 Pixiv 页面结构属于外部依赖,接口字段变化可能导致读取失败。 - `[pixivimage:...]` 目前提供作品跳转,不直接抓取 Pixiv 插图内容。 - 部分 `[uploadedimage:...]` 只有占位信息,因为接口可能不返回可用直链。 - 当前设置是全局设置,不支持按作品或按设备分别保存阅读主题。 - 项目目前没有自动化单元测试或端到端测试。 - “自动弹出”配置字段仍属于预留能力,默认不会强制打开阅读器;入口按钮会自动出现。 ## 规划中的工作 - 拆分解析层、渲染层和设置层,降低单文件维护成本。 - 完善 Pixiv 小说图片引用的解析和加载。 - 增加目录高亮、上一章/下一章和更细的导航控制。 - 支持导出和导入阅读器设置。 - 增加更完整的自动化测试和打包检查。 - 补齐 Chrome Web Store 图标、截图、宣传图和正式隐私政策页面。 ## 贡献 欢迎提交 Issue 和 Pull Request。开始前请阅读 [`CONTRIBUTING.md`](./CONTRIBUTING.md)。提交问题时请尽量提供: - Chrome 版本和操作系统。 - Pixiv 页面类型,不要公开需要登录的小说正文或个人信息。 - 复现步骤和预期行为。 - 浏览器扩展管理页中的错误信息或控制台错误。 - 是否只在 Pixiv 站内跳转后出现问题。 ## 许可证 本项目使用 MIT License,详见 [`LICENSE`](./LICENSE)。使用 Pixiv 内容时仍需遵守 Pixiv 的服务条款、版权规则和当地法律。
Aug 16, 2026
rating_count is the Chrome Web Store ratings count, not a written-review count.
Media assets
Screenshots and videos on the listing.
Has promo video
Whether the listing includes at least one video.
Languages
Declared language locales.
Developer website
Listing exposes a developer website URL.
Contact email
Listing exposes a contact email.
Keyword in name
Case-insensitive substring match in the name.
Keyword in description
Case-insensitive substring match in the description.
Keyword occurrences in description
Count of case-insensitive occurrences in the description.
Category user-count percentile
Share of same-category extensions with fewer users (null if unknown).
These are transparent listing completeness / keyword signals, not a prediction of Chrome Web Store search ranking.