'Abkürzungen' für komplexere Teile im Dokument?

Hallo Ihr HTML-Gurus!
Weil ich gerade an einer HTML-Hilfe zu einem Programm bastle bräuchte ich eine Idee, wie man in den HTML-Quelltext übersichtlich (!) so etwas wie Makros einbauen kann.
Hintergrund: Der Produktname kommt an vielen Stellen vor, besteht aber aus einer Mischung unterschiedlicher Textformate (3 Farben, Fett/Normal). Für jedes dieser Formate habe ich zwar schon eine CSS Klasse definiert, aber das ändert nichts daran, dass ich jedesmal 3 SPAN’s einfügen müsste, was die Sache wiederum länglich und nicht gerade pflegefreundlich macht.

Eine Idee war jetzt schon, im normalen Fließtext sowas wie ##product## einzubauen, und das z.B. im onload-Event per JavaScript zu ersetzen, aber das habe ich bislang noch nicht hinbekommen.

An allen Stellen eine JavaScript-Funktion aufzurufen, die per document.write() die gewünschten Bereiche generiert, funktioniert zwar, aber kürzer ist das schon gar nicht :frowning:

Kann mir da jemand helfen?

Danke schonmal,
Martin

Für sowas sind eher ‚Server Side Includes‘ geeignet. Such mal bei Google oder so danach die Abkürzung ist ‚SSI‘.
Grüße
T.

Für sowas sind eher ‚Server Side Includes‘ geeignet. Such mal
bei Google oder so danach die Abkürzung ist ‚SSI‘.
Grüße
T.

Danke T., das Problem ist nur, dass die Seiten ja nicht von einem Webserver zur Verfügung gestellt werden, sondern als einzelne HTML-Seiten in eine HTML-Hilfe eingebunden werden sollen, und da nützen leider serverseitige Sachen nichts, weil sie nicht ausgeführt werden können.
Trotzdem danke.

Martin

tipp
für die Erstellung dynamische Scriptsprachen verwenden…

am ende dann die Ausgabe speichern…
im übrigen kannst Du ja auch Klassen in anderen tags definieren…
sollte ja genauso funktionieren wie ein

Na ich war halt doof, die Idee mit dem JavaScript, das mir den entsprechenden HTML-Code liefert anfangs zu verwerfen. Inzwischen geht es doch recht kompakt von der Hand, nachdem ich mir dafür eine Funktion in einer externen Datei definiert habe und diese einfach im Header per SRC einlese.
Und im Fließtext reicht dann ein

blafasel getMyHtml() und weiter...

Danke an alle.

Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

Für jedes dieser Formate habe ich
zwar schon eine CSS Klasse definiert, aber das ändert nichts
daran, dass ich jedesmal 3 SPAN’s einfügen müsste,

wieso denn das? Du kannst jedem Element beliebig viele leerzeichengetrennte Klassen vergeben. Nur Netscape 4 hat damit Probleme. Darüber hinaus solltest Du Klassen nicht anhand einer Formatierung festmachen, sondern anhand des Falls. Hier wäre also ein class=„product“ o.ä. sinnvoll.

Eine Idee war jetzt schon, im normalen Fließtext sowas wie
##product## einzubauen, und das z.B. im onload-Event per
JavaScript zu ersetzen, aber das habe ich bislang noch nicht
hinbekommen.

Eine Abhängigkeit von JavaScript möchtest Du nicht wirklich erzeugen.

Cheatah

Hi,

Für jedes dieser Formate habe ich
zwar schon eine CSS Klasse definiert, aber das ändert nichts
daran, dass ich jedesmal 3 SPAN’s einfügen müsste,

wieso denn das? Du kannst jedem Element beliebig viele
leerzeichengetrennte Klassen vergeben. Nur Netscape 4 hat
damit Probleme. Darüber hinaus solltest Du Klassen nicht
anhand einer Formatierung festmachen, sondern anhand des
Falls. Hier wäre also ein class=„product“ o.ä. sinnvoll.

Aber in einer Klasse kann ich doch nur ein Format angeben, oder sehe ich das falsch? Wie soll das denn mit mehreren Klassen gehen, wenn - sagen wir mal - die ersten 5 Zeichen im Wort schwarz sein sollen, dann ein oranges und danach der Rest in grau?

Eine Idee war jetzt schon, im normalen Fließtext sowas wie
##product## einzubauen, und das z.B. im onload-Event per
JavaScript zu ersetzen, aber das habe ich bislang noch nicht
hinbekommen.

Eine Abhängigkeit von JavaScript möchtest Du nicht wirklich
erzeugen.

Cheatah

Das mit JavaScript ist bislang die beste Idee, die ich hatte, und im Rahmen der HTML-Hilfe scheint es auch zu funktionieren (wenn man erst festgestellt hat, dass man dort bei relativen Pfaden KEINE Backslashes verwenden darf sondern nur Slashes verwenden MUSS…). Nur, dass ich nicht im Nachhinein ersetze, sondern gleich an der jeweiligen Stelle eine JavaScript-Funktion aufrufe, die mir den entsprechenden HTML-Code liefert.

Aber ich bin für alle Vorschläge offen…

Martin

Hi,

Aber in einer Klasse kann ich doch nur ein Format angeben,
oder sehe ich das falsch? Wie soll das denn mit mehreren
Klassen gehen, wenn - sagen wir mal - die ersten 5 Zeichen im
Wort schwarz sein sollen, dann ein oranges und danach der Rest
in grau?

nein, das geht in der Tat nicht. CSS kann immer nur komplette (Pseudo-)Elemente formatieren, niemals Teile davon. Möglicherweise ist es aber geschickter, ein solches Konstrukt (zu vermeiden oder) in ein einzelnes Element mit einer Klasse zu packen, innerhalb dessen sich weitere Elemente befinden - das lässt sich mit simplen Selektoren sehr einfach formatieren.

Eine Abhängigkeit von JavaScript möchtest Du nicht wirklich
erzeugen.

Das mit JavaScript ist bislang die beste Idee, die ich hatte,
und im Rahmen der HTML-Hilfe scheint es auch zu funktionieren

Von welcher HTML-Hilfe redest Du? Innerhalb eines Browsers darfst Du jedenfalls nie davon ausgehen, dass JavaScript aktiviert ist.

(wenn man erst festgestellt hat, dass man dort bei relativen
Pfaden KEINE Backslashes verwenden darf sondern nur Slashes
verwenden MUSS…).

In URLs ist der Backslash kein erlaubtes Zeichen :smile:

Cheatah

Hi,

Aber in einer Klasse kann ich doch nur ein Format angeben,
oder sehe ich das falsch? Wie soll das denn mit mehreren
Klassen gehen, wenn - sagen wir mal - die ersten 5 Zeichen im
Wort schwarz sein sollen, dann ein oranges und danach der Rest
in grau?

nein, das geht in der Tat nicht. CSS kann immer nur komplette
(Pseudo-)Elemente formatieren, niemals Teile davon.
Möglicherweise ist es aber geschickter, ein solches Konstrukt
(zu vermeiden oder) in ein einzelnes Element mit einer Klasse
zu packen, innerhalb dessen sich weitere Elemente befinden -
das lässt sich mit simplen Selektoren sehr einfach
formatieren.

Hast Du da vielleicht ein kurzes Beispiel oder einen entsprechenden Link?

Eine Abhängigkeit von JavaScript möchtest Du nicht wirklich
erzeugen.

Das mit JavaScript ist bislang die beste Idee, die ich hatte,
und im Rahmen der HTML-Hilfe scheint es auch zu funktionieren

Von welcher HTML-Hilfe redest Du? Innerhalb eines Browsers
darfst Du jedenfalls nie davon ausgehen, dass JavaScript
aktiviert ist.

Ich meine das, was bei den meisten Windows-Programmen aufgeht, wenn man F1 drückt. Eine .chm-Datei. Letztlich mehrere zusammengefasste HTML-Seiten mit Zusatzinfos wie Schlüsselwörter oder Inhaltsverzeichnis. Da die Datei i.d.R. mit installiert wird, liegt sie auf dem lokalen Rechner oder zumindest in der Intranet-Zone und da kann man normalerweise schon von JavaScript ausgehen.

(wenn man erst festgestellt hat, dass man dort bei relativen
Pfaden KEINE Backslashes verwenden darf sondern nur Slashes
verwenden MUSS…).

In URLs ist der Backslash kein erlaubtes Zeichen :smile:

Ja, Du hast ja Recht…
Ich war nur ausgesprochen verwundert, dass vor dem Kompilieren der Hilfedatei alles funktioniert hat (wenn ich mir die Seiten im IE angeschaut habe), aber nachher ganz seltsame Fehler kamen (weil, wie sich rausstellte, das File mit den JavaScript-Funktionen nicht eingelesen wurde).

Cheatah

Hi,

Möglicherweise ist es aber geschickter, ein solches Konstrukt
(zu vermeiden oder) in ein einzelnes Element mit einer Klasse
zu packen, innerhalb dessen sich weitere Elemente befinden -
das lässt sich mit simplen Selektoren sehr einfach
formatieren.

Hast Du da vielleicht ein kurzes Beispiel oder einen
entsprechenden Link?

ein … lässt sich leicht mit „foo bar“ selektieren.

Von welcher HTML-Hilfe redest Du?

Ich meine das, was bei den meisten Windows-Programmen aufgeht,
wenn man F1 drückt.

Alles klar, danke.

In URLs ist der Backslash kein erlaubtes Zeichen :smile:

Ich war nur ausgesprochen verwundert, dass vor dem Kompilieren
der Hilfedatei alles funktioniert hat (wenn ich mir die Seiten
im IE angeschaut habe),

Der IE ist der einzige Browser, der einen Backslash in der URL akzeptiert - und das falsch, wie man auf http://piology.org/ie/ nachvollziehen kann.

Cheatah

Hi,

Möglicherweise ist es aber geschickter, ein solches Konstrukt
(zu vermeiden oder) in ein einzelnes Element mit einer Klasse
zu packen, innerhalb dessen sich weitere Elemente befinden -
das lässt sich mit simplen Selektoren sehr einfach
formatieren.

Hast Du da vielleicht ein kurzes Beispiel oder einen
entsprechenden Link?

ein … lässt
sich leicht mit „foo bar“ selektieren.

Ach so, das meintest Du. Danke.

Von welcher HTML-Hilfe redest Du?

Ich meine das, was bei den meisten Windows-Programmen aufgeht,
wenn man F1 drückt.

Alles klar, danke.

In URLs ist der Backslash kein erlaubtes Zeichen :smile:

Ich war nur ausgesprochen verwundert, dass vor dem Kompilieren
der Hilfedatei alles funktioniert hat (wenn ich mir die Seiten
im IE angeschaut habe),

Der IE ist der einzige Browser, der einen Backslash in der URL
akzeptiert - und das falsch, wie man auf
http://piology.org/ie/ nachvollziehen kann.

Cheatah