From e394226c64ac86e5c07ba63efad67fc629d72946 Mon Sep 17 00:00:00 2001
From: jsteuer <jan.steuer.htw@gmail.com>
Date: Wed, 18 Dec 2019 07:59:18 +0100
Subject: [PATCH] docs
---
README.md | 37 ++++++++++++++++++++++++++-----------
1 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index ac691a0..e747eb6 100644
--- a/README.md
+++ b/README.md
@@ -9,8 +9,7 @@

-*Beispielhafte Anwendung: Eine Datei wird angelegt und einem Demo-Editor geöffnet. Dieser
-generiert eine Groovy-Aufgabe*
+*Beispielhafte Anwendung: Eine Datei (`file.demo.json` - auch "Kontext-Datei" genannt) wird angelegt. Diese kann direkt durch das Werkzeug (Demo-Editor) geladen werden. Das Werkzeug kann die Kontext-Datei beschreiben (um zu demonstrieren, dass es ein internes Datenmodell persistent speichern kann). Weiterhin kann das Werkzeug eine Groovy-Aufgabe generieren und die Aufgaben-Vorschau anzeigen lassen.*
@@ -171,6 +170,11 @@

+*Über einen Deklarations-Eintrag in der Datei `ide-settings.json` kann ein Werkzeug (lokal) in
+die IDE integriert werden. Der Benutzer kann über das Kontext-Menü Dateien, die mit dem Werkzeug
+geöffnet werden können, anlegen. Wird im WWW-Teil des Dateisystems entwickelt, bietet die IDE
+grundlegende Unterstütztung beim Editieren von JavaScript-Dateien*
+
### Entwicklung größerer Werkzeuge
Für größere Werkzeuge sollten etablierte Entwicklungswerkzeuge verwendet werden, beispielsweise:
- [npm](https://nodejs.org/en/) um externe Bibliotheken (u.A. dieses Paket) einzubinden
@@ -178,7 +182,7 @@
- [TypeScript](https://www.typescriptlang.org/) zum typsischeren Programmieren (und/oder Dateien zu ES6 oder ES5 konformen JavaScript umzuformen)
- [Git](https://git-scm.com/) zur Versionierung des Quellcodes
- [Visual Studio Code](https://code.visualstudio.com/) als Entwicklungsumgebung
-- Unit Tests
+- Unit und End-To-End Tests
Das "gebündelte" Werkzeug muss nach dem Build-Prozess in das WWW-Verzeichnis kopiert und ebenfalls
lokal in die IDE integriert werden, siehe weiter unten.
@@ -203,20 +207,29 @@
Wie man der Git-Repo URL ansieht, werden Git-Tags verwendet um eine Versionierung
[(Semantic Versioning)](https://semver.org/lang/de/) der API zu erreichen. Lässt man die Versionierung weg,
wird die aktuellste Version verwendet. (Siehe Gitblit um verfügbare Versionen einzusehen)
+
+Nun können Hilfsfunktionen (in TypeScript) wie folgt eingebunden werden.
+
+ import { Helpers } from "@mathcoach/ide-api";
+Die Typedefinition sollte automatisch verfügbar sein, sodass der Umgang mit der
+IDE API (Einstiegspunkt ist die globale Variable `MC`) durch eine Entwicklungsumgebung
+wie Visual Studio Code unterstützt wird. Falls nicht, muss man die Typdefinition händisch
+einbinden (siehe *Typdefinition auch ohne Build-System nutzen*).
#### Typdefinition auch ohne Build-System nutzen
Beim Arbeiten mit Visual Studio Code kann man auch ohne Einsatz weiterer Entwicklungswerkzeuge
-und Build-Systeme von der Typdefinition der IDE API profitieren. Hierzu muss ein spezielles Kommentar
-an den Anfang der JavaScript-Datei platziert werden (Pfad anpassen!):
+und Build-Systeme von der Typdefinition der IDE API profitieren. Hierzu muss ein spezielles
+Kommentar (Triple-Slash Directive) an den Anfang der JavaScript-Datei platziert
+werden (`path` falls nötig anpassen):
/// <reference path="../node_modules/@mathcoach/ide-api/mathcoach-api.d.ts"/>
Dies sorgt dafür, dass Visual Studio Code Autovervollständigung samt Dokumentation der
-IDE API anbieten kann. Nachteilig ist, dass die `mathcoach-api.d.ts` dazu heruntergeladen
-werden muss.
+IDE API anbieten kann. Sollte es bei Verwendung von TypeScript notwendig sein, kann man eine
+Datei wie `global.d.ts` anlegen und die Triple-Slash Directive dort einmalig hinterlegen.
#### Zertifikat-Problem beheben
Falls es Probleme mit dem HTW Zertifikat gibt, muss das Zertifikat von Newton ggf. von
@@ -237,11 +250,13 @@
## Werkzeuge in die IDE integrieren
Damit die IDE das Werkzeug integrieren kann, muss eine Werkzeug-Deklaration registriert werden. Zur
Entwicklungszeit kann der Werkzeug-Entwickler dies lokal vornehmen. Anschließend können verknüpfte
-Dateien mit dem Werkzeug geöffnet werden und erstellt werden (siehe Kontext-Menüs im IDE-Explorer).
+Dateien mit dem Werkzeug geöffnet und erstellt werden (siehe Kontext-Menüs im IDE-Explorer).
Eine Freischaltung des Werkzeugs für alle Autoren erfolgt durch einen Administrator.
### Lokal (Nur für den Entwickler des Werkzeugs)
-In der IDE muss eine Werkzeug-Deklaration angelegt werden, dazu muss die Datei `ide-settings.json` editiert werden:
+In der IDE muss eine Werkzeug-Deklaration angelegt werden, dazu muss die Einstellungsdatei `ide-settings.json`
+editiert werden. Damit Änderungen an der Einstellungsdatei wirksam werden, muss die MathCoach IDE neu
+geladen (Seite neu laden) werden.
{
...
@@ -261,10 +276,10 @@
| Schlüssel | Beschreibung | Beispiel |
|---------------|---|---|
| displayName | Der Name des Werkzeugs | `"Fill-In-Blank-Editor"` |
-| entry | Der Einstiegspunkt für das Werkzeugs muss sich auf dem selben Server wie die IDE befinden. | `"/mathcoach/www/YOURNAME/tool.html"` |
+| entry | Der Einstiegspunkt für das Werkzeugs muss sich auf dem selben Server wie die IDE befinden. | `"/mathcoach/www/YOURNAME/fib/tool.html"` |
| description | Eine kurze Beschreibung | |
| developer | Name des Werkzeug-Entwicklers | |
-| extension | Dateien anhand der Datei-Erweiterung mit dem Werkzeug verknüpfen. Hier sollte etwas eindeutiges gewählt werden | `"fib.json"` für Dateien wie `someExercise.fib.json` |
+| extension | Dateien anhand der Datei-Erweiterung mit dem Werkzeug verknüpfen. Hier sollte etwas Eindeutiges gewählt werden | `"fib.json"` für Dateien wie `someExercise.fib.json` |
--
Gitblit v1.10.0