https://github.com/projectmirador/mirador
An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.
https://github.com/projectmirador/mirador
annotations iiif javascript mirador openseadragon viewer
Last synced: 13 days ago
JSON representation
An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.
- Host: GitHub
- URL: https://github.com/projectmirador/mirador
- Owner: ProjectMirador
- License: apache-2.0
- Created: 2014-04-23T17:02:00.000Z (almost 11 years ago)
- Default Branch: main
- Last Pushed: 2025-03-31T13:18:17.000Z (22 days ago)
- Last Synced: 2025-04-03T01:49:52.604Z (20 days ago)
- Topics: annotations, iiif, javascript, mirador, openseadragon, viewer
- Language: JavaScript
- Homepage: https://projectmirador.org
- Size: 40 MB
- Stars: 565
- Watchers: 62
- Forks: 259
- Open Issues: 278
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Mirador
 [](https://codecov.io/gh/ProjectMirador/mirador)## For Mirador Users
You can quickly use and configure Mirador by remixing the [mirador-start](https://mirador-start.glitch.me/) Glitch.We recommend installing Mirador using a JavaScript package manager like [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/).
```sh
$ npm install mirador# or
$ yarn add mirador
```If you are interested in integrating Mirador with plugins into your project, we recommend using vite to integrate the es version of the packages. Examples are here:
[https://github.com/ProjectMirador/mirador-integration](https://github.com/ProjectMirador/mirador-integration)
If you want to simply embed Mirador in an HTML page without further customization, include the Mirador UMD build:
```
```
Be aware that `latest` will at some point switch from version 3 to version 4. If you use Mirador via CDN in a production environment, consider pinning Mirador to version 3 to avoid sudden breaking changes:
```
```
More examples of embedding Mirador can be found at [https://github.com/ProjectMirador/mirador/wiki/M3-Embedding-in-Another-Environment#in-an-html-document-with-javascript](https://github.com/ProjectMirador/mirador/wiki/Embedding-in-Another-Environment).
## Adding translations to Mirador
For help with adding a translation, see [src/locales/README.md](src/locales/README.md)## Running Mirador locally for development
Mirador local development requires [nodejs](https://nodejs.org/en/download/) to be installed.
1. Run `npm install` to install the dependencies.
### Starting the project
```sh
$ npm start
```Then navigate to [http://127.0.0.1:4444/](http://127.0.0.1:4444/)
### Instantiating Mirador
```javascript
var miradorInstance = Mirador.viewer({
id: 'mirador' // id selector where Mirador should be instantiated
});> miradorInstance
{ actions, store }
```### Example Action
Add a window:
```javascript
store.dispatch(actions.addWindow());
```To focus a window run:
```javascript
store.dispatch(actions.focusWindow('window-1'))
```### Check current state
```javascript
store.getState()
```## Running the tests
We use Vitest to run our test suite.```sh
$ npm test
```You can see the helpful Vitest UI in your browser by running Vitest with the `--ui` flag. To pass the flag through to npm run the following:
```sh
$ npm test -- --ui
```You can run Vitest without the additional linting and size checks in our `npm test` command. You can also test a single file:
```sh
$ npx vitest __tests__/integration/mirador/tests/sequence-switching.test.js --ui
```## Linting the project
```sh
$ npm run lint
```## Debugging
### Local instance
The following browser extensions are useful for debugging a local development instance of Mirador:
- [React DevTools](https://github.com/facebook/react-devtools)
- [Redux DevTools](https://github.com/zalmoxisus/redux-devtools-extension)### Test suite
To debug the test suite, run:
```sh
$ npm run test:debug
```then spin up a [nodejs inspector client](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients) and set some breakpoints. See [here](https://www.digitalocean.com/community/tutorials/how-to-debug-node-js-with-the-built-in-debugger-and-chrome-devtools#step-3-%E2%80%94-debugging-node-js-with-chrome-devtools) for a guide to debugging with Chrome DevTools.