Stacken/admin/www
Sedan lite över ett år så har vi gått vidare till en ny tekniska plattform som vi kallar w3, den här sidan är gammal och inte längre relevant.
Contents
Ny teknik: webbywiki
Vi har ett litet php-hack som importerar wikisidor från undersidor till Stacken på den här wikin. Lämpliga utgångspunkter i wikin är Stacken och Stacken/Menu. Koden som meckar om wikin till publik webb (och gör lite småhack för t ex afsstatus) finns på:
gitolite@cookie.stacken.kth.se:webbywiki
Prata med kaj eller nsg för att få behörighet där. När man pushar kod till repot (på branchen master) driftsätts den automatiskt.
Målet är att den wikibaserade webben ska ersätta den stackenwebb som resten av den här sidan beskriver.
Om en sida inte är portad till "webbywiki" så laddas den gamla sidan i stället. Det går att identifiera på att de gamla sidornas bakgrund har en mörkare färg.
Vanliga operationer
Hela hemsidan ligger på den här wikin under /Stacken, d.v.s. http://wiki.stacken.kth.se/Stacken blir http://www.stacken.kth.se/ samt http://wiki.stacken.kth.se/Stacken/club blir http://www.stacken.kth.se/club o.s.v.
Det finns även stöd för en engelsk version av en sida, du kan skapa den genom att lägga till .en
i slutet på adressen, t.ex. http://wiki.stacken.kth.se/Stacken/club.en. Alla sidor har en länk högst upp till höger "In english". Du kan prova det på http://www.stacken.kth.se/club.
Notera: versaler/gemener är viktigt.
Meny
Stackens meny har tre sektioner, huvudmenyn, meny för undersidor samt innehållsförteckning av aktuell sida. Så här redigerar du dem.
Huvudmeny
Menyn är (så klart, som allt annat) en wiki sida som du hittar på http://wiki.stacken.kth.se/Stacken/Menu. Sidan ser ganska rörig ut men blir mer logisk om du klickar på "edit".
Formatet är simpelt:
{{Menu|Stacken/sidans_namn|På svenska|På engelska}}
Undersidor
Logiken är den samma som huvudmenyn, lägg till /Menu på adressen, t.ex. /Stacken/club/Menu (notera: /Stacken/club.en/Menu är fel). Om du vill ha samma meny på flera olika sidor, använd Mediawiki:s funktioner för att inkludera sidor.
Innehållsförteckning
Den här är automatisk, om du får en TOC (Table of contents) på wiki:n så kommer den att visas på hemsidan. Ett exempel på det är http://www.stacken.kth.se/stadgar.
Nyheter
Nyheterna använder bara inbyggda Mediawiki-funktioner. På startsidan hittar du följande rad: {{:Stacken/2014}}, det är en inkludering av sidan Stacken/2014. Är det nytt år så behöver den ändras.
På Stacken/2014 finns nyheter för 2014, vi vill gissningsvis inte ha alla nyheter på framsidan under aktuellt. För att lösa det så använder vi <onlyinclude></onlyinclude> taggarna, t.ex:
<onlyinclude> ; Kårens dag : Måndagen sen 25:e augusti står Stacken på kårens dag, ni hittar oss på "Hyllan" i Nymble. </onlyinclude> ; [[Stacken/2014/Varmote|Vårmöte]] : Härmed kallas Stackens medlemmar till Stackens vårmöte 2014, torsdagen den 27:e februari klockan 19.30 på Kungliga Tekniska Högskolan, sal Q24.
Ovanstående kod kommer bara vida informationen om Kårens dag på framsidan, men alla nyheter om man går till Stacken/2014 (arkivet).
Gammal teknik
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 cookie. På gamla servern så fanns det ett cron-jobb som hämtade ut sidorna från CVS varje kvart och transformerar till HTML, just nu finns det ingen logik för automatisk uppdatering på platts, för att manuellt uppdatera sidan skriv (körver root-bitar för att kunna logga in på cookie):
cd /usr/local/www/www.stacken.kth.se-src make update
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.