Skip to content

EPUB Marginalia

Read EPUB files with TOC, highlights, margin notes, excerpts, and AI integration. - This plugin has not been manually reviewed by Obsidian staff.

The above warnings are based on limited information and might not always be accurate.

Data

IDob-epub-reader
Authorchengshans
Minimum Obsidian Version1.8.0
Official Release Date2026-06-11
Last update2026-06-26

Last Refresh

Obsidian Stats last refreshed the data behind this page on Jul 13, 2026.

Community plugin snapshotJul 13, 2026
Repository clonelast successful checkout Jun 26, 2026
Release acquisitionrelease metadata checked Jun 26, 2026; latest main.js acquired

Quick Links

Changes

DateChanged PropertyOld ValueNew Value
2026-06-11Plugin Added
2026-06-13Plugin Removed
2026-06-15Plugin Re-Added
2026-06-15Plugin Removed
2026-06-15Plugin Re-Added
2026-06-15descriptionThis plugin has not been manually reviewed by Obsidian staff. Read EPUB files with TOC, highlights, margin notes, excerpts, and AI integration.Read EPUB files with TOC, highlights, margin notes, excerpts, and AI integration. - This plugin has not been manually reviewed by Obsidian staff.

Repository Data

LicenseMIT in package.json
MIT in LICENSE file
Package Managernpm
Uses TypescriptYes
Installed Bundlersesbuild
Installed Testing FrameworksVitest
Has Test FilesYes
Latest Release main.js Size1.24 MB
Detected ES VersionES2020
Probably MinifiedNo
main.js API Findings10 disclosures
Uses BRAT beta releasesNo
Dependenciesepubjs, esbuild, i18next
Dev Dependencies@types/node, @typescript-eslint/parser, eslint, eslint-plugin-obsidianmd, happy-dom, i18next-parser, obsidian, opencc-js, patch-package, typescript, vitest

main.js API Findings

These conservative findings come from static analysis of the latest release main.js. The table includes warnings and high-confidence informational findings; lower-confidence informational findings are omitted to reduce false positives. Warnings indicate usage of potentially risky APIs, but such APIs can be used safely if handled with care.

DisclosureDetected From
Adapter File AccessUses adapter-level vault filesystem APIs
Clipboard AccessReads or writes clipboard data
Dynamic Code Or Remote CodeEvaluates dynamic code or injects scripts
Full Vault AccessEnumerates vault files
Global Handlers Or TimersRegisters events, DOM handlers, or intervals
Metadata AccessReads Obsidian metadata cache
Network AccessUses browser network APIs
Note Content AccessReads vault files
Vault File WriteWrites vault files
Workspace LayoutRegisters or manipulates workspace views and panes
FindingTypeConfidenceEvidence
Evaluates dynamic code or injects scriptsWarningHighFunction (1), dynamic_code:function_constructor (1)
Reads or writes clipboard dataInfoHighnavigator.clipboard.writeText (1)
Uses persistent browser storageInfoHighlocalStorage.getItem (2), localStorage.setItem (2)
Registers events, DOM handlers, or intervalsInfoHighrequestAnimationFrame (12), setInterval (1), setTimeout (29), this.registerEvent (5)
Reads Obsidian metadata cacheInfoHighapp.metadataCache.getFirstLinkpathDest (1), app.metadataCache (2)
References URLs or constructs URL objectsInfoHighhttp:// (9), https:// (2), URL (4), URLSearchParams (5)
Uses browser network APIsInfoHighXMLHttpRequest (3)
Persists plugin settings or dataInfoHighthis.loadData (11), this.saveData (8)
Registers plugin settings UIInfoHighthis.addSettingTab (1), Setting (10), obsidian.Setting (10)
Registers commands, ribbon icons, or status bar itemsInfoHighthis.addCommand (2), this.addRibbonIcon (1), this.addStatusBarItem (1)
Accesses Obsidian vault APIsInfoHighapp.vault (41)
Enumerates vault filesInfoHighapp.vault.getFiles (3), app.vault.getMarkdownFiles (1)
Reads vault filesInfoHighapp.vault.read (11)
References Obsidian URI linksInfoHighobsidian:// (1)
Uses adapter-level vault filesystem APIsInfoHighapp.vault.adapter (2)
Writes vault filesInfoHighapp.vault.create (1), app.vault.createFolder (1), app.vault.modify (7)
Accesses Obsidian workspace APIsInfoHighapp.workspace (37)
Accesses the active file or editorInfoHighapp.workspace.getActiveFile (1)
Registers or manipulates workspace views and panesInfoHighapp.workspace.detachLeavesOfType (3), app.workspace.getLeavesOfType (11), app.workspace.revealLeaf (5), registerView (2)

The above data may not be accurate and contain errors. For more information refer to the page about data collection.

Lines of Code

The plugin has a total of 10906 lines of code. The following chart shows the lines of code split by programming language.

Downloads

The following chart shows the total number of downloads of the plugin over time. The second chart shows the delta of downloads per week, which is the number of new downloads per week. New version releases are marked with vertical lines.

Version History

VersionRelease DateNote
1.3.12026-06-11None
1.3.22026-06-11None
1.3.32026-06-11None
1.3.42026-06-11None
1.3.52026-06-11None
1.3.62026-06-11None
1.3.82026-06-12None
1.3.92026-06-13Released while not listed
1.3.102026-06-15None
1.3.112026-06-15None
1.3.122026-06-15None
1.3.132026-06-15None
1.3.142026-06-15None
1.3.152026-06-16None
1.3.162026-06-16None
1.3.172026-06-18None
1.3.182026-06-18None
1.3.192026-06-18None
1.3.212026-06-18None
1.3.242026-06-23None
1.3.262026-06-24None
1.3.272026-06-24None
1.3.292026-06-26None

Blacklisted versions are versions that are known to cause major issues or contain security concerns and have thus been blacklisted by the Obsidian team. Obsidian will disable plugins on startup whose installed version is blacklisted. Released while not listed versions happened outside the period where the plugin was present in the community plugin list and are excluded from aggregate release statistics.