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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@harvard-lts/mirador-pdf-plugin

v0.0.2

Published

A Mirador 3 plugin that interacts with MPS PDF Download Service

Readme

mirador-pdf-plugin

A Mirador 3 plugin that adds a Download PDF option to the window top-bar menu. It connects to an external PDF download service and allows users to optionally specify a page number or range before downloading.

Features

  • Adds a Download PDF menu item to the Mirador window top-bar plugin menu
  • Opens a dialog where users can optionally enter a page number (e.g. 5) or a range (e.g. 5-10)
  • Validates page input against the total number of pages in the manifest
  • Constructs the correct download URL from a configurable API base URL and the manifest's URN
  • Opens the download in a new browser tab

Requirements

Setup

  1. Run npm i to install dependencies
  2. Use one of the NPM scripts to perform the actions described below.

NPM scripts

The following are some useful scripts that can be run using npm run <script>. A full list can be seen in package.json.

| Script | Description | | ------- | -------------------------------------------------------------- | | clean | Removes the dist directories | | build | Builds the source files into the ./dist directory | | serve | Spins up the local development server at http://localhost:9000 | | test | Runs the test suite |

Installing in Mirador

The mirador-pdf-plugin requires an instance of Mirador 3. Visit the Mirador wiki to learn how to install an existing plugin and for additional information about plugins.

Install the package:

npm i @harvard-lts/mirador-pdf-plugin

Configuration

Pass a miradorPdfPlugin object in your Mirador config block:

import Mirador from 'mirador/dist/es/src/index';
import Plugin from '@harvard-lts/mirador-pdf-plugin';

Mirador.viewer(
  {
    id: 'mirador',
    windows: [
      { manifestId: 'https://example.com/URN-3:FOO:BAR:MANIFEST:1' }
    ],
    miradorPdfPlugin: {
      pdfAPI: 'https://your-pdf-service.example.com/pdf/download/',
    },
  },
  [...Plugin]
);

Config options

| Option | Type | Description | | -------- | ------ | ------------------------------------------------ | | pdfAPI | String | Base URL of the PDF download service (required). |

URL construction

The plugin derives a URN from the manifest ID by stripping the protocol, hostname, and any :MANIFEST suffix. It then builds the download URL as:

<pdfAPI>/<URN>
<pdfAPI>/<URN>?page=5
<pdfAPI>/<URN>?start=5&end=10

Contribute

Mirador's development, design, and maintenance is driven by community needs and ongoing feedback and discussion. Join us at our regularly scheduled community calls, on IIIF slack #mirador, or the mirador-tech and iiif-discuss mailing lists. To suggest features, report bugs, and clarify usage, please submit a GitHub issue.