Toon posts:

[XML&XSL] om een statische web site te genereren?

Pagina: 1
Acties:
  • 258 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Een goedendag beste mede-tweakers, en bij voorbaat mijn dank voor het (iig) lezen van dit topic!

Kort samengevat: Is het mogelijk om met behulp van XML (de data) en XSL (de layout) een complete web site te genereren, die ook documenten bevat die verspreid moeten worden over verschillende / meerdere pagina's, die links naar elkaar bevatten?

Een van mijn hobby's, al een paar jaar nu, is het maken van web sites. Hierbij ben ik geinteresseerd in zowel client side als server side technologie.

Jammer genoeg heb ik geen geld om een web host te betalen die scripting ondersteund. Dus templates met behulp van PHP, Perl, ASP, etc zijn geen optie. Alles moet op mijn computer gebeuren, zodat ik een statische web site in XHTML kan uploaden.

Ik gebruik hiervoor sinds een jaar of twee Dreamweaver. En gelukkig ondersteund Dreamweaver templates en library-items. Allemaal heel mooi dus, en mijn oplossing, zou je zeggen.

Nou, nee, niet echt. Ik zal proberen het uit te leggen:

Ik heb bijvoorbeeld op mijn web site een web log. Als ik een post in dit web log wil plaatsen met Dreamweaver, moet ik een aantal stappen voltooien:
  • Ten eerste moet ik het bestand openen dat de laatste maand bevat.
  • Ten tweede controleer ik of op deze pagina al 15 posts staan. Zo ja, dan gebruik ik een nieuwe pagina, zo nee, dan plaats ik de post.
  • Nadat ik mijn post geplaatst heb, moet ik de index-pagina van mijn web log updaten, die een lijstje bevat van al mijn posts.
  • Mocht ik een nieuwe pagina aangemaakt hebben voor stap 2, dan moet ik ook het library item updaten dat links bevat naar alle pagina's (dus niet posts...)
(Stel je voor dat je 50 a 60 posts hebt, zonder repeating region in je template, en je veranderd de layout van je web log 8)7, nog erger)

En aangezien ik met computers werk, en computers onder andere bedoeld zijn om repetitief werk van ons over te nemen, en ik graag onafhankelijk ben van bedrijven (zoals Macromedia) leek het me mooi om dit probleem op te lossen met behulp van XML en XSL.

Tot zover geen probleem, ware het niet dat de XSL standaard niet meerdere output bestanden ondersteund. Ik heb -gelukkig- gelezen dan XSL 2.0 hier verandering in gaat brengen. En ik heb begrepen dat sommige van de huidige XSL processors extensies ondersteunen, zodat je wel met een XSL bestand naar meerdere output bestanden kunt schrijven.

Ik ben begonnen met Xerces-C en Xalan-C (http://xml.apache.org) maar kwam er al snel achter dat Xalan-C niet meerdere output bestanden ondersteund. Door naar de volgende XSL processor... Zo heb ik er een aantal geprobeerd...

Totdat ik Sablotron vondt. Het leek de oplossing. Maar het is mij tot op heden niet gelukt om vanuit 1 XML bestand meerdere HTML bestanden te genereren, die linken naar elkaar. (Die index-pagina maak ik dan wel met een apart XSL bestand :))

Waar ik hier om vraag is niet of iemand anders even de XSL code voor me kan schrijven ;). Wat ik wel vraag is of mensen die misschien meer verstand hebben van XML & XSL zich al eens over dit probleem hebben moeten buigen, en zo ja, of daar een oplossing uit is gekomen.

Mocht het gewoon te ingewikkeld zijn om te realiseren dan accepteer ik dit en ga ik me weer ergeren aan het met de hand updaten van de helft van mijn web site. Maar ziet u, een site met 10 tot 20 bestanden is geen probleem om te onderhouden met de hand, maar zodra je meer als 50 bestanden hebt, neemt updaten de helft van je tijd in beslag...

Mocht u/je nu nog aan het lezen zijn: _/-\o_ en :*)

--------------------------------
Peter Odding

EDIT1: Ultieme doel is een batch script dat al mijn XML bestanden door de XSL processor haalt, eventueel een XSL bestand draait dat een site map maakt met behulp van de meta tag description, ImageMagick dat van al mijn grote afbeeldingen thumbnails maakt, en een script / programma dat hierna mijn web site upload (eventueel rekening houdende met wel/niet gewijzigde bestanden). Ja, ambities he?! Maar ik heb deze vakantie in ieder geval iets te doen. Waar ik het idee vandaan kreeg? predictablyperfect.com. Maar ik had dit idee al veel langer hoor ;), deze web site blies het idee alleen wat nieuw leven in.

