73 lines
3.2 KiB
JavaScript
73 lines
3.2 KiB
JavaScript
/**
|
|
* 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\\)\\)': `
|
|
<div class="homegrade-shortcode-icon homegrade-shortcode-icon--checked"><img src="${mainAppJsDynamicDatas.template_directory_uri}/resources/img/graphic-assets/table-cell--check.svg"
|
|
alt="${mainAppJsDynamicDatas.yes}"/></div>
|
|
`,
|
|
// ((x))
|
|
'\\(\\(x\\)\\)': `
|
|
<img class="homegrade-shortcode-icon homegrade-shortcode-icon--crossed"
|
|
src="${mainAppJsDynamicDatas.template_directory_uri}/resources/img/graphic-assets/table-cell--cross.svg"
|
|
alt="${mainAppJsDynamicDatas.no}"/>
|
|
`,
|
|
// ((-))
|
|
'\\(\\(-\\)\\)': `
|
|
<img class="homegrade-shortcode-icon homegrade-shortcode-icon--dashed"
|
|
src="${mainAppJsDynamicDatas.template_directory_uri}/resources/img/graphic-assets/table-cell--dash.svg"
|
|
alt="${mainAppJsDynamicDatas.neutral}"/>
|
|
`,
|
|
// (:-))
|
|
'\\(:-\\)\\)': `
|
|
<img class="homegrade-shortcode-icon homegrade-shortcode-icon--smiley homegrade-shortcode-icon--smiley-good"
|
|
src="${mainAppJsDynamicDatas.template_directory_uri}/resources/img/graphic-assets/homegrade_smiley-pratique-bonne.svg"
|
|
alt="${mainAppJsDynamicDatas.privilegier}"/>
|
|
`,
|
|
// (:-|)
|
|
'\\(:-\\|\\)': `
|
|
<img class="homegrade-shortcode-icon homegrade-shortcode-icon--smiley homegrade-shortcode-icon--smiley-neutral"
|
|
src="${mainAppJsDynamicDatas.template_directory_uri}/resources/img/graphic-assets/homegrade_smiley-pratique-intermediaire.svg"
|
|
alt="${mainAppJsDynamicDatas.prudence}"/>
|
|
`,
|
|
// (:-()
|
|
'\\(:-\\(\\)': `
|
|
<img class="homegrade-shortcode-icon homegrade-shortcode-icon--smiley homegrade-shortcode-icon--smiley-bad"
|
|
src="${mainAppJsDynamicDatas.template_directory_uri}/resources/img/graphic-assets/homegrade_smiley-pratique-mauvaise.svg"
|
|
alt="${mainAppJsDynamicDatas.ecarter}"/>
|
|
`,
|
|
};
|
|
|
|
// 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;
|
|
}
|
|
|
|
editorContent.innerHTML = replaceShortcodes(editorContent.innerHTML);
|
|
}
|
|
|
|
export default function editorInit() {
|
|
handleEditorShortCodes();
|
|
}
|