Skip to content

volatile-static/Chartero

Repository files navigation

Chartero

codacy code size xpi size download latest

English | 简体中文

Abstract

The name Chartero is a combination of Chart and Zotero. As a Zotero plugin, it can make your library livelier.

User Guide

👉 Introduction 👈
Screenshots Features
history recording The kernel of Chartero. It records page numbers and timestamps when you read.
open recent In the main menu File, you can open the recently read documents.
column In items tree of the library view, you can add a column to show reading progress.
dashboard Illustrates all information about a top-level item. Updating as soon as record changes when in a Reader.
summary Summary of two or more items. Will not be loaded if the number of selected items is larger than you set in preferences.
overview Click Main menu -> View -> Overview and jump to a new tab.
minimap Besides the scrollbar of Reader(PDF and ePub), grayscale blocks for read pages and color strips for annotations.
images more 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😁

Known Issues

Developer Guide

Directory Structure

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

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 in src/vue and reload Zotero.
    • dev: Open a hot-reload server for src/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 object Zotero.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 throws extraData[ids[0]] is undefined error, caused by the type of this tab being library.

See Also



icon