mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-11-10 22:28:23 +00:00
Refactor CKEditor integration across application
Replaced `ClassicEditor` with a consistent `classicEditor` and added centralized editor configuration using `editorConfig`. Simplified webpack configuration by removing CKEditor-specific setups and dependencies, improving maintainability.
This commit is contained in:
@@ -1,30 +1,24 @@
|
||||
import ClassicEditorBase from "@ckeditor/ckeditor5-editor-classic/src/classiceditor";
|
||||
import EssentialsPlugin from "@ckeditor/ckeditor5-essentials/src/essentials";
|
||||
import MarkdownPlugin from "@ckeditor/ckeditor5-markdown-gfm/src/markdown";
|
||||
import BoldPlugin from "@ckeditor/ckeditor5-basic-styles/src/bold";
|
||||
import ItalicPlugin from "@ckeditor/ckeditor5-basic-styles/src/italic";
|
||||
import BlockQuotePlugin from "@ckeditor/ckeditor5-block-quote/src/blockquote";
|
||||
import HeadingPlugin from "@ckeditor/ckeditor5-heading/src/heading";
|
||||
import LinkPlugin from "@ckeditor/ckeditor5-link/src/link";
|
||||
import ListPlugin from "@ckeditor/ckeditor5-list/src/list";
|
||||
import ParagraphPlugin from "@ckeditor/ckeditor5-paragraph/src/paragraph";
|
||||
import {
|
||||
Essentials,
|
||||
Bold,
|
||||
Italic,
|
||||
Paragraph,
|
||||
Mention,
|
||||
Markdown,
|
||||
BlockQuote,
|
||||
Heading,
|
||||
Link,
|
||||
List,
|
||||
} from 'ckeditor5';
|
||||
import coreTranslations from 'ckeditor5/translations/fr.js';
|
||||
|
||||
import 'ckeditor5/ckeditor5.css';
|
||||
|
||||
import "./index.scss";
|
||||
|
||||
export default class ClassicEditor extends ClassicEditorBase {}
|
||||
|
||||
ClassicEditor.builtinPlugins = [
|
||||
EssentialsPlugin,
|
||||
MarkdownPlugin,
|
||||
BoldPlugin,
|
||||
ItalicPlugin,
|
||||
BlockQuotePlugin,
|
||||
HeadingPlugin,
|
||||
LinkPlugin,
|
||||
ListPlugin,
|
||||
ParagraphPlugin,
|
||||
];
|
||||
|
||||
ClassicEditor.defaultConfig = {
|
||||
export default {
|
||||
plugins: [Essentials, Markdown, Bold, Italic, BlockQuote, Heading, Link, List, Paragraph],
|
||||
toolbar: {
|
||||
items: [
|
||||
"heading",
|
||||
@@ -39,6 +33,8 @@ ClassicEditor.defaultConfig = {
|
||||
"redo",
|
||||
],
|
||||
},
|
||||
language: "fr",
|
||||
translations: [
|
||||
coreTranslations
|
||||
],
|
||||
licenseKey: "GPL",
|
||||
};
|
||||
} ;
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
import ClassicEditor from "./editor_config";
|
||||
import config from "./editor_config";
|
||||
import {ClassicEditor} from "ckeditor5";
|
||||
|
||||
const ckeditorFields: NodeListOf<HTMLTextAreaElement> =
|
||||
document.querySelectorAll("textarea[ckeditor]");
|
||||
ckeditorFields.forEach((field: HTMLTextAreaElement): void => {
|
||||
ClassicEditor.create(field)
|
||||
.then((editor) => {
|
||||
//console.log( 'CkEditor was initialized', editor );
|
||||
})
|
||||
ClassicEditor.create(field, config)
|
||||
.catch((error) => {
|
||||
console.error(error.stack);
|
||||
throw error;
|
||||
});
|
||||
});
|
||||
//Fields.push.apply(Fields, document.querySelectorAll('.cf-fields textarea'));
|
||||
|
||||
@@ -1,45 +1,3 @@
|
||||
const { styles } = require("@ckeditor/ckeditor5-dev-utils");
|
||||
const {
|
||||
CKEditorTranslationsPlugin,
|
||||
} = require("@ckeditor/ckeditor5-dev-translations");
|
||||
|
||||
buildCKEditor = function (encore) {
|
||||
encore
|
||||
.addPlugin(
|
||||
new CKEditorTranslationsPlugin({
|
||||
language: "fr",
|
||||
addMainLanguageTranslationsToAllAssets: true,
|
||||
verbose: !encore.isProduction(),
|
||||
strict: true,
|
||||
}),
|
||||
)
|
||||
|
||||
// Use raw-loader for CKEditor 5 SVG files.
|
||||
.addRule({
|
||||
test: /ckeditor5-[^/\\]+[/\\]theme[/\\]icons[/\\][^/\\]+\.svg$/,
|
||||
loader: "raw-loader",
|
||||
})
|
||||
|
||||
// Configure other image loaders to exclude CKEditor 5 SVG files.
|
||||
.configureLoaderRule("images", (loader) => {
|
||||
loader.exclude =
|
||||
/ckeditor5-[^/\\]+[/\\]theme[/\\]icons[/\\][^/\\]+\.svg$/;
|
||||
})
|
||||
|
||||
// Configure PostCSS loader.
|
||||
.addLoader({
|
||||
test: /ckeditor5-[^/\\]+[/\\]theme[/\\].+\.css$/,
|
||||
loader: "postcss-loader",
|
||||
options: {
|
||||
postcssOptions: styles.getPostCssConfig({
|
||||
themeImporter: {
|
||||
themePath: require.resolve("@ckeditor/ckeditor5-theme-lark"),
|
||||
},
|
||||
minify: true,
|
||||
}),
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
// Compile and loads all assets from the Chill Main Bundle
|
||||
module.exports = function (encore, entries) {
|
||||
@@ -79,8 +37,6 @@ module.exports = function (encore, entries) {
|
||||
__dirname + "/Resources/public/page/export/download-export.js",
|
||||
);
|
||||
|
||||
buildCKEditor(encore);
|
||||
|
||||
// Modules entrypoints
|
||||
encore.addEntry(
|
||||
"mod_collection",
|
||||
|
||||
Reference in New Issue
Block a user