Path: csiph.com!news.mixmin.net!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Andreas Borutta Newsgroups: de.comp.lang.javascript Subject: Re: Bestimmte Unicodezeichen in HTML finden und "behandeln" Date: Mon, 29 May 2023 12:35:17 +0200 Organization: A noiseless patient Spider Lines: 75 Message-ID: References: <15w1w7buq1bbf$.dlg@borumat.de> <14jvgfoghdlhe$.dlg@borumat.de> <10ete9dqz19k2$.dlg@borumat.de> <1u61d8n45af7h$.dlg@borumat.de> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Injection-Info: dont-email.me; posting-host="34824ba426bbec1273bb4fd26a6f32d1"; logging-data="1458998"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19VdpdYMEcQ041KC/sHHF/2e+ztNPfxF7A=" User-Agent: 40tude_Dialog/2.0.15.41de (6113b1bd.104.391) Cancel-Lock: sha1:8EZsWPg6VWPHor3i3qvnmpcveVE= Xref: csiph.com de.comp.lang.javascript:5381 Stefan Ram: > Andreas Borutta writes: >>Ein Array und ein mehrdimensionaler Array am Kopf des Skriptes wäre >>elegant, das Folgende ist nur eine laienhafte Skizze. > > Ja, es gäbe vielleicht etwas, das die Zusammenarbeit mit anderen > Skripten noch verbessern könnte. Ein Problem kann auftreten, wenn > ein anderes Skript einen globalen Namen (einem Namen, der nicht mit > "const" oder "let" in einer Funktion definiert wurde) ebenfalls > verwendet. Um dies zu vermeiden, kann man heute /Module/ verwenden, > welche die Zahl externer Namen reduzieren können. Alternativ könnten > alle im Skript verwendeten globalen Namen so modfiziert werden, > daß ihr Vorkommen in weiteren Skripten unwahrscheinlich wird. > Insbesondere kurze Namen wie "A" und allgemein übliche Namen wie > "main" sollten daher eigentlich vermieden werden. Vielen Dank : ) Das Skript mit den Arrays im Kopf ist jetzt viel leichter anpassbar. Gefällt mir sehr gut. > function processNode( node ) > { if( node.nodeType == Node.TEXT_NODE ) > { const parent = node.parentElement; > const ok = parent.nodeName in{ "P":0, "H1":0 /* ... */ } > /* Hinweis: Nicht vergessen, obiges "ok" je nach > Bedarf um die Typen aller Elemente zu erweitern, > in denen Ersetzungen stattfinden sollen! */ Hier verstehe ich etwas konzeptionell noch nicht. Mir ist jetzt erst aufgefallen, dass ich HTL-Elemente explizit hinzufügen muss, die behandelt werden sollen. Sozusagen Opt-In. Wir haben bereits eine Funktion, die es erlaubt, Elemente auszuschließen (wo eine Anwendung des Skriptes kritisch sein könnte - wie z.B. ein von einem anderen JS wie MathJax hinzugefügtes Element, oder wo eine Anwendung unerwünscht ist, wie z.B. in
 oder
).

Wäre es vor diesem Hintergrund nicht sinnvoll und praktisch, wenn
automatisch alle HTML5-Elemente vom Skript behandelt werden?
Denn das ist ja der typische Usecase.

Auch alle HTML-Custom-Elemente, die mit einem spezifischen Präfix mit
Minus dahinter im Elementnamen eingeleitet werden, sollten automatisch
vom Skript behandelt werden.
Auf ein solches Präfix müsste sich natürlich der Webauthor im Kopf des
Skriptes festlegen.


Beispiel:
Präfix Custom-Elements "x-"
Namensbeispiel Custom-Element "x-foo"


So eine scheinbar recht kleine Aufgabe "Unsichtbare Zeichen sichtbar
machen" hat es doch ganz schön in sich.


Die neuen Skriptteile zum Erzeugen eines Links zum externen Stylesheet
bzw. zum Einbetten von