packages/doc holds the editor's model (ImportedProject) losslessly in a Yjs document (schema 1): ports with their settings, each node's settings as maps per field, programs, files as a flat path map in creation order (text as Y.Text), own Java applications, links, documentation items, archive entries. The core's snapshot and the .fls export go through the project. The janitor repairs dangling links, two links at one port and files without their folder, deterministically and idempotently. All 23 corpus files come back through a Yjs update with the same snapshot and export. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
46 lines
1.7 KiB
Markdown
46 lines
1.7 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 |
|
|
| `packages/editor` | Oberfläche im Iframe des Dashboards *(folgt)* |
|
|
| `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
|
|
```
|
|
|
|
Code, Kommentare und Testnamen sind englisch; sichtbare Texte stehen hinter
|
|
i18n-Schlüsseln (Deutsch/Englisch).
|