[ Voor 9% gewijzigd door Verwijderd op 30-12-2004 07:12 . Reden: Even het uiteindelijke doel duidelijk maken, wel zo handig ;) ]


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Ik denk wat jij wil wel zeker mogelijk is. XSL(T) is een zeer krachtig gereedschap waar veel mee te bereiken is. Om je doel te bereiken zul je waarschijnlijk eens diep in de XSL materie moeten duiken.

De laatste tijd ben ik erg van DocBook gaan houden, maar dat is vooral omdat daarin al een hele zooi standaard XSL's zijn opgenomen die je dan samen met de bron XML alleen nog maar hoeft te processen. DocBook is oa ook in staat om meerdere uitvoer bestanden te maken. Misschien is het eens het kijken waard.

www.fendt.com | Nikon D7100 | PS5


Verwijderd

Topicstarter
Bedankt voor de tip! Ik was tijdens mijn zoektocht naar "xml xsl multiple output files" inderdaad al langs DocBook gekomen. Was het ook al eerder tegengekomen trouwens :).

Ik was in eerste instantie onder de indruk dat DocBook specifiek gemaakt was voor grote, gestructureerde documenten.

Snap eigenlijk ook niet waarom ik vond dat een web log niet in die categorie past, aangezien chronologisch ordenen een compleet duidelijke structuur is |:(.

We zullen zien, iig bedankt voor de tip.

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Volgens mij ken DocBook twee basis structuren, book en article (boven book zit alleen nog zet). Misschien kun je de book structuur ook wel gebruiken voor je weblog, alleen het tellen tot 15 zul je dan moeten uitzoeken. DocBook-xsl kan je bestanden in ieder geval splitsen per onderdeel (part, chapter, section). Dan kun je uit 1 XML ook nog verschillende bestanden halen (en je kunt je site natuurlijk in meerdere XML bestanden maken, niet alles in 1 bestand).

Twee handige links voor DocBook:
DocBook: The Definitive Guide
DocBook XSL: The Complete Guide

www.fendt.com | Nikon D7100 | PS5


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Is een buildscript niet handig? Ant (voor Java) en NAnt (voor .net) hebben de mogelijkheid om bv transformaties te laten uitvoeren (zo doe ik het namelijk ook voor mijn site).

Met een goed buildscript hoef je al dat eentonige werk niet meer te doen.

Verwijderd

Topicstarter
Uhm, sorry, maar was is het verschil tussen een buildscript en een batchscript dat een XSL processor aanroept, in dit geval?

Het klinkt wel interessant hoor, maar ik zie het grote voordeel niet echt voor mij :?.

EDIT1: even wat info opgezocht over Ant. Okee, inderdaad een script met instructies, maar ik zie nog steeds geen voordeel voor mij?! De F.A.Q. van Ant wordt door Ant gemaakt met behulp van Velocity en Anakia. Maar de twee voordelen die genoemd worden: snelheid en het niet gebruik hoeven te maken van XSL zijn voor mij geen voordelen, <denk ik>.

Jouw mening? :)

[ Voor 44% gewijzigd door Verwijderd op 30-12-2004 11:32 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op donderdag 30 december 2004 @ 11:26:
Uhm, sorry, maar was is het verschil tussen een buildscript en een batchscript dat een XSL processor aanroept?

Het klinkt wel interessant hoor, maar ik zie het grote voordeel niet echt :?
Ligt eraan... als je met wat complexere zaken bezig bent dan is een buildscript wel prettig omdat het juist gemaakt is voor complexe build problematiek.

Dirs cleanen.... transformaties uitvoeren.. files copieeren... connectie naar ftpserver openen.. files uploaden.. en dan naar de pron directory... Afgezien van die pron directory heeft ANT overal voorzieningen voor. en als het er niet in zit.. kan je ze ook nog eens eenvoudig toevoegen.
Ben Ant overigens al eens eerder tegen gekomen, weet niet meer waarom ik het toen geen goed idee vond...
Je mag om mij ook een ander buildscript pakken :) Maar wat ik uit je verhaal opmaak is dat je ziek bent van de complexiteit aan handelingen en die tijd die het kost... nou.. daar zijn buildscripts voor.

Verwijderd

Topicstarter
Ten eerste: Beide bedankt voor jullie reacties zo vroeg op de morgen!

@Alarmnummer: LOL, je reactie was drie minuten eerder dan mijn edit. Krijg ik ervan, geen pagina's refreshen.

Maar oke, ik snap het nu... Ehm, nog een ding: De Ant FAQ zegt dat het gemaakt is om minder moeilijk te zijn dan standaard buildscripts, en om platform onafhankelijk te zijn. Worden alle standaard acties (copy, delete, je weet wel) dan geimplementeerd in Java? Dus gewoon een laagje abstractie?

En is er nou wel of niet een XSL processor geintergreerd in Ant?

Misschien kun je een klein scriptje laten zien? Zodat ik enig idee heb hoe jij Ant gebruikt, voordat ik zelf weer van alles moet installeren.. (Heb in twee dagen 6 XSL processors en hun vereisten geinstalleerd, ben het een beetje ziek)

