Kaynağa Gözat

Merge branch 'master' into t/954

Piotrek Koszuliński 7 yıl önce
ebeveyn
işleme
050807a326

+ 21 - 1
CHANGELOG.md

@@ -1,13 +1,33 @@
 Changelog
 =========
 
+## [10.0.1](https://github.com/ckeditor/ckeditor5/compare/v10.0.0...v10.0.1) (2018-05-22)
+
+## Release notes
+
+We would like to announce the release of CKEditor 5 v10.0.1 that contains a security fix for the [Link package](http://npmjs.com/package/@ckeditor/ckeditor5-link), so an upgrade is highly recommended for all CKEditor 5 installations that include it. Additionally, this release fixes an issue with the decoupled editor that blocked enabling real-time collaboration in this editor.
+
+You can read more in the [blog post](https://ckeditor.com/blog/CKEditor-5-v10.0.1-released/).
+
+### Dependencies
+
+Patch releases (bug fixes, internal changes):
+
+* [@ckeditor/ckeditor5-build-balloon](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-balloon): v10.0.0 => [v10.0.1](https://github.com/ckeditor/ckeditor5-build-balloon/releases/tag/v10.0.1)
+* [@ckeditor/ckeditor5-build-classic](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-classic): v10.0.0 => [v10.0.1](https://github.com/ckeditor/ckeditor5-build-classic/releases/tag/v10.0.1)
+* [@ckeditor/ckeditor5-build-decoupled-document](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-decoupled-document): v10.0.0 => [v10.0.1](https://github.com/ckeditor/ckeditor5-build-decoupled-document/releases/tag/v10.0.1)
+* [@ckeditor/ckeditor5-build-inline](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-inline): v10.0.0 => [v10.0.1](https://github.com/ckeditor/ckeditor5-build-inline/releases/tag/v10.0.1)
+* [@ckeditor/ckeditor5-editor-decoupled](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-decoupled): v10.0.0 => [v10.0.1](https://github.com/ckeditor/ckeditor5-editor-decoupled/releases/tag/v10.0.1)
+* [@ckeditor/ckeditor5-link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link): v10.0.0 => [v10.0.1](https://github.com/ckeditor/ckeditor5-link/releases/tag/v10.0.1)
+
+
 ## [10.0.0](https://github.com/ckeditor/ckeditor5/compare/v1.0.0-beta.4...v10.0.0) (2018-04-25)
 
 ### Release notes
 
 The first stable release of CKEditor 5 🎉🎉🎉
 
-Blog post comming soon...
+You can read a summary blog post here: https://ckeditor.com/blog/CKEditor-5-v10.0.0-the-future-of-rich-text-editing-looks-stable/.
 
 PS. We decided to skip version numbers lower than v5.0.0 to avoid collisions with [CKEditor 3-4](http://github.com/ckeditor/ckeditor-dev).
 

+ 13 - 1
README.md

@@ -132,11 +132,11 @@ Read more on the [Support](https://docs.ckeditor.com/ckeditor5/latest/framework/
 
 The five latest releases:
 
+* [Security release – CKEditor 5 v10.0.1](https://github.com/ckeditor/ckeditor5/releases/tag/v10.0.1) (<time datetime="2018-05-22T12:04:45Z"><i>May 22, 2018</i></time>)
 * [First stable release – CKEditor 5 v10.0.0](https://github.com/ckeditor/ckeditor5/releases/tag/v10.0.0) (<time datetime="2018-04-25T14:12:00Z"><i>Apr 25, 2018</i></time>)
 * [Beta release of CKEditor 5 v1.0.0](https://ckeditor.com/blog/CKEditor-5-v1.0.0-beta-released/) (<time datetime="2018-04-10T12:12:00Z"><i>Apr 10, 2018</i></time>)
 * [Second alpha release of CKEditor 5 v1.0.0](https://ckeditor.com/blog/Second-alpha-release-of-CKEditor-5-v1.0.0/) (<time datetime="2017-11-14T12:52:18Z"><i>Nov 14, 2017</i></time>)
 * [First alpha release of CKEditor 5 v1.0.0](https://ckeditor.com/blog/First-alpha-release-of-CKEditor-5-v1.0.0/) (<time datetime="2017-10-03T13:09:29Z"><i>Oct 3, 2017</i></time>)
-* [11th developer preview of CKEditor 5](https://ckeditor.com/blog/11th-developer-preview-of-CKEditor-5-available/) (<time datetime="2017-09-03T19:35:48Z"><i>Sep 3, 2017</i></time>)
 
 For more CKEditor 5 release blog posts [browse the CKEditor blog](https://ckeditor.com/blog/?category=releases&tags=CKEditor-5).
 
@@ -510,6 +510,18 @@ For more CKEditor 5 release blog posts [browse the CKEditor blog](https://ckedit
 
 <tr>
 	<td>
+		<a href="https://github.com/ckeditor/ckeditor5-table"><code>@ckeditor/ckeditor5-table</code></a>
+	</td>
+	<td>
+		<a href="https://www.npmjs.com/package/@ckeditor/ckeditor5-table"><img src="https://img.shields.io/npm/v/@ckeditor/ckeditor5-table.svg" alt="@ckeditor/ckeditor5-table npm package badge"></a>
+	</td>
+	<td>
+		The table feature. Work in progress.
+	</td>
+</tr>
+
+<tr>
+	<td>
 		<a href="https://github.com/ckeditor/ckeditor5-typing"><code>@ckeditor/ckeditor5-typing</code></a>
 	</td>
 	<td>

+ 2 - 2
docs/framework/guides/architecture/ui-library.md

@@ -113,7 +113,7 @@ will result in:
 <input class="foo ck-enabled" type="text" placeholder="Type some text" />
 ```
 
-Alternatively, they can [bind](#event-system-and-observables) them directly to their own observable properties:
+Alternatively, they can {@link framework/guides/architecture/core-editor-architecture#event-system-and-observables bind} them directly to their own observable properties:
 
 ```js
 view.bind( 'placeholder', 'isEnabled' ).to( observable, 'placeholderText', 'isEnabled' );
@@ -154,7 +154,7 @@ view.element.placeholder = 'A new placeholder';
 	Check out the {@link module:ui/template~TemplateDefinition} to learn more about the template syntax and other advanced concepts.
 </info-box>
 
-Templates support [observable properties](#event-system-and-observables) bindings and handle native DOM events. A very simple template can look like this:
+Templates support {@link framework/guides/architecture/core-editor-architecture#event-system-and-observables observable properties} bindings and handle native DOM events. A very simple template can look like this:
 
 ```js
 new Template( {

+ 9 - 9
docs/framework/guides/contributing/development-environment.md

@@ -5,7 +5,7 @@ order: 10
 
 # Development environment
 
-The CKEditor 5 codebase is divided into multiple [npm](http://npmjs.com/) packages, each developed in a separate Git repository. The main package is [ckeditor5](https://github.com/ckeditor/ckeditor5) which installs all project dependencies and various development-related resources such as:
+The CKEditor 5 codebase is divided into multiple [npm](http://npmjs.com/) packages, each developed in a separate Git repository. The main package is [`ckeditor5`](https://github.com/ckeditor/ckeditor5) which installs all project dependencies and various development-related resources such as:
 
 * the testing environment setup,
 * configuration for [mgit](https://www.npmjs.com/package/mgit2) (a multi-repo management tool) and [Lerna.js](https://github.com/lerna/lerna) (a multi-package management tool),
@@ -57,7 +57,7 @@ This may take a [while](https://github.com/npm/npm/issues/10380)...
 
 ### Switching to development version of packages
 
-The above steps should install all the packages from npm, which means that you will have the latest releases of all of them. They are available in `node_modules/@ckeditor/` (we are using [scoped packages](https://docs.npmjs.com/misc/scope), hence the unusual directory).
+The steps above should install all the packages from npm, which means that you will have the latest releases of all of them. They are available in `node_modules/@ckeditor/` (we are using [scoped packages](https://docs.npmjs.com/misc/scope), hence the unusual directory).
 
 In order to work with development versions of all the official packages, it is recommended to use mgit and Lerna. The former will clone all package repositories and the latter will be able to symlink them, so they create a correct directory structure, understandable by Node.js-compliant tools (like webpack or Browserify).
 
@@ -87,7 +87,7 @@ lerna bootstrap
 
 Running Lerna may take a while because it installs all package dependencies. It will also warn you about circular dependencies between packages which you can ignore.
 
-Now, all CKEditor packages (except the [dev tools](https://github.com/ckeditor/ckeditor5-dev)) should be cross-symlinked:
+Now, all CKEditor packages (except the [development tools](https://github.com/ckeditor/ckeditor5-dev)) should be cross-symlinked:
 
 ```bash
 (master 340feac) p@m /workspace/ckeditor5> ls -la node_modules/\@ckeditor/ckeditor5-utils/node_modules/\@ckeditor/
@@ -135,7 +135,7 @@ If you are developing custom packages or forked any of the official packages and
 
 ### Troubleshooting problems with Lerna
 
-Lerna does pretty complicated things on already complicated npm ecosystem. If you happen to run into some issues when calling `lerna bootstrap`, here are some tips:
+Lerna does pretty complicated things on an already complicated npm ecosystem. If you happen to run into some issues when calling `lerna bootstrap`, here are some tips:
 
 * Look for `npm-debug.log` files in the main package and subpackages. They may point to an obvious issue like a typo in some `package.json`.
 * Sometimes repeating `lerna bootstrap` may help.
@@ -143,7 +143,7 @@ Lerna does pretty complicated things on already complicated npm ecosystem. If yo
 
 ### Final word about mgit and Lerna
 
-Besides the already mentioned features, mgit allows you to [execute shell commands](https://github.com/cksource/mgit2#exec) on all packages (e.g. check their status). It has been developed by the [CKSource team](https://cksource.com) and we are relying on it heavily, hence you can expect more features and improvements to come. However, it is not a CKEditor-specific tool and should be suitable for any multi-repo project (though it best fits JavaScript projects).
+Besides the already mentioned features, mgit allows you to [execute shell commands](https://github.com/cksource/mgit2#exec) on all packages (e.g. check their status). It has been developed by the [CKSource team](https://cksource.com/) and we are relying on it heavily, hence you can expect more features and improvements to come. However, it is not a CKEditor-specific tool and should be suitable for any multi-repository project (though it best fits JavaScript projects).
 
 Lerna is a tool used by many well-known projects such as [Babel.js](https://github.com/babel/babel). It has an amazing community and, relying on it ourselves, we hope that it will become a standard for managing multi-package projects.
 
@@ -171,7 +171,7 @@ To create a server for manual tests use the `test:manual` task:
 npm run test:manual
 ```
 
-It accepts the `--source-map` (`-s`) option. Note that it watches for changes only in the JavaScript files (see the [bug](https://github.com/ckeditor/ckeditor5-dev/issues/52)).
+It accepts the `--source-map` (`-s`) option. Note that it watches for changes in the JavaScript files only (see the [bug](https://github.com/ckeditor/ckeditor5-dev/issues/52)).
 
 You can read more about the {@link framework/guides/contributing/testing-environment Testing environment}.
 
@@ -187,9 +187,9 @@ The documentation will be available in `build/docs/`.
 
 This task accepts two arguments which can speed up the process:
 
-* `--skip-api` &ndash; Skips building API docs (which takes the majority of the total time).
+* `--skip-api` &ndash; Skips building the API documentation (which takes the majority of the total time).
 * `--skip-snippets` &ndash; Skips building live snippets.
-* `--skip-validation` &ndash; Skips the final links validation.
+* `--skip-validation` &ndash; Skips the final link validation.
 
 Note: These arguments must be passed after additional `--`: `npm run docs -- --skip-api`.
 
@@ -197,7 +197,7 @@ Note: These arguments must be passed after additional `--`: `npm run docs -- --s
 
 CKEditor 5 is a multi-repository project. It means that [`git bisect`](https://git-scm.com/docs/git-bisect) (which is super handy when tracking which commit introduced a bug) will not work out of the box.
 
-Fortunately, every commit made to any of `master` branches of all CKEditor 5 subpackages will update this subpackage's hash in `mgit.json` in the [`master-revisions`](https://github.com/ckeditor/ckeditor5/commits/master-revisions) branch.
+Fortunately, every commit made to any of the `master` branches of all CKEditor 5 subpackages will update this subpackage's hash in `mgit.json` in the [`master-revisions`](https://github.com/ckeditor/ckeditor5/commits/master-revisions) branch.
 
 Thanks to that, `master-revisions` contains an ordered history of all changes which makes it possible to go back to any point in history:
 

+ 3 - 3
docs/framework/guides/contributing/git-commit-message-convention.md

@@ -5,7 +5,7 @@ order: 30
 
 # Git commit message convention
 
-Every commit made *directly* to the `master` branch must follow the below convention. Based on commits in the `master` branch CKEditor 5's release tools will generate changelog entries for the current release.
+Every commit made *directly* to the `master` branch must follow the below convention. Based on commits in the `master` branch CKEditor 5 release tools will generate changelog entries for the current release.
 
 <info-box>
 	Commits in the ticket branches are not analyzed for the changelog and do not have to follow any specific convention (other than finishing sentences with periods). In case of ticket branches, **only merge commits are analyzed**.
@@ -42,7 +42,7 @@ BREAKING CHANGE: Another breaking change if needed. Closes #YYY.
 | Revert | `patch` | Revert of some commit. | Hidden |
 | Release | `patch` | A special type of commit used by the release tools. | Hidden |
 
-Each commit can contain additional notes which will be inserted to the changelog:
+Each commit can contain additional notes which will be inserted into the changelog:
 
 | Type | Is backward compatible? |
 | --- | --- |
@@ -124,7 +124,7 @@ Changelog
 
 When making a pull request its author may (it is recommended in the pull request template) propose a merge commit message.
 
-The reviewer's duty is to validate the proposed message and apply necessary changes (the PR's description can be edited).
+The reviewer's duty is to validate the proposed message and apply necessary changes (the PR description can be edited).
 
 Things like:
 

+ 7 - 7
docs/framework/guides/contributing/testing-environment.md

@@ -52,7 +52,7 @@ In order to start the manual tests server use the `npm run test:manual` task.
 
 The task accepts the `--source-map` (alias `-s`) option.
 
-It starts a server available at http://localhost:8125.
+It starts the server available at http://localhost:8125.
 
 ### Creating a manual test
 
@@ -60,7 +60,7 @@ A manual test consists of 3 files:
 
 * A `<name>.md` file with the test description.
 * A `<name>.js` file with the JavaScript part of the test (e.g. the code initializing an editor).
-* A `<name>.html` file with the HTML part of the test. It does not need to be an entire HTML page (with the doctype, etc.), it can be just these HTML elements which you want to define.
+* A `<name>.html` file with the HTML part of the test. It does not need to be an entire HTML page (with the doctype, etc.), it can be just these HTML elements that you want to define.
 
 All 3 files are combined together and create a single manual test.
 
@@ -84,7 +84,7 @@ Example HTML file:
     <style>
         /*
           Some additional styles which this test needs.
-          And yes – the test builder will merge this tag with head defined in a template.
+          And yes – the test builder will merge this tag with the head defined in a template.
         */
     </style>
 </head>
@@ -92,7 +92,7 @@ Example HTML file:
 <div id="editor">...</div>
 ```
 
-Example JS file:
+Example JavaScript file:
 
 ```js
 /* globals console, window, document */
@@ -119,10 +119,10 @@ ClassicEditor
 
 ## Test suite and CI
 
-To ensure the highest quality, we maintain a complete test suite with a stable 100% of code coverage for each of the packages. As of December 2017, this means over 7000 tests and the number is growing. Since every package is tested separately, we implement lower-level tests for libraries and higher-level tests for end-user features.
+To ensure the highest quality, we maintain a complete test suite with a stable 100% of code coverage for each of the packages. As of May 2018, this means over 8000 tests and the number is growing. Since every package is tested separately, we implement lower-level tests for libraries and higher-level tests for end-user features.
 
 Such an extensive test suite requires a proper continuous integration service. We use [Travis CI](https://travis-ci.com/) as a build platform and [BrowserStack](https://www.browserstack.com/) to be able to run tests on all browsers. These services ensure seamless and fast developer experience and allow us to focus on the job.
 
-Besides automated tests, we also maintain a smaller set of manual tests. They help us to verify whether something unexpected happens that might have been missed by the automated tests.
+Besides automated tests, we also maintain a smaller set of manual tests. They help us verify whether something unexpected happens that might have been missed by the automated tests.
 
-When proposing a pull request make sure to add test(s) which verifies it. Every code change should be accompanied by a test which proves that it is needed. Such a strict approach to testing ensures that not only we have 100% of code coverage (which is quite easy to achieve and gives only an illusory safety) but also a high level of coverage for cases which we failed to notice initially (and might do that again in the future).
+When proposing a pull request make sure to add test(s) which verifies it. Every code change should be accompanied by a test which proves that it is needed. Such a strict approach to testing ensures that we have not only 100% of code coverage (which is quite easy to achieve and gives only illusory safety) but also a high level of coverage for cases which we failed to notice initially (and might do that again in the future).

+ 13 - 11
docs/framework/guides/overview.md

@@ -5,7 +5,7 @@ order: 10
 
 # Overview
 
-CKEditor 5 is a project that allows you to quickly and easily initialize one of the many types of editors it offers in your application. At the same time, it is a framework for creating custom tailored rich text editing solutions. The former requirement is met thanks to {@link builds/guides/overview CKEditor 5 Builds}. The latter &mdash; thanks to CKEditor 5 Framework.
+CKEditor 5 is a project that allows you to quickly and easily initialize one of the many types of editors it offers in your application. At the same time, it is a framework for creating custom-tailored rich-text editing solutions. The former requirement is met thanks to {@link builds/guides/overview CKEditor 5 Builds}. The latter &mdash; thanks to CKEditor 5 Framework.
 
 This guide explains how the framework is built and how to start using it.
 
@@ -15,29 +15,31 @@ This guide explains how the framework is built and how to start using it.
 
 * **Writing your own features.** Features are implemented using the framework.
 * **Customizing existing features.** Changing the behavior or look of existing features can be done using the framework capabilities.
-* **Creating new types of editors.** You can create new types of editors using the framework.
+* **Creating new types of editors.** You can create new editor types using the framework.
 
 To sum up: you need to start using the framework as soon as existing builds do not meet your requirements or cannot be customized to the extent you want.
 
 ## Design
 
-The framework was designed to be a highly flexible and universal platform for creating custom rich text editing solutions. At the same time it meets several goals that make implementing features as easy a task as possible.
+The framework was designed to be a highly flexible and universal platform for creating custom rich-text editing solutions. At the same time it meets several goals that make implementing features as easy a task as possible.
 
-* **Plugin-based architecture.** Everything is a plugin &mdash; even such crucial features as support for typing or `<p>` elements. You can remove plugins or replace with your own implementations to achieve fully customized results.
-* **Universal core.** The core makes minimal assumptions and can be controlled through the schema. This leaves all decisions to plugins and hence to you.
-* **Collaboration-ready editing engine.** The editing engine implements [Operational Transformation](https://en.wikipedia.org/wiki/Operational_transformation) algorithms which, accompanied with additional mechanisms, allows to implement real-time collaboration.
-* **Custom data model.** The editing engine implements a custom data model, designed to best fit multiple requirements such as enabling real-time collaboration and complex editing features.
-* **Virtual DOM.** The editing engine features a custom, editing-oriented virtual DOM implementation that aims to hide browser quirks from your sight.
+* **Plugin-based architecture.** Everything is a plugin &mdash; even such crucial features as support for typing or `<p>` elements. You can remove plugins or replace them with your own implementations to achieve fully customized results.
+* **Schema-less core.** The core makes minimal assumptions and can be controlled through the schema. This leaves all decisions to plugins and hence to you.
+* **Collaboration-ready.** Or rather, real-time collaboration is **ready for you to use**! The editor implements [Operational Transformation](https://en.wikipedia.org/wiki/Operational_transformation) for the tree-structured model as well as many other mechanisms which were required to create a seamless collaborative UX. Additionally, we provide cloud infrastructure and plugins enabling real-time collaborative editing in your application!
+* **Custom data model.** The editing engine implements a tree-structured custom data model, designed to fit multiple requirements such as enabling real-time collaboration and complex editing features (like tables or nested blocks).
+* **Virtual DOM.** The editing engine features a custom, editing-oriented virtual DOM implementation that aims to hide browser quirks from your sight. **No more `contentEditable` nightmares!**
 * **Granular, reusable features.** Features are implemented in a granular way. This allows for reusing and recomposing them which, in turn, makes it possible to customize and extend the editor. For instance, the {@link features/image image feature} consists of over 10 plugins at the moment.
-* **Extensibility.** The entire editor architecture was designed for maximum flexibility. The code is event-based and highly decoupled, allowing you to plug in or replace pieces that you want to change. Features know minimum about themselves and communicate in standardized ways.
+* **Extensibility.** The entire editor architecture was designed for maximum flexibility. The code is event-based and highly decoupled, allowing you to plug in or replace selected pieces. Features do not directly depend on one another and communicate in standardized ways.
+* **A beautiful UI.** Text editing is not only about typing &mdash; your users will need a UI to create links or manage images. We believe that a proper UX needs to be carefully designed and we did not skip this part. Having second thoughts about the proposed UI? No problem at all! You can always create your custom interface for CKEditor 5 thanks to its decoupled UI.
 * **Quality.** All official packages have extensive tests suites (100% code coverage is merely a step to that). All code has extensive {@link api/index API documentation}.
 * **Minimal configuration.** To avoid bloat, features have minimal configuration. Deeper changes in their behavior can be done by recomposing them with custom features.
+* **8+ years of support.** It is not yet another framework to be gone next year or a hyped proof-of-concept to fail in a real-life scenario. We have over 15 years of experience in creating rich-text editors and invested over 4 years in designing and building your next future-proof rich-text editor of choice.
 
 ## Framework structure
 
-The framework is made of several [npm packages](https://npmjs.com). Every package is developed in its own repository, making CKEditor 5 a multi-repository project. The main repository that glues all of them and contains CKEditor 5 development environment is https://github.com/ckeditor/ckeditor5.
+The framework is made of several [npm packages](https://npmjs.com). Every package is developed in its own repository, making CKEditor 5 a multi-repository project. The main repository that glues all of them and contains the CKEditor 5 development environment is https://github.com/ckeditor/ckeditor5.
 
-The full list of official packages which make the framework is available in the [main repository's README](https://github.com/ckeditor/ckeditor5#packages).
+A complete list of official packages that constitute the framework is available in the [main repository's README](https://github.com/ckeditor/ckeditor5#packages).
 
 There are a few groups of packages:
 

+ 8 - 8
docs/framework/guides/quick-start.md

@@ -60,14 +60,14 @@ module.exports = {
 		rules: [
 			{
 				// Or /ckeditor5-[^/]+\/theme\/icons\/[^/]+\.svg$/ if you want to limit this loader
-				// to CKEditor 5's icons only.
+				// to CKEditor 5 icons only.
 				test: /\.svg$/,
 
 				use: [ 'raw-loader' ]
 			},
 			{
 				// Or /ckeditor5-[^/]+\/theme\/[^/]+\.css$/ if you want to limit this loader
-				// to CKEditor 5's theme only.
+				// to CKEditor 5 theme only.
 				test: /\.css$/,
 				use: [
 					{
@@ -95,7 +95,7 @@ module.exports = {
 };
 ```
 
-Now, you can install some of the CKEditor 5 Framework packages which will allow you initialize a simple editor. You can start with the {@link examples/builds/classic-editor classic editor} with a small set of features.
+You can now install some of the CKEditor 5 Framework packages which will allow you to initialize a simple editor. You can start with the {@link examples/builds/classic-editor classic editor} with a small set of features.
 
 ```bash
 npm install --save \
@@ -114,7 +114,7 @@ Based on these packages you can create a simple application.
 </info-box>
 
 <info-box warning>
-	Note that in this guide we use the editor class directly (i.e. we use `@ckeditor/ckeditor5-editor-classic` instead of `@ckeditor/ckeditor5-build-classic`).
+	Note that in this guide the editor class is used directly (i.e. we use `@ckeditor/ckeditor5-editor-classic` instead of `@ckeditor/ckeditor5-build-classic`).
 
 	We do not use any of the {@link builds/guides/overview builds} because adding new plugins to them requires rebuilding them anyway. This can be done by {@link builds/guides/development/installing-plugins customizing a build} or by including CKEditor 5 source into your application (like in this guide).
 </info-box>
@@ -211,7 +211,7 @@ After you initilized the editor from source, you are ready to create your first
 
 CKEditor plugins need to implement the {@link module:core/plugin~PluginInterface}. The easiest way to do that is to inherit from the {@link module:core/plugin~Plugin base `Plugin` class}, however, you can also write simple constructor functions. This guide uses the former method.
 
-The plugin that you will write will use a part of the {@link features/image image feature} and will add a simple UI to it &mdash; an "Insert image" button, which will open a prompt window asking for the image URL when clicked. Submitting the URL will result in inserting the image into the content and selecting it.
+The plugin that you will write will use a part of the {@link features/image image feature} and will add a simple UI to it &mdash; an "Insert image" button that will open a prompt window asking for the image URL when clicked. Submitting the URL will result in inserting the image into the content and selecting it.
 
 ### Step 1. Installing dependencies
 
@@ -250,7 +250,7 @@ ClassicEditor
 	// ...
 ```
 
-Save the file and run webpack. Refresh the page in your browser (**remember about the cache**) and... you should not see any changes. Right! The core of the image feature does not come with any UI, nor have you added any image to the initial HTML. Change this now:
+Save the file and run webpack. Refresh the page in your browser (**remember about the cache**) and... you should not see any changes. This is correct! The core of the image feature does not come with any UI, nor have you added any image to the initial HTML. Change this now:
 
 ```html
 <div id="editor">
@@ -285,7 +285,7 @@ class InsertImage extends Plugin {
 And add your new plugin to the `config.plugins` array. After rebuilding the application and refreshing the page you should see "InsertImage was initialized" logged to the console.
 
 <info-box hint>
-	It was said that your `InsertImage` plugin relies on the image feature represented here by the `Image` plugin. You could add the `Image` plugin as a {@link module:core/plugin~PluginInterface#requires dependency} of your `InsertImage` plugin. This would make the editor initialize `Image` automatically before initializing `InsertImage`, so you would be able to remove `Image` from `config.plugins`.
+	It was said that your `InsertImage` plugin relies on the image feature represented here by the `Image` plugin. You could add the `Image` plugin as a {@link module:core/plugin~PluginInterface#requires dependency} of the `InsertImage` plugin. This would make the editor initialize `Image` automatically before initializing `InsertImage`, so you would be able to remove `Image` from `config.plugins`.
 
 	However, this means that your plugin would be coupled with the `Image` plugin. This is unnecessary &mdash; they do not need to know about each other. And while it does not change anything in this simple example, it is a good practice to keep plugins as decoupled as possible.
 </info-box>
@@ -341,7 +341,7 @@ Rebuild the application and refresh the page. You should see a new button in the
 
 ### Step 4. Inserting a new image
 
-Now, let's expand the button's `#execute` event listener, so it will actually insert new image into the content:
+Now, expand the button's `#execute` event listener, so it will actually insert a new image into the content:
 
 ```js
 class InsertImage extends Plugin {

+ 1 - 0
mgit.json

@@ -30,6 +30,7 @@
     "@ckeditor/ckeditor5-list": "ckeditor/ckeditor5-list",
     "@ckeditor/ckeditor5-markdown-gfm": "ckeditor/ckeditor5-markdown-gfm",
     "@ckeditor/ckeditor5-paragraph": "ckeditor/ckeditor5-paragraph",
+    "@ckeditor/ckeditor5-table": "ckeditor/ckeditor5-table",
     "@ckeditor/ckeditor5-theme-lark": "ckeditor/ckeditor5-theme-lark",
     "@ckeditor/ckeditor5-typing": "ckeditor/ckeditor5-typing",
     "@ckeditor/ckeditor5-ui": "ckeditor/ckeditor5-ui",

+ 9 - 8
package.json

@@ -1,6 +1,6 @@
 {
   "name": "ckeditor5",
-  "version": "10.0.0",
+  "version": "10.0.1",
   "description": "The development environment of CKEditor 5.",
   "keywords": [
     "CKEditor",
@@ -29,17 +29,17 @@
     "@ckeditor/ckeditor5-autoformat": "^10.0.0",
     "@ckeditor/ckeditor5-basic-styles": "^10.0.0",
     "@ckeditor/ckeditor5-block-quote": "^10.0.0",
-    "@ckeditor/ckeditor5-build-balloon": "^10.0.0",
-    "@ckeditor/ckeditor5-build-classic": "^10.0.0",
-    "@ckeditor/ckeditor5-build-decoupled-document": "^10.0.0",
-    "@ckeditor/ckeditor5-build-inline": "^10.0.0",
+    "@ckeditor/ckeditor5-build-balloon": "^10.0.1",
+    "@ckeditor/ckeditor5-build-classic": "^10.0.1",
+    "@ckeditor/ckeditor5-build-decoupled-document": "^10.0.1",
+    "@ckeditor/ckeditor5-build-inline": "^10.0.1",
     "@ckeditor/ckeditor5-clipboard": "^10.0.0",
     "@ckeditor/ckeditor5-cloud-services": "^10.0.0",
     "@ckeditor/ckeditor5-core": "^10.0.0",
     "@ckeditor/ckeditor5-easy-image": "^10.0.0",
     "@ckeditor/ckeditor5-editor-balloon": "^10.0.0",
     "@ckeditor/ckeditor5-editor-classic": "^10.0.0",
-    "@ckeditor/ckeditor5-editor-decoupled": "^10.0.0",
+    "@ckeditor/ckeditor5-editor-decoupled": "^10.0.1",
     "@ckeditor/ckeditor5-editor-inline": "^10.0.0",
     "@ckeditor/ckeditor5-engine": "^10.0.0",
     "@ckeditor/ckeditor5-enter": "^10.0.0",
@@ -48,10 +48,11 @@
     "@ckeditor/ckeditor5-heading": "^10.0.0",
     "@ckeditor/ckeditor5-highlight": "^10.0.0",
     "@ckeditor/ckeditor5-image": "^10.0.0",
-    "@ckeditor/ckeditor5-link": "^10.0.0",
+    "@ckeditor/ckeditor5-link": "^10.0.1",
     "@ckeditor/ckeditor5-list": "^10.0.0",
     "@ckeditor/ckeditor5-markdown-gfm": "^10.0.0",
     "@ckeditor/ckeditor5-paragraph": "^10.0.0",
+    "@ckeditor/ckeditor5-table": "^0.0.1",
     "@ckeditor/ckeditor5-theme-lark": "^10.0.0",
     "@ckeditor/ckeditor5-typing": "^10.0.0",
     "@ckeditor/ckeditor5-ui": "^10.0.0",
@@ -80,7 +81,7 @@
     "postcss-loader": "^2.0.10",
     "raw-loader": "^0.5.1",
     "style-loader": "^0.20.3",
-    "umberto": "^0.4.3",
+    "umberto": "^0.5.0",
     "webpack": "^3.11.0",
     "webpack-sources": "1.0.1"
   },