npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@mikespub/epubjs-reader

v2024.10.27

Published

ePub.js Reader

Downloads

84

Readme

About this fork

This fork is only used to re-package and integrate epubjs-reader with COPS

Please see https://github.com/intity/epubreader-js for the original fork - with thanks to @intity and the alpha/beta testers :-)

This fork is meant for a web-based epub reader, where the initial bookPath is set via template variable in dist/template.html, e.g. with PHP Twig or Python Jinja2, and the epub content is served from the original .epub file via a PHP or Python script like src/zipfs.php, e.g. with bookPath = http://localhost:8000/zipfs.php/{bookId}/

The dist/ files are available as:

Epub.js Reader

UI

About the Reader

The epubreader-js application is based on the epub.js library and is a fork of the epubjs-reader repository.

Getting Started

Open up epubreader-js in a browser.

You can change the ePub it opens by passing a link to bookPath in the url:

?bookPath=https://s3.amazonaws.com/epubjs/books/alice.epub

Running Locally

Install node.js

Then install the project dependences with npm

npm install

You can run the reader locally with the command

npm run serve

Builds are concatenated and minified using webpack

To generate a new build run

npm run build

or rebuilding all *.js files

npm run prepare

Pre-configuration

The epubreader-js application settings is a JavaScript object that you pass as an argument to the Reader constructor. You can make preliminary settings in the file index.html. For example, this is what the default Reader initialization looks like:

<script type="module">
    import { Reader } from "./js/epubreader.min.js"
    const url = new URL(window.location)
    const path = url.searchParams.get("bookPath") || "https://s3.amazonaws.com/moby-dick/"
    window.onload = (e) => new Reader(path)
</script>

Let's say we want to disable the openbook feature, which is designed to open an epub file on a personal computer. This can be useful for integrating a public library into your site. Let's do this:

<script type="module">
    import { Reader } from "./js/epubreader.min.js"
    const url = "{{bookPath}}"
    window.onload = (e) => new Reader(url, { openbook: false })
</script>

Note that the {{bookPath}} replacement token is used to define the url string variable. This simple solution will allow you to set up a route to pass the target URL.

Features

The epubreader-js application supports the following features:

  • Initial support for mobile devices
  • Saving settings in the browser’s local storage
  • Opening a book file from the device’s file system
  • Bookmarks
  • Annotations
  • Search by sections of the book
  • Output epub metadata
  • Keybindings