Files
mdg-filius/README.md
T
julian.kiedaischandClaude Opus 5.5 7e68414bb2 feat: F4.8c the documentation mode's image export, as Java's
ExportRun measures Java's print panel (GUIContainer.prepareExportPanel) and
image on four projects and an empty one: 10 to spare around, a light grey
footer 20 below the lowest element, 20 below it, a transparent background,
the documentation painted as in the design. The sidebar gains Java's
"Exportieren": the surface painted with Canvas 2D (an SVG with a
foreignObject taints the canvas in WebKit) and saved under the project's
name; Java's message when saving fails. Not adopted: Java's empty image of
an empty project (its footer overflows). The editor takes a projectName;
the capture export shares the download helper.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 11:54:09 +00:00

49 lines
2.3 KiB
Markdown

# mdg-filius
Netzwerksimulation nach [FILIUS](https://www.lernsoftware-filius.de) für den
Browser — als App „Filius" im MDG-Dashboard, gemeinsam bearbeitbar.
> Based on Filius by Dr. Stefan Freischlad and the Filius project.
>
> Dieses Projekt ist unabhängig. Es wird weder vom ursprünglichen
> Filius-Projekt (Universität Siegen) noch von `filius-project`
> (Filius on iPad) herausgegeben, betrieben oder unterstützt.
## Herkunft
Der Simulationskern ist eine Übertragung nach TypeScript aus
* [`filius-project/filius-ipad`](https://github.com/filius-project/filius-ipad)
(Swift, GPLv2 oder GPLv3) — Vorlage für Kern, `.fls`-Codec und Tests,
* [`filius1/filius`](https://gitlab.com/filius1/filius) (Java, GPLv2 oder
GPLv3) — Referenz für Dateiformat und Verhalten.
Jede übertragene Datei nennt in ihrem Kopf die Quelldatei. `CHANGES.md` führt
die Herkunft je Paket. Lizenz dieses Repos: **GPL-3.0** (`LICENSE`).
## Aufbau
| Pfad | Inhalt |
| --- | --- |
| `packages/core` | Simulationskern: Modell, Ereignis-Warteschlange, Protokolle, Anwendungen — ohne DOM, ohne Node |
| `packages/fls` | `.fls` lesen, schreiben, Unbekanntes bewahren |
| `packages/doc` | gemeinsames Dokument (Yjs): Projekt ⇄ Dokument, Schnappschuss des Kerns, Hausmeister, die Änderungen der Werkzeuge und des Geräte-Blatts (mit Javas Eingabeprüfung) |
| `packages/protocol` | die eine Nachrichtenliste zwischen Editor und Simulationsraum (`/sim`) |
| `packages/sim` | Simulationsraum (für Server F und den Web Worker) und `LocalSimHost` |
| `packages/editor` | Oberfläche im Iframe des Dashboards (React, Vite): Fläche, Palette, Werkzeuge des Entwurfs, Geräte-Blatt, Aktionsmodus (Desktops, Anwendungen, Datenaustausch), Dokumentationsmodus (Text, Gliederungsfläche, Bild exportieren); `npm run dev -w @mdg-filius/editor` öffnet die Entwicklungsseite |
| `server` | Filius-Dienst auf Server F *(folgt)* |
Plan und Entscheidungen: `knowledge/plans/FILIUS_WEB_PLAN.md` im Dashboard.
## Entwickeln
```bash
npm install
npm run hooks # Sprachprüfung vor jedem Commit (braucht das Dashboard drumherum)
npm run check # Typprüfung + Tests
npm run test:browser # Tests im echten Browser (Playwright, Chromium aus dem Cache)
```
Code, Kommentare und Testnamen sind englisch; sichtbare Texte stehen hinter
i18n-Schlüsseln (Deutsch/Englisch).