Browse Source

Merge branch 'master' into t/ckeditor5-highlight/3

Aleksander Nowodzinski 8 years ago
parent
commit
761a1b831a

+ 2 - 3
.github/ISSUE_TEMPLATE.md

@@ -1,7 +1,6 @@
-## 🐞 Is this a bug report or feature request? (choose one)
+## Is this a bug report or feature request? (choose one)
 
 
-- Bug report
-- Feature request
+🐞 Bug report  |  🆕 Feature request  |  Other
 
 
 ## 💻 Version of CKEditor
 ## 💻 Version of CKEditor
 
 

+ 3 - 3
README.md

@@ -41,9 +41,9 @@ CKEditor 5 Builds are a set of ready to use rich text editors. Every "build" pro
 
 
 The following CKEditor 5 Builds are currently available:
 The following CKEditor 5 Builds are currently available:
 
 
-* [Classic editor](https://docs.ckeditor.com/ckeditor5/latest/builds/guides/overview.html#Classic-editor)
-* [Inline editor](https://docs.ckeditor.com/ckeditor5/latest/builds/guides/overview.html#Inline-editor)
-* [Balloon editor](https://docs.ckeditor.com/ckeditor5/latest/builds/guides/overview.html#Balloon-editor)
+* [Classic editor](https://docs.ckeditor.com/ckeditor5/latest/builds/guides/overview.html#classic-editor)
+* [Inline editor](https://docs.ckeditor.com/ckeditor5/latest/builds/guides/overview.html#inline-editor)
+* [Balloon editor](https://docs.ckeditor.com/ckeditor5/latest/builds/guides/overview.html#balloon-editor)
 
 
 #### Example
 #### Example
 
 

+ 7 - 0
docs/_snippets/examples/custom-build.html

@@ -0,0 +1,7 @@
+<div id="snippet-custom-build">
+	<p>Best time to visit the city is <i>July and August</i>, when it’s cool enough to <u>not</u> break a sweat and hot enough to <mark class="marker-yellow">enjoy summer</mark>. The city which has quite a combination of both old and modern textures is located by the river of <code>Vistula</code>.</p>
+
+	<p>The historic <strong>Old Town</strong>, which was <mark class="pen-red"><s>reconstructed</s></mark> after the World War II, with its late <code>18th</code> century characteristics, is a must-see. You can start your walk from the <strong>Nowy Świat Street</strong> which will take you straight to the Old Town.</p>
+
+	<p>Then you can go to the <strong>Powiśle</strong> area and take a walk on the newly renovated promenade on the riverfront. There are also lots of cafes, bars and restaurants where you can shake off the exhaustion of the day. On Sundays, there are many parks where you can enjoy nature or <u>listen to pianists</u> from around the world playing Chopin.</p>
+</div>

+ 42 - 0
docs/_snippets/examples/custom-build.js

@@ -0,0 +1,42 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* globals console, window, document */
+
+import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
+import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';
+import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
+import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline';
+import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough';
+import Code from '@ckeditor/ckeditor5-basic-styles/src/code';
+import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight';
+
+import { TOKEN_URL } from '@ckeditor/ckeditor5-cloudservices/tests/_utils/cloudservices-config';
+
+ClassicEditor
+	.create( document.querySelector( '#snippet-custom-build' ), {
+		plugins: [
+			Essentials,
+			Paragraph,
+			Bold,
+			Italic,
+			Underline,
+			Strikethrough,
+			Code,
+			Highlight
+		],
+		toolbar: [ 'bold', 'italic', 'underline', 'strikethrough', 'code', '|', 'highlightDropdown', '|', 'undo', 'redo' ],
+		cloudServices: {
+			tokenUrl: TOKEN_URL
+		}
+	} )
+	.then( editor => {
+		window.editor = editor;
+	} )
+	.catch( err => {
+		console.error( err );
+	} );

+ 2 - 2
docs/builds/guides/development/custom-builds.md

@@ -16,7 +16,7 @@ Some of the reasons for creating custom builds are:
 
 
 * Adding features which are not included in the existing builds, either from a third party or custom developed.
 * Adding features which are not included in the existing builds, either from a third party or custom developed.
 * Removing unnecessary features present in a build.
 * Removing unnecessary features present in a build.
-* Changing the {@link builds/guides/integration/basic-api#Creators editor creator}.
+* Changing the {@link builds/guides/integration/basic-api#creators editor creator}.
 * Changing the {@link framework/guides/theme-customization editor theme}.
 * Changing the {@link framework/guides/theme-customization editor theme}.
 * Changing the {@link features/ui-language localization language} of the editor.
 * Changing the {@link features/ui-language localization language} of the editor.
 * Enabling bug fixes which are still not a part of any public release.
 * Enabling bug fixes which are still not a part of any public release.
@@ -38,7 +38,7 @@ git remote add upstream https://github.com/ckeditor/ckeditor5-build-classic.git
 <info-box hint>
 <info-box hint>
 	If you do not want to fork the official build, you can just clone it. However, you will not be able to commit and push your customizations back to GitHub.
 	If you do not want to fork the official build, you can just clone it. However, you will not be able to commit and push your customizations back to GitHub.
 
 
-	Alternatively, instead of creating a custom build you can {@link builds/guides/integration/advanced-setup#Scenario-2-Building-from-source integrate CKEditor 5 directly from source}. This option allows even greater flexibility and requires less overhead (you will not need to fork the official build).
+	Alternatively, instead of creating a custom build you can {@link builds/guides/integration/advanced-setup#scenario-2-building-from-source integrate CKEditor 5 directly from source}. This option allows even greater flexibility and requires less overhead (you will not need to fork the official build).
 </info-box>
 </info-box>
 
 
 <info-box warning>
 <info-box warning>

+ 2 - 2
docs/builds/guides/integration/advanced-setup.md

@@ -17,7 +17,7 @@ Therefore, **a prerequisite to this guide is that you are using webpack as your
 
 
 ## Scenario 1: Integrating existing builds
 ## Scenario 1: Integrating existing builds
 
 
-This is the simplest scenario. It assumes that you want to use {@link builds/guides/overview#Available-builds one of the existing builds} "as-is" (you can, of course, still {@link builds/guides/integration/configuration configure the editor}). It also gives the fastest build times.
+This is the simplest scenario. It assumes that you want to use {@link builds/guides/overview#available-builds one of the existing builds} "as-is" (you can, of course, still {@link builds/guides/integration/configuration configure the editor}). It also gives the fastest build times.
 
 
 First, install the build of your choice {@link builds/guides/integration/installation#npm from npm}:
 First, install the build of your choice {@link builds/guides/integration/installation#npm from npm}:
 
 
@@ -218,7 +218,7 @@ ClassicEditor.build = {
 };
 };
 ```
 ```
 
 
-This module will export an editor creator class which has all the plugins and configuration that you need already built-in. To use such editor, simply import that class and call the static `.create()` method like in all {@link builds/guides/integration/basic-api#Creating-an-editor examples}.
+This module will export an editor creator class which has all the plugins and configuration that you need already built-in. To use such editor, simply import that class and call the static `.create()` method like in all {@link builds/guides/integration/basic-api#creating-an-editor examples}.
 
 
 ```js
 ```js
 import ClassicEditor from './ckeditor';
 import ClassicEditor from './ckeditor';

+ 3 - 3
docs/builds/guides/integration/basic-api.md

@@ -30,7 +30,7 @@ Add an element that CKEditor should replace to your HTML page:
 </textarea>
 </textarea>
 ```
 ```
 
 
-Then call {@link module:editor-classic/classiceditor~ClassicEditor#create `ClassicEditor.create()`} to **replace** the `<textarea>` element with a {@link builds/guides/overview#Classic-editor Classic editor}:
+Then call {@link module:editor-classic/classiceditor~ClassicEditor#create `ClassicEditor.create()`} to **replace** the `<textarea>` element with a {@link builds/guides/overview#classic-editor Classic editor}:
 
 
 ```js
 ```js
 ClassicEditor
 ClassicEditor
@@ -55,7 +55,7 @@ Similarly to the previous example, add an element where CKEditor should initiali
 </div>
 </div>
 ```
 ```
 
 
-Then call {@link module:editor-inline/inlineeditor~InlineEditor#create `InlineEditor.create()`} to **attach** {@link builds/guides/overview#Inline-editor Inline editor} to the `<div>` element:
+Then call {@link module:editor-inline/inlineeditor~InlineEditor#create `InlineEditor.create()`} to **attach** {@link builds/guides/overview#inline-editor Inline editor} to the `<div>` element:
 
 
 ```js
 ```js
 InlineEditor
 InlineEditor
@@ -80,7 +80,7 @@ Add an element where CKEditor should initialize to your page:
 </div>
 </div>
 ```
 ```
 
 
-Then call {@link module:editor-balloon/ballooneditor~BalloonEditor#create `BalloonEditor.create()`} to **attach** {@link builds/guides/overview#Balloon-editor Balloon editor} to the `<div>` element:
+Then call {@link module:editor-balloon/ballooneditor~BalloonEditor#create `BalloonEditor.create()`} to **attach** {@link builds/guides/overview#balloon-editor Balloon editor} to the `<div>` element:
 
 
 ```js
 ```js
 BalloonEditor
 BalloonEditor

+ 1 - 1
docs/builds/guides/integration/configuration.md

@@ -83,7 +83,7 @@ ClassicEditor
 ```
 ```
 
 
 <info-box hint>
 <info-box hint>
-	The above is a strict UI-related configuration. Removing a toolbar item does not remove the feature from the editor internals. If your goal with the toolbar configuration is to remove features, the right solution is to also remove their relative plugins. Check [Removing features](#Removing-features) above for more information.
+	The above is a strict UI-related configuration. Removing a toolbar item does not remove the feature from the editor internals. If your goal with the toolbar configuration is to remove features, the right solution is to also remove their relative plugins. Check [Removing features](#removing-features) above for more information.
 </info-box>
 </info-box>
 
 
 ### Listing available items
 ### Listing available items

+ 4 - 4
docs/builds/guides/integration/installation.md

@@ -12,11 +12,11 @@ order: 10
 
 
 There are several options to download CKEditor 5 builds:
 There are several options to download CKEditor 5 builds:
 
 
-* [CDN](#CDN)
+* [CDN](#cdn)
 * [npm](#npm)
 * [npm](#npm)
-* [Zip download](#Zip-download)
+* [Zip download](#zip-download)
 
 
-For the list of available builds check the {@link builds/guides/overview#Available-builds Overview} page.
+For the list of available builds check the {@link builds/guides/overview#available-builds Overview} page.
 
 
 After downloading the editor jump to the {@link builds/guides/integration/basic-api Basic API guide} to see how to create editors.
 After downloading the editor jump to the {@link builds/guides/integration/basic-api Basic API guide} to see how to create editors.
 
 
@@ -63,7 +63,7 @@ After downloading and installing a CKEditor 5 build in your application, it is t
 Once the CKEditor script is loaded, you can {@link builds/guides/integration/basic-api use the API} to create editors in your page.
 Once the CKEditor script is loaded, you can {@link builds/guides/integration/basic-api use the API} to create editors in your page.
 
 
 <info-box>
 <info-box>
-	The `build/ckeditor.js` file is generated in the [UMD format](https://github.com/umdjs/umd) so you can also import it into your application if you use CommonJS modules (like in Node.js) or AMD modules (like in Require.js). Read more in the {@link builds/guides/integration/basic-api#UMD-support Basic API guide}.
+	The `build/ckeditor.js` file is generated in the [UMD format](https://github.com/umdjs/umd) so you can also import it into your application if you use CommonJS modules (like in Node.js) or AMD modules (like in Require.js). Read more in the {@link builds/guides/integration/basic-api#umd-support Basic API guide}.
 
 
 	Also, for a more advanced setup, you may wish to bundle the CKEditor script with other scripts used by your application. See {@link builds/guides/integration/advanced-setup Advanced setup} for more information about it.
 	Also, for a more advanced setup, you may wish to bundle the CKEditor script with other scripts used by your application. See {@link builds/guides/integration/advanced-setup Advanced setup} for more information about it.
 </info-box>
 </info-box>

+ 8 - 8
docs/builds/guides/migrate.md

@@ -14,7 +14,7 @@ When compared to its predecessor, CKEditor 5 should be considered **a totally ne
 
 
 There is no "drop in" solution for migrating. In this guide we hope to summarize the most important aspects you need to consider before you proceed with installing CKEditor 5.
 There is no "drop in" solution for migrating. In this guide we hope to summarize the most important aspects you need to consider before you proceed with installing CKEditor 5.
 
 
-Before starting, be sure that migrating is your best choice. Refer to {@link builds/guides/overview#When-NOT-to-use-builds When NOT to use CKEditor 5 Builds?} for more information.
+Before starting, be sure that migrating is your best choice. Refer to {@link builds/guides/overview#when-not-to-use-builds When NOT to use CKEditor 5 Builds?} for more information.
 
 
 ## Installation and integration
 ## Installation and integration
 
 
@@ -41,7 +41,7 @@ CKEditor 5 was designed with focus on creating quality content. There are thus g
 
 
 Image upload is handled differently with CKEditor 5, bringing a much better user experience. Solutions used with CKEditor 4 may not be compatible anymore and therefore a new approach is needed.
 Image upload is handled differently with CKEditor 5, bringing a much better user experience. Solutions used with CKEditor 4 may not be compatible anymore and therefore a new approach is needed.
 
 
-CKEditor 5 Builds come with {@link features/image-upload#Easy-Image Easy Image} available out of the box. It is super simple to {@link features/image-upload#Easy-Image enable image upload with it}.
+CKEditor 5 Builds come with {@link features/image-upload#easy-image Easy Image} available out of the box. It is super simple to {@link features/image-upload#easy-image enable image upload with it}.
 
 
 ## Plugins
 ## Plugins
 
 
@@ -49,7 +49,7 @@ The trickiest migration challenge to be faced may be related to custom plugins y
 
 
 The same may apply for third-party plugins which may not have been ported to CKEditor 5 yet.
 The same may apply for third-party plugins which may not have been ported to CKEditor 5 yet.
 
 
-Check the {@link builds/guides/development/plugins#Creating-plugins Creating plugins guide} for more information on the development of plugins.
+Check the {@link builds/guides/development/plugins#creating-plugins Creating plugins guide} for more information on the development of plugins.
 
 
 ## Themes (skins)
 ## Themes (skins)
 
 
@@ -84,7 +84,7 @@ Note: The number of options was reduced on purpose. We understood that configuri
 <tbody>
 <tbody>
 <tr>
 <tr>
 <td><span id="allowedContent"><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-allowedContent">allowedContent</a></span></td>
 <td><span id="allowedContent"><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-allowedContent">allowedContent</a></span></td>
-<td><p>Extending the list of HTML tags or attributes that CKEditor should support can be achieved by writing a plugin that (ideally) provides also means to control (insert, edit, delete) such markup.</p><p>For more information on how to create plugins check the {@link framework/guides/quick-start#Creating-a-simple-plugin Creating a simple plugin} article. Looking at the source code of CKEditor 5 plugins may also give you a lot of inspiration.</p></td>
+<td><p>Extending the list of HTML tags or attributes that CKEditor should support can be achieved by writing a plugin that (ideally) provides also means to control (insert, edit, delete) such markup.</p><p>For more information on how to create plugins check the {@link framework/guides/quick-start#creating-a-simple-plugin Creating a simple plugin} article. Looking at the source code of CKEditor 5 plugins may also give you a lot of inspiration.</p></td>
 </tr>
 </tr>
 <tr>
 <tr>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-autoEmbed_widget">autoEmbed_widget</a></td>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-autoEmbed_widget">autoEmbed_widget</a></td>
@@ -332,7 +332,7 @@ Note: The number of options was reduced on purpose. We understood that configuri
 </tr>
 </tr>
 <tr>
 <tr>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_alignClasses">image2_alignClasses</a></td>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_alignClasses">image2_alignClasses</a></td>
-<td>Available via more powerful {@link module:image/image~ImageConfig#styles <code>image.styles</code>}, which allows for using also custom style definitions, not only left/right/center alignment. See <a href="https://docs.ckeditor.com/ckeditor5/latest/features/image.html#Image-styles" target="_blank" rel="noopener">Image styles feature overview</a>.</td>
+<td>Available via more powerful {@link module:image/image~ImageConfig#styles <code>image.styles</code>}, which allows for using also custom style definitions, not only left/right/center alignment. See <a href="https://docs.ckeditor.com/ckeditor5/latest/features/image.html#image-styles" target="_blank" rel="noopener">Image styles feature overview</a>.</td>
 </tr>
 </tr>
 <tr>
 <tr>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_altRequired">image2_altRequired</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_captionedClass">image2_captionedClass</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_disableResizer">image2_disableResizer</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_prefillDimensions">image2_prefillDimensions</a>.</td>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_altRequired">image2_altRequired</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_captionedClass">image2_captionedClass</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_disableResizer">image2_disableResizer</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-image2_prefillDimensions">image2_prefillDimensions</a>.</td>
@@ -360,7 +360,7 @@ Note: The number of options was reduced on purpose. We understood that configuri
 </tr>
 </tr>
 <tr>
 <tr>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-keystrokes">keystrokes</a></td>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-keystrokes">keystrokes</a></td>
-<td><p>Keystroke handlers can be registered using {@link module:core/editingkeystrokehandler~EditingKeystrokeHandler <code>EditingKeystrokeHandler</code>}. More information and examples can be found in a dedicated {@link framework/guides/architecture/intro#Keystroke-handler Keystrokes and focus management} article.</p><p>Making keystrokes overridable through <code>config.keystrokes</code> is handled in a <a href="https://github.com/ckeditor/ckeditor5-core/issues/8" target="_blank" rel="noopener">dedicated issue</a>. There is also an issue about <a href="https://github.com/ckeditor/ckeditor5-core/issues/20" target="_blank" rel="noopener">improving keystroke handling</a>.</p></td>
+<td><p>Keystroke handlers can be registered using {@link module:core/editingkeystrokehandler~EditingKeystrokeHandler <code>EditingKeystrokeHandler</code>}. More information and examples can be found in a dedicated {@link framework/guides/architecture/intro#keystroke-handler Keystrokes and focus management} article.</p><p>Making keystrokes overridable through <code>config.keystrokes</code> is handled in a <a href="https://github.com/ckeditor/ckeditor5-core/issues/8" target="_blank" rel="noopener">dedicated issue</a>. There is also an issue about <a href="https://github.com/ckeditor/ckeditor5-core/issues/20" target="_blank" rel="noopener">improving keystroke handling</a>.</p></td>
 </tr>
 </tr>
 <tr>
 <tr>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-language">language</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-language_list">language_list</a></td>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-language">language</a> <br> <a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-language_list">language_list</a></td>
@@ -536,7 +536,7 @@ Note: The number of options was reduced on purpose. We understood that configuri
 </tr>
 </tr>
 <tr>
 <tr>
 <td><span id="uploadUrl"><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-uploadUrl">uploadUrl</a></span></td>
 <td><span id="uploadUrl"><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-uploadUrl">uploadUrl</a></span></td>
-<td><p>Uploading images in CKEditor 5 is possible thanks to {@link features/image-upload#Easy-Image Easy Image} powered by <a href="https://ckeditor.com/ckeditor-cloud-services/" target="_blank" rel="noopener">CKEditor Cloud Services</a> which comes with a support for responsive images. To configure it, provide the {@link module:cloudservices/cloudservices~CloudServicesConfig cloud services configuration}. Uploading via CKFinder is available too, see {@link module:adapter-ckfinder/uploadadapter~CKFinderAdapterConfig#uploadUrl <code>ckfinder.uploadUrl</code>}. </p><p>Writing own image upload adapters is also possible, see <a href="https://stackoverflow.com/questions/46765197/how-to-enable-image-upload-support-in-ckeditor-5" target="_blank" rel="noopener">https://stackoverflow.com/questions/46765197/how-to-enable-image-upload-support-in-ckeditor-5</a>.</p></td>
+<td><p>Uploading images in CKEditor 5 is possible thanks to {@link features/image-upload#easy-image Easy Image} powered by <a href="https://ckeditor.com/ckeditor-cloud-services/" target="_blank" rel="noopener">CKEditor Cloud Services</a> which comes with a support for responsive images. To configure it, provide the {@link module:cloudservices/cloudservices~CloudServicesConfig cloud services configuration}. Uploading via CKFinder is available too, see {@link module:adapter-ckfinder/uploadadapter~CKFinderAdapterConfig#uploadUrl <code>ckfinder.uploadUrl</code>}. </p><p>Writing own image upload adapters is also possible, see <a href="https://stackoverflow.com/questions/46765197/how-to-enable-image-upload-support-in-ckeditor-5" target="_blank" rel="noopener">https://stackoverflow.com/questions/46765197/how-to-enable-image-upload-support-in-ckeditor-5</a>.</p></td>
 </tr>
 </tr>
 <tr>
 <tr>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-useComputedState">useComputedState</a></td>
 <td><a href="/ckeditor4/docs/#!/api/CKEDITOR.config-cfg-useComputedState">useComputedState</a></td>
@@ -553,4 +553,4 @@ Note: The number of options was reduced on purpose. We understood that configuri
 </tbody>
 </tbody>
 </table>
 </table>
 
 
-If you are missing any particular features or settings, feel free to {@link builds/guides/support/reporting-issues#Reporting-issues-1 report an issue}. Please be as precise as possible, explaining the exact use case, context where editor is used, and the expected behavior.
+If you are missing any particular features or settings, feel free to {@link builds/guides/support/reporting-issues#reporting-issues-2 report an issue}. Please be as precise as possible, explaining the exact use case, context where editor is used, and the expected behavior.

+ 6 - 6
docs/builds/guides/overview.md

@@ -17,9 +17,9 @@ CKEditor 5 Builds are a set of ready-to-use rich text editors. Every "build" pro
 
 
 The following CKEditor 5 Builds are currently available:
 The following CKEditor 5 Builds are currently available:
 
 
- * [Classic editor](#Classic-editor)
- * [Inline editor](#Inline-editor)
- * [Balloon editor](#Balloon-editor)
+ * [Classic editor](#classic-editor)
+ * [Inline editor](#inline-editor)
+ * [Balloon editor](#balloon-editor)
 
 
 ### Classic editor
 ### Classic editor
 
 
@@ -35,7 +35,7 @@ In CKEditor 5 the concept of the "boxed" editor was reinvented:
 
 
 {@img assets/img/editor-classic.png 772 Screenshot of a classic editor.}
 {@img assets/img/editor-classic.png 772 Screenshot of a classic editor.}
 
 
-To try it out online, check the {@link examples/builds/classic-editor classic editor example}. Jump to {@link builds/guides/quick-start#Classic-editor quick start} to start using it.
+To try it out online, check the {@link examples/builds/classic-editor classic editor example}. Jump to {@link builds/guides/quick-start#classic-editor quick start} to start using it.
 
 
 ### Inline editor
 ### Inline editor
 
 
@@ -45,7 +45,7 @@ A common scenario for using inline editor is offering users the possibility to e
 
 
 {@img assets/img/editor-inline.png 774 Screenshot of an inline editor.}
 {@img assets/img/editor-inline.png 774 Screenshot of an inline editor.}
 
 
-To try it out online, check the {@link examples/builds/inline-editor inline editor example}. Jump to {@link builds/guides/quick-start#Inline-editor quick start} to start using it.
+To try it out online, check the {@link examples/builds/inline-editor inline editor example}. Jump to {@link builds/guides/quick-start#inline-editor quick start} to start using it.
 
 
 ### Balloon editor
 ### Balloon editor
 
 
@@ -53,7 +53,7 @@ Balloon editor is very similar to inline editor. The difference between them is
 
 
 {@img assets/img/editor-balloon.png 779 Screenshot of a balloon toolbar editor.}
 {@img assets/img/editor-balloon.png 779 Screenshot of a balloon toolbar editor.}
 
 
-To try it out online, check the {@link examples/builds/balloon-editor balloon editor example}. Jump to {@link builds/guides/quick-start#Balloon-editor quick start} to start using it.
+To try it out online, check the {@link examples/builds/balloon-editor balloon editor example}. Jump to {@link builds/guides/quick-start#balloon-editor quick start} to start using it.
 
 
 ## Build customization
 ## Build customization
 
 

+ 1 - 1
docs/builds/guides/support/license-and-legal.md

@@ -24,7 +24,7 @@ You are not required to, but if you want to explicitly declare the license you h
 
 
 Where not otherwise indicated, all CKEditor 5 Builds content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
 Where not otherwise indicated, all CKEditor 5 Builds content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
 
 
-The {@link features/image-upload#Easy-Image Easy Image} feature present in {@link builds/index CKEditor 5 Builds} integrates with [CKEditor Cloud Services](https://ckeditor.com/ckeditor-cloud-services), if configured to do so. CKEditor Cloud Services is an external "Software as a Service" solution, delivered with its own license terms and conditions.
+The {@link features/image-upload#easy-image Easy Image} feature present in {@link builds/index CKEditor 5 Builds} integrates with [CKEditor Cloud Services](https://ckeditor.com/ckeditor-cloud-services), if configured to do so. CKEditor Cloud Services is an external "Software as a Service" solution, delivered with its own license terms and conditions.
 
 
 ## Trademarks
 ## Trademarks
 
 

+ 2 - 2
docs/builds/guides/whats-new.md

@@ -22,11 +22,11 @@ Inserting images into the content is now very intuitive, with all technical aspe
 
 
 <iframe width="600" height="337" src="https://www.youtube.com/embed/WWT9pkPZSnI?rel=0&amp;" frameborder="0" allowfullscreen></iframe>
 <iframe width="600" height="337" src="https://www.youtube.com/embed/WWT9pkPZSnI?rel=0&amp;" frameborder="0" allowfullscreen></iframe>
 
 
-The outdated concept of image alignment was dropped in favor of {@link features/image#Image-styles image styles}:
+The outdated concept of image alignment was dropped in favor of {@link features/image#image-styles image styles}:
 
 
 {@img assets/img/builds-image-styles.png 591 Image styles toolbar.}
 {@img assets/img/builds-image-styles.png 591 Image styles toolbar.}
 
 
-When integrated with {@link features/image-upload#Easy-Image Easy Image}, uploading, resizing and producing different image sizes for responsive design is all automated.
+When integrated with {@link features/image-upload#easy-image Easy Image}, uploading, resizing and producing different image sizes for responsive design is all automated.
 
 
 {@img assets/img/easy-image.png 1440 Responsive images with Easy Image.}
 {@img assets/img/easy-image.png 1440 Responsive images with Easy Image.}
 
 

+ 1 - 1
docs/examples/builds/balloon-editor.md

@@ -5,6 +5,6 @@ order: 30
 
 
 # Balloon editor
 # Balloon editor
 
 
-{@link builds/guides/overview#Balloon-editor Balloon editor} lets you create your content directly in its target location with the help of a balloon toolbar that apprears next to the selected editable document element.
+{@link builds/guides/overview#balloon-editor Balloon editor} lets you create your content directly in its target location with the help of a balloon toolbar that apprears next to the selected editable document element.
 
 
 {@snippet examples/balloon-editor}
 {@snippet examples/balloon-editor}

+ 1 - 1
docs/examples/builds/classic-editor.md

@@ -7,6 +7,6 @@ order: 10
 
 
 {@snippet build-classic-source}
 {@snippet build-classic-source}
 
 
-{@link builds/guides/overview#Classic-editor Classic editor} shows a boxed editing area with a toolbar, placed in a specific position on the page.
+{@link builds/guides/overview#classic-editor Classic editor} shows a boxed editing area with a toolbar, placed in a specific position on the page.
 
 
 {@snippet examples/classic-editor}
 {@snippet examples/classic-editor}

+ 10 - 0
docs/examples/builds/custom-build.md

@@ -0,0 +1,10 @@
+---
+category: examples-builds
+order: 30
+---
+
+# Custom build
+
+The editor in this example has been customized to offer a limited subset of editing [features](https://github.com/ckeditor/ckeditor5#core-libraries), provided mainly by the [ckeditor5-basic-styles](https://www.npmjs.com/package/@ckeditor/ckeditor5-basic-styles) and [ckeditor5-highlight](https://www.npmjs.com/package/@ckeditor/ckeditor5-highlight) packages. This kind of customization is possible with a {@link builds/guides/development/custom-builds custom editor build}, perfectly tailored to the needs to the application.
+
+{@snippet examples/custom-build}

+ 2 - 2
docs/examples/builds/inline-editor.md

@@ -5,8 +5,8 @@ order: 20
 
 
 # Inline editor
 # Inline editor
 
 
-{@link builds/guides/overview#Inline-editor Inline editor} lets you create your content directly in its target location with the help of a floating toolbar that apprears when the editable text is focused.
+{@link builds/guides/overview#inline-editor Inline editor} lets you create your content directly in its target location with the help of a floating toolbar that apprears when the editable text is focused.
 
 
-In this example the {@link features/image#Image-styles image styles} configuration was changed to enable left- and right-aligned images.
+In this example the {@link features/image#image-styles image styles} configuration was changed to enable left- and right-aligned images.
 
 
 {@snippet examples/inline-editor}
 {@snippet examples/inline-editor}

+ 1 - 1
docs/features/image-upload.md

@@ -31,7 +31,7 @@ To make the above process possible, an image upload plugin must be available. Su
 
 
 Another great feature introduced with CKEditor 5 is the ability to have responsive images in the content. With a single image upload, several optimized versions of that image are created after upload, for different size of displays. All this is totally transparent to the end user who uploaded the image.
 Another great feature introduced with CKEditor 5 is the ability to have responsive images in the content. With a single image upload, several optimized versions of that image are created after upload, for different size of displays. All this is totally transparent to the end user who uploaded the image.
 
 
-Be sure to use image upload plugins with support for responsive images to enjoy this important additional benefit. [Easy Image](#Easy-Image) has support for responsive images out of the box, too.
+Be sure to use image upload plugins with support for responsive images to enjoy this important additional benefit. [Easy Image](#easy-image) has support for responsive images out of the box, too.
 
 
 ## Easy Image
 ## Easy Image
 
 

+ 1 - 1
docs/features/index.md

@@ -23,6 +23,6 @@ Please bear in mind that the stable version of CKEditor 5 has not been officiall
 ## How about creating your own features?
 ## How about creating your own features?
 
 
 Probably the most exciting features are the ones you can develop on top of CKEditor 5 Framework!
 Probably the most exciting features are the ones you can develop on top of CKEditor 5 Framework!
-We are slowly enhancing the {@link framework/index CKEditor 5 Framework documentation} together with {@link api/index API documentation}, hoping to give you a solid base for {@link framework/guides/quick-start#Creating-a-simple-plugin creating custom features}.
+We are slowly enhancing the {@link framework/index CKEditor 5 Framework documentation} together with {@link api/index API documentation}, hoping to give you a solid base for {@link framework/guides/quick-start#creating-a-simple-plugin creating custom features}.
 
 
 The official add-ons repository for CKEditor 4 reached an impressive number of over 300 add-ons created and published by the community. Now it is time for you to add your contributions to the brand new CKEditor 5!
 The official add-ons repository for CKEditor 4 reached an impressive number of over 300 add-ons created and published by the community. Now it is time for you to add your contributions to the brand new CKEditor 5!

+ 6 - 6
docs/features/ui-language.md

@@ -16,9 +16,9 @@ See the demo of the editor in German:
 ## Loading additional languages from CDN, npm and zip file
 ## Loading additional languages from CDN, npm and zip file
 
 
 You can load additional languages using:
 You can load additional languages using:
-* [CDN](#CDN),
+* [CDN](#cdn),
 * [npm](#npm),
 * [npm](#npm),
-* [Zip download](#Zip).
+* [Zip download](#zip).
 
 
 Next, configure the editor to use chosen language:
 Next, configure the editor to use chosen language:
 
 
@@ -44,7 +44,7 @@ To use different language than default one (English), you need to load the edito
 <script src="https://cdn.ckeditor.com/ckeditor5/[version.number]/[distribution]/translations/de.js"></script>
 <script src="https://cdn.ckeditor.com/ckeditor5/[version.number]/[distribution]/translations/de.js"></script>
 ```
 ```
 
 
-See {@link builds/guides/integration/installation#CDN CDN installation guides} for more information.
+See {@link builds/guides/integration/installation#cdn CDN installation guides} for more information.
 
 
 ### npm
 ### npm
 
 
@@ -55,14 +55,14 @@ See {@link builds/guides/integration/installation#npm npm installation guides} f
 
 
 ### Zip
 ### Zip
 
 
-All additional languages are included in `.zip` file. You need to include `ckeditor.js` file together with language file:
+All additional languages are included in the `.zip` file. You need to include `ckeditor.js` file together with language file:
 
 
 ```js
 ```js
 <script src="[ckeditor-path]/ckeditor.js"></script>
 <script src="[ckeditor-path]/ckeditor.js"></script>
 <script src="[ckeditor-path]/translations/de.js"></script>
 <script src="[ckeditor-path]/translations/de.js"></script>
 ```
 ```
 
 
-See {@link builds/guides/integration/installation#Zip-download zip installation guides} for more information.
+See {@link builds/guides/integration/installation#zip-download zip installation guides} for more information.
 
 
 ## Building the editor using a specific language
 ## Building the editor using a specific language
 
 
@@ -130,7 +130,7 @@ If you build CKEditor from scratch or integrate it directly into your applicatio
 	```
 	```
 
 
 <info-box>
 <info-box>
-	We are aware that the current localization method is not sufficient for all needs. It doesn't support different bundlers (e.g. Rollup or Browserify). We will be extending the localization possibilities in the future.
+	We are aware that the current localization method is not sufficient for some needs. It does not support different bundlers (e.g. Rollup or Browserify). We will be extending the localization possibilities in the future.
 
 
 	You can read more about the used techniques in the ["Implement translation services" issue](https://github.com/ckeditor/ckeditor5/issues/387) and ["Implement translation services v2" issue](https://github.com/ckeditor/ckeditor5/issues/624).
 	You can read more about the used techniques in the ["Implement translation services" issue](https://github.com/ckeditor/ckeditor5/issues/387) and ["Implement translation services v2" issue](https://github.com/ckeditor/ckeditor5/issues/624).
 </info-box>
 </info-box>

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

@@ -9,7 +9,7 @@ The standard UI library of CKEditor 5 is [`@ckeditor/ckeditor5-ui`](https://www.
 
 
 ## Views
 ## Views
 
 
-Views use [templates](#Templates) to build the UI. They also provide observable interfaces that other features (e.g. [plugins](#Plugins), [commands](#Commands), etc.) can use to change the DOM without any actual interaction with the native API.
+Views use [templates](#templates) to build the UI. They also provide observable interfaces that other features (e.g. {@link framework/guides/architecture/core-editor-architecture#plugins plugins}, {@link framework/guides/architecture/core-editor-architecture#commands commands}, etc.) can use to change the DOM without any actual interaction with the native API.
 
 
 ### Definition
 ### Definition
 
 
@@ -59,7 +59,7 @@ class SampleInputView extends View {
 
 
 Note that views encapsulate the DOM they render. Because the UI is organized according to the *view-per-tree* rule, it is clear which view is responsible for which part of the UI so it is unlikely that a collision occurs between two features writing to the same DOM node.
 Note that views encapsulate the DOM they render. Because the UI is organized according to the *view-per-tree* rule, it is clear which view is responsible for which part of the UI so it is unlikely that a collision occurs between two features writing to the same DOM node.
 
 
-More often than not, views become children of other views (collections), nodes in the [UI view tree](#View-collections-and-the-UI-tree):
+More often than not, views become children of other views (collections), nodes in the [UI view tree](#view-collections-and-the-ui-tree):
 
 
 ```js
 ```js
 class ParentView extends View {
 class ParentView extends View {
@@ -113,7 +113,7 @@ will result in:
 <input class="foo ck-enabled" type="text" placeholder="Type some text" />
 <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 [bind](#event-system-and-observables) them directly to their own observable properties:
 
 
 ```js
 ```js
 view.bind( 'placeholder', 'isEnabled' ).to( observable, 'placeholderText', 'isEnabled' );
 view.bind( 'placeholder', 'isEnabled' ).to( observable, 'placeholderText', 'isEnabled' );
@@ -148,13 +148,13 @@ view.element.placeholder = 'A new placeholder';
 
 
 ## Templates
 ## Templates
 
 
-{@link module:ui/template~Template Templates} render DOM elements and text nodes in the UI library. Used primarily by [views](#Views), they are the lowest layer of the UI connecting the application to the web page.
+{@link module:ui/template~Template Templates} render DOM elements and text nodes in the UI library. Used primarily by [views](#views), they are the lowest layer of the UI connecting the application to the web page.
 
 
 <info-box>
 <info-box>
 	Check out the {@link module:ui/template~TemplateDefinition} to learn more about the template syntax and other advanced concepts.
 	Check out the {@link module:ui/template~TemplateDefinition} to learn more about the template syntax and other advanced concepts.
 </info-box>
 </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 [observable properties](#event-system-and-observables) bindings and handle native DOM events. A very simple template can look like this:
 
 
 ```js
 ```js
 new Template( {
 new Template( {
@@ -183,7 +183,7 @@ and renders to an HTML element:
 <p class="foo bar" style="background-color: yellow;">A paragraph.</p>
 <p class="foo bar" style="background-color: yellow;">A paragraph.</p>
 ```
 ```
 
 
-where `observable#className` is `"bar"`. The `observable` in the example above can be a [view](#Views) or any object which is {@link module:utils/observablemixin~Observable observable}. When the value of the `className` attribute changes, the template updates the `class` attribute in the DOM. From now on the element is permanently bound to the state of an application.
+where `observable#className` is `"bar"`. The `observable` in the example above can be a [view](#views) or any object which is {@link module:utils/observablemixin~Observable observable}. When the value of the `className` attribute changes, the template updates the `class` attribute in the DOM. From now on the element is permanently bound to the state of an application.
 
 
 Similarly, when rendered, the template also takes care of DOM events. A binding to the `click` event in the definition makes the `observable` always fire the `clicked` event upon an action in DOM. This way the `observable` provides an event interface of the DOM element and all the communication should pass through it.
 Similarly, when rendered, the template also takes care of DOM events. A binding to the `click` event in the definition makes the `observable` always fire the `clicked` event upon an action in DOM. This way the `observable` provides an event interface of the DOM element and all the communication should pass through it.
 
 
@@ -269,7 +269,7 @@ toolbar.items.add( buttonFoo );
 toolbar.items.add( buttonBar );
 toolbar.items.add( buttonBar );
 ```
 ```
 
 
-The toolbar can now join the [UI tree](##View-collections-and-the-UI-tree) or it can be injected straight into the DOM. To keep the example simple, proceed with the latter scenario:
+The toolbar can now join the [UI tree](#view-collections-and-the-ui-tree) or it can be injected straight into the DOM. To keep the example simple, proceed with the latter scenario:
 
 
 ```js
 ```js
 toolbar.render();
 toolbar.render();
@@ -428,7 +428,7 @@ This information is useful when implementing a certain type of UI whose behavior
 
 
 ### Keystroke handler
 ### Keystroke handler
 
 
-The {@link module:utils/keystrokehandler~KeystrokeHandler `KeystrokeHandler`} listens to the keystroke events fired by an HTML element or any of its descendants and executes pre–defined actions when the keystroke is pressed. Usually, each [view](#Views) creates its own keystroke handler instance which takes care of the keystrokes fired by the elements the view has rendered.
+The {@link module:utils/keystrokehandler~KeystrokeHandler `KeystrokeHandler`} listens to the keystroke events fired by an HTML element or any of its descendants and executes pre–defined actions when the keystroke is pressed. Usually, each [view](#views) creates its own keystroke handler instance which takes care of the keystrokes fired by the elements the view has rendered.
 
 
 ```js
 ```js
 import KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';
 import KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';

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

@@ -47,7 +47,7 @@ cd ckeditor5
 
 
 And install all CKEditor 5 packages from the [npm registry](http://npmjs.com/).
 And install all CKEditor 5 packages from the [npm registry](http://npmjs.com/).
 
 
-**Note:** If you plan to use the developement version of CKEditor 5 packages (see the [next section](#Switching-to-development-version-of-packages)), you can skip this step to save time.
+**Note:** If you plan to use the developement version of CKEditor 5 packages (see the [next section](#switching-to-development-version-of-packages)), you can skip this step to save time.
 
 
 ```bash
 ```bash
 npm install
 npm install

+ 1 - 1
docs/framework/guides/support/license-and-legal.md

@@ -24,7 +24,7 @@ You are not required to, but if you want to explicitly declare the license you h
 
 
 Where not otherwise indicated, all CKEditor 5 Framework content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
 Where not otherwise indicated, all CKEditor 5 Framework content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
 
 
-The {@link features/image-upload#Easy-Image Easy Image} feature present in {@link builds/index CKEditor 5 Builds} integrates with [CKEditor Cloud Services](https://ckeditor.com/ckeditor-cloud-services), if configured to do so. CKEditor Cloud Services is an external "Software as a Service" solution, delivered with its own license terms and conditions.
+The {@link features/image-upload#easy-image Easy Image} feature present in {@link builds/index CKEditor 5 Builds} integrates with [CKEditor Cloud Services](https://ckeditor.com/ckeditor-cloud-services), if configured to do so. CKEditor Cloud Services is an external "Software as a Service" solution, delivered with its own license terms and conditions.
 
 
 ## Trademarks
 ## Trademarks