Kaynağa Gözat

test update

Andrey Titovskiy 3 yıl önce
ebeveyn
işleme
781d715796
70 değiştirilmiş dosya ile 22028 ekleme ve 7793 silme
  1. 38 10
      LICENSE.md
  2. 21708 7577
      build/ckeditor.js
  3. 1 1
      build/ckeditor.js.map
  4. 1 1
      build/translations/af.js
  5. 1 1
      build/translations/ar.js
  6. 1 1
      build/translations/ast.js
  7. 1 1
      build/translations/az.js
  8. 1 1
      build/translations/bg.js
  9. 1 1
      build/translations/ca.js
  10. 1 1
      build/translations/cs.js
  11. 1 1
      build/translations/da.js
  12. 1 1
      build/translations/de-ch.js
  13. 1 1
      build/translations/de.js
  14. 1 1
      build/translations/el.js
  15. 1 1
      build/translations/en-au.js
  16. 1 1
      build/translations/en-gb.js
  17. 1 0
      build/translations/en.js
  18. 1 1
      build/translations/eo.js
  19. 1 1
      build/translations/es.js
  20. 1 1
      build/translations/et.js
  21. 1 1
      build/translations/eu.js
  22. 1 1
      build/translations/fa.js
  23. 1 1
      build/translations/fi.js
  24. 1 1
      build/translations/fr.js
  25. 1 1
      build/translations/gl.js
  26. 1 1
      build/translations/he.js
  27. 1 1
      build/translations/hi.js
  28. 1 1
      build/translations/hr.js
  29. 1 1
      build/translations/hu.js
  30. 1 1
      build/translations/id.js
  31. 1 1
      build/translations/it.js
  32. 1 1
      build/translations/ja.js
  33. 1 0
      build/translations/kk.js
  34. 1 1
      build/translations/km.js
  35. 1 1
      build/translations/kn.js
  36. 1 1
      build/translations/ko.js
  37. 1 1
      build/translations/ku.js
  38. 1 1
      build/translations/lt.js
  39. 1 1
      build/translations/lv.js
  40. 1 1
      build/translations/nb.js
  41. 1 1
      build/translations/ne.js
  42. 1 1
      build/translations/nl.js
  43. 1 1
      build/translations/no.js
  44. 1 1
      build/translations/oc.js
  45. 1 1
      build/translations/pl.js
  46. 1 1
      build/translations/pt-br.js
  47. 1 1
      build/translations/pt.js
  48. 1 1
      build/translations/ro.js
  49. 0 1
      build/translations/ru.js
  50. 1 1
      build/translations/si.js
  51. 1 1
      build/translations/sk.js
  52. 1 1
      build/translations/sl.js
  53. 1 1
      build/translations/sq.js
  54. 1 1
      build/translations/sr-latn.js
  55. 1 1
      build/translations/sr.js
  56. 1 1
      build/translations/sv.js
  57. 1 1
      build/translations/th.js
  58. 1 1
      build/translations/tk.js
  59. 1 1
      build/translations/tr.js
  60. 1 1
      build/translations/tt.js
  61. 1 1
      build/translations/ug.js
  62. 1 1
      build/translations/uk.js
  63. 1 0
      build/translations/uz.js
  64. 1 1
      build/translations/vi.js
  65. 1 1
      build/translations/zh-cn.js
  66. 1 1
      build/translations/zh.js
  67. 34 31
      package.json
  68. 86 37
      sample/index.html
  69. 83 66
      src/ckeditor.js
  70. 16 11
      webpack.config.js

+ 38 - 10
LICENSE.md

@@ -1,21 +1,49 @@
 Software License Agreement
 ==========================
 
