Files
mdg-filius/README.md
T
julian.kiedaischandClaude Opus 5.5 b8b999fd66 feat: F4.8d the documentation mode's report as a PDF, as Java's
ReportRun reads Java's report back with iText: every piece of text with its
place, font, size and colour. The editor lays the report out by iText's
rules (A4, leading 1.5, loose chunks in the current line, tables 80 % wide
with padding 2, fixed traffic columns, page breaks) and draws it with
pdf-lib in the PDF's own Helvetica, widths without kerning as iText measures.
All device pages of Internet_Komplett, the first page and the data exchange
of einfaches_rechnernetz_komplett match Java piece by piece; Java's iText
reads our PDF with the same text in the same places. The sidebar gains
Java's "Report"; the frames come from the room by a short subscription.
Not adopted: true/false for DHCP (Java's own Ja/Nein), hash table orders,
an image running off the page, the report writing back into the model.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 12:35:35 +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, Bericht als PDF); `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).