Javascript Editor einbinden

Begonnen von papa, 18 Februar 2014, 20:30:04

Vorheriges Thema - Nächstes Thema

justme1968

ja. ich denke das geht. man kommt mit unter 10 files aus.

man könnte auch die directory  struktur über bord werfen. das macht es halt etwas schwieriger updates von codemirror einzuspielen. aber ich denke es hält sich  rahmen.

oder man packt gleich alles zusammen in ein einziges 'gepacktes' file. da wäre interessant zu wissen wie viel das wirklich bringt. dieser schritt würde es dann aber tatsächlich unhandlich machen z.b. das fhem syntax file alleine auszutauschen.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Die Verzeichnisstruktur unterhalb von codemirror ist aufgrund der Syntax bei der Verwendung von codemirror vorgegeben. Eine mode-Datei wie die fhem.js muss sich immer in einem gleichnamigen Verzeichnis unterhalb von mode befinden.

Nicht benötigte Dateien habe ich bereits so weit wie möglich und sinnvoll weitgehend entfernt, sodass momentan nur noch weniger als 60 Dateien übriggeblieben sind. Eventuell kann ich noch ein paar wenige Dateien in hints und mode rausnehmen.

Was meinst Du mit "minimale Version von codemirror.js" - diese Datei ist neben der zugehörigen css Datei der integrale Bestandteil, in dem der Editor steckt.

Aus Gründen der Wartbarkeit (updates von codemirror) werde ich keine Originaldateien von codemirror anfassen und ändern.

Das Einchecken gestern habe ich nicht gemacht, um Dich zu ärgern.
Ich wollte einfach das Versionschaos im Entwicklungsthread vorläufig beseitigen.

Der alternative Lösungsweg wäre: codemirror überhaupt nicht mit ausliefern (nur die  leere Verzeichnisstruktur, um die fhem.js unterzubringen) und die Installation der codemirror library dem User zu überlassen.

Dann müsste man in fhem nur das in ./www/codemirror ausliefern:

(http://up.picr.de/17559932rp.png)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#152
ich habe jetzt nochmal in der Originalstruktur aufgeräumt und bin zu folgendem Ergebnis gekommen:

(http://up.picr.de/17559982aa.png)

Zitatman könnte auch die directory  struktur über bord werfen. das macht es halt etwas schwieriger updates von codemirror einzuspielen.

Ich weiss nicht, ob sich der dann zu betreibende Aufwand wirklich lohnt.
Dann würde ich als Anwender lieber den Weg vorziehen, das codemirror selbst zu entpacken und in die Rumpfstruktur, in der fhem.js liegt, zu installieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

warum müssen die pfade erhalten bleiben? es wird doch nichts automatisch geladen sonder unter der angabe des vollen Pfades.

wie kommst du auf 60 dateien? wenn ich das richtig sehe brauchst du wieklich nur
die files die explizit geladen werden. und das sind unter 10.

mit zusammenpacken habe ich nicht gemeint selber etwas anzufassen sondern die pack option vom der codemirror Seite zu verwenden. damit bräuchte man dieses ja file und das fhem.js
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: justme1968 am 05 März 2014, 20:10:23mit zusammenpacken habe ich nicht gemeint selber etwas anzufassen sondern die pack option vom der codemirror Seite zu verwenden. damit bräuchte man dieses ja file und das fhem.js

Hab ich mir noch nicht angeschaut.

Die 60 Dateien waren gestern der erste grobe Schnitt vor dem Einchecken. Inzwischen sind es viel weniger - siehe oben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: justme1968 am 05 März 2014, 20:10:23warum müssen die pfade erhalten bleiben?

Weil man sonst bei jedem Update von codemirror eine potenzielle Fehlerquelle schafft.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Zitatmit zusammenpacken habe ich nicht gemeint selber etwas anzufassen sondern die pack option vom der codemirror Seite zu verwenden. damit bräuchte man dieses ja file und das fhem.js

Sowas meinte ich. Jquery kann man auch als "lesbar" und in der .min Version (ca 30% der anderen Datei) bekommen. Da sind dann keine Kommentare mehr drin und alles ist eine Zeile.

Interessantes Feature: Chrome unterstuetzt die zu .min.js gehoerende .map Datei: letzteres wird nur geladen, falls man die JS-Console oeffnet, und zeigt Fehler&Warnungen mit Zeilennumer so an, als ob man die normale (nicht .min) Version geladen haette.

betateilchen

Zitat von: rudolfkoenig am 05 März 2014, 20:17:21Sowas meinte ich. Jquery kann man auch als "lesbar" und in der .min Version (ca 30% der anderen Datei) bekommen. Da sind dann keine Kommentare mehr drin und alles ist eine Zeile.

Ok, aus diesem technischen Teil bin ich weitgehend raus. Alles, was nach .*java.* sussieht, ist nicht wirklich meine Welt 8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

das bischen zusammenklicken schafst du auch als nicht windows nutzer :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

papa

Im doc Verzeichnis gibt es ein compress.html - damit kann man sich benötigte Teile selbst zusammenstellen. Hab ich aber noch nicht probiert.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Hauswart

Komprimiert + Unkomprimiert sollte es dann sein :-) jeweils bei .css und .js
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

betateilchen

Zitat von: justme1968 am 05 März 2014, 20:25:52
das bischen zusammenklicken schafst du auch als nicht windows nutzer :)

Wer testet den Anhang?

Aber irgendwie waren da keine CSS dabei - ich hab keine Ahnung, ob die jetzt schon irgendwie mit drinstecken.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

papa

#162
Das gibt bei mir nen Fehler - siehe Screenshot

Edit: War mein (Tip)Fehler.
Scheint zu funktionieren. Die css-Files müssen aber bleiben.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

papa

#163
Folgende minimle Struktur scheint zu funktionieren:


codemirror/addon/hint/show-hint.css
codemirror/lib/codemirror-compressed.js
codemirror/lib/codemirror.css
codemirror/mode/fhem/fhem.js
codemirror/mode/css/css.js
codemirror/mode/xml/xml.js
codemirror/theme/*.css


Das LICENSE file muss natürlich auch mit rein.

01_FHEMWEB.pm ist wie folgt geändert:


  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/jquery.min.js\"></script>";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/lib/codemirror.css\">";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/lib/codemirror-compressed.js\"></script>";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/theme/$theme.css\">";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/addon/hint/show-hint.css\">";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/mode/$lang/$lang.js\"></script>" if( $lang );

BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

betateilchen

#164
Das sind aber auch nicht sehr viel weniger Verzeichnisse, als wenn ich die Originalstruktur verwende.

(http://up.picr.de/17561089uj.png)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!