$mol funktioniert in jedem Editor, aber eine kleine Auswahl an Werkzeugen macht .view.tree und typisierte Styles deutlich komfortabler: ein Projekt-Scaffolder, ein Language Server, Editor-Integrationen für Zed und VS Code sowie ein Skill, der LLM-Assistenten das Framework beibringt.
create-view-tree-lsp erzeugt ein sofort lauffähiges $mol-Modul, sodass Sie den Boilerplate-Code nicht von Hand zusammenbauen müssen:1npxcreate-view-tree-lspbog/myappFühren Sie es im Wurzelverzeichnis Ihres MAM-Checkouts aus: Modulpfade werden von dort aus aufgelöst, und dort gehört das Projekt hin. Außerhalb eines Workspace warnt der Befehl, statt Sie das beim ersten Build herausfinden zu lassen.Das Argument ist der Modulpfad (namespace/name oder das gleichwertige bog_myapp). Es schreibt view.tree, view.ts, view.css.ts und index.html für eine funktionierende App sowie die GitHub Actions zum Deployen.Alles, was der Generator hinzufügen kann, ist standardmäßig dabei. Sie nennen nur das, was Sie nicht wollen:1npxcreate-view-tree-lspbog/myapp--no-tauri--no-backend--no-baza — ein local-first Speicher Giper Baza--no-docker — ein Docker-Setup mit docker-compose.yml und nginx-Konfiguration--no-tauri — eine Tauri-Desktop-Hülle--no-backend — ein $mol_server-REST-Backend mit node:sqlite-Speicher und einem gemeinsam genutzten TypeScript-Item-Typ--no-prerender, --no-seo — Sichtbarkeit für Suchmaschinen, weiter unten unter Kontinuierliche Integration beschriebenEin unbekanntes Flag bricht den Lauf ab, damit ein Tippfehler nicht stillschweigend etwas drin lässt.Der Scaffolder ist ein dünner Wrapper über der CLI im Language Server, sodass npxview-tree-lspcreatebog/myapp dasselbe direkt erledigt.
Übersetzungen liegen neben ihrem Modul, in <Modul>/<Name>.locale=<lang>.json. Dem Code kommt das entgegen, dem Übersetzer nicht: Statt einer Liste von Sätzen bekommt er dreißig kleine Dateien.$yuf_localizer schließt diese Lücke. Geben Sie ihm die Projekt-URLs und Sprachcodes, und er zeigt alle Schlüssel in einer durchsuchbaren Liste — samt Markierungen für alles, was noch offen ist: Schlüssel, die es nur auf Englisch gibt, geänderte, aber noch nicht festgeschriebene, und veraltete, die das Projekt gar nicht mehr kennt. Die Übersetzungen bleiben im Browser, bis Sie sie exportieren, zwischen zwei Sitzungen geht also nichts verloren.Ist der Übersetzer fertig, exportieren Sie das Ergebnis und verteilen es zurück auf die Module:1# aus dem MAM-Wurzelverzeichnis2npxview-tree-lsplocalebog/myapp/app/---exclude=mol--updateAls Argument dient ein Ordner oder eine einzelne Locale-Datei. Flags:Jeder Schlüssel trägt seinen Modulpfad in sich, also landet $my_page_greeting in my/page/page.locale=ru.json — direkt neben den Quellen, zu denen er gehört. Dieses Modul zu bestimmen ist allerdings heikler, als es aussieht: _ trennt Ordner und Wörter gleichermaßen, der längste passende Pfad ist also die falsche Antwort. In $my_page_lang_hint beginnt die Eigenschaft mit lang, und ein echtes Submodul my/page/lang nebenan würde den Schlüssel verschlucken. Deshalb fragt der Befehl jedes Kandidatenmodul, welche Schlüssel es deklariert — MAM schreibt genau diese in dessen -view.tree-Locale-Datei — und gibt den Schlüssel dem Modul, dem er gehört.