1document.addEventListener("DOMContentLoaded", () => { 2 const textarea = document.querySelector("textarea[name='wikitext']"); 3 if (!textarea) return; 4 5 const container = document.createElement("div"); 6 container.id = "ckeditor-container"; 7 textarea.style.display = "none"; 8 textarea.parentNode.insertBefore(container, textarea); 9 10 const script = document.createElement("script"); 11 script.src = DOKU_BASE + "lib/plugins/ckeditor5markdown/ckeditor.js"; 12 script.onload = () => { 13 ClassicEditor 14 .default 15 .create(container) 16 .then(editor => { 17 window.editor = editor; 18 editor.setData(textarea.value); 19 20 editor.model.document.on("change:data", () => { 21 textarea.value = editor.getData(); 22 }); 23 24 const form = textarea.closest("form"); 25 if (form) { 26 form.addEventListener("submit", () => { 27 textarea.value = editor.getData(); 28 }); 29 } 30 }) 31 .catch(console.error); 32 }; 33 34 document.body.appendChild(script); 35}); 36