JetReader – Book Library, EPUB & PDF Reader (Lite)

Description

JetReader turns WordPress into a digital library with a fullscreen React document reader. Upload, manage, and display books, articles, magazines, and Q&A documents. It automatically maps documents to SEO-friendly Custom Post Types, making them fully searchable and XML sitemap compatible.

Document Support

  • EPUB — Paginated layout, customizable fonts, and outline navigation.
  • PDF — High-performance rendering, zoom, and dual/single page view.
  • TXT — Auto-styled text with font resizing and auto-scroll.
  • DOCX — Client-side parsing and rendering of Word files with formatting.

Features

  • Fullscreen View — Clean template without site headers/footers for maximum focus.
  • Themes — Toggle between Light, Dark, Sepia, and Auto modes.
  • In-doc Search — Find terms directly inside the document with page-jump.
  • Resume Reading — Remembers the user’s reading progress.
  • Deep Linking — Direct URLs (e.g., #page=12) to open at a specific page.

Documentation

For full documentation, shortcode attributes, and REST API endpoints, please visit the official documentation page:
https://wplector.com

Source Code & Build Instructions

This plugin contains minified/compiled React assets under the dist/ directory. For build reproducibility and compilation transparency, the distributed package includes the complete, unminified, human-readable source code inside the src/ directory, as well as the build configuration files (package.json, package-lock.json, vite.config.ts, tsconfig.json, postcss.config.js, tailwind.config.ts). The source code is also publicly accessible and maintained in the following repository:
https://github.com/mehdituran/jetreader-lite

Build Tools & Steps

To build the compiled assets from the source code:
1. Ensure Node.js (v18+) is installed.
2. Clone the repository and navigate to the project directory.
3. Install dependencies by running:
npm install
4. Build the production assets using the Vite builder:
npm run build
5. The generated compiled files will be output to the dist/ directory.

Third-Party Libraries

The compiled assets bundle the following third-party libraries:
* React & React DOM (MIT License) – https://react.dev/
* TanStack React Query (MIT License) – https://tanstack.com/query/
* Framer Motion (MIT License) – https://www.framer.com/motion/
* Epub.js (BSD 3-Clause License) – https://github.com/futurepress/epub.js/
* Mozilla PDF.js (Apache 2.0 License) – https://mozilla.github.io/pdf.js/
* Mammoth.js (BSD 2-Clause License) – https://github.com/mwilliamson/mammoth.js (including Bluebird and JSZip)
* DOMPurify (Apache 2.0 / LGPL 2.1) – https://github.com/cure53/DOMPurify
* fflate (MIT License) – https://github.com/101arrowz/fflate
* Keen Slider (MIT License) – https://keen-slider.io/

Localization & Translation

JetReader is fully translation-ready: PHP strings use WordPress i18n functions (__(), _e(), etc.) and the React admin/frontend/reader interfaces use @wordpress/i18n, so the plugin follows your site’s active language (including per-page languages set by Polylang/WPML) automatically. The translation template is at languages/jetreader.pot.

Screenshots

Installation

  1. Upload the jetreader folder to the /wp-content/plugins/ directory, or install directly via Plugins Add New Upload Plugin.
  2. Activate the plugin through the Plugins menu.
  3. Upon activation, the plugin will automatically create custom database tables and register the default CPT rewrite rules.
  4. Go to JetReader Settings to set your default language, reader options, library card layout, and color palettes.
  5. Create a new WordPress Page, insert the [jetreader_library] shortcode, and publish it.
  6. Add your first digital item via JetReader Library Items Add New or by uploading documents. Your library is now ready!

FAQ

Which file formats are supported?

JetReader supports EPUB, PDF, TXT, and DOCX files. Files can be uploaded directly or linked via external URLs.

Can visitors bookmark or highlight without registering?

No. Since bookmarks and annotations are saved in your database for a persistent cross-device experience, users must be logged into a WordPress account. Public reading does not require an account.

Can I disable text copying?

Yes. Go to JetReader Settings and toggle the “Copy Enabled” permission. This disables text selection, right-click, and copy hotkeys inside the reader interface.

How does search work in the Lite version?

JetReader allows visitors to search through uploaded documents in the library by their titles. For document-internal content search, the reader parses and searches document text directly in the visitor’s browser (client-side), without requiring any server-side database indexing.

Will JetReader slow down my WordPress site?

No. Frontend assets (JavaScript and CSS bundles) are enqueued dynamically and only load on pages where a JetReader shortcode is present.

Is JetReader compatible with WooCommerce?

Yes. JetReader declares compatibility with WooCommerce High-Performance Order Storage (HPOS) so no admin compatibility warnings appear on WooCommerce stores.

What are Tags used for?

Tags are a lightweight cross-type taxonomy. Unlike categories (which are content-type specific), a single tag can group books, articles, magazines, and Q&A documents together. This enables flexible filtering and discovery across your entire library.

How do I add screenshots to a WordPress.org plugin page?

See the Screenshots section below for the required images and how to place them.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“JetReader – Book Library, EPUB & PDF Reader (Lite)” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.0

  • Localization: replaced the custom lang/*.json + t() translation system with native WordPress i18n (__(), _e(), sprintf()) across PHP and the React admin/frontend/reader interfaces, so the plugin is now translatable through standard .po/.mo files and works correctly with Polylang/WPML.
  • The plugin’s text direction (RTL/LTR) now follows WordPress’s own is_rtl() instead of a custom per-language setting.
  • Removed the unused “Plugin Language” backend setting and the lang/ directory; admin menu and CPT labels are now translated through core WordPress functions instead of a custom JSON lookup.
  • Regenerated languages/jetreader.pot to include all translatable strings from both PHP and the React/TypeScript source.

1.0.3

  • Security: file rename endpoint now rejects any new file name that changes the file extension, preventing uploads from being renamed to executable file types.
  • Fixed: critical reader page CSS is now registered through wp_register_style()/wp_add_inline_style() instead of being printed as an inline <style> tag.
  • Fixed: rate-limit transient keys now use the jetreader_ prefix instead of the too-short jr_ prefix to avoid collisions with other plugins.

1.0.2

  • Collapsible Filter Sidebar: added a collapsible Filter Sidebar on desktop layout.
  • Modern Arrow Icons: integrated custom < and > toggle buttons for the sidebar.

1.0.1

  • Custom Q&A layout: displayed as a clean, vertical list instead of standard grid cards.
  • Detail modal: hid the left cover image column and adjusted width to 650px for Q&A items.
  • Multiple shortcodes: fixed ID conflicts to support displaying multiple library instances on a single page.
  • Type parameter mapping: automatically resolves plural shortcode attributes (e.g. books, magazines) to singular ones.

1.0.0

  • Initial stable release of JetReader Lite.
  • Added support for EPUB, PDF, TXT, and DOCX files.
  • Added modern fullscreen React-based document reader interface.
  • Added customizable reading themes (Light, Dark, Sepia, Auto) and font sizes.
  • Added persistent user bookmarks, notes, and colored highlights.
  • Added deep linking and resume reading features.
  • Added SEO optimization, CPT sync, and Schema.org metadata injection.
  • Added standalone document metadata search.