2.27.0 • Published 11 months ago

editorjs_forked v2.27.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
11 months ago

About

Editor.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.

Editor.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.

  • 😍  Modern UI out of the box
  • 💎  Clean JSON output
  • ⚙️  Well-designed API
  • 🛍  Various Tools available
  • 💌  Free and open source

Installation

It's quite simple:

  1. Install Editor.js
  2. Install tools you need
  3. Initialize Editor's instance

Install using NPM, Yarn, or CDN:

npm i @editorjs/editorjs

Choose and install tools:

See the 😎 Awesome Editor.js list for more tools.

Initialize the Editor:

<div id="editorjs"></div>
import EditorJS from '@editorjs/editorjs'

const editor = new EditorJS({
  tools: {
   // ... your tools
  }
})

See details about Installation and Configuration at the documentation.

Saving Data

Call editor.save() and handle returned Promise with saved data.

const data = await editor.save()

Example

Take a look at the example.html to view more detailed examples.

Roadmap

  • Unified Toolbox
    • Block Tunes moved left
    • Toolbox becomes vertical
    • Ability to display several Toolbox buttons by the single Tool
    • Block Tunes become vertical
    • Block Tunes support nested menus
    • Conversion Toolbar uses Unified Toolbox
    • Conversion Toolbar added to the Block Tunes
  • Collaborative editing
    • Implement Inline Tools JSON format
    • Operations Observer, Executor, Manager, Transformer
    • Implement Undo/Redo Manager
    • Implement Tools API changes
    • Implement Server and communication
    • Update basic tools to fit the new API
  • Other features
    • Blocks drag'n'drop
    • New cross-block selection
    • New cross-block caret moving
  • Ecosystem improvements
    • CodeX Icons — the way to unify all tools and core icons
    • New Homepage and Docs
    • @editorjs/create-tool for Tools bootstrapping
    • Editor.js DevTools — stand for core and tools development
    • Editor.js Design System
    • Editor.js Preset Env
    • Editor.js ToolKit
    • New core bundle system
    • New documentation and guides

Like Editor.js?

You can support project improvement and development of new features with a donation to our team.

Donate via OpenCollective \ Donate via Crypto \ Donate via Patreon

Why donate

Donations to open-source products have several advantages for your business:

  • If your business relies on Editor.js, you'll probably want it to be maintained
  • It helps Editor.js to evolve and get the new features
  • We can support contributors and the community around the project. You'll receive well organized docs, guides, etc.
  • 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.
  • You can advertise by adding your brand assets and mentions on our public resources

Sponsors

Support us by becoming a sponsor. Your logo will show up here with a link to your website.

Become a Sponsor

Backers

Thank you to all our backers

Become a Backer

Contributors

This project exists thanks to all the people who contribute.

Need something special?

Hire CodeX experts to resolve technical challenges and match your product requirements.

  • Resolve a problem that has high value for you
  • Implement a new feature required by your business
  • Help with integration or tool development
  • Provide any consultation

Contact us via team@codex.so and share your details

Community

About CodeX

CodeX is a team of digital specialists around the world interested in building high-quality open source products on a global market. We are open for young people who want to constantly improve their skills and grow professionally with experiments in cutting-edge technologies.

🌐Join 👋TwitterInstagram
codex.socodex.so/join@codex_team@codex_team
acornacorn-jsxaggregate-errorajvansi-colorsansi-escapesansi-regexansi-stylesanymatchappend-transformarcharchyargparsearray-find-indexarray-includesarray-unionarray.prototype.flatarrifyasn1assert-plusastral-regexasyncasynckitat-least-nodeautoprefixeravailable-typed-arraysaws-sign2aws4balanced-matchbase64-jsbcrypt-pbkdfbig.jsbinary-extensionsblob-utilbluebirdbrace-expansionbracesbrowser-stdoutbrowserslistbufferbuffer-crc32buffer-frombuiltin-modulesbuiltinscachedircaching-transformcall-bindcallsitescamelcasecamelcase-keyscaniuse-litecaselesschalkcharenccheck-more-typeschokidarci-infoclean-stackcli-cursorcli-table3cli-truncatecliuiclone-deepcolor-convertcolor-namecolordcolorettecombined-streamcommandercomment-parsercommentingcommon-tagscommondirconcat-mapconvert-source-mapcore-util-iscosmiconfigcross-spawncryptcss-blank-pseudocss-functions-listcss-has-pseudocss-prefers-color-schemecss-treecssdbcssescdashdashdayjsdebugdecamelizedecamelize-keysdeep-isdefault-require-extensionsdefine-propertiesdelayed-streamdiffdir-globdoctrineecc-jsbnelectron-to-chromiumemoji-regexemojis-listend-of-streamenquirererror-exes-abstractes-set-tostringtages-shim-unscopableses-to-primitivees6-erroresbuildescaladeescape-string-regexpeslint-config-standardeslint-import-resolver-nodeeslint-module-utilseslint-plugin-eseslint-plugin-importeslint-plugin-jsdoceslint-plugin-neslint-plugin-promiseeslint-plugin-standardeslint-scopeeslint-utilseslint-visitor-keysespreeesprimaesqueryesrecurseestraverseesutilseventemitter2execaexecutableextendextract-zipextsprintffast-deep-equalfast-globfast-json-stable-stringifyfast-levenshteinfastest-levenshteinfastqfd-slicerfiguresfile-entry-cachefill-rangefind-cache-dirfind-upflatflat-cacheflattedfor-eachforeground-childforever-agentform-datafraction.jsfromentriesfs-extrafs.realpathfunction-bindfunction.prototype.namefunctions-have-namesgensyncget-caller-fileget-intrinsicget-package-typeget-streamget-symbol-descriptiongetosgetpassglobglob-parentglobal-dirsglobal-modulesglobal-prefixglobalsglobalthisglobbyglobjoingopdgraceful-fsgrapheme-splitterhard-rejectionhashas-bigintshas-flaghas-property-descriptorshas-protohas-symbolshas-tostringtaghashahehosted-git-infohtml-escaperhtml-tagshttp-signaturehuman-signalsieee754ignoreimport-freshimport-lazyimurmurhashindent-stringindexes-ofinflightinheritsiniinternal-slotis-array-bufferis-arrayishis-bigintis-binary-pathis-boolean-objectis-bufferis-callableis-ciis-core-moduleis-date-objectis-extglobis-fullwidth-code-pointis-globis-installed-globallyis-negative-zerois-numberis-number-objectis-path-insideis-plain-objis-plain-objectis-regexis-shared-array-bufferis-streamis-stringis-symbolis-typed-arrayis-typedarrayis-unicode-supportedis-weakrefis-windowsisexeisobjectisstreamistanbul-lib-coverageistanbul-lib-hookistanbul-lib-instrumentistanbul-lib-processinfoistanbul-lib-reportistanbul-lib-source-mapsistanbul-reportsjs-sdsljs-tokensjs-yamljsbnjsdoc-type-pratt-parserjsescjson-parse-even-better-errorsjson-schemajson-schema-traversejson-stable-stringify-without-jsonifyjson-stringify-safejson5jsonfilejsprimkind-ofknown-css-propertieslazy-asslevnlines-and-columnslistr2loader-utilslocate-pathlodashlodash.flattendeeplodash.mergelodash.oncelodash.truncatelog-symbolslog-updatelru-cachemagic-stringmake-dirmap-objmathml-tag-namesmd5mdn-datameowmerge-streammerge2micromatchmime-dbmime-typesmimic-fnmin-indentminimatchminimistminimist-optionsmkdirpmomentmsnatural-comparenatural-compare-litenode-preloadnode-releasesnormalize-package-datanormalize-pathnormalize-rangenpm-run-pathnycobject-inspectobject-keysobject.assignobject.valuesonceonetimeoptionatorospathp-limitp-locatep-mapp-trypackage-hashpackage-name-regexparent-moduleparse-jsonpath-existspath-is-absolutepath-keypath-parsepath-typependperformance-nowpicocolorspicomatchpifypiratespkg-dirpostcsspostcss-attribute-case-insensitivepostcss-clamppostcss-color-functional-notationpostcss-color-hex-alphapostcss-color-rebeccapurplepostcss-custom-mediapostcss-custom-propertiespostcss-custom-selectorspostcss-dir-pseudo-classpostcss-double-position-gradientspostcss-focus-visiblepostcss-focus-withinpostcss-font-variantpostcss-gap-propertiespostcss-image-set-functionpostcss-initialpostcss-lab-functionpostcss-logicalpostcss-media-query-parserpostcss-nestingpostcss-opacity-percentagepostcss-overflow-shorthandpostcss-page-breakpostcss-placepostcss-pseudo-class-any-linkpostcss-replace-overflow-wrappostcss-resolve-nested-selectorpostcss-safe-parserpostcss-selector-notpostcss-selector-parserpostcss-value-parserprelude-lspretty-bytesprocess-on-spawnproxy-from-envpslpumppunycodeqsqueue-microtaskquick-lrurandombytesread-pkgread-pkg-upreaddirpredentregexp.prototype.flagsregexpprelease-zalgorequest-progressrequire-directoryrequire-from-stringrequire-main-filenameresolveresolve-fromrestore-cursorreusifyrfdcrimrafrolluprun-parallelrxjssafe-buffersafe-regex-testsafer-buffersemverserialize-javascriptset-blockingshallow-cloneshebang-commandshebang-regexside-channelsignal-exitslashslice-ansisource-mapsource-map-jssource-map-supportsourcemap-codecspawn-wrapspdx-comparespdx-correctspdx-exceptionsspdx-expression-parsespdx-expression-validatespdx-license-idsspdx-rangesspdx-satisfiessprintf-jssshpkstring-widthstring.prototype.trimendstring.prototype.trimstartstrip-ansistrip-bomstrip-final-newlinestrip-indentstrip-json-commentsstyle-searchsupports-colorsupports-hyperlinkssupports-preserve-symlinks-flagsvg-tagstabletest-excludetext-tablethrottleitthroughtmpto-fast-propertiesto-regex-rangetough-cookietrim-newlinestsconfig-pathstslibtsutilstunnel-agenttweetnacltype-checktype-festtyped-array-lengthtypedarray-to-bufferunbox-primitiveuniquniversalifyuntildifyupdate-browserslist-dburi-jsutil-deprecateuuidv8-compile-cachevalidate-npm-package-licenseverrorwebpack-virtual-moduleswhichwhich-boxed-primitivewhich-modulewhich-typed-arrayword-wrapworkerpoolwrap-ansiwrappywrite-file-atomicy18nyallistyargsyargs-parseryargs-unparseryauzlyocto-queue
2.27.0

11 months ago