How fdossi/zotread works
ZotRead is a Zotero 10 plugin for local reading-status indicators. Its main workflow combines automatic reader-open and annotation events with manual context-menu actions, persists state locally, aggregates annotation presence, and renders/sorts item-tree rows. The graph includes documented capabilities whose implementations were not sampled, such as manual actions and preferences; their links are limited to explicit README statements. Several runtime modules are unsampled, so uncertain internal wiring is omitted.
Main entry points: zotread.js Runtime coordinator · column.js Status column · storage.js State persistence · notifier.js Library event observer
Components 16
Plugin lifecycle
- Bootstrap
addon/bootstrap.js - Runtime coordinator
addon/content/zotread.js
Reading status
- Status rules
addon/content/state.js - State persistence
addon/content/storage.js - Zotero database
- Reader detection
addon/content/reader.js - Annotation aggregation
addon/content/annotations.js - Library event observer
addon/content/notifier.js
Indicators and controls
- Status column
addon/content/column.js - Manual actions
addon/content/menu.js
User configuration
- Settings pane
addon/content/preferences.js - Preference defaults
addon/prefs.js
Other components
- Zotero user
- Zotero reader
- Zotero item list
- Zotero item events
Connections 24
- Zotero user → Zotero reader: opens attachment
README.md - Zotero reader → Reader detection: signals open
README.md - Zotero user → Manual actions: chooses actions
README.md - Bootstrap → Runtime coordinator: starts
addon/bootstrap.js - Runtime coordinator → State persistence: initializes
addon/content/zotread.js - Runtime coordinator → Annotation aggregation: initializes
addon/content/zotread.js - Runtime coordinator → Library event observer: initializes
addon/content/zotread.js - Runtime coordinator → Status column: registers
addon/content/zotread.js - Runtime coordinator → Reader detection: initializes
addon/content/zotread.js - State persistence → Status rules: normalizes
addon/content/storage.js - State persistence → Zotero database: reads and writes
addon/content/storage.js - Status column → State persistence: reads cached state
addon/content/column.js - Status column → Annotation aggregation: checks presence
addon/content/column.js - Status column → Zotero item list: registers column
addon/content/column.js - Library event observer → Annotation aggregation: resolves parents
addon/content/notifier.js - Library event observer → Runtime coordinator: applies annotation state
addon/content/notifier.js - Library event observer → State persistence: purges deleted state
addon/content/notifier.js - Library event observer → Zotero item events: observes
addon/content/notifier.js - Reader detection → Runtime coordinator: marks opened items
- Runtime coordinator → State persistence: stores status
addon/content/zotread.js - Runtime coordinator → Status column: refreshes rows
addon/content/zotread.js - Manual actions → Runtime coordinator: sets status
README.md - Settings pane → Preference defaults: configures
README.md - Settings pane → Status column: repaints on color change
README.md