Update to Strapi

Added new plugin
Added new RichText field that is easier to mod
This commit is contained in:
James Purser 2023-08-02 21:46:56 +10:00
parent 68457f226e
commit c013672b81
7 changed files with 5060 additions and 2472 deletions

169
config/ckeditor.txt Normal file
View file

@ -0,0 +1,169 @@
globalThis.CKEditorConfig = {
/* By default configs and theme
objects will be spread with
default configs and theme
these two properties specified below
allow you to redefine
default objects completely: */
//configsOverwrite:true,
//themeOverwrite:true,
/* Here you can redefine default configs
or add completely new ones.
Each config includes:
"styles", "field" and "editorConfig" properties.
Property "field" is required. */
configs:{
toolbar:{
// styles:``,
// field:{},
// editorConfig:{}
},
custom:{
/* Styles for this specific editor.
This will be passed into the editor's parent container. */
styles:`
// --ck-focus-ring:3px dashed #5CB176;
// .ck.ck-content.ck-editor__editable {
// &.ck-focused:not(.ck-editor__nested-editable) {
// border: var(--ck-focus-ring) !important;
// }
// }
// .ck.ck-content.ck-editor__editable.ck-rounded-corners.ck-editor__editable_inline.ck-blurred{
// min-height: 400px;
// max-height: 400px;
// }
// .ck.ck-content.ck-editor__editable.ck-rounded-corners.ck-editor__editable_inline.ck-focused{
// min-height: 400px;
// max-height: 1700px;
// }
`,
/* Custom field option */
field: {
key: "custom",
value: "custom",
metadatas: {
intlLabel: {
id: "ckeditor5.preset.custom.label",
defaultMessage: "Custom version",
},
},
},
/* CKEditor configuration */
editorConfig:{
/* All available built-in plugins
you can find in admin/src/components/Input/CKEditor/configs/base.js */
plugins: [
CKEditor5.autoformat.Autoformat,
CKEditor5.basicStyles.Bold,
CKEditor5.basicStyles.Italic,
CKEditor5.essentials.Essentials,
CKEditor5.heading.Heading,
CKEditor5.image.Image,
CKEditor5.image.ImageCaption,
CKEditor5.image.ImageStyle,
CKEditor5.image.ImageToolbar,
CKEditor5.image.ImageUpload,
CKEditor5.indent.Indent,
CKEditor5.link.Link,
CKEditor5.list.List,
CKEditor5.paragraph.Paragraph,
CKEditor5.pasteFromOffice.PasteFromOffice,
CKEditor5.sourceEditing.SourceEditing,
CKEditor5.table.Table,
CKEditor5.table.TableToolbar,
CKEditor5.table.TableColumnResize,
CKEditor5.table.TableCaption,
CKEditor5.strapiPlugins.StrapiMediaLib,
CKEditor5.strapiPlugins.StrapiUploadAdapter,
],
/* By default, for plugin's UI will use
the language defined in this file
or the preferred language from strapi's user config
and 'en' as a fallback.
language.ui -> preferred language -> 'en' */
/* For content it will use language based on i18n (if! ignorei18n)
or language.content defined here
and it will use UI language as a fallback.
ignorei18n ? language.content : i18n; -> language.ui */
language:{
// ignorei18n: true,
// ui:'he',
// content:'he'
},
toolbar: [
'heading',
'|',
'bold', 'italic', 'link', 'bulletedList', 'numberedList',
'|',
'uploadImage', 'strapiMediaLib', 'insertTable',
'|',
'sourceEditing',
'|',
'undo', 'redo'
],
link : {
addTargetToExternalLinks: true,
decorators: [
{
mode: 'manual',
label: 'External Link',
attributes: {
target: '_blank',
}
}
]
},
heading: {
options: [
{ model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
{ model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
{ model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },
{ model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },
{ model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },
]
},
image: {
toolbar: [
'imageStyle:inline',
'imageStyle:block',
'imageStyle:side',
'|',
'toggleImageCaption',
'imageTextAlternative'
]
},
table: {
contentToolbar: [
'tableColumn',
'tableRow',
'mergeTableCells',
'|',
'toggleTableCaption'
]
}
}
}
},
/* Here you can customize the plugin's theme.
This will be passed as "createGlobalStyle". */
theme:{
// common:``,
// light:``,
// dark:``,
// additional:``
}
}

View file

@ -1,5 +1,7 @@
module.exports = () => { module.exports = () => {
return { return {
ckeditor: true ckeditor5: {
enabled: true,
},
} }
} }

View file

@ -10,7 +10,7 @@
"strapi": "strapi" "strapi": "strapi"
}, },
"dependencies": { "dependencies": {
"@_sh/strapi-plugin-ckeditor": "^1.1.0", "@_sh/strapi-plugin-ckeditor": "^2.0.4",
"@strapi/plugin-documentation": "^4.10.5", "@strapi/plugin-documentation": "^4.10.5",
"@strapi/plugin-i18n": "4.10.5", "@strapi/plugin-i18n": "4.10.5",
"@strapi/plugin-users-permissions": "4.10.5", "@strapi/plugin-users-permissions": "4.10.5",
@ -19,7 +19,8 @@
"mysql": "^2.18.1", "mysql": "^2.18.1",
"strapi-plugin-local-image-sharp": "^1.6.0", "strapi-plugin-local-image-sharp": "^1.6.0",
"strapi-plugin-menus": "^0.3.2", "strapi-plugin-menus": "^0.3.2",
"strapi-plugin-navigation": "^2.0.13" "strapi-plugin-navigation": "^2.0.13",
"strapi-plugin-responsive-image": "^1.1.0"
}, },
"author": { "author": {
"name": "A Strapi developer" "name": "A Strapi developer"

View file

@ -56,6 +56,13 @@
"FeaturedImageCaption": { "FeaturedImageCaption": {
"type": "string", "type": "string",
"required": true "required": true
},
"FullBody": {
"type": "customField",
"options": {
"preset": "custom"
},
"customField": "plugin::ckeditor5.CKEditor"
} }
} }
} }

View file

@ -14,7 +14,7 @@
"name": "Apache 2.0", "name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html" "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
}, },
"x-generation-date": "2023-05-20T09:26:46.253Z" "x-generation-date": "2023-08-02T11:17:41.584Z"
}, },
"x-strapi-config": { "x-strapi-config": {
"path": "/documentation", "path": "/documentation",
@ -39,6 +39,13 @@
} }
], ],
"components": { "components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
},
"schemas": { "schemas": {
"Error": { "Error": {
"type": "object", "type": "object",
@ -148,6 +155,9 @@
}, },
"FeaturedImageCaption": { "FeaturedImageCaption": {
"type": "string" "type": "string"
},
"FullBody": {
"type": "string"
} }
} }
} }
@ -1299,6 +1309,9 @@
"FeaturedImageCaption": { "FeaturedImageCaption": {
"type": "string" "type": "string"
}, },
"FullBody": {
"type": "string"
},
"createdAt": { "createdAt": {
"type": "string", "type": "string",
"format": "date-time" "format": "date-time"
@ -1437,6 +1450,9 @@
"FeaturedImageCaption": { "FeaturedImageCaption": {
"type": "string" "type": "string"
}, },
"FullBody": {
"type": "string"
},
"createdAt": { "createdAt": {
"type": "string", "type": "string",
"format": "date-time" "format": "date-time"
@ -8236,6 +8252,9 @@
"FeaturedImageCaption": { "FeaturedImageCaption": {
"type": "string" "type": "string"
}, },
"FullBody": {
"type": "string"
},
"createdAt": { "createdAt": {
"type": "string", "type": "string",
"format": "date-time" "format": "date-time"
@ -9530,6 +9549,9 @@
"FeaturedImageCaption": { "FeaturedImageCaption": {
"type": "string" "type": "string"
}, },
"FullBody": {
"type": "string"
},
"createdAt": { "createdAt": {
"type": "string", "type": "string",
"format": "date-time" "format": "date-time"

View file

@ -0,0 +1,7 @@
const imageManipulation = require("strapi-plugin-responsive-image/server/services/image-manipulation");
module.exports = (plugin) => {
plugin.services["image-manipulation"] = imageManipulation;
return plugin;
};

7316
yarn.lock

File diff suppressed because it is too large Load diff