English | 简体中文
Chartero 这个名字是连接了 Chart 与 Zotero,作为一个Zotero插件,它可以帮助你更直观地了解你的文献库。
新版本记录格式采用 note 与附件一、一对应的形式。若当前电脑使用过旧版 chartero,则可在_首选项->存储_中点击“自动搜索并导入旧版数据”按钮,否则需要手动复制旧版 json 数据到文本框中再点击“导入粘贴的历史记录”按钮。导入时会覆盖已有的新版记录。
此外,旧版扫描周期以毫秒为单位,新版以秒为单位,自动导入时会自动将周期除以 1000,否则需手动修改!。
截图 | 功能 |
---|---|
Chartero 的核心功能,当你阅读文献时,记录当前页面与时间。 |
|
在主菜单文件 中,可以打开最近读过的文档。 |
|
在文库视图中新增一列信息显示当前条目的阅读时长。 | |
可视化与当前条目相关的所有信息,在阅读器的侧边栏可实时刷新。 | |
总结多个条目之间的关系,若选中条目数超过首选项中设置的值,则不会加载。 | |
在阅读器滚动条旁边,灰色块表示对应页面的阅读时长,彩色条表示注释。 | |
点击主菜单 → 查看 → 文库总览 后弹出标签页 |
|
在阅读器左侧边栏显示当前文档中的所有图片。单击可跳转,双击可复制。若 PDF 图片过多,则每次只加载 10 页,点击最下方按钮可手动加载更多。 |
图片提取功能在ChromeWorker中调用内置PDF.js实现。
欲参考纯 JavaScript 版本(适用于 Zotero 6
)请切换分支
src/bootstrap:主窗口环境中运行的代码
src/modules:Git子仓库,用于在VS Code中调试TS源码
初始化:
git submodule init
git submodule update
src/worker:数据处理的后台线程
这些链接在bootstrap.js中注册,可以在Zotero中通过fetch
函数访问:
chrome://chartero/
:访问addon文件夹resource://chartero/
:访问addon/content文件夹与其他插件不同,Chartero 没有在全局 Zotero 变量下定义任何对象,仅可通过侧边栏 iframe 窗口访问window.addon
。
在_src/bootstrap_与_src/vue_中各有一个 global.d.ts 文件,定义了该目录下可访问的全局变量。
由zotero-types定义的Zotero
等变量在 Vue 中未定义。
addon
是整个插件内部的“全局”变量,定义在 SandBox 中,插件外不可访问。新建 iframe 时通过contentWindow
将其传入 Vue。
package.json的config.defaultSettings
字段定义了插件使用的所有首选项及其默认值,编译时将自动替换addon中相应内容,同时在 TS 中提供类型检查。
locale文件夹下定义了不同语言在 UI 上显示的字符串,插件启动时动态加载,同时在 TS 中提供类型检查。
package.json中定义了构建项目所需的 npm 脚本,修改tools/zotero-cmd.json后,在 vscode 的主菜单Run Task…
中选择指令npm: build
即可以开发模式全部编译并重载 Zotero。使用带有NODE_ENV=development
的指令时,全局变量__dev__
为true
,插件进入调试模式,此时debug.ts会注册一些调试用的选项。
reload-all
:以生产环境全部编译并重载 Zoteroreload-dev
:以开发环境跳过vue部分的编译并重载 Zoterobuild
:以开发环境全部编译并重载 Zoterowatch
:实时监听Vue更改并编译后重载 Zoterodev
:开启vue测试模块热重载开启Zotero的状态下,在VS Code的侧边栏调试面板中运行Vue
配置可以开启Vue测试模块的热重载并呼出Firefox,此时可以在Firefox中使用Vue调试插件,也可以在VS Code中设置断点进行单步调试。
插件在开发环境下会在本地服务器注册一个/test/chartero
的路由,该节点会eval
任何POST请求来的指令并以JSON格式返回结果。Vue测试模块提供了一系列“dummy”类,通过访问/test/chartero
路由来仿真Zotero环境,此方法对其他 Zotero 客户端应用具有借鉴价值。
history/data.ts定义了阅读记录的数据结构。转换成 JSON 字符串后的形式如下:
{
"pages": {
"0": {
"p": {
"1693200000": 6
}
}
},
"numPages": 27
}
其中pages
为页码与记录的映射,numPages
为总页数。p
意为 “period”,其键为时间戳,值为记录周期(单位:秒)。
一些不太优雅的实现,可能导致潜在的兼容性问题,供其他插件开发者查错时参考。
篡改了Zotero.Search
对象的search
方法,使其无法搜索到存储历史记录的笔记条目。
显示“所有图片”的侧边栏添加时给其他选项卡按钮添加了点击事件,可能导致冲突。
打开“文库总览”时contextPane.js
会抛出异常extraData[ids[0]] is undefined
,忽略即可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。