{"id":22281625,"url":"https://github.com/projectmirador/mirador","last_synced_at":"2025-05-14T02:04:53.260Z","repository":{"id":16328486,"uuid":"19078059","full_name":"ProjectMirador/mirador","owner":"ProjectMirador","description":"An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.","archived":false,"fork":false,"pushed_at":"2025-04-23T22:13:38.000Z","size":41955,"stargazers_count":572,"open_issues_count":286,"forks_count":259,"subscribers_count":61,"default_branch":"main","last_synced_at":"2025-05-09T00:07:26.309Z","etag":null,"topics":["annotations","iiif","javascript","mirador","openseadragon","viewer"],"latest_commit_sha":null,"homepage":"https://projectmirador.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProjectMirador.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-04-23T17:02:00.000Z","updated_at":"2025-05-08T15:00:50.000Z","dependencies_parsed_at":"2023-01-14T12:45:30.501Z","dependency_job_id":"fe34a139-0798-4486-9436-085856f42901","html_url":"https://github.com/ProjectMirador/mirador","commit_stats":{"total_commits":3907,"total_committers":123,"mean_commits":"31.764227642276424","dds":0.7524955208599948,"last_synced_commit":"018142a46718b52e79a168706d9771dba038b704"},"previous_names":[],"tags_count":75,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectMirador%2Fmirador","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectMirador%2Fmirador/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectMirador%2Fmirador/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectMirador%2Fmirador/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProjectMirador","download_url":"https://codeload.github.com/ProjectMirador/mirador/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254052692,"owners_count":22006716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotations","iiif","javascript","mirador","openseadragon","viewer"],"created_at":"2024-12-03T16:19:51.694Z","updated_at":"2025-05-14T02:04:53.231Z","avatar_url":"https://github.com/ProjectMirador.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mirador\n![Node.js CI](https://github.com/ProjectMirador/mirador/workflows/Node.js%20CI/badge.svg) [![codecov](https://codecov.io/gh/ProjectMirador/mirador/branch/main/graph/badge.svg)](https://codecov.io/gh/ProjectMirador/mirador) \n\n## For Mirador Users\nYou can quickly use and configure Mirador by remixing the [mirador-start](https://mirador-start.glitch.me/) Glitch.\n\nWe recommend installing Mirador using a JavaScript package manager like [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/).\n\n```sh\n$ npm install mirador \n\n# or\n\n$ yarn add mirador\n```\n\nIf 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:\n\n[https://github.com/ProjectMirador/mirador-integration](https://github.com/ProjectMirador/mirador-integration)\n\nIf you want to simply embed Mirador in an HTML page without further customization, include the Mirador UMD build:\n\n```\n\u003cscript src=\"https://unpkg.com/mirador@latest/dist/mirador.min.js\"\u003e\u003c/script\u003e\n```\n\nBe 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:\n\n```\n\u003cscript src=\"https://unpkg.com/mirador@^3/dist/mirador.min.js\"\u003e\u003c/script\u003e\n```\n\n\nMore 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).\n\n## Adding translations to Mirador\nFor help with adding a translation, see [src/locales/README.md](src/locales/README.md)\n\n## Running Mirador locally for development\n\nMirador local development requires [nodejs](https://nodejs.org/en/download/) to be installed.\n\n1. Run `npm install` to install the dependencies.\n\n### Starting the project\n\n```sh\n$ npm start\n```\n\nThen navigate to [http://127.0.0.1:4444/](http://127.0.0.1:4444/)\n\n### Instantiating Mirador\n\n```javascript\nvar miradorInstance = Mirador.viewer({\n  id: 'mirador' // id selector where Mirador should be instantiated\n});\n\n\u003e miradorInstance\n{ actions, store }\n```\n\n### Example Action\n\nAdd a window:\n```javascript\nstore.dispatch(actions.addWindow());\n```\n\nTo focus a window run:\n\n```javascript\nstore.dispatch(actions.focusWindow('window-1'))\n```\n\n### Check current state\n\n```javascript\nstore.getState()\n```\n\n## Running the tests\nWe use Vitest to run our test suite.\n\n```sh\n$ npm test\n```\n\nYou 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:\n\n```sh\n$ npm test -- --ui\n```\n\nYou can run Vitest without the additional linting and size checks in our `npm test` command. You can also test a single file:\n```sh\n$ npx vitest __tests__/integration/mirador/tests/sequence-switching.test.js --ui\n```\n\n## Linting the project\n\n```sh\n$ npm run lint\n```\n\n## Debugging\n\n### Local instance\n\nThe following browser extensions are useful for debugging a local development instance of Mirador:\n\n - [React DevTools](https://github.com/facebook/react-devtools)\n - [Redux DevTools](https://github.com/zalmoxisus/redux-devtools-extension)\n\n### Test suite\n\nTo debug the test suite, run:\n\n```sh\n$ npm run test:debug\n```\n\nthen 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectmirador%2Fmirador","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprojectmirador%2Fmirador","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectmirador%2Fmirador/lists"}