-**CKEditor 5 classic editor build** – https://github.com/ckeditor/ckeditor5-build-classic <br>
-Copyright (c) 2003-2020, [CKSource](http://cksource.com) Frederico Knabben. All rights reserved.
+Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.
 
-Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
+Online builder code samples are licensed under the terms of the MIT License (see Appendix A):
 
-Sources of Intellectual Property Included in CKEditor
------------------------------------------------------
+	http://en.wikipedia.org/wiki/MIT_License
 
-Where not otherwise indicated, all CKEditor 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.
+CKEditor 5 collaboration features are only available under a commercial license. [Contact us](https://ckeditor.com/contact/) for more details.
 
-The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT):
-
-* Lo-Dash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/.
+Free 30-days trials of CKEditor 5 collaboration features are available:
+ * https://ckeditor.com/collaboration/ - Real-time collaboration (with all features).
+ * https://ckeditor.com/collaboration/comments/ - Inline comments feature (without real-time collaborative editing).
+ * https://ckeditor.com/collaboration/track-changes/ - Track changes feature (without real-time collaborative editing).
 
 Trademarks
 ----------
 
-**CKEditor** is a trademark of [CKSource](http://cksource.com) Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
+and product names are trademarks, registered trademarks or service
+marks of their respective holders.
+
+---
+
+Appendix A: The MIT License
+---------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2014-{YEAR}, CKSource - Frederico Knabben
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

Dosya farkı çok büyük olduğundan ihmal edildi
+ 21708 - 7577
build/ckeditor.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/ckeditor.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/af.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ar.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ast.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/az.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/bg.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ca.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/cs.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/da.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/de-ch.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/de.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/el.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/en-au.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/en-gb.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
build/translations/en.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/eo.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/es.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/et.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/eu.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/fa.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/fi.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/fr.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/gl.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/he.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/hi.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/hr.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/hu.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/id.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/it.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ja.js


+ 1 - 0
build/translations/kk.js

@@ -0,0 +1 @@
+(function(d){	const l = d['kk'] = d['kk'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"Align center":"Ортадан туралау","Align left":"Солға туралау","Align right":"Оңға туралау",Justify:"","Text alignment":"Мәтінді туралау","Text alignment toolbar":"Мәтінді туралау құралдар тақтасы"}	);l.getPluralForm=function(n){return (n!=1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/km.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/kn.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ko.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ku.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/lt.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/lv.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/nb.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ne.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/nl.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/no.js


+ 1 - 1
build/translations/oc.js

@@ -1 +1 @@
-(function(d){	const l = d['oc'] = d['oc'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{Bold:"Gras",Cancel:"Anullar",Italic:"Italica","Remove color":"",Save:"Enregistrar",Strikethrough:"",Subscript:"",Superscript:"",Underline:""}	);l.getPluralForm=function(n){return (n > 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+(function(d){	const l = d['oc'] = d['oc'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"",Bold:"Gras",Cancel:"Anullar",Italic:"Italica","Remove color":"",Save:"Enregistrar","Show more items":"",Strikethrough:"",Subscript:"",Superscript:"",Underline:""}	);l.getPluralForm=function(n){return (n > 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/pl.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/pt-br.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/pt.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ro.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 1
build/translations/ru.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/si.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/sk.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/sl.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/sq.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/sr-latn.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/sr.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/sv.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/th.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/tk.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/tr.js


+ 1 - 1
build/translations/tt.js

@@ -1 +1 @@
-(function(d){	const l = d['tt'] = d['tt'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{Bold:"Калын",Cancel:"",Italic:"",Redo:"Кабатла","Remove color":"",Save:"Сакла",Strikethrough:"",Subscript:"",Superscript:"",Underline:"",Undo:""}	);l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+(function(d){	const l = d['tt'] = d['tt'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"",Bold:"Калын",Cancel:"",Italic:"",Redo:"Кабатла","Remove color":"",Save:"Сакла","Show more items":"",Strikethrough:"",Subscript:"",Superscript:"",Underline:"",Undo:""}	);l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/ug.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/uk.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
build/translations/uz.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/vi.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/zh-cn.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
build/translations/zh.js


+ 34 - 31
package.json

@@ -1,6 +1,6 @@
 {
   "name": "@ckeditor/ckeditor5-build-classic",
-  "version": "23.1.0",
+  "version": "31.1.0",
   "description": "The classic editor build of CKEditor 5 – the best browser-based rich text editor.",
   "keywords": [
     "ckeditor5-build",
@@ -25,36 +25,39 @@
     "build"
   ],
   "devDependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^23.1.0",
-    "@ckeditor/ckeditor5-autoformat": "^23.1.0",
-    "@ckeditor/ckeditor5-alignment": "^23.1.0",
-    "@ckeditor/ckeditor5-basic-styles": "^23.1.0",
-    "@ckeditor/ckeditor5-block-quote": "^23.1.0",
-    "@ckeditor/ckeditor5-ckfinder": "^23.1.0",
-    "@ckeditor/ckeditor5-core": "^23.1.0",
-    "@ckeditor/ckeditor5-dev-utils": "^20.0.0",
-    "@ckeditor/ckeditor5-dev-webpack-plugin": "^20.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^23.1.0",
-    "@ckeditor/ckeditor5-editor-classic": "^23.1.0",
-    "@ckeditor/ckeditor5-essentials": "^23.1.0",
-    "@ckeditor/ckeditor5-font": "^23.1.0",
-    "@ckeditor/ckeditor5-heading": "^23.1.0",
-    "@ckeditor/ckeditor5-image": "^23.1.0",
-    "@ckeditor/ckeditor5-indent": "^23.1.0",
-    "@ckeditor/ckeditor5-link": "^23.1.0",
-    "@ckeditor/ckeditor5-list": "^23.1.0",
-    "@ckeditor/ckeditor5-media-embed": "^23.1.0",
-    "@ckeditor/ckeditor5-paragraph": "^23.1.0",
-    "@ckeditor/ckeditor5-paste-from-office": "^23.1.0",
-    "@ckeditor/ckeditor5-table": "^23.1.0",
-    "@ckeditor/ckeditor5-typing": "^23.1.0",
-    "@ckeditor/ckeditor5-theme-lark": "^23.1.0",
-    "postcss-loader": "^3.0.0",
-    "raw-loader": "^4.0.1",
-    "style-loader": "^1.2.1",
-    "terser-webpack-plugin": "^3.0.2",
-    "webpack": "^4.43.0",
-    "webpack-cli": "^3.3.11"
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^31.1.0",
+    "@ckeditor/ckeditor5-autoformat": "^31.1.0",
+    "@ckeditor/ckeditor5-alignment": "^31.1.0",
+    "@ckeditor/ckeditor5-basic-styles": "^31.1.0",
+    "@ckeditor/ckeditor5-block-quote": "^31.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^31.1.0",
+    "@ckeditor/ckeditor5-dev-utils": "^25.0.0",
+    "@ckeditor/ckeditor5-dev-webpack-plugin": "^24.0.2",
+    "@ckeditor/ckeditor5-easy-image": "^31.1.0",
+    "@ckeditor/ckeditor5-editor-classic": "^31.0.0",
+    "@ckeditor/ckeditor5-essentials": "^31.0.0",
+    "@ckeditor/ckeditor5-font": "^31.1.0",
+    "@ckeditor/ckeditor5-heading": "^31.0.0",
+    "@ckeditor/ckeditor5-html-embed": "^31.0.0",
+    "@ckeditor/ckeditor5-image": "^31.0.0",
+    "@ckeditor/ckeditor5-indent": "^31.0.0",
+    "@ckeditor/ckeditor5-link": "^31.0.0",
+    "@ckeditor/ckeditor5-list": "^31.0.0",
+    "@ckeditor/ckeditor5-media-embed": "^31.0.0",
+    "@ckeditor/ckeditor5-paragraph": "^31.0.0",
+    "@ckeditor/ckeditor5-paste-from-office": "^31.0.0",
+    "@ckeditor/ckeditor5-remove-format": "^31.0.0",
+    "@ckeditor/ckeditor5-table": "^31.0.0",
+    "@ckeditor/ckeditor5-typing": "^31.0.0",
+    "@ckeditor/ckeditor5-theme-lark": "^31.0.0",
+    "css-loader": "^5.0.1",
+    "postcss": "^8.2.4",
+    "postcss-loader": "^4.2.0",
+    "raw-loader": "^4.0.2",
+    "style-loader": "^2.0.0",
+    "terser-webpack-plugin": "^4.2.3",
+    "webpack": "^4.46.0",
+    "webpack-cli": "^4.4.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 86 - 37
sample/index.html

@@ -1,41 +1,90 @@
 <!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>CKEditor 5 – classic editor build – development sample</title>
-	<style>
-		body {
-			max-width: 800px;
-			margin: 20px auto;
-		}
-	</style>
-</head>
-<body>
-
-<h1>CKEditor 5 – classic editor build – development sample</h1>
-
-<div id="editor">
-	<h2>Sample</h2>
-
-	<p>This is an instance of the <a href="https://ckeditor.com/docs/ckeditor5/latest/builds/guides/overview.html#classic-editor">classic editor build</a>.</p>
+<html lang="en" dir="ltr">
 
-	<figure class="image">
-		<img src="../tests/manual/sample.jpg" alt="Autumn fields" />
-	</figure>
-
-	<p>You can use this sample to validate whether your <a href="https://ckeditor.com/docs/ckeditor5/latest/builds/guides/development/custom-builds.html">custom build</a> works fine.</p>
-</div>
+</html>
 
-<script src="../build/ckeditor.js"></script>
-<script>
-	ClassicEditor.create( document.querySelector( '#editor' ) )
-		.then( editor => {
-			window.editor = editor;
-		} )
-		.catch( error => {
-			console.error( 'There was a problem initializing the editor.', error );
-		} );
-</script>
+<head>
+	<title>CKEditor</title>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="icon" type="image/png" href="https://c.cksource.com/a/1/logos/ckeditor5.png">
+</head>
 
-</body>
-</html>
+<body data-editor="ClassicEditor" data-collaboration="false">
+	<main>
+		<div class="editor">
+			<h2>Bilingual Personality Disorder</h2>
+			<figure class="image image-style-side"><img src="https://c.cksource.com/a/1/img/docs/sample-image-bilingual-personality-disorder.jpg">
+				<figcaption>One language, one person.</figcaption>
+			</figure>
+			<p>
+				This may be the first time you hear about this made-up disorder but
+				it actually isn’t so far from the truth. Even the studies that were conducted almost half a century show that
+				<strong>the language you speak has more effects on you than you realise</strong>.
+			</p>
+			<p>
+				One of the very first experiments conducted on this topic dates back to 1964.
+				<a href="https://www.researchgate.net/publication/9440038_Language_and_TAT_content_in_bilinguals">In the experiment</a>
+				designed by linguist Ervin-Tripp who is an authority expert in psycholinguistic and sociolinguistic studies,
+				adults who are bilingual in English in French were showed series of pictures and were asked to create 3-minute stories.
+				In the end participants emphasized drastically different dynamics for stories in English and French.
+			</p>
+			<p>
+				Another ground-breaking experiment which included bilingual Japanese women married to American men in San Francisco were
+				asked to complete sentences. The goal of the experiment was to investigate whether or not human feelings and thoughts
+				are expressed differently in <strong>different language mindsets</strong>.
+				<Here>is a sample from the the experiment:</Here>
+			</p>
+			<table>
+				<thead>
+					<tr>
+						<th></th>
+						<th>English</th>
+						<th>Japanese</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td>Real friends should</td>
+						<td>Be very frank</td>
+						<td>Help each other</td>
+					</tr>
+					<tr>
+						<td>I will probably become</td>
+						<td>A teacher</td>
+						<td>A housewife</td>
+					</tr>
+					<tr>
+						<td>When there is a conflict with family</td>
+						<td>I do what I want</td>
+						<td>It's a time of great unhappiness</td>
+					</tr>
+				</tbody>
+			</table>
+			<p>
+				More recent <a href="https://books.google.pl/books?id=1LMhWGHGkRUC">studies</a> show, the language a person speaks affects
+				their cognition, behaviour, emotions and hence <strong>their personality</strong>.
+				This shouldn’t come as a surprise
+				<a href="https://en.wikipedia.org/wiki/Lateralization_of_brain_function">since we already know</a> that different regions
+				of the brain become more active depending on the person’s activity at hand. Since structure, information and especially
+				<strong>the culture</strong> of languages varies substantially and the language a person speaks is an essential element of daily life.
+			</p>
+		</div>
+	</main>
+	<script src="../build/ckeditor.js"></script>
+	<script>ClassicEditor
+			.create(document.querySelector('.editor'), {
+				language: 'ru-ru',
+				licenseKey: '',
+			})
+			.then(editor => {
+				window.editor = editor;
+			})
+			.catch(error => {
+				console.error('Oops, something went wrong!');
+				console.error('Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:');
+				console.warn('Build id: 5b7au417cddo-6dppnd86o5ep');
+				console.error(error);
+			});
+	</script>
+</body>

+ 83 - 66
src/ckeditor.js

@@ -9,6 +9,7 @@ import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote';
 import CKFinder from '@ckeditor/ckeditor5-ckfinder/src/ckfinder';
 import EasyImage from '@ckeditor/ckeditor5-easy-image/src/easyimage';
 import Heading from '@ckeditor/ckeditor5-heading/src/heading';
+import HtmlEmbed from '@ckeditor/ckeditor5-html-embed/src/htmlembed';
 import Image from '@ckeditor/ckeditor5-image/src/image';
 import ImageCaption from '@ckeditor/ckeditor5-image/src/imagecaption';
 import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle';
@@ -22,6 +23,7 @@ import List from '@ckeditor/ckeditor5-list/src/list';
 // import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed';
 import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
 import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice';
+import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat';
 import Table from '@ckeditor/ckeditor5-table/src/table';
 import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar';
 import TextTransformation from '@ckeditor/ckeditor5-typing/src/texttransformation';
@@ -38,75 +40,90 @@ export default class ClassicEditor extends ClassicEditorBase {
 
 // Plugins to include in the build.
 ClassicEditor.builtinPlugins = [
-    Essentials,
-    UploadAdapter,
-    Autoformat,
-    Bold,
-    Italic,
-    Underline,
-    Strikethrough,
-    Subscript,
-    Superscript,
-    BlockQuote,
-    CKFinder,
-    EasyImage,
-    Heading,
-    Image,
-    ImageCaption,
-    ImageStyle,
-    ImageToolbar,
-    ImageUpload,
-    ImageResize,
+	Essentials,
+	UploadAdapter,
+	Autoformat,
+	Bold,
+	Italic,
+	Underline,
+	Strikethrough,
+	Subscript,
+	Superscript,
+	BlockQuote,
+	CKFinder,
+	// EasyImage,
+	Heading,
+	HtmlEmbed,
+	Image,
+	ImageCaption,
+	ImageStyle,
+	ImageToolbar,
+	ImageUpload,
+	ImageResize,
     LinkImage,
-    Indent,
-    Link,
-    List,
-    // MediaEmbed,
-    Paragraph,
-    PasteFromOffice,
-    Table,
-    TableToolbar,
-    TextTransformation,
-    FontColor,
-    FontBackgroundColor,
-    Alignment
+	Indent,
+	Link,
+	List,
+	// MediaEmbed,
+	Paragraph,
+	PasteFromOffice,
+	RemoveFormat,
+	Table,
+	TableToolbar,
+	TextTransformation,
+	FontColor,
+	FontBackgroundColor,
+	Alignment
 ];
 
 // Editor configuration.
 ClassicEditor.defaultConfig = {
-    toolbar: {
-        items: [
-            'heading',
-            '|',
-            'bold', 'italic', 'underline', 'strikethrough', 'subscript', 'superscript',
-            'link', 'bulletedList', 'numberedList',
-            '|',
-            'indent', 'outdent',
-            '|',
-            'imageUpload', 'blockQuote', 'insertTable',
-            // 'mediaEmbed',
-            'undo', 'redo'
-        ]
-    },
-    image: {
-        toolbar: [
-            'imageStyle:full',
-            'imageStyle:side',
-            'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
-            'imageStyle:alignBlockLeft', 'imageStyle:alignBlockRight',
-            '|',
-            'imageResize',
-            '|',
-            'imageTextAlternative',
-        ]
-    },
-    table: {
-        contentToolbar: [
-            'tableColumn',
-            'tableRow',
-            'mergeTableCells'
-        ]
-    },
-    // This value must be kept in sync with the language defined in webpack.config.js.
-    language: 'en'
+	alignment: {
+		options: ['left', 'center', 'right', 'justify']
+	},
+	toolbar: {
+		items: [
+			'heading',
+			'|',
+			'bold', 'italic', 'underline', 'strikethrough', 'subscript', 'superscript',
+			'link', 'bulletedList', 'numberedList',
+			'|',
+			'fontColor', 'fontBackgroundColor',
+			'|',
+			'alignment',
+			'|',
+			'indent', 'outdent',
+			'|',
+			'imageUpload', 'blockQuote', 'insertTable',
+			// 'mediaEmbed',
+			'undo', 'redo'
+		]
+	},
+	image: {
+		styles: [
+			'alignLeft', 'alignCenter', 'alignRight'
+		],
+		toolbar: [
+			'imageStyle:full',
+			'imageStyle:side',
+			'imageStyle:alignLeft',
+			'imageStyle:alignRight',
+			'imageStyle:alignCenter',
+			'imageStyle:alignBlockLeft',
+			'imageStyle:alignBlockRight',
+			'|',
+			'imageResize',
+			'|',
+			'imageTextAlternative',
+		]
+	},
+	table: {
+		contentToolbar: [
+			'tableColumn',
+			'tableRow',
+			'mergeTableCells'
+		]
+	},
+	// This value must be kept in sync with the language defined in webpack.config.js.
+	language: 'en'
 };

+ 16 - 11
webpack.config.js

@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  */
 
@@ -11,7 +11,7 @@ const path = require( 'path' );
 const webpack = require( 'webpack' );
 const { bundler, styles } = require( '@ckeditor/ckeditor5-dev-utils' );
 const CKEditorWebpackPlugin = require( '@ckeditor/ckeditor5-dev-webpack-plugin' );
-const TerserPlugin = require( 'terser-webpack-plugin' );
+const TerserWebpackPlugin = require( 'terser-webpack-plugin' );
 
 module.exports = {
 	devtool: 'source-map',
@@ -31,7 +31,7 @@ module.exports = {
 
 	optimization: {
 		minimizer: [
-			new TerserPlugin( {
+			new TerserWebpackPlugin( {
 				sourceMap: true,
 				terserOptions: {
 					output: {
@@ -48,7 +48,7 @@ module.exports = {
 		new CKEditorWebpackPlugin( {
 			// UI language. Language codes follow the https://en.wikipedia.org/wiki/ISO_639-1 format.
 			// When changing the built-in language, remember to also change it in the editor's configuration (src/ckeditor.js).
-			language: 'en',
+			language: 'ru',
 			additionalLanguages: 'all'
 		} ),
 		new webpack.BannerPlugin( {
@@ -76,14 +76,19 @@ module.exports = {
 						}
 					},
 					{
+						loader: 'css-loader'
+					},
+					{
 						loader: 'postcss-loader',
-						options: styles.getPostCssConfig( {
-							themeImporter: {
-								themePath: require.resolve( '@ckeditor/ckeditor5-theme-lark' )
-							},
-							minify: true
-						} )
-					}
+						options: {
+							postcssOptions: styles.getPostCssConfig( {
+								themeImporter: {
+									themePath: require.resolve( '@ckeditor/ckeditor5-theme-lark' )
+								},
+								minify: true
+							} )
+						}
+					},
 				]
 			}
 		]