8
0
Просмотр исходного кода

Merge branch 'master' into t/ckeditor5-react/49

Kamil Piechaczek 7 лет назад
Родитель
Сommit
aec5104e1e

+ 13 - 1
README.md

@@ -318,7 +318,7 @@ See CKEditor 5 release blog posts [on the CKEditor blog](https://ckeditor.com/bl
 		<a href="https://www.npmjs.com/package/@ckeditor/ckeditor5-adapter-ckfinder"><img src="https://img.shields.io/npm/v/@ckeditor/ckeditor5-adapter-ckfinder.svg" alt="@ckeditor/ckeditor5-adapter-ckfinder npm package badge"></a>
 		<a href="https://www.npmjs.com/package/@ckeditor/ckeditor5-adapter-ckfinder"><img src="https://img.shields.io/npm/v/@ckeditor/ckeditor5-adapter-ckfinder.svg" alt="@ckeditor/ckeditor5-adapter-ckfinder npm package badge"></a>
 	</td>
 	</td>
 	<td>
 	<td>
-		The <a href="https://ckeditor.com/ckeditor-4/ckfinder/">CKFinder</a> adapter for features which require upload capabilities.
+		The <a href="https://ckeditor.com/ckfinder/">CKFinder</a> adapter for features which require upload capabilities (e.g. image upload).
 	</td>
 	</td>
 </tr>
 </tr>
 
 
@@ -382,6 +382,18 @@ See CKEditor 5 release blog posts [on the CKEditor blog](https://ckeditor.com/bl
 	</td>
 	</td>
 </tr>
 </tr>
 
 
+<tr>
+	<td>
+		<a href="https://github.com/ckeditor/ckeditor5-ckfinder"><code>@ckeditor/ckeditor5-ckfinder</code></a>
+	</td>
+	<td>
+		<a href="https://www.npmjs.com/package/@ckeditor/ckeditor5-ckfinder"><img src="https://img.shields.io/npm/v/@ckeditor/ckeditor5-ckfinder.svg" alt="@ckeditor/ckeditor5-ckfinder npm package badge"></a>
+	</td>
+	<td>
+		The <a href="https://ckeditor.com/ckfinder/">CKFinder</a> file browser integration.
+	</td>
+</tr>
+
 <tr>
 <tr>
 	<td>
 	<td>
 		<a href="https://github.com/ckeditor/ckeditor5-clipboard"><code>@ckeditor/ckeditor5-clipboard</code></a>
 		<a href="https://github.com/ckeditor/ckeditor5-clipboard"><code>@ckeditor/ckeditor5-clipboard</code></a>

+ 1 - 1
docs/api/index.md

@@ -5,7 +5,7 @@ category: api-reference
 # API documentation
 # API documentation
 
 
 <info-box>
 <info-box>
-	Use the **navigation tree on the left** to navigate through CKEditor API.
+	Use the <span class="navigation-hint_desktop">**navigation tree on the left**</span><span class="navigation-hint_mobile">**main menu button in the upper-left corner**</span> to navigate through CKEditor API.
 </info-box>
 </info-box>
 
 
 ## Popular API pages
 ## Popular API pages

+ 16 - 0
docs/assets/styles.css

@@ -44,3 +44,19 @@ https://github.com/ckeditor/ckeditor5-build-decoupled-document/issues/12 */
 		padding-right: 300px;
 		padding-right: 300px;
 	}
 	}
 }
 }
+
+/* https://github.com/ckeditor/ckeditor5/issues/1349 */
+.main .navigation-hint_mobile {
+	display: none;
+}
+
+/* https://github.com/ckeditor/ckeditor5/issues/1349 */
+@media only screen and (max-width: 960px) {
+	.main .navigation-hint_desktop {
+		display: none;
+	}
+
+	.main .navigation-hint_mobile {
+		display: inline;
+	}
+}

+ 1 - 1
docs/builds/guides/faq.md

@@ -78,7 +78,7 @@ By default, CKEditor 5 has no global registry of editor instances. But if necess
 
 
 ## How to enable image drag&drop and upload? Where should I start?
 ## How to enable image drag&drop and upload? Where should I start?
 
 
-The {@link features/image Image} and {@link features/image-upload Image upload} features are enabled by default in all editor builds. However, to fully enable image upload when installing CKEditor 5 you need to configure one of the available upload adapters ({@link features/image-upload#easy-image Easy Image} or {@link module:adapter-ckfinder/uploadadapter~CKFinderAdapterConfig CKFinder adapter}) or {@link module:upload/filerepository~UploadAdapter implement and use your own upload adapter}.
+The {@link features/image Image} and {@link features/image-upload Image upload} features are enabled by default in all editor builds. However, to fully enable image upload when installing CKEditor 5 you need to configure one of the available upload adapters ({@link features/image-upload#easy-image Easy Image} or {@link module:ckfinder/ckfinder~CKFinderConfig CKFinder adapter}) or {@link module:upload/filerepository~UploadAdapter implement and use your own upload adapter}.
 
 
 See the {@link features/image Image} and {@link features/image-upload Image upload} feature guides to learn more.
 See the {@link features/image Image} and {@link features/image-upload Image upload} feature guides to learn more.
 
 

+ 0 - 2
docs/builds/guides/integration/saving-data.md

@@ -58,7 +58,6 @@ In your HTTP server, you can now read the editor data from the `content` variabl
 	If you need to get the actual data from CKEditor at any moment using JavaScript, use the {@link module:editor-classic/classiceditor~ClassicEditor#getData `editor.getData()`} method as described in the next section.
 	If you need to get the actual data from CKEditor at any moment using JavaScript, use the {@link module:editor-classic/classiceditor~ClassicEditor#getData `editor.getData()`} method as described in the next section.
 </info-box>
 </info-box>
 
 
-<!-- Hidden due to https://github.com/cksource/umberto/issues/558
 <info-box>
 <info-box>
 	When you print the data from the database to a `<textarea>` element in an HTML page, you need to encode it correctly. For instance, if you use PHP then a minimal solution would look like this:
 	When you print the data from the database to a `<textarea>` element in an HTML page, you need to encode it correctly. For instance, if you use PHP then a minimal solution would look like this:
 
 
@@ -84,7 +83,6 @@ In your HTTP server, you can now read the editor data from the `content` variabl
 
 
 	While simple content like mentioned above does not itself require to be encoded, encoding the data will prevent losing text like "&lt;" or "&lt;img&gt;".
 	While simple content like mentioned above does not itself require to be encoded, encoding the data will prevent losing text like "&lt;" or "&lt;img&gt;".
 </info-box>
 </info-box>
--->
 
 
 ## Manually retrieving the data
 ## Manually retrieving the data
 
 

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

@@ -567,7 +567,7 @@ Note: The number of options was reduced on purpose. We understood that configuri
 		<tr>
 		<tr>
 			<td><span id="uploadUrl"><a href="/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-uploadUrl">uploadUrl</a></span></td>
 			<td><span id="uploadUrl"><a href="/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-uploadUrl">uploadUrl</a></span></td>
 			<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 support for responsive images. To configure it, provide the {@link module:cloud-services/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>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 support for responsive images. To configure it, provide the {@link module:cloud-services/cloudservices~CloudServicesConfig cloud services configuration}. Uploading via CKFinder is available, too, see {@link module:ckfinder/ckfinder~CKFinderConfig#uploadUrl <code>ckfinder.uploadUrl</code>}. </p>
 				<p>Writing your 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>
 				<p>Writing your 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>
 		</tr>
 		</tr>

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

@@ -90,7 +90,7 @@ Read more about {@linkTODO collaboration in the CKEditor 5 Framework documentati
 
 
 With [collaboration services provided by CKEditor Cloud Services](https://ckeditor.com/ckeditor-cloud-services/) it is now extremely easy to provide collaboration features inside your application.
 With [collaboration services provided by CKEditor Cloud Services](https://ckeditor.com/ckeditor-cloud-services/) it is now extremely easy to provide collaboration features inside your application.
 
 
-Check the {@link @ckeditor5 features/overview collaboration demo} and read how to enable features such as comments, user presence list or showing the selection of other users in your editor.
+Check the {@link @ckeditor5 features/real-time-collaboration collaboration demo} and read how to enable features such as comments, user presence list or showing the selection of other users in your editor.
 
 
 [Letters](https://ckeditor.com/letters/) is an example of an application using the power of CKEditor 5 for collaboration.
 [Letters](https://ckeditor.com/letters/) is an example of an application using the power of CKEditor 5 for collaboration.
 
 

+ 1 - 1
docs/builds/index.md

@@ -11,7 +11,7 @@ meta-description: Learn how to install, integrate, configure and develop CKEdito
 CKEditor 5 Builds are the fastest and easiest way to use CKEditor 5 in your application.
 CKEditor 5 Builds are the fastest and easiest way to use CKEditor 5 in your application.
 
 
 <info-box>
 <info-box>
-	Use the **navigation tree on the left** to navigate through CKEditor 5 Builds documentation.
+	Use the <span class="navigation-hint_desktop">**navigation tree on the left**</span><span class="navigation-hint_mobile">**main menu button in the upper-left corner**</span> to navigate through CKEditor 5 Builds documentation.
 </info-box>
 </info-box>
 
 
 ## Related links
 ## Related links

+ 1 - 1
docs/examples/index.md

@@ -9,7 +9,7 @@ meta-description: Navigate through CKEditor 5 examples to see what you are able
 # Examples
 # Examples
 
 
 <info-box>
 <info-box>
-	Use the **navigation tree on the left** to navigate through CKEditor 5 examples. Visit the {@link features/index Features} section to see even more examples!
+	Use the <span class="navigation-hint_desktop">**navigation tree on the left**</span><span class="navigation-hint_mobile">**main menu button in the upper-left corner**</span> to navigate through CKEditor 5 examples. Visit the {@link features/index Features} section to see even more examples!
 </info-box>
 </info-box>
 
 
 ## Related links
 ## Related links

+ 1 - 1
docs/features/index.md

@@ -7,7 +7,7 @@ toc: false
 # Features
 # Features
 
 
 <info-box>
 <info-box>
-	Use the **navigation tree on the left** to navigate through selected CKEditor 5 features.
+	Use the <span class="navigation-hint_desktop">**navigation tree on the left**</span><span class="navigation-hint_mobile">**main menu button in the upper-left corner**</span> to navigate through selected CKEditor 5 features.
 </info-box>
 </info-box>
 
 
 ## Features availability
 ## Features availability

+ 15 - 5
docs/framework/guides/contributing/development-environment.md

@@ -242,12 +242,22 @@ Leads to [`ckeditor/ckeditor5-image@02869eb`](https://github.com/ckeditor/ckedit
 
 
 By default, CKEditor 5 supports SVG icons found in the `ckeditor5-*/theme/icons` folders. Unfortunately, most of the SVG editing software produces the output with comments, obsolete tags, and complex paths, which bloats the DOM and makes the builds heavy for no good reason.
 By default, CKEditor 5 supports SVG icons found in the `ckeditor5-*/theme/icons` folders. Unfortunately, most of the SVG editing software produces the output with comments, obsolete tags, and complex paths, which bloats the DOM and makes the builds heavy for no good reason.
 
 
-To remove the excess data and prevent [certain issues](https://github.com/ckeditor/ckeditor5-ui/issues/245), **all new icons should be optimized before joining the code base**. The right utility to do this is Node–based [SVGO](https://github.com/svg/svgo) and the usage is as simple as:
+To remove the excess data and prevent [certain issues](https://github.com/ckeditor/ckeditor5-ui/issues/245), **all new icons should be optimized before joining the code base**. To do that, you can use the `clean-up-svg-icons` script in the [root of the project](#setting-up-the-ckeditor-development-environment), a wrapper for the [SVGO](https://github.com/svg/svgo) tool:
 
 
 ```bash
 ```bash
-npm install -g svgo
-cd ckeditor5-package-name/theme/icons
-svgo --enable removeTitle -i .
+cd path/to/ckeditor5
+
+# Optimize all SVG files in the folder.
+npm run clean-up-svg-icons path/to/icons/*.svg
+
+# Optimize a single SVG file.
+npm run clean-up-svg-icons path/to/icon/icon.svg
 ```
 ```
 
 
-SVGO reduces the icon size up to 70%, depending on the software used to create it and the general complexity of the image.
+The script reduces the icon size up to 70%, depending on the software used to create it and the general complexity of the image.
+
+**Note**: You may still need to tweak the source code of the SVG files manually after using the script:
+
+* The icons should have the `viewBox` attribute (instead of `width` and `height`). The `removeDimensions` SVGO plugin will not remove `width` and `height` if there is no `viewBox` attribute so make sure it is present.
+* Sometimes SVGO leaves empty (transparent) groups `<g>...</g>`. They should be removed from the source.
+* Make sure the number of `<path>` elements is minimal. Merge paths whenever possible in the image processor before saving the file.

+ 1 - 1
docs/framework/guides/overview.md

@@ -25,7 +25,7 @@ The framework was designed to be a highly flexible and universal platform for cr
 
 
 * **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.
 * **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.
 * **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! {@link @ckeditor5 features/overview Check the collaboration demo}.
+* **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! {@link @ckeditor5 features/real-time-collaboration Check the collaboration demo}.
 * **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).
 * **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!**
 * **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.
 * **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.

+ 1 - 1
docs/framework/index.md

@@ -11,7 +11,7 @@ meta-description: Learn how to install, integrate, configure and develop CKEdito
 CKEditor 5 Framework is a set of components allowing you to create any kind of rich text editing solution.
 CKEditor 5 Framework is a set of components allowing you to create any kind of rich text editing solution.
 
 
 <info-box>
 <info-box>
-    Use the **navigation tree on the left** to navigate through CKEditor 5 Framework documentation.
+    Use the <span class="navigation-hint_desktop">**navigation tree on the left**</span><span class="navigation-hint_mobile">**main menu button in the upper-left corner**</span> to navigate through CKEditor 5 Framework documentation.
 </info-box>
 </info-box>
 
 
 ## Related links
 ## Related links

+ 7 - 1
docs/umberto.json

@@ -6,13 +6,19 @@
 	"path": "docs",
 	"path": "docs",
 	"observablesdocs": "module:utils/observablemixin~ObservableMixin",
 	"observablesdocs": "module:utils/observablemixin~ObservableMixin",
 	"redirects": {
 	"redirects": {
+		"api/module_adapter-ckfinder_uploadadapter-CKFinderAdapterConfig.html": "api/module_ckfinder_ckfinder-CKFinderConfig.html",
 		"builds/guides/license-and-legal.html": "builds/guides/support/license-and-legal.html",
 		"builds/guides/license-and-legal.html": "builds/guides/support/license-and-legal.html",
 		"builds/guides/browser-compatibility.html": "builds/guides/support/browser-compatibility.html",
 		"builds/guides/browser-compatibility.html": "builds/guides/support/browser-compatibility.html",
 		"builds/guides/reporting-issues.html": "builds/guides/support/reporting-issues.html",
 		"builds/guides/reporting-issues.html": "builds/guides/support/reporting-issues.html",
 		"builds/guides/development/installing-plugins.html": "builds/guides/integration/installing-plugins.html",
 		"builds/guides/development/installing-plugins.html": "builds/guides/integration/installing-plugins.html",
 		"framework/guides/ui/theme-customization.html": "framework/guides/deep-dive/ui/theme-customization.html",
 		"framework/guides/ui/theme-customization.html": "framework/guides/deep-dive/ui/theme-customization.html",
 		"framework/guides/ui/external-ui.html": "framework/guides/deep-dive/ui/external-ui.html",
 		"framework/guides/ui/external-ui.html": "framework/guides/deep-dive/ui/external-ui.html",
-		"framework/guides/ui/document-editor.html": "framework/guides/deep-dive/ui/document-editor.html"
+		"framework/guides/ui/document-editor.html": "framework/guides/deep-dive/ui/document-editor.html",
+		"features/collaboration/overview.html": "features/collaboration/real-time-collaboration/real-time-collaboration.html",
+		"features/collaboration/collaborative-editing.html": "features/collaboration/real-time-collaboration/real-time-collaborative-editing.html",
+		"features/collaboration/collaborative-comments.html": "features/collaboration/real-time-collaboration/real-time-collaborative-comments.html",
+		"features/collaboration/presence-list.html": "features/collaboration/real-time-collaboration/presence-list.html",
+		"features/collaboration/comment-only-mode.html": "features/collaboration/comments/comment-only-mode.html"
 	},
 	},
 	"scripts": {
 	"scripts": {
 		"snippet-adapter": "../scripts/docs/snippetadapter",
 		"snippet-adapter": "../scripts/docs/snippetadapter",

+ 1 - 0
mgit.json

@@ -14,6 +14,7 @@
     "@ckeditor/ckeditor5-build-inline": "ckeditor/ckeditor5-build-inline",
     "@ckeditor/ckeditor5-build-inline": "ckeditor/ckeditor5-build-inline",
     "@ckeditor/ckeditor5-clipboard": "ckeditor/ckeditor5-clipboard",
     "@ckeditor/ckeditor5-clipboard": "ckeditor/ckeditor5-clipboard",
     "@ckeditor/ckeditor5-cloud-services": "ckeditor/ckeditor5-cloud-services",
     "@ckeditor/ckeditor5-cloud-services": "ckeditor/ckeditor5-cloud-services",
+    "@ckeditor/ckeditor5-ckfinder": "ckeditor/ckeditor5-ckfinder",
     "@ckeditor/ckeditor5-core": "ckeditor/ckeditor5-core",
     "@ckeditor/ckeditor5-core": "ckeditor/ckeditor5-core",
     "@ckeditor/ckeditor5-easy-image": "ckeditor/ckeditor5-easy-image",
     "@ckeditor/ckeditor5-easy-image": "ckeditor/ckeditor5-easy-image",
     "@ckeditor/ckeditor5-editor-balloon": "ckeditor/ckeditor5-editor-balloon",
     "@ckeditor/ckeditor5-editor-balloon": "ckeditor/ckeditor5-editor-balloon",

+ 4 - 1
package.json

@@ -33,6 +33,7 @@
     "@ckeditor/ckeditor5-build-inline": "^11.1.1",
     "@ckeditor/ckeditor5-build-inline": "^11.1.1",
     "@ckeditor/ckeditor5-clipboard": "^10.0.3",
     "@ckeditor/ckeditor5-clipboard": "^10.0.3",
     "@ckeditor/ckeditor5-cloud-services": "^10.1.0",
     "@ckeditor/ckeditor5-cloud-services": "^10.1.0",
+    "@ckeditor/ckeditor5-ckfinder": "^0.0.1",
     "@ckeditor/ckeditor5-core": "^11.0.1",
     "@ckeditor/ckeditor5-core": "^11.0.1",
     "@ckeditor/ckeditor5-easy-image": "^10.0.3",
     "@ckeditor/ckeditor5-easy-image": "^10.0.3",
     "@ckeditor/ckeditor5-editor-balloon": "^11.0.1",
     "@ckeditor/ckeditor5-editor-balloon": "^11.0.1",
@@ -81,6 +82,7 @@
     "postcss-loader": "^3.0.0",
     "postcss-loader": "^3.0.0",
     "raw-loader": "^0.5.1",
     "raw-loader": "^0.5.1",
     "style-loader": "^0.23.0",
     "style-loader": "^0.23.0",
+    "svgo": "^1.1.0",
     "uglifyjs-webpack-plugin": "^1.2.7",
     "uglifyjs-webpack-plugin": "^1.2.7",
     "umberto": "^0.12.0",
     "umberto": "^0.12.0",
     "webpack": "^4.15.0"
     "webpack": "^4.15.0"
@@ -115,7 +117,8 @@
     "release:bump-version": "node ./scripts/release/bump-versions.js",
     "release:bump-version": "node ./scripts/release/bump-versions.js",
     "release:publish": "node ./scripts/release/publish.js",
     "release:publish": "node ./scripts/release/publish.js",
     "release:stable-branches": "sh ./scripts/update-stable-branches.sh",
     "release:stable-branches": "sh ./scripts/update-stable-branches.sh",
-    "switch-to-dev-dev": "sh ./scripts/switch-to-dev-dev.sh"
+    "switch-to-dev-dev": "sh ./scripts/switch-to-dev-dev.sh",
+    "clean-up-svg-icons": "sh ./scripts/clean-up-svg-icons.sh"
   },
   },
   "lint-staged": {
   "lint-staged": {
     "**/*.js": [
     "**/*.js": [

+ 15 - 0
scripts/clean-up-svg-icons.sh

@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+# For licensing, see LICENSE.md.
+
+# Cleans up and optimizes SVG files using the SVGO utility.
+# The configuration file is located in svgo.config.json.
+#
+# Usage:
+#	npm run clean-up-svg-icons path/to/icons/*.svg
+
+for i in "$@"
+do
+	svgo --config=./scripts/svgo.config.json -i $i
+done

+ 10 - 0
scripts/svgo.config.json

@@ -0,0 +1,10 @@
+{
+	"plugins": [
+		"collapseGroups",
+		"removeDimensions",
+		{ "removeAttrs": { "attrs": "(fill|stroke|fill-rule)" } },
+		"removeTitle",
+		"removeComments",
+		"removeMetadata"
+	]
+}