v6-API-Leitfaden
Mind Elixir Core 6.0 wurde am 02.11.2026 veröffentlicht. Diese Seite beschreibt die aktuelle API für DOM-Selektoren, Knotenoperationen, Operations-Payloads, TypeScript-Typen und Bus-Ereignisse sowie die neuen Funktionen in v6. Das Dokumentformat selbst bleibt unverändert.
1. DOM-Selektoren
Innere Elemente der Mindmap sind <div>-Elemente mit me-*-Klassen. Verwende immer Klassenselektoren:
.me-tpc { ... }
.me-main.lhs { ... }
.me-main.rhs { ... }
.me-main.down { ... }
const root = map.querySelector('.me-root')
Die verfügbaren Klassen sind .me-main, .me-wrapper, .me-parent, .me-children, .me-tpc, .me-epd, .me-nodes und .me-root. Die Richtungsklassen liegen auf .me-main.
Eine Knoten-ID wie id: 'me-root' in deinen Daten ist kein CSS-Selektor.
Siehe Benutzerdefinierte Zweigstile für querySelector innerhalb eines Zweig-Generators.
2. Kopieren und Verschieben von Knoten
mind.copyNodes([node], to)
mind.moveNodesIn(nodes, to)
mind.moveNodesBefore(nodes, to)
mind.moveNodesAfter(nodes, to)
mind.moveUpNode(el)
mind.moveDownNode(el)
Jede Stapelmethode erwartet ein Array von Topic-Elementen plus ein Ziel-Topic. Die zugehörigen Operationsnamen sind copyNodes, moveNodesIn, moveNodesBefore und moveNodesAfter. Die vollständige Signaturliste findest du unter Knotenoperationen.
3. Operations-Payloads
mind.bus.addListener('operation', operation => {
console.log(operation.name, operation.target)
if (['moveNodesIn', 'moveNodesBefore', 'moveNodesAfter'].includes(operation.name)) {
console.log(operation.destination)
}
})
operation ist eine diskriminierte Union über name. target ist ein einzelnes NodeObj bei Operationen mit einem Ziel und ein NodeObj[] bei Stapeloperationen. destination enthält das Verschiebungsziel, position ist 'before' | 'after' für insertSibling, und origin enthält den vorherigen Zustand für reshapeNode / finishEdit. Ein- und Ausklappen erscheinen als expandNode / collapseNode auf demselben Ereignis.
4. TypeScript-Generics
import MindElixir, { type NodeObj, type Options } from 'mind-elixir'
type Metadata = { owner?: string; due?: string }
const options: Options<Metadata> = { el: '#map' }
const mind = new MindElixir<Metadata>(options)
const root: NodeObj<Metadata> = mind.nodeData
const Ctor: typeof MindElixir = MindElixir
const anotherMind = new Ctor<Metadata>({ el: '#map' })
Options, MindElixirData, NodeObj, NodeObjExport und Theme akzeptieren alle denselben Metadaten-Typparameter. Siehe TypeScript-Unterstützung.
5. Lite-Build
import MindElixir from 'mind-elixir/lite'
// the built file is named MindElixirLite.js
6. Ein-/Ausklapp-Ereignisse
mind.bus.addListener('operation', op => {
if (op.name === 'expandNode' || op.name === 'collapseNode') {
console.log('node: ', op.target)
console.log('silent: ', op.silent)
}
})
Das Einklappen ist eine Dokumentänderung und erscheint auf operation. target ist das eingeklappte NodeObj; silent ist true bei internen stillen Ausklappvorgängen und { silent: true }-Aufrufen, die keinen Historieneintrag erzeugen. expandNode und expandNodeAll akzeptieren { silent: true }.
Neue Funktionen in v6
- Rechts-nach-links-Text. Übergib
rtl: trueanOptions, um Knotenthemen, Editor, Beschriftungen und Kontextmenü auf RTL umzustellen (Arabisch, Hebräisch, Persisch, Urdu). Die Achse des Zweig-Layouts bleibt unberührt. Die Sprachdateiarist übermind-elixir/i18nverfügbar. - Outliner als eigener Einstiegspunkt.
import { Outliner } from 'mind-elixir/outliner'plusmind-elixir/outliner/style.css. Der Haupteinstieg re-exportiert ihn weiterhin. Siehe Outliner. - Inkrementelle Aktualisierung.
mind.diffRefresh(data)wendet nur die Differenz an und behält Elemente, Listener und Fokuszustand unveränderter Knoten bei. Siehe Datenimport und -export. - Rückgängig machbares Einklappen.
Ctrl + Zstellt den vorherigen Faltzustand wieder her; Mindmap und Outliner teilen sich eine Undo-Timeline.expandNode/expandNodeAllakzeptieren{ silent: true }, um den Historieneintrag zu überspringen. - Navigation über Zweige hinweg.
ArrowDownvom letzten Kind undArrowUpvom ersten Kind springen in den nächstgelegenen Geschwisterzweig. Siehe Tastenkürzel. - Markdown-Renderer überall. Die Option
markdownrendert Themen sowohl in der Mindmap als auch im Outliner. Siehe Markdown & LaTeX. - Theme und Fokus. Rufe
changeTheme(data.theme)explizit auf, um das Theme zu wechseln;refresh(data)verlässt den Fokusmodus und sendet einrefresh-Ereignis;focusNode/cancelFocusleeren den Undo-/Redo-Stapel.