Fix TipTap loading: use esm.sh instead of non-existent UMD builds

TipTap 2.x is ESM-only, no UMD on CDN. Use esm.sh to serve
ES modules from npm, expose as window globals.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Etienne Delvarre
2026-05-29 11:36:05 +02:00
parent 709d9e0ce6
commit 0b763ae9f4
+9 -4
View File
@@ -6,8 +6,13 @@
<title>Tableau de bord — RdB</title> <title>Tableau de bord — RdB</title>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.6/Sortable.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.6/Sortable.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tiptap/core@2.11.7/dist/index.umd.min.js"></script> <script type="module">
<script src="https://cdn.jsdelivr.net/npm/@tiptap/starter-kit@2.11.7/dist/index.umd.min.js"></script> import { Editor } from 'https://esm.sh/@tiptap/core@2.11.7';
import StarterKit from 'https://esm.sh/@tiptap/starter-kit@2.11.7';
window.TiptapEditor = Editor;
window.TiptapStarterKit = StarterKit;
window.dispatchEvent(new Event('tiptap-loaded'));
</script>
<style> <style>
* { margin: 0; padding: 0; box-sizing: border-box; } * { margin: 0; padding: 0; box-sizing: border-box; }
@@ -1460,8 +1465,8 @@ function initEditor(html) {
// Destroy previous editor // Destroy previous editor
if (tiptapEditor) { tiptapEditor.destroy(); tiptapEditor = null; } if (tiptapEditor) { tiptapEditor.destroy(); tiptapEditor = null; }
const { Editor } = window.TiptapCore || {}; const Editor = window.TiptapEditor;
const { StarterKit } = window.TiptapStarterKit || {}; const StarterKit = window.TiptapStarterKit;
if (!Editor || !StarterKit) { if (!Editor || !StarterKit) {
// Fallback: contenteditable div if TipTap CDN not loaded // Fallback: contenteditable div if TipTap CDN not loaded