diff --git a/resources/css/editor-content/gutenberg.css b/resources/css/editor-content/gutenberg.css index 1a68a19..768bda0 100644 --- a/resources/css/editor-content/gutenberg.css +++ b/resources/css/editor-content/gutenberg.css @@ -52,6 +52,7 @@ article > *:not(.entry-content, .chapter-header-block), .table-cell-icon--checked { @apply bg-green-600; } + .table-cell-icon--dashed, .table-cell-icon--crossed { @apply bg-white border-2 border-neutral-800; } diff --git a/resources/img/graphic-assets/table-cell--dash.svg b/resources/img/graphic-assets/table-cell--dash.svg new file mode 100644 index 0000000..7984da8 --- /dev/null +++ b/resources/img/graphic-assets/table-cell--dash.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/js/editor.js b/resources/js/editor.js index 747297e..4df4ecb 100644 --- a/resources/js/editor.js +++ b/resources/js/editor.js @@ -1,25 +1,72 @@ -export default function editorInit() { - const tablesCells = document.querySelectorAll('.wp-block-table td'); - function filterCells(element, stringToParse) { - return element.textContent.trim() === stringToParse; +/** + * Gestion des shortcodes dans l'éditeur + * Les shortcodes pris en charge et leurs remplacements sont les suivants : + * - `((v))` : Remplacé par une image avec une icône de vérification. + * - `((x))` : Remplacé par une image avec une icône de croix. + * - `((-))` : Remplacé par une image avec une icône tiret. + * - `(:-))` : Remplacé par une image avec une icône de croix. + * - `(:-|)` : Remplacé par une image avec une icône de croix. + * - `(:-()` : Remplacé par une image avec une icône de croix. + * + * @function + * @returns {void} + */ + +function handleEditorShortCodes() { + // Sélectionnez tous les éléments avec la classe 'entry-content' + const editorContent = document.querySelector('.entry-content'); + if (!editorContent) return; + + const replacements = { + // ((v)) + '\\(\\(v\\)\\)': ` +
${mainAppJsDynamicDatas.yes}
+ `, + // ((x)) + '\\(\\(x\\)\\)': ` + Alternative + `, + // ((-)) + '\\(\\(-\\)\\)': ` + Alternative + `, + // (:-)) + '\\(:-\\)\\)': ` + Possible + `, + // (:-|) + '\\(:-\\|\\)': ` + Alternative + `, + // (:-() + '\\(:-\\(\\)': ` + Alternative + `, + }; + + // Fonction pour remplacer les shortcodes dans le contenu + function replaceShortcodes(content) { + for (const [shortcodePattern, replacementHTML] of Object.entries(replacements)) { + const regex = new RegExp(shortcodePattern, 'g'); + content = content.replace(regex, replacementHTML); + } + return content; } - const checkedCells = Array.from(tablesCells).filter((element) => filterCells(element, '((v))')); - const crossedCells = Array.from(tablesCells).filter((element) => filterCells(element, '((x))')); - checkedCells.forEach((cell) => { - cell.innerHTML = `
${mainAppJsDynamicDatas.yes}
`; - }); - crossedCells.forEach((cell) => { - cell.innerHTML = `${mainAppJsDynamicDatas.no}`; - }); - - // tables.forEach((table) => { - // const tableCells = contains('td', '((v))'); - // console.log(tableRows); - // tableRows.forEach((row) => { - // console.log(row); - // }); - // }); + editorContent.innerHTML = replaceShortcodes(editorContent.innerHTML); +} + +export default function editorInit() { + handleEditorShortCodes(); }