Bij voorbaat dank!

EDIT1: Begin het een beetje te snappen nu. Batchscripts on steroids, implemented in XML & Java = platform independant, LOL

Ik weet nu al dat de property "lastModifiedCheck" mij erg blij gaat maken ;)

[ Voor 13% gewijzigd door Verwijderd op 30-12-2004 11:44 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op donderdag 30 december 2004 @ 11:38:
Ten eerste: Beide bedankt voor jullie reacties zo vroeg op de morgen!

@Alarmnummer: LOL, je reactie was drie minuten eerder dan mijn edit. Krijg ik ervan, geen pagina's refreshen.

Maar oke, ik snap het nu... Ehm, nog een ding: De Ant FAQ zegt dat het gemaakt is om minder moeilijk te zijn dan standaard buildscripts, en om platform onafhankelijk te zijn. Worden alle standaard acties (copy, delete, je weet wel) dan geimplementeerd in Java? Dus gewoon een laagje abstractie?
Yep.. Maar je zou bv ook Nant of een andere buildscript kunnen gebruiken.
En is er nou wel of niet een XSL processor geintergreerd in Ant?
Yep.. maar ik gebruik zelf Xalan.. en die kan je vanuit ANT ook gebruiken (zit er niet standaar in geloof ik).
Misschien kun je een klein scriptje laten zien? Zodat ik enig idee heb hoe jij Ant gebruikt, voordat ik zelf weer van alles moet installeren.. (Heb in twee dagen 6 XSL processors en hun vereisten geinstalleerd, ben het een beetje ziek)
Moet je wachten tot vanavond..

[edit]
klik mij

[ Voor 5% gewijzigd door Alarmnummer op 30-12-2004 11:52 ]


Verwijderd

Topicstarter
Yep.. Maar je zou bv ook Nant of een andere buildscript kunnen gebruiken.
Geen idee waarom, maar ik blijf altijd het liefst bij de originele implementatie, ipv een fork (neem hier aan dat Nant een fork of remake van Ant is), en met het oog op een komende Linux installatie is de portability van Ant wel erg interessant!
Yep.. maar ik gebruik zelf Xalan.. en die kan je vanuit ANT ook gebruiken (zit er niet standaar in geloof ik).
offtopic:
Xalan zal voor mij niet gaan, want Xalan ondersteund niet multiple output documents. Oh, wacht eens: Xalan-C ondersteund dit niet, Xalan-J waarschijnlijk wel, LOL!
Moet je wachten tot vanavond..
Is goed, als je de tijd vrij kunt maken. Alvast heel erg bedankt voor de moeite! Ant zou mij nog wel eens blij kunnen gaan maken!

EDIT1: dank dank

[ Voor 3% gewijzigd door Verwijderd op 30-12-2004 11:57 ]


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Nant is de .net versie van de originele Java ANT. Lijkt mij dat het gebruik van ANT meer voordelen heeft als je ook een Java XSLT processor gebruikt. Ik voor mijn DocBook gebruik ik nu nog een Makefile (dus met make). Ik werk dan ook alleen onder Linux en MacOS.

Het voordeel van zo'n build-script is dat je niet steeds alle acties zelf uit hoeft te voeren. Je zet alles en het build-script, runnen en je hebt heel je site :). Ant is inderdaad makkelijk uitbreidbaar dankzij de modulaire opbouw, ftp-en is volgens mij niet helemaal standaard. Het O'reilly boek verwijs in ieder geval naar deze site: http://www.savarese.org/oro/downloads. Je moet zoeken naar netcomponents.jar.

www.fendt.com | Nikon D7100 | PS5


Verwijderd

Topicstarter
Thanks for the tips, beide! Ik begin mij door de documentatie van DocBook & Ant heen te worstelen.

Daarna een poging om ook ImageMagick te gebruiken vanuit Ant. Dan kan ik zelfs de resolutie en bestandsgrootte van afbeeldingen zo hoog mogelijk houden, en verkleinen naar aanleiding van mijn design.

LOL, ik kan zelfs de downloads die ik aanbied 'on the fly' comprimeren in het gewenste formaat. Ik begin nu pas de effectiviteit van een buildscript voor een offline / online website in te zien.

Hopelijk morgen een positieve update!

:*)

EDIT1: Netcomponents was trouwens naar ik heb begrepen niet meer nodig. Bedrijf dat netcomponents maakte is ermee opgehouden en heeft de source code aan de Apache Foundation gegeven. Beter!

En nogmaals bedankt voor jullie reacties FendtVario & Alarmnummer!

[ Voor 68% gewijzigd door Verwijderd op 14-06-2005 01:35 . Reden: Toch maar geen tutorial schrijven ]

Pagina: 1