An excellent WYSIWYG editor written in pure TypeScript without the use of additional libraries. Its file editor and image editor.
- Demo and Official site
- PRO Version
- Playground - play with options
- Documentation
- Download&Changes
- Changelog
- Examples
Download latest release or
npm install joditor
yarn add joditES5 Version
<linktype="text/css" rel="stylesheet" href="build/jodit.min.css"/><scripttype="text/javascript" src="build/jodit.min.js"></script>ES2018 Version (if your users use only modern browsers)
<linktype="text/css" rel="stylesheet" href="build/jodit.es2018.min.css"/><scripttype="text/javascript" src="build/jodit.es2018.min.js"></script><linkrel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jodit/3.4.25/jodit.min.css"/><scriptsrc="//cdnjs.cloudflare.com/ajax/libs/jodit/3.4.25/jodit.min.js"></script>And some <textarea> element
<textareaid="editor" name="editor"></textarea>After this, you can init Jodit plugin
vareditor=newJodit('#editor');editor.value='<p>start</p>';or
consteditor=Jodit.make('#editor');editor.value='<p>start</p>';With jQuery
$('textarea').each(function(){vareditor=newJodit(this);editor.value='<p>start</p>';});git clone https://github.com/xdan/jodit.git
cd jodit
npm installRun webpack Hot Reload server:
npm startDemo will be available here
http://localhost:2000/
Build min files:
npm run buildRun tests:
karma start --browsers ChromeHeadless,IE,Firefox karma.conf.jsor
npm testor
yarn testFor checking tests in browser, open URL:
http://localhost:2000/test/test.html
For testing FileBrowser and Uploader modules, need install PHP Connector
composer create-project --no-dev jodit/connectorRun test PHP server
php -S localhost:8181 -t ./and set options for Jodit:
vareditor=newJodit('#editor',{uploader: {url: 'http://localhost:8181/index-test.php?action=fileUpload'},filebrowser: {ajax: {url: 'http://localhost:8181/index-test.php'}}});Jodit.plugins.yourplugin=function(editor){editor.events.on('afterInit',function(){editor.s.insertHTMl('Text');});}vareditor=newJodit('.someselector',{extraButtons: [{name: 'insertDate',iconURL: 'http://xdsoft.net/jodit/logo.png',exec: function(editor){editor.s.insertHTML((newDate).toDateString());}}]})or
vareditor=newJodit('.someselector',{buttons: ['bold','insertDate'],controls: {insertDate: {name: 'insertDate',iconURL: 'http://xdsoft.net/jodit/logo.png',exec: function(editor){editor.s.insertHTML((newDate).toDateString());}}}})button with plugin
Jodit.plugins.add('insertText',function(editor){editor.events.on('someEvent',function(text){editor.s.insertHTMl('Hello '+text);});});// orJodit.plugins.add('textLength',{init(editor){constdiv=editor.create.div('jodit_div');editor.container.appendChild(div);editor.events.on('change.textLength',()=>{div.innerText=editor.value.length;});},destruct(editor){editor.events.off('change.textLength')}});// or use classJodit.plugins.add('textLength',classtextLength{init(editor){constdiv=editor.create.div('jodit_div');editor.container.appendChild(div);editor.events.on('change.textLength',()=>{div.innerText=editor.value.length;});}destruct(editor){editor.events.off('change.textLength')}});vareditor=newJodit('.someselector',{buttons: ['bold','insertText'],controls: {insertText: {iconURL: 'http://xdsoft.net/jodit/logo.png',exec: function(editor){editor.events.fire('someEvent','world!!!');}}}})- Internet Explorer 11
- Latest Chrome
- Latest Firefox
- Latest Safari
- Microsoft Edge
This project is maintained by a community of developers. Contributions are welcome and appreciated. You can find Jodit on GitHub; feel free to start an issue or create a pull requests: https://github.com/xdan/jodit
MIT
