Bedenk (lees: Modellen gebruiken) dat een model een skelet is dat direct vanuit een tekst kan worden opgeroepen om zo de HTML code die in dat model omschreven staat op de aangegeven plaats in te voegen. Voor bijlagen bestaan er feitelijk twee:
doc
(om naar het document te verwijzen) en emb
(om het te embedden). Het laatste biedt de meeste mogelijkheden.
Het model emb
delegeert het werk aan vijf modellen die genoemd zijn naar de MIME-groep van het betroffen document: text, image, audio, video, application
.
Deze modellen kunnen direct worden aangeroepen (bijvoorbeeld <audio44|center>
is hetzelfde als <emb44|center>
wanneer het document tot de groep audio behoort). Het model kun je altijd gebruiken emb
als het niet duidelijk is tot welke groep het bestand behoort. De directe aanroep heeft ook als voordeel dat je het model kunt forceren, ook als het document niet tot die groep behoort. Dit omzeilt een beperking van de MIME klassificatie, waarbij sommige bestandstypes aan de groep application
zouden moeten zijn toegewezen (zoals XHTML, een subset van HTML, wat tot de groep text
behoort).
Het model text
Het model text
neemt de inhoud van een tektstdocument op in de tekst van het artikel en past, indien ze bestaat, een functie filtre_
T toe, waarbij T de naam is van het MIME type van het document. De benaming bestaat uit het vervangen van alle niet-alfanumerieke tekens door een liggend streepje (underscore). Zo krijgt het type text/txt
en filternaam filtre_text_txt
.
Deze functie filtre_text_txt
wordt met SPIP meegeleverd en wordt dus standaard toegepast op alle documenten van de groep text
. Ze vervangt Elle remplace les chevrons dans le corps du document par de overeenkomstige HTML entiteiten en zet er een tag pre
omgeen, zodat de inhoud van het document direct kan worden weergegeven.
SPIP levert ook een functie filtre_text_csv
, bestemd voor documenten in de groep text/csv
. De RFC4180 wordt niet strikt gevolgd voor spreadsheets. De functie doet dan ook enkele aannames: het telt de tabs, komma’s en puntkomma’s en wat het meest gevondenwordt, wordt beschouwd als het scheidingsteken. Deze worden vervangen door de opmaakcodes van SPIP wat resulteert in een HTML tabel die overeenkomt met de aangeleverde spreadsheet. Het gebruik van haakjes om het scheidingsteken zelf aan te geven of een regelterugloop worden correct verwerkt (door een HTML entiteit en een br
tag).
Is van de eerste rij alleen de eerste kolom gevuld, dan wordt de tag caption
. De tweede rij (of de eerste) wordt als de kolomnaam beschouwd en krijgt de tag th
. Het CSV formaat voorziet niet in indicatie van deze elementen. Er moet dus goed worden gecontroleerd of alles wel goed wordt weergegeven.
En er bestaat een functie filtre_text_html
, bestemd voor documenten uit groep text/html
. Ze selecteert de body
) die wordt ontdaan van scripts. De eventuele inline style
tags worden gegroepeerd en in de heading geplaatst. Stylesheet informatie die al in de heading stond met link
tags van het type text/css
worden op het web opgezocht en toegevoegd aan de eerder genoemde style
tag.
Dit kan uitsluitend worden gedaan voor absolute (dus volledige) URL’s.
ALleen zo zal SPIP een document kunnen presenteren dat overeen komt met het origineel, waarbij ook de afbeeldingen een volledige URL moeten hebben om te kunnen worden weergegeven.
Het model audio
Het model audio
maakt het insluiten van een geluidsbestand mogelijk in de vorm van een tag object
. Ook hier zoekt het model naar een functie filtre_
T waarin T de naam van het type is na vervanging van niet-alfanumerieke tekens door een liggend streepje.
Maar deze functie wordt toegepast op de ID van het document. Het resultaat wordt ingevoegd in een tag object
, waaraan specifieke param
tags kunnen worden toegevoegd.
Verder aan het model toegevoegde argumenten (syntax naam=waarde
) worden ook omgezet in param
tags.
Het model image
Het model image
is een kleine uitbreiding van de opmaakcode
img
. Het enige verschil is dat het een tag object
gebruikt in plaats van een img
tag, dit om te voorkomen dat deze tag niet struikelt over het MIME type van het document. Ze gedraagt zich als het model audio
, met dit verschil dat de argumenten worden behandeld als attributen van de tag object
. Je gebruikt dit model bij voorkeur voor documenten van het type SVG, die officieel tot de groep application
behoren.
Het model video
Het model video
sluit het document in en geeft het een controlepaneel om de weergave te starten.
Het model application
Het model correspondeert met de diverse-groep van de MIME specificatie en heeft geen duidelijke omschrijving, die mogelijk in de toekomst evalueert.
Gebruik
Zoals bij de andere modellen, is de syntax bijvoorbeeld <text67>
om het model text
toe te passen op het document met nummer 67 en zo de inhoud ervan direct in de pagina op te nemen en weer te geven.
Deze modellen worden ook impliciet gebruikt door het standaardskelet article
van SPIP wanneer het artikel geen tekst heeft en één bijgevoegd document.
Het skelet gedraagt zich dan alsof de tekst van het artikel was beperkt tot een <embN>
, waarbij N
het nummer van het document is.
Om op een site een spreadsheet weer te geven volstaat het dus een artikel te maken en er een csv
van dit type document aan toe te voegen zonder verder enige handeling uit te voeren.
Hetzelfde geldt voor een video of een geluidsbestand.
Je kunt ook eenvoudig een statische HTML site aan SPIP doorgeven door elk van de pagina’s van die site aan een leeg artikel te koppelen: als de URL’s van hun stylesheets en van de afbeeldingen het absolute (volledige) pad aangeven, zal SPIP er de weergave aan overlaten.