/tinymce

The world's most popular JavaScript library for rich text editing

Primary LanguageTypeScriptGNU Lesser General Public License v2.1LGPL-2.1

TinyMCE - JavaScript Library for Rich Text Editing

Building TinyMCE

Install Node.js on your system. Clone this repository on your system

$ git clone https://github.com/tinymce/tinymce.git

Open a console and go to the project directory.

$ cd tinymce/

Install grunt command line tool globally.

$ npm i -g grunt-cli

Install all package dependencies.

$ npm install

Now, build TinyMCE by using grunt.

$ grunt

Build tasks

grunt Lints, compiles, minifies and creates release packages for TinyMCE. This will produce the production ready packages.

grunt start Starts a webpack-dev-server that compiles the core, themes, plugins and all demos. Go to localhost:3000 for a list of links to all the demo pages.

grunt dev Runs tsc, webpack and less. This will only produce the bare essentials for a development build and is a lot faster.

grunt test Runs all tests on PhantomJS.

grunt bedrock-manual Runs all tests manually in a browser.

grunt bedrock-auto:<browser> Runs all tests through selenium browsers supported are chrome, firefox, ie, MicrosoftEdge, chrome-headless and phantomjs.

grunt webpack:core Builds the demo js files for the core part of tinymce this is required to get the core demos working.

grunt webpack:plugins Builds the demo js files for the plugins part of tinymce this is required to get the plugins demos working.

grunt webpack:themes Builds the demo js files for the themes part of tinymce this is required to get the themes demos working.

grunt webpack:<name>-plugin Builds the demo js files for the specific plugin.

grunt webpack:<name>-theme Builds the demo js files for the specific theme.

grunt --help Displays the various build tasks.

Bundle themes and plugins into a single file

grunt bundle --themes=modern --plugins=table,paste

Minifies the core, adds the modern theme and adds the table and paste plugin into tinymce.min.js.

Contributing to the TinyMCE project

TinyMCE is an open source software project and we encourage developers to contribute patches and code to be included in the main package of TinyMCE.

Basic Rules

  • Contributed code will be licensed under the LGPL license but not limited to LGPL
  • Copyright notices will be changed to Ephox Corporation, contributors will get credit for their work
  • All third party code will be reviewed, tested and possibly modified before being released
  • All contributors will have to have signed the Contributor License Agreement

These basic rules ensures that the contributed code remains open source and under the LGPL license.

How to Contribute to the Code

The TinyMCE source code is hosted on Github. Through Github you can submit pull requests and log new bugs and feature requests.

When you submit a pull request, you will get a notice about signing the Contributors License Agreement (CLA). You should have a valid email address on your GitHub account, and you will be sent a key to verify your identity and digitally sign the agreement.

After you signed your pull request will automatically be ready for review & merge.

How to Contribute to the Docs

Docs are hosted on Github in the tinymce-docs repo.

How to contribute to the docs, including a style guide, can be found on the TinyMCE website.