diff --git a/README.md b/README.md index fddca47..dceeb8f 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,8 @@ offline support. - **What is Dorfteich?** — [`docs/features.md`](docs/features.md) - **Manuals** (user / pond admin / site admin / API / MCP) — - [`docs/manual/`](docs/manual/README.md) + [`docs/manual/`](docs/manual/README.md), auf Deutsch: + [`docs/de/`](docs/de/manual/README.md) - **Extending it** (plugins, core) — [`docs/developer/extending.md`](docs/developer/extending.md) - **Running it** — [`docs/self-hosting/`](docs/self-hosting/README.md) diff --git a/docs/de/developer/extending.md b/docs/de/developer/extending.md new file mode 100644 index 0000000..1eacdea --- /dev/null +++ b/docs/de/developer/extending.md @@ -0,0 +1,167 @@ +# Entwicklerhandbuch — Dorfteich erweitern + +_Englisches Original: [docs/developer/extending.md](../../developer/extending.md)_ + +Zwei Wege, Dorfteich mehr beizubringen: ein **Plugin** schreiben (kein +Fork, kein Redeploy, konstruktionsbedingt sicher) oder am **Kern** +mitarbeiten. Beginne mit einem Plugin, außer du musst ändern, wie das +Produkt selbst funktioniert. + +## Ein Plugin schreiben + +Lies einmal +[`docs/architecture/plugin-architecture.md`](../../architecture/plugin-architecture.md) +(englisch) — das ist der Vertrag. Die Kurzfassung: + +Ein Plugin ist ein ZIP mit einer `manifest.json`, einem einzelnen +ES-Modul-Bundle `plugin.js`, optional `styles.css`, `i18n/*.json` und +`assets/…`. Es steuert einen oder mehrere **Erweiterungspunkte** bei: + +| Typ | Du baust | Beispiel | +| -------------- | -------------------------------------------------------------- | ---------------------- | +| `sectionStyle` | benannte CSS-Stile für Inhaltsabschnitte (ganz ohne Code) | `section-styles-basic` | +| `pageTool` | ein Nur-Lese-Widget im Seiten-Werkzeuge-Panel | `toc`, `page-index` | +| `block` | ein eigener Editor-Block mit eigenen Daten und Bearbeitungs-UI | `mermaid`, `drawio` | + +### Die Sandbox — was dein Code kann und was nicht + +Dein `plugin.js` läuft in einem `