Awesome
<h1 align='center'>Chartero</h1> <p align='center'> <a href="https://app.codacy.com/gh/volatile-static/Chartero/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"> <img src="https://app.codacy.com/project/badge/Grade/e9a03b20fb90462180218819b41eb34d" alt='codacy' /> </a> <a href='../src/'> <img src='https://img.shields.io/github/languages/code-size/volatile-static/Chartero?logo=vuedotjs' alt='code size' /> </a> <a href='https://github.com/volatile-static/Chartero/releases/latest/download/chartero.xpi'> <img src='https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fvolatile-static%2FChartero%2Freleases%2Flatest&query=%24.assets%5B0%5D.size&suffix=%20Bytes&label=XPI&logo=Zotero&logoColor=%23CC2936' alt='xpi size' /> </a> <a href='https://github.com/volatile-static/Chartero/releases'> <img src="https://img.shields.io/github/downloads/volatile-static/Chartero/total?logo=github" alt='download' /> </a> <a href='https://github.com/volatile-static/Chartero/releases/latest/'> <img src="https://img.shields.io/github/downloads/volatile-static/Chartero/latest/total" alt='latest' /> </a> </p> <p align='center'> <kbd>English</kbd> | <a href='doc/readme.Md'>简体中文</a> </p>Abstract
The name Chartero is a combination of Chart and Zotero. As a Zotero plugin, it can make your library livelier.
User Guide
<details> <summary><u>👉 <b>Introduction</b> 👈</u></summary>Screenshots | Features |
---|---|
The kernel of Chartero . It records page numbers and timestamps when you read. | |
In the main menu File , you can open the recently read documents. | |
In items tree of the library view, you can add a column to show reading progress. | |
Illustrates all information about a top-level item . Updating as soon as record changes when in a Reader . | |
Summary of two or more items . Will not be loaded if the number of selected items is larger than you set in preferences. | |
Click Main menu -> View -> Overview and jump to a new tab. | |
Besides the scrollbar of Reader (PDF and ePub), grayscale blocks for read pages and color strips for annotations. | |
At the left sidebar of Reader , you can see all images in the current document. Click to navigate and double-click to copy. |
Troubleshooting
Please disable all other plugins when necessary, then file an issue with the exported debug output. Feel free to ask anything in issue😁
Developer Guide
- Using to generate charts
- Minimap and All Images are rendered by built-in
- All Images uses built-in PDF.js in ChromeWorker to extract images from PDFs.
- UI components are from
- For the legacy Zotero
6
version, please check out this branch.
Directory Structure
-
tools: Scripts for development.
-
src
- src/bootstrap: The entry point of the plugin.
- src/bootstrap/modules: Implementation of modules.
- src/vue: The
iframe
windows using Vue- src/vue/summary: At sidebar.
- src/vue/dashboard: At sidebar tab-panel.
- src/vue/overview: At new tab.
- src/vue/utility: The utility functions.
- src/vue/test: The unit test for Vue components.
- src/modules: Git-submodules for VS Code debugging.
-
use the following command to initialize the submodules:
git submodule init git submodule update
-
- src/bootstrap: The entry point of the plugin.
-
src/worker: The worker for data processing.
URL
These URLs are registered in bootstrap.ts, and you can access them via fetch
in Zotero.
chrome://chartero/
: Access to folder addon.resource://chartero/
: Access to folder addon/content.
Preferences
The config.defaultSettings
field of package.json defines the default values of preferences. The keys will be automatically replaced when compiling addon.
Locales
Locales | zh-CN | en-US | ja-JP | it-IT |
---|
All locale strings are defined in locale, which will be loaded dynamically when the plugin starts.
Development Environment
- .env:
ZOTERO_PLUGIN_ZOTERO_BIN_PATH = */Zotero.app/Contents/MacOS/zotero
ZOTERO_PLUGIN_PROFILE_PATH = /path/to/profile
ZOTERO_PLUGIN_DATA_DIR =
- Here are some useful scripts:
reload-all
: Build and reload the Zotero in production environment.reload-dev
: Build in development environment without Vue pages and reload Zotero.build
: Build in development environment and reload Zotero.watch
: Watch changes of files insrc/vue
and reload Zotero.dev
: Open a hot-reload server forsrc/vue/test/
.
⚡Hot-reload and Breakpoints in Source
With the Chartero running, you can run debug config Vue
in the sidebar of the VS Code. This will launch the Vue unit test in Firefox with hot-reload. You can then utilize vue devtools in Firefox as well as set breakpoints in VS Code for single-step debugging.
When running in development environment, Chartero will register a /test/chartero
route in HTTP server, accepting any command from a POST request and returning its eval
results in JSON format. By accessing this Endpoint
, the Vue test module provides a series of "dummy" classes to simulate the Zotero environment. This method is of great reference value for other Zotero client applications.
Record Structure
The data structure of history records is defined in history/data.ts, and the JSON string is like this:
{
"pages": {
"0": {
"p": {
"1693200000": 6
}
}
},
"numPages": 27
}
Inter-plugin Compatibility
This section is for developers who have suspected compatibility issues with
Chartero
.
- Patched the
search
method of objectZotero.Search
to hide the note items that record the reading history. - Add click events to tabs in the left side-bar of
Reader
. - When adding "Overview" tab,
contextPane.js
throwsextraData[ids[0]] is undefined
error, caused by thetype
of this tab beinglibrary
.
See Also
<br /> <p align='center'><img src='addon/content/icons/icon32.png' alt='icon' /></p>