Deutsch
Schnellstart
1. Pakete installieren
bash
npm install @templatical/editor @templatical/rendererbash
pnpm add @templatical/editor @templatical/rendererbash
yarn add @templatical/editor @templatical/rendererbash
bun add @templatical/editor @templatical/renderer2. Editor einbinden
Diese Datei in den Browser legen. Kein Bundler. Framework- und Paketmanager-Mounts stehen unter Installation. Für Produktion eine Version pinnen — CDN.
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Templatical Editor</title>
<link
rel="stylesheet"
href="https://unpkg.com/@templatical/editor/dist/cdn/editor.css"
/>
<style>
body { margin: 0; }
#editor { height: 100vh; }
</style>
</head>
<body>
<div id="editor"></div>
<script type="module">
import { init } from "https://unpkg.com/@templatical/editor/dist/cdn/editor.js";
const editor = await init({
container: "#editor",
});
const json = editor.getContent();
const mjml = await editor.toMjml();
</script>
</body>
</html>json speichern, damit Nutzer das Template später weiter bearbeiten können. mjml auf dem Server kompilieren — toMjml() erzeugt kein HTML.
3. MJML zu HTML kompilieren
Auf dem Server kompilieren Sie das gerade gesendete MJML mit einer beliebigen MJML-Bibliothek — Node, PHP, Python, Ruby und andere. So funktioniert das Rendering listet sie. Das Node-Paket ist mjml:
bash
npm install mjmlbash
pnpm add mjmlbash
yarn add mjmlbash
bun add mjmlts
import mjml2html from "mjml";
const { html } = mjml2html(mjml);
// html ist versandfertigAus einer gespeicherten JSON-Datei, ohne den Editor zu mounten (braucht ebenfalls mjml):
bash
npx -y @templatical/template-tools render template.json --format html -o email.htmlbash
pnpm dlx @templatical/template-tools render template.json --format html -o email.htmlbash
yarn dlx @templatical/template-tools render template.json --format html -o email.htmlbash
bunx @templatical/template-tools render template.json --format html -o email.htmlSiehe Template Tools.
Shadow DOM als Standard
Der Editor mountet standardmäßig innerhalb eines Shadow DOM, sodass Host-Seiten-CSS nicht in Editor-Elemente durchschlagen kann. Verwenden Sie ein <div> — oder ein beliebiges Shadow-Host-fähiges Element — als Container; Elemente wie <table>, <form> oder <input> können keinen Shadow Root aufnehmen.
Übergeben Sie shadowDom: false, um zu deaktivieren, falls Sie einen ungewöhnlichen Container benötigen, Editor-Interna über document.querySelector ansprechen oder Firefox <101 / Safari <16.4 unterstützen müssen. Siehe den Shadow-DOM-Leitfaden für die vollständige Kompromissliste und Theming via :host.
Nächste Schritte
- Einstiegspunkte — Einbinden, Backend, Prompt oder JSON → HTML.
- Einbetten — Container-Regeln, Stacking und was die CSS-Isolation bricht.
- Backend anbinden — Speichern, Versionen, Kommentare, gespeicherte Blöcke, Medien, Test-E-Mail, Rendern.
- Template Tools — Validieren, Rendern, Importieren und Live-Vorschau per CLI oder Skript.
- So funktioniert das Rendering — JSON → MJML → HTML, und was gespeichert werden sollte.