Stacken/admin/www

Revision as of 18:42, 26 August 2011 by Kaj (talk | contribs) (Kagtegori)

Stackens webb består av XML-sidor som generar HTML med mycket XML/XSL-magi. Rasmus Kaj <kaj@stacken.kth.se> är upphovsmannen till mycket av denna.

Om webbsidorna

HTML-filerna byggs med XSLT från källfiler i ett XML-format som bygger på XHTML-2.0, med några lokala tillägg. Vad som är XHTML och vad som är lokalt skiljs ut med namnrymder. Källformatet deklareras i _rng/page.rng. Målformatet är HTML 4.01 Strict.

Filer (och kataloger) vars namn börjar med _ är saker hör till den gemensamma byggstrukturen snarare än till en specifik webbsida.

Innan man comittar något bör man göra make validate (i den aktuella katalogen). Gör man större ändringar / tilläg är det bra att även testinstallera och titta i en webbläsare.

För att testa hur webbsidorna ser ut kan man köra make install. Om man inte har någon speciell konfiguration kommer filer att installeras i ~/public_html/s/ (Ta gärna bort den katalogen efter avslutat testande). Katalogöversikt

_README - Den här filen.
_rng - Scheman i Relax NG.
_xslt - Transformer för att bygga html (och annat) av källdokumenten.
2005, 2004 ... - årtalskataloger för "aktuell" information.
foo.xml - källdokument till foo.html.
foo.sv.xml, foo.en.xml - dokumentet finns på flera språk.

Byggförutsättningar

För att kunna bygga behöver man:

  • GNU make (Makefilerna är inte kompatibla med bsd make)
  • xsltproc (Av "tillräckligt" färsk version)
  • wget
  • AFS (metainfo för gallerybilder läses (än så länge) ur afs)
  • Perl (för att bygga AFS-statistik

Var bor sidorna? Hur ändrar jag?

Sidorna hanteras i CVS, noga räknat i modulen stacken-www under /afs/stacken.kth.se/src/SourceRepository. Du måste ingå i gruppen webauthors för att få commit:a.

Om du använder Emacs så rekommenderas moden nXML-mode då denna har en inbyggd Relax-NG-validator

För att lägga till en ny sida så skapar man XML-filen i rätt katalog samt lägger till den resulterande HTML-filen i $HTML i katalogens Makefile.

Själva webbservern är för närvarande Igloo. Ett cron-jobb hämtar ut sidorna från CVS varje kvart och transformerar till HTML.

Tekniska detaljer

AFS och kerberos

Stackens webbtjänser kör normalt med en servicenyckel som är medlem i pts-gruppen webservers. Det kan utnyttjas både för Stackens egna websidor och för kårföreningar och andra som har websidor på Stacken.

Autouppdatering på webservern

Igloo kör ett cronjob som uppdaterar en lokal kopia av webkällkodsträdet och installerar till lokalt träd var sjätte minut. Träden ligger i /usr/local/www/www.stacken.kth.se-src respektive /usr/local/www/www.stacken.kth.se