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 @@
 
 ![Demo](media/usage_author.gif)
 
-*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 @@
 
 ![Demo](media/usage_tool_developer.gif)
 
+*Ü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-SNAPSHOT