Skip to main content

Readme

SETUPÔÇő

Ben├Âtigt werden nodejs (https://nodejs.org/, liefert npm mit) und git (f├╝r Windows siehe https://gitforwindows.org/). Mit npm kann dann grunt (https://gruntjs.com/) mit dem folgenden Befehl aus der Kommandozeile (Windows: cmd.exe) installiert werden:

npm install -g grunt-cli

F├╝r das Installieren der aktuellen Packete regelm├Ą├čig folgende Befehle in der Kommandozeile und im Wurzelordner vom eLP (mit package.json und Gruntfile.js) ausf├╝hren:

npm install
grunt

PflegeÔÇő

Wichtige Kommandozeilen-Befehle f├╝r die Pflege des eLP:

BefehleBeschreibung
npm outdatedVeraltete Packete anzeigen
npm installPackete installieren/updaten, ignoriert Packet-Versionen die potenzielle ├änderungen n├Âtig machen
gruntMacht die gesamte "Magie", u.a. bindet aktuelle Versionen von geladenen Packeten in das eLP ein
npm install -g npmAktualisiert npm selbst
npm-windows-upgrade --npm-version latestSpezielles Tool um npm auf Windows zu aktualisieren, mehr Details: Seite des Tools

Um Packet-Versionen zu installieren, die manuell angesehen und das eLP eventuell angepasst werden muss, muss package.json manuell angepasst werden, im Anschluss installiert npm install die neue Version.

DokumentationÔÇő

Die Dokumentation ist mit docusaurus gestaltet. Die daf├╝r geschriebenen Markdown-Dateien sind im Unterordner docusaurus\. Die JavaScript API-Referenz wird automatisch aus JsDoc-Style Kommentaren aus der JavaScript-Datei generiert. Um die Dokumentation unter documentation\ nach ├änderungen an den Dateien in docusaurus\ anzupassen, sind folgende Befehle n├Âtig:

BefehleBeschreibung
npm run buildUpdatet die Dokumentation unter documentation\. Wird im Unterordner docusaurus ausgef├╝hrt!
npm run startStartet einen lokalen Testserver welcher bei Änderungen in docusaurus\ direkt docusaurus\ anpasst. Wird im Unterordner docusaurus ausgeführt!
npm run jsdoc2mdPasst die API-Referenz in docusaurus\docs\Entwickler\Javascript\api an Resources\Js\planer.js an. Wird im Wurzelverzeichnis ausgef├╝hrt!

PacketeÔÇő

Ein Projekt wie das eLP kann einen solchen Funktionsumfang nur erreichen, indem es auf zahlreiche existierende, freie Packete zur├╝ckgreift. Wir bedanken uns an dieser Stelle bei jedem Mitwirkenden dieser Packete und an der gesamten Open-Source-Community.

Die aktuell benutzten JavaScript-Packete umfassen:

PacketZweck
Bootstrap 3HTML-Framework
BowserErkennung des Browsers um gezielte Meldungen und Hinweise geben zu k├Ânnen
CanvgReiner JavaScript-SVG parser, gerade auch genutzt um MathJax-Ausgaben zu Bildern zu konvertieren und damit exportieren zu k├Ânnen
CKEditor 5WYSIWYG-Editor um Nutzen die Eingabe von Formatierungen und Inhalten wie Bildern zu erm├Âglichen
CKEditor 4Fallback von CKEditor 5 f├╝r IE 10
docx├ťbernimmt den Export zu docx-Dateien
es6-promise-polyfillPolyfill f├╝r die moderne promise-Syntax
file-saverStandarisiert das Speichern von Datein
flatpickrSch├Âner, schlichter und moderner Datum- und Zeitpicker
font-awesomeViele Icons die wir nicht selbst erstellen mussten
fullcalendarDer Kalender im Kalender-View
interactjsBisher vor allem um das Anpassen der Gr├Â├če von textareas auch auf touch-Ger├Ąten zu erm├Âglichen, m├Âglicherweise kann in Zukunft drag&drop vereinfachen
jimp"Rettet" den Export von Bildern indem viele Bilder so ver├Ąndert werden, dass pdfmake und docx damit umgehen k├Ânnen
jQueryJavaScript-Framework, vor allem f├╝r events genutzt, insbesondere mit den namespaces
jszipN├Âtig f├╝r docx, in Zukunft m├Âglicherweise auch f├╝r andere Export-Formate
list.jsF├╝r die Listen in der Infothek
lodashViele Utility-Funktionen
marked├ťbersetzt die Markdown-Dateien der Infothek zu HTML welches die Browser verstehen k├Ânnen
mathjaxBringt den Support f├╝r mathematische Gleichungen, vor allem f├╝r die Unterst├╝tzung von latex-artiger Syntax genutzt
momentLeistungsf├Ąhigerer Umgang mit Datum und Zeit als das native Date-Objekt
pdfmakeGeneriert die PDFs, gro├čartiges Projekt!
rgb-colorVoraussetzung f├╝r pdfmake
select2Ersetzt die kaum anpassbaren Selectboxen durch gut aussehende und insbesondere stark konfigurierbares DOM
timepicker@Deprecated, vor flatpicker genutzt
urijsVereinfacht den Umgang mit URIs
validatorSammlung von Tests um Dateien f├╝r spezielle Formate zu untersuchen, insbesondere f├╝r URIs und Data-URIs genutzt
vex-jsVereinfacht das dynamische Erstellen von Dialogfenstern

Zur Entwicklung nutzen wir:

ESlintZur Syntax├╝berpr├╝fung von JavaScript
PrettierSorgt daf├╝r, dass ein Code-Style befolgt wird
GruntAls einheitliche Ebene um die Entwicklertools auszuf├╝hren
uglifyF├╝r das Minifizieren und Zusammenf├╝gen der JavaScript-Dateien
concat_cssF├╝r das Minifizieren und Zusammenf├╝gen der CSS-Dateien
lessModernere und handlichere "Version" von CSS
docusaurusBaut die Dokumentation aus markdown-Dateien
jsDocF├╝r das Generieren der JavaScript API-Referenz

Nicht aufgef├╝hrt sind Plugins, die vollst├Ąndige Liste kann in ┬┤package.json┬┤ eingesehen werden.