Konsepton sivusto: Julkaisujärjestelmä

Mikko Paltamaa 15. maaliskuuta 2010, 14:53 2 kommenttia

Verkkosivustojen julkaisujärjestelmät (sisällönhallintajärjestelmät, CMS) ovat ikuisuusongelma, johon ei vieläkään ole kovin hyvää ratkaisua. On mielenkiintoista, ettei julkaisujärjestelmäongelmaa ole vieläkään ratkaistu tyydyttävästi, vaikka niitä on kehitetty jo viitisentoista vuotta – tuhansia erilaisia, tuhansien eri kehittäjien toimesta.

Julkaisujärjestelmän valinta onkin käytännössä aina kompromissien tekoa:

Drupal, Joomla!, eZ Publish

  • Ilmaisia
  • Suosittuja
  • Avointa lähdekoodia
  • Periaatteessa laajennettavissa
  • Huonosti suunniteltuja
  • Huonosti dokumentoituja
  • Käytettävyydeltään surkeita

WordPress

  • Ilmainen
  • Erittäin suosittu
  • Avointa lähdekoodia
  • Käytettävyydeltään kohtuullinen
  • Huonosti suunniteltu
  • Huonosti dokumentoitu
  • Rajoittunut, soveltuu lähinnä blogin tai hyvin yksinkertaisen sivuston pohjaksi

Webvanta

  • Erittäin hyvin suunniteltu
  • Käytettävyydeltään erinomainen
  • Kuukausimaksullinen
  • Suljettua lähdekoodia
  • Hostaus rajoitettu
  • Käytännössä tuntematon

(Aion kirjoittaa  julkaisujärjestelmistä lisää tulevaisuudessa, joten pysy kuulolla mikäli aihe kiinnostaa.)

Konsepton sivuston kohdalla päädyin toteuttamaan varsinaiset kotisivut staattisina HTML-sivuina ja käyttämään julkaisujärjestelmää ainoastaan blogin toteuttamiseen.

Julkaisujärjestelmän valinta

Blogin kohdalla julkaisujärjestelmän valinta oli helppoa: WordPress. Valintaperusteita olivat mm. järjestelmän suosio, ilmaisuus, kelvollinen ylläpitokäyttöliittymä, muokattavuus muun sivuston näköiseksi ja valmiit lisäosat useimpiin tarpeisiin.

Valinta oli onnistunut, sillä kelvollisen blogin pystyttäminen WordPressin avulla oli melko helppoa. Varsinkin jos kielenä on englanti ja kelpuuttaa jonkin valmiista teemoista, niin blogi on pystyssä hyvinkin nopeasti.

Teeman rakentaminen

Sen sijaan oman teeman rakentaminen oli työläämpää. Erityisesti sivupohjiin liittyvien funktioiden ja niiden dokumentoinnin taso oli pettymys. Ilmeisesti WordPressin sivuston mainoslause “Code is Poetry” ei koske itse WordPressiä.

Parannettavaa löytyisi myös oletustoiminnoista. Esimerkiksi oikean palstan hakukenttä täytyi hardkoodata suoraan sivupohjaan, koska kyseisen komponentin otsikkoa ei voinut vaihtaa suomenkieliseksi. Muiden komponenttien kohdalla otsikko oli muokattavissa.

Ryhdyin rakentamaan omaa teemaa valmiin teeman päälle kuten lukemissani tutoriaaleissa suositeltiin. Se osoittautui kuitenkin huonoksi ratkaisuksi. Alkuperäisestä teemasta ei jäänyt käytännössä mitään jäljelle, koska kaikki asiat tehty hiukan eri tavalla kuin mitä itse pidin optimaalisena tai omalle sivustolleni sopivana. Vähemmällä työllä olisin päässyt, jos olisin rakentanut teemani tyhjästä, katsoen vain mallia valmiista teemoista.

Lisäosien valinta

Lähes kaikki blogit vaativat WordPressin oletustoimintojen lisäksi erilaisten lisäosien asentamista. Teeman rakentamisen ohella ainakin ensikertalaisella suurin työmäärä kuluukin sopivien lisäosien etsimiseen, valitsemiseen ja testaamiseen.

Lukuisat lisäosat ovat tavallaan hyvä asia, koska melkein kaikkiin yleisiin tarpeisiin löytyy useita valmiita lisäosia. Määrä on kuitenkin myös haitta, koska lisäosien laatu vaihtelee paljon. Yleensä joutuu kokeilemaan useampaa vaihtoehtoa ennen kuin sopiva ratkaisu löytyy.

Lisäksi monet lisäosat korjaavat WordPressin puutteita ja huonoja suunnitteluratkaisuja, joten niiden voisi toivoa olevan jo valmiiksi mukana.

Konsepton sivustolla päädyttiin käyttämään seuraavia lisäosia:

AddToAny

AddToAny lisää artikkeleihin monipuoliset jakamistoiminnot. Valmiita tyylejä täytyi hiukan muokata ennen kuin elementit asettuivat kauniisti paikoilleen, mutta positiivisena yllätyksenä lisäosa osasi näyttää sisältönsä automaattisesti suomeksi.

All in One SEO Pack

All in One SEO Pack tekee blogista kerralla hakukoneystävällisen. Se lisää WordPressiin lukuisia hakukoneoptimointiin liittyviä toimintoja ja mahdollistaa useiden hakukoneoptimointiin liittyvien asetusten määrittelyn.

Kyseinen lisäosa on WordPressin suosituin lisäosa. Vastaavien toimintojen voisi toivoa löytyvän tulevaisuudessa valmiina, jotta kaikkien ei tarvitsisi ladata lisäosaa.

FD Feedburner Plugin

Tämä yksinkertainen lisäosa ohjaa normaalin RSS-syötteen osoitteen Google Feedburnerin kautta kierrätettyyn syötteeseen. Feedburnerin käytön etuna on esimerkiksi analytiikka syötteiden tilaajista.

Google XML Sitemaps

Google XML Sitemaps luo automaattisesti XML-muotoisen sivukartan blogin sivuista. Google ja muut hakukoneet osaavat käydä lukemassa sivujen osoitteet tästä tiedostosta ja päätyvät todennäköisemmin indeksoimaan sivuja, joille ei ole suoraa linkkiä etusivulta. Sivukartan avulla voidaan vaikuttaa myös siihen, kuinka usein hakukoneet käyvät tarkistamassa eri sivuja.

Proper Pagination

WordPress lisää oletuksena huonon sivutusnavigaation sivuille, joilla listataan useita artikkeleja. Sivutuksen tyyliksi on valittu linkit “edellinen” ja “seuraava” sekä jokin vapaavalintainen merkkijono linkkien välissä. Tässä on kolme ongelmaa:

  • Käyttäjä ei saa käsitystä sivujen määrästä
  • Käyttäjä ei tiedä monennellako sivulla parhaillaan on
  • Hakukoneet eivät löydä syvemmällä sijaitsevia sivuja

Lisäosa korjaa sivutusnavigaation paremmaksi lisäämällä sivujen numerot, jotka ovat linkkejä kyseisille sivuille.

Search Meter

Vierailijat hakevat hakutoiminnon avulla sellaisia asioita, joita tarvitsevat ja joita eivät muuten löydä. Search Meter tallentaa hakusanat, joita blogin vierailijat hakevat blogin hakukentän avulla. Tallennettuja tietoja voidaan käyttää tärkeiden ja hankalasti löydettävien asioiden korostamiseen.

Hakusanojen tallennuksen pitäisi sisältyä kaikkiin julkaisujärjestelmiin, koska se on erittäin hyödyllinen ominaisuus sivuston käytettävyyden kehittämisen kannalta.

WP-Paginate

WordPress sisältää mahdollisuuden sivuttaa pitkän artikkelin usealle eri sivulle. Kuten pitkien listojen sivutusnavigaatio, tämäkin sivutusnavigaatio on toteutettu huonosi. Sama koskee kommenttien sivutusta.

Lisäosa tekee artikkelin sisäiselle sivutukselle ja kommenttien sivutukselle saman kuin Proper Pagination artikkelilistojen sivutukselle.

WP-SpamFree Anti-Spam

Suosittu keino kommenttispämmin estämiseksi ovat erilaiset captcha-toiminnot. Niissä on kuitenkin se ongelma, että käyttäjä joutuu tekemään ylimääräistä työtä tulkitessaan ja kirjoittaessaan tekstejä.

Tämä lisäosa torjuu spämmiä toisella tavalla, nimittäin JavaScriptin ja evästeiden avulla. Useimmat spämmirobotit eivät ymmärrä sekä JavaScriptia että evästeitä, joten lisäosan pitäisi ainakin vähentää spämmiä. Huonona puolena oikean käyttäjän selaimessa tulee olla molemmat päällä. Melkein kaikilla on, joten tämä ei ole iso ongelma.

Todennäköisesti tämä lisäosa ei riitä yksinään poistamaan spämmiongelmaa, joten tulevaisuudessa Konsepton sivustolle saatetaan ottaa käyttöön esimerkiksi Akismet. Akismetin käyttö on kuitenkin maksullista yrityksille, joten testaan ensin muita vaihtoehtoja.

WP-Syntax

WordPressille ei ole aivan täydellistä lisäosaa kirjoituksissa esitettävän lähdekoodin merkitsemiseen ja värittämiseen. WP-Syntax lienee paras vaihtoehto, koska se tekee tekstistä kohtuullisen pientä, eikä lisää turhia toimintoja, kuten kopioimista haittaavia rivinumeroita.

Lisäosassa on kuitenkin yksi ongelma. HTML-muotoisen esimerkkikoodin syöttäminen WordPressin editoriin vaatii sen, että <- ja >-merkit korvataan &lt;- ja &gt; -koodauksella. Tämä voidaan erikseen ilmoittaa lisäosalle lisäämällä pre-tagiin attribuutti escaped="true". WordPress kuitenkin poistaa tämän attribuutin aina välillä tallennettaessa, ilmeisesti siksi, ettei se ole validi HTML-attribuutti.

Tämä kirjoitus kuuluu sarjaan Konsepton sivustoa käsitteleviä kirjoituksia. Kirjoitukset ovat:

Kommentit

  1. Koko Konsepton sivusto – blogisarja on erinomaista tavaraa; selkeää ja johdonmukaista. Kiitoksia!

  2. Ooh, kiitos! Kunpa riittäisi aikaa kirjoittaa blogiin useamminkin. :-)

Kommentoi kirjoitusta

Voit käyttää seuraavia html-tageja:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">