Im allegro-Standardformat sind Links auf externe Dokumente in Kategorie #8e abgelegt. Diese Kategorie erlaubt analog zu USMARC viele Teilfelder für unterschiedliche Aspekte der Beschreibung der externen Ressource, viele davon sind in Zeiten des WWW obsolet.
In der einfachsten Form enthält die Kategorie nur eine durch » ; « getrennte Liste von eventuell unvollständigen URLs, etwa in den drei folgenden Arten:
Folgende Besonderheiten müssen wir außerdem noch beachten:
Um die Mehrfachbelegung zu handhaben, ist die eigentliche Aufbereitung von einer Standardschleife umgeben: #ucc bekommt den urspruenglichen Kategorieinhalt, und wird zusammen mit dem Ende-Test jeweils von vorne beginnend reduziert. #ucd wird jeweils der erste Bestandteil zugewiesen.
#8e +° dcc ... f32 acc % Test und Start #nr +#98a Z % Abbruch stattdessen #-° % Einsprung Schleife #ucc ... dcd e";" F32 =cd % Initialisierung #ucd #ucd ... % Verarbeitung #ucc +° dcc dcd b";" f32 acc % Endetest Schleife ... % Abschluss #98a % Aussprung
% Code an geeignete Stelle der Parameter einfuegen... % Benutzte Anwendervariable sind #ucc und #ucd % Benutzte Sprungmarke fuer die Schleife ist #-° | |
| Zunächst wird auf Vorhandensein der Kategorie (hier: #8e) getestet und evtl. ein Durchschuss eingefügt | |
#8e +° dcc p{&130 #0 C} f32 acc
#nr +#98a Z
#-° % Einsprung Schleife
% Ab hier enthaelt #ucc stets den um fuehrende Leerzeichen
% bereinigten Rest der Kategorie
#ucc p{C '['} dcd e";" F32 =cd
| |
In der folgenden Variante werden %5f und %5F
in Unterstriche zurückverwandelt. Das erhöht bei
unterstrichenem Text natürlich nicht unbedingt die
Lesbarkeit...
#ucc p{C '['} dcd e";" F32 ,",%5f,_," ,",%5F,_," =cd
| |
% Ab hier enthaelt #ucd die aktuelle URL bereinigt um % folgende Leerzeichen % Behandlung der drei moeglichen Eingabefaelle % 1. volle URL | |
|
Die voll qualifizierte URL (erkannt an »://«)
aus
#8e http://www.gymel.com/beispiele/8elink.html wird formatiert zu den (mindestens) drei Zeilen
[Externes Dokument: <A
HREF="http://www.gymel.com/beispiele/8elink.html"
>http://www.gymel.com/beispiele/8elink.html</A>]
und stellt sich so dar:
[Externes Dokument: http://www.gymel.com/beispiele/8elink.html] | |
#ucd c"://" y0 p{'Externes Dokument: <A' C 'HREF="'} P{'"' C '>'}
#ucd +#98b c"://"
% 2. absoluter Pfad (auf diesem Server)
| |
|
Der absolute (virtuelle!) Pfad (erkannt am führenden
»/«) aus
#8e /beispiele/8elink.html#code wird formatiert zu den (mindestens) drei Zeilen
[Lokales Dokument: <A
HREF="/beispiele/8elink.html#code"
>/beispiele/8elink.html#code</A>]
und stellt sich so dar:
[Lokales Dokument: /beispiele/8elink.html#code] (Der Browser weiß dann schon, welcher Protokolltyp und welcher Host) | |
#ucd i4,/ y0 p{'Lokales Dokument: <A' C 'HREF="'} P{'"' C '>'}
#ucd +#98b i4,/
% 3. relativer Pfad (Volltext)
| |
|
Der (zu unserer Digitalen Bibliothek) relative Pfad aus
#8e htmlfaq/faq.htm wird unter Voranstellung des festen Präfixes http://www.gymel.com/capriccio/ formatiert zu
[==> <A HREF="http://www.gymel.com/capriccio/htmlfaq/faq.htm"
>Volltext</A>]
und stellt sich so dar:
[==> Volltext] (Beachte auch das Escapen von ==> als ==>) | |
#ucd y0 p{'==> <A HREF="http://www.gymel.com/capriccio/'} P{'"' C '>Volltext'}
| |
| Endebehandlung für die Schleife, #ucc wird allmählich aufgegessen | |
#98b
#t{'</A>]'}
#ucc +° dcc dcd b";" f32 acc
% Folgende Zahl ueberpruefen, ob sie mit der Setzung
% fuer den Parameter zl uebereinstimmt!
#t{&75}
% Sprungziel, falls #8e nicht belegt war
#98a
| |
% Code an geeignete Stelle der Parameter einfuegen...
% Benutzte Anwendervariable sind #ucc und #ucd
% Benutzte Sprungmarke fuer die Schleife ist #-°
#8e +° dcc p{&130 #0 C} f32 acc
#nr +#98a Z
#-° % Einsprung Schleife
% Ab hier enthaelt #ucc stets den um fuehrende Leerzeichen
% bereinigten Rest der Kategorie
#ucc p{C '['} dcd e";" F32 =cd
% Ab hier enthaelt #ucd die aktuelle URL bereinigt um
% folgende Leerzeichen
% Behandlung der drei moeglichen Eingabefaelle
% 1. volle URL
#ucd c"://" y0 p{'Externes Dokument: <A' C 'HREF="'} P{'"' C '>'}
#ucd +#98b c"://"
% 2. absoluter Pfad (auf diesem Server)
#ucd i4,/ y0 p{'Lokales Dokument: <A' C 'HREF="'} P{'"' C '>'}
#ucd +#98b i4,/
% 3. relativer Pfad (Volltext)
#ucd y0 p{'==> <A HREF="http://www.gymel.com/capriccio/'} P{'"' C '>Volltext'}
#98b
#t{'</A>]'}
#ucc +° dcc dcd b";" f32 acc
% Folgende Zahl ueberpruefen, ob sie mit der Setzung
% fuer den Parameter zl uebereinstimmt!
#t{&75}
% Sprungziel, falls #8e nicht belegt war
#98a
% Beachten:
% p _ 0
% (bzw. p _ 1 oder aehnliches) muss ueberall auskommentiert sein!
Das war's!