{"_id":"@alexgaillard88/editorjs","name":"@alexgaillard88/editorjs","dist-tags":{"latest":"2.31.2-hotfix.0"},"versions":{"2.31.2-hotfix.0":{"name":"@alexgaillard88/editorjs","version":"2.31.2-hotfix.0","description":"Editor.js — open source block-style WYSIWYG editor with JSON output","main":"dist/editorjs.umd.js","module":"dist/editorjs.mjs","types":"./types/index.d.ts","keywords":["codex editor","text editor","editor","editor.js","editorjs","wysiwyg"],"scripts":{"dev":"vite","build":"vite build --mode production","build:test":"vite build --mode test","lint":"eslint src/ --ext .ts && yarn lint:tests","lint:errors":"eslint src/ --ext .ts --quiet","lint:fix":"eslint src/ --ext .ts --fix","lint:tests":"eslint test/ --ext .ts","test:e2e":"yarn build:test && cypress run","test:e2e:open":"yarn build:test && cypress open"},"author":{"name":"CodeX"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/AlexGaillard/editor.js.git"},"devDependencies":{"@babel/register":"^7.21.0","@codexteam/icons":"0.3.2","@codexteam/shortcuts":"^1.1.1","@cypress/code-coverage":"^3.10.3","@editorjs/code":"^2.7.0","@editorjs/delimiter":"^1.2.0","@editorjs/header":"^2.8.8","@editorjs/paragraph":"^2.11.6","@editorjs/simple-image":"^1.4.1","@types/node":"^18.15.11","chai-subset":"^1.6.0","core-js":"3.30.0","cypress":"^13.13.3","cypress-intellij-reporter":"^0.0.7","cypress-plugin-tab":"^1.0.5","cypress-terminal-report":"^5.3.2","cypress-vite":"^1.5.0","eslint":"^8.37.0","eslint-config-codex":"^1.7.1","eslint-plugin-chai-friendly":"^0.7.2","eslint-plugin-cypress":"2.12.1","html-janitor":"^2.0.4","nanoid":"^4.0.2","postcss-apply":"^0.12.0","postcss-nested":"4.1.2","postcss-preset-env":"^8.3.0","rollup-plugin-license":"^3.0.1","stylelint":"^15.4.0","tslint":"^6.1.1","typescript":"5.0.3","vite":"^4.2.1","vite-plugin-css-injected-by-js":"^3.1.0"},"collective":{"type":"opencollective","url":"https://opencollective.com/editorjs"},"dependencies":{"@editorjs/caret":"^1.0.1","codex-notifier":"^1.1.2","codex-tooltip":"^1.0.5"},"_id":"@alexgaillard88/editorjs@2.31.2-hotfix.0","gitHead":"c68ae54c77a402f124ecabc2872372f0fa18b257","bugs":{"url":"https://github.com/AlexGaillard/editor.js/issues"},"homepage":"https://github.com/AlexGaillard/editor.js#readme","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-WZ2E/EkMvB67eDEyr8hUxyqFyMYn9XqUp3ctHpQir8hDB766ilc/maYyIxK+b9i5Wfr5lPDAdOvMdTUZpLYVmA==","shasum":"d7fbc7cbc10dad0aa184fd2a5dd041b2b60faa42","tarball":"https://registry.npmjs.org/@alexgaillard88/editorjs/-/editorjs-2.31.2-hotfix.0.tgz","fileCount":69,"unpackedSize":742423,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCj3fFDPJeleErk1wpjU9c+lxOLIjFaepF5ANYxSnqpewIhALWzKRfqC3cuI17F2jyVnmrM9ce44XhL9+aEZIOF6wE4"}]},"_npmUser":{"name":"alexgaillard88","email":"alex@directus.io"},"directories":{},"maintainers":[{"name":"alexgaillard88","email":"alex@directus.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/editorjs_2.31.2-hotfix.0_1769030282797_0.93450425501254"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-21T21:18:02.735Z","2.31.2-hotfix.0":"2026-01-21T21:18:02.994Z","modified":"2026-01-21T21:18:03.155Z"},"maintainers":[{"name":"alexgaillard88","email":"alex@directus.io"}],"description":"Editor.js — open source block-style WYSIWYG editor with JSON output","homepage":"https://github.com/AlexGaillard/editor.js#readme","keywords":["codex editor","text editor","editor","editor.js","editorjs","wysiwyg"],"repository":{"type":"git","url":"git+https://github.com/AlexGaillard/editor.js.git"},"author":{"name":"CodeX"},"bugs":{"url":"https://github.com/AlexGaillard/editor.js/issues"},"license":"Apache-2.0","readme":"<p align=\"center\">\n  <a href=\"https://editorjs.io/\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\"  srcset=\"./assets/logo_night.png\">\n      <source media=\"(prefers-color-scheme: light)\" srcset=\"./assets/logo_day.png\">\n      <img alt=\"Editor.js Logo\" src=\"./assets/logo_day.png\">\n    </picture>    \n  </a>\n</p>\n\n<p align=\"center\">\n <a href=\"https://editorjs.io/\">editorjs.io</a> |\n  <a href=\"https://editorjs.io/base-concepts/\">documentation</a> |\n  <a href=\"https://github.com/codex-team/editor.js/blob/next/docs/CHANGELOG.md\">changelog</a>\n  \n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@editorjs/editorjs\">\n    <img src=\"https://flat.badgen.net/npm/v/@editorjs/editorjs?icon=npm\" alt=\"npm\"/>\n  </a>\n  <a href=\"https://www.npmjs.com/package/@editorjs/editorjs\">\n    <img src=\"https://flat.badgen.net/bundlephobia/minzip/@editorjs/editorjs?color=green\" alt=\"Minzipped size\"/>\n  </a>\n  <a href=\"https://github.com/codex-team/editor.js#backers\">\n    <img src=\"https://opencollective.com/editorjs/backers/badge.svg\" alt=\"Backers on Open Collective\"/>\n  </a>\n  <a href=\"https://github.com/codex-team/editor.js#sponsors\">\n    <img src=\"https://opencollective.com/editorjs/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\"/>\n  </a>\n</p>\n\n## About\n\nEditor.js is an open-source text editor offering a variety of features to help users create and format content efficiently. It has a modern, block-style interface that allows users to easily add and arrange different types of content, such as text, images, lists, quotes, etc. Each Block is provided via a separate plugin making Editor.js extremely flexible.\n\nEditor.js outputs a clean JSON data instead of heavy HTML markup. Use it in Web, iOS, Android, AMP, Instant Articles, speech readers, AI chatbots — everywhere. Easy to sanitize, extend and integrate with your logic. \n\n- 😍  Modern UI out of the box\n- 💎  Clean JSON output\n- ⚙️  Well-designed API\n- 🛍  Various Tools available\n- 💌  Free and open source\n\n<picture>\n  <img alt=\"Editor.js Overview\" src=\"./assets/overview.png\">\n</picture>   \n\n## Installation\n\nIt's quite simple:\n\n1. Install Editor.js \n2. Install tools you need\n3. Initialize Editor's instance\n\nInstall using NPM, Yarn, or [CDN](https://www.jsdelivr.com/package/npm/@editorjs/editorjs):\n\n```bash\nnpm i @editorjs/editorjs\n```\n\nChoose and install tools:\n\n- [Heading](https://github.com/editor-js/header)\n- [Quote](https://github.com/editor-js/quote)\n- [Image](https://github.com/editor-js/image) \n- [Simple Image](https://github.com/editor-js/simple-image) (without backend requirement)\n- [Nested List](https://github.com/editor-js/nested-list)\n- [Checklist](https://github.com/editor-js/checklist)\n- [Link embed](https://github.com/editor-js/link)\n- [Embeds](https://github.com/editor-js/embed) (YouTube, Twitch, Vimeo, Gfycat, Instagram, Twitter, etc)\n- [Table](https://github.com/editor-js/table)\n- [Delimiter](https://github.com/editor-js/delimiter)\n- [Warning](https://github.com/editor-js/warning)\n- [Code](https://github.com/editor-js/code)\n- [Raw HTML](https://github.com/editor-js/raw)\n- [Attaches](https://github.com/editor-js/attaches)\n- [Marker](https://github.com/editor-js/marker)\n- [Inline Code](https://github.com/editor-js/inline-code)\n\nSee the [😎 Awesome Editor.js](https://github.com/editor-js/awesome-editorjs) list for more tools.\n\nInitialize the Editor:\n\n```html\n<div id=\"editorjs\"></div>\n```\n\n```javascript\nimport EditorJS from '@editorjs/editorjs'\n\nconst editor = new EditorJS({\n  tools: {\n   // ... your tools\n  }\n})\n````\n\nSee details about [Installation](https://editorjs.io/getting-started/) and [Configuration](https://editorjs.io/configuration/) at the documentation.\n\n### Saving Data\n\nCall `editor.save()` and handle returned Promise with saved data.\n\n```javascript\nconst data = await editor.save()\n```\n\n### Example\n\nTake a look at the [example.html](example/example.html) to view more detailed examples.\n\n\n## Roadmap\n\n<img align=\"right\" width=\"342\" src=\"./assets/roadmap.png\" style=\"margin-left: 30px\">\n\n- Unified Toolbars\n  - [x] Block Tunes moved left\n  - [x] Toolbox becomes vertical\n  - [x] Ability to display several Toolbox buttons by the single Tool\n  - [x] Block Tunes become vertical\n  - [x] Block Tunes support nested menus\n  - [x] Block Tunes support separators \n  - [x] Conversion Menu added to the Block Tunes\n  - [x] Unified Toolbar supports hints \n  - [x] Conversion Toolbar uses Unified Toolbar\n  - [x] Inline Toolbar uses Unified Toolbar\n- Collaborative editing\n  - [ ] Implement Inline Tools JSON format\n  - [ ] Operations Observer, Executor, Manager, Transformer\n  - [ ] Implement Undo/Redo Manager\n  - [ ] Implement Tools API changes\n  - [ ] Implement Server and communication\n  - [ ] Update basic tools to fit the new API\n- Other features\n  - [ ] Blocks drag'n'drop\n  - [ ] New cross-block selection\n  - [ ] New cross-block caret moving\n- Ecosystem improvements\n  - [x] CodeX Icons — the way to unify all tools and core icons\n  - [x] New Homepage and Docs\n  - [x] @editorjs/create-tool for Tools bootstrapping\n  - [ ] Editor.js DevTools — stand for core and tools development\n  - [ ] Editor.js Design System\n  - [ ] Editor.js Preset Env\n  - [ ] Editor.js ToolKit\n  - [ ] New core bundle system\n  - [ ] New documentation and guides\n\n<a href=\"https://opencollective.com/editorjs/donate\" target=\"_blank\">\n  <picture>\n    <source width=\"162px\" media=\"(prefers-color-scheme: dark)\"  srcset=\"./assets/support_night.png\">\n    <source width=\"162px\" media=\"(prefers-color-scheme: light)\" srcset=\"./assets/support_day.png\">\n    <img width=\"162px\" alt=\"Support Editor.js\" src=\"./assets/support_day.png\">\n  </picture>\n</a>\n\n<br>\n\n## Like Editor.js?\n\nYou can support project improvement and development of new features with a donation to our team.\n\n[Donate via OpenCollective](https://opencollective.com/editorjs)\n\\\n[Donate via Crypto](https://codex.so/donate)\n\\\n[Donate via Patreon](https://www.patreon.com/editorjs)\n\n### Why donate\n\nDonations to open-source products have several advantages for your business:\n\n- If your business relies on Editor.js, you'll probably want it to be maintained\n- It helps Editor.js to evolve and get the new features\n- We can support contributors and the community around the project. You'll receive well organized docs, guides, etc.\n- We need to pay for our infrastructure and maintain public resources (domain names, homepages, docs, etc). Supporting it guarantees you to access any resources at the time you need them.\n- You can advertise by adding your brand assets and mentions on our public resources\n\n\n### Sponsors\n\nSupport us by becoming a sponsor. Your logo will show up here with a link to your website.\n\n<p>\n  <a href=\"https://www.mister-auto.com/\" target=\"_blank\">\n    <img src=\"https://opencollective-production.s3.us-west-1.amazonaws.com/5131a030-5672-11ec-be79-1d003d12ec5f.png\" width=\"50\" alt=\"Mister Auto\">\n  </a>\n  <a href=\"https://www.uplucid.com/\" target=\"_blank\">\n    <img src=\"https://logo.clearbit.com/uplucid.com\" width=\"50\" alt=\"UPLUCID, K.K.\">\n  </a>\n  <a href=\"https://www.contentharmony.com/\" target=\"_blank\">\n    <img src=\"https://opencollective-production.s3.us-west-1.amazonaws.com/89edb1b0-7d82-11ed-b99e-ab6e6f9cb69f.png\" width=\"50\" alt=\"Kane Jamison\">\n  </a>\n  <a href=\"https://www.contentharmony.com/product/\" target=\"_blank\">\n    <img src=\"https://logo.clearbit.com/contentharmony.com\" width=\"50\" alt=\"Content Harmony\">\n  </a>\n</p>\n\n[Become a Sponsor](https://opencollective.com/editorjs/contribute/sir-8679/checkout)\n\n### Backers\n Thank you to all our backers\n\n<a href=\"https://opencollective.com/editorjs#backers\" target=\"_blank\"><img src=\"https://opencollective.com/editorjs/backers.svg?width=890&avatarHeight=34\"></a>\n\n[Become a Backer](https://opencollective.com/editorjs/contribute/backer-8632/checkout)\n\n### Contributors\n\nThis project exists thanks to all the people who contribute. \n\n<p><img src=\"https://opencollective.com/editorjs/contributors.svg?width=890&button=false&avatarHeight=34\" /></p>\n\n### Need something special?\n\nHire CodeX experts to resolve technical challenges and match your product requirements. \n\n- Resolve a problem that has high value for you\n- Implement a new feature required by your business\n- Help with integration or tool development\n- Provide any consultation\n\nContact us via team@codex.so and share your details\n\n## Community\n\n- [Official Tools](https://github.com/editor-js)\n- [Awesome Editor.js](https://github.com/editor-js/awesome-editorjs)\n- [Good First Tasks](https://github.com/codex-team/editor.js/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+task%22)\n- [Contributing](https://editorjs.io/contributing/)\n- [Telegram Chat](https://t.me/codex_editor)\n\n# About CodeX\n\n<img align=\"right\" width=\"120\" height=\"120\" src=\"https://codex.so/public/app/img/codex-logo.svg\" hspace=\"50\">\n\nCodeX is a team of digital specialists around the world interested in building high-quality open source products on a global market. We are [open](https://codex.so/join) for young people who want to constantly improve their skills and grow professionally with experiments in cutting-edge technologies.\n\n| 🌐 | Join  👋  | Twitter | Instagram |\n| -- | -- | -- | -- |\n| [codex.so](https://codex.so) | [codex.so/join](https://codex.so/join) |[@codex_team](http://twitter.com/codex_team) | [@codex_team](http://instagram.com/codex_team/) |\n","readmeFilename":"README.md","_rev":"1-613d5a0d073a4572380fbdb4a0946067"}