Epubin anatomiaa aloittelijoille
Epub on vakiintunut e-kirjojen valtavirtaformaatiksi. Jos on lukenut kirjoja kuukausimaksullisissa äänikirjapalveluissa, kirjaston verkkosovelluksessa tai vaikkapa Applen iBooks-sovelluksessa, on mitä todennäköisimmin lukenut epub-kirjoja. Mutta mikä epub oikeastaan on ja mitä se sisältää? Tässä artikkelissa käyn yleisellä tasolla läpi, mitä epub-tiedoston sisältä yleensä löytyy.
Epubia on joskus kutsuttu pakatuksi verkkosivuksi. Epub 3 -formaatti hyödyntää html5-merkkauskieltä, siis samaa, mitä verkkosivutkin. Kuten verkkosivuilla, ulkoasu määritellään CSS:n avulla. Sisältöjen lisäksi epub sisältää lukuohjelmille ja -sovelluksille suunnattuja ohjeita, jotta ne osaavat näyttää sen oikein. Kokonaisuus on pakattu zip-tiedostoksi, jonka päätteenä on .epub.
Kokonaisuuden voi esittää vaikkapa miellekarttana tai puukuvaajana..Epubin ylimmällä tasolla on mimetype-tiedosto sekä kaksi kaiken muun tiedon sisältävää kansiota: OEBPS ja META-INF. Paketin osat voi jakaa karkeasti kahtia: epub-tiedostoa jäsentävään runkoon ja sen varsinaiseen sisältöön, siis tekstiin, kuviin ym. Katsotaan seuraavaksi tarkemmin, mitä nämä tarkoittavat.
Mimetype
Hyväksyttävässä epub-tiedostossa täytyy aina olla ”mimetype”. Se on pieni tekstitiedosto, joka kertoo, että kyseessä todella on epub. Mimetype sisältää aina ja ainoastaan tekstin ”application/epub+zip”. Mimetypen pitäisi aina olla ensimmäinen tiedonmurunen, johon tiedostoa tutkiva sovellus, esimerkiksi e-kirjojen lukuohjelma tai verkkoselain, törmää. Näin sovellus tietää, että kyseessä on nimenomaan epub ja osaa käsitellä sitä oikein.
META-INF
META-INF-hakemisto on myös pakollinen. Sen pitää aina sisältää container.xml-niminen tiedosto. Container-tiedoston tarkoituksena on puolestaan ilmaista, missä pakkauksen .opf-tiedosto sijaitsee. Näin epub-lukuohjelmat ja -sovellukset löytävät content.opf-tiedoston eli pakkaustiedoston, joka puolestaan sisältää elintärkeää tietoa epubin ominaisuuksista. Yksi epub 3 voi sisältää useita opf-tiedostoja, jos julkaisusta on esimerkiksi sekä uudelleenjuoksutettava että taitoltaan pysyvä versio samassa pakkauksessa. Tällöin container.xml osoittaa kaikkien näiden sijainnin.
META-INF-kansio voi sisältää myös muita epubin rakenteesta kertovia xml-tiedostoja, esimerkiksi metadata.xml, manifest.xml tai encryption.xml.
Content.opf
Opf-tiedosto on sisältää epubin oleellista bibliografista ja rakenteellista tietoa, joiden avulla lukuohjelmat ja -sovellukset osaavat käsitellä ja näyttää oikein epubin sisältöjä. Content.opf sisältää yleensä ainakin osiot ”metadata”, ”manifest” ja ”spine”. Content.opf sijaitsee yleensä OEBPS-kansiossa, mutta sen ei ole pakko olla juuri siellä.
Metadata
Content.opf voi sisältää eri metatiedon tyyppejä. Epub 3 -määrittelyn mukaan pakollisia metatietoja ovat Dublin Core -metatiedon mukaiset title, identifier, language ja modified, mutta myös monia muita Dublin Core (dc) -metatietoja voi käyttää. Content-opf:n metadata-osiossa sijaitsevat myös kirjatiedoston sisäiset saavutettavuusmetatiedot schema.org-muodossa.
Manifest
Manifest-osio on täydellinen kooste epubin sisältämistä ja käyttämistä sisältötyypeistä: xhtml-tekstitiedostot, css-tiedostot, kuvat, mahdolliset ääni- tai videotiedostot, videot, sisällysluettelot jne. Lukuohjelmat osaavat käsitellä vain niitä sisältöjä, jotka on määritelty manifest-osiossa.
Spine
Spine-osio on nimensä mukaan epubin selkäranka: siinä määritellään muiden sisältöjen oletuslukujärjestys. Spine-osiossa olevien sisältöjen täytyy löytyä myös manifest-osiosta. Lukuohjelmat turvautuvat spine-osioon, jos ne eivät pysty muuten päättelemään, missä järjestyksessä sisältö pitäisi näyttää.
Monimutkaista, kyllä! Content.opf-tiedostoa ei kuitenkaan tarvitse osata laatia itse, vaan julkaisuohjelmat tekevät ne automaattisesti. Joskus saattaa kuitenkin olla tarve tehdä siihen muokkauksia, etenkin, jos tiedoston sisältöä on muokannut jälkeenpäin.
OEBPS
OEBPS-kansio (sanoista ”Open E-Book Publication Structure”) sisältää kaiken epub-tiedoston varsinaisen sisällön: tekstit, kuvat, fontit, ulkoasun css-tiedoston, sisällysluettelon, mahdolliset skriptit, mediasisällöt tai laajennukset sekä useimmiten myös yllä esitellyn content.opf-tiedoston.
OEBPS-kansio ei itse asiassa ole välttämätön, vaan sisällöt voivat olla suoraan juurielementissä. Epubien julkaisuohjelmat kuitenkin yleensä luovat OEBPS-kansion.
Epub-standardi määrää, millaisia formaatteja epub-tiedosto voi sisältää. Pääsääntönä epubiin voi sisällyttää niitä yleisimpiä formaatteja, joita myös verkkosivuilla käytetään. Teksti rakentuu html-merkkauskielelle, ja epub 3 -formaatissa onkin täysi html5-tuki. Ulkoasun määrittelyssä käytetään css-tyylitiedostoja: huomaa, että saavutettavassa epubissa käyttäjä pystyy itse vaikuttamaan esimerkiksi fonttiin, tekstiin kokoon, väriin tai välistykseen, joten näiden muokkaamista ei tule tyylitiedostonkaan valinnoilla estää.
Kuvaformaateista epub tukee yleisiä kuvamuotoja, kuten jpg, png tai gif. Erityisen suositeltavia formaatteja epub 3 -kirjoissa ovat vektorigrafiikalle tarkoitettu svg (scalable vector graphic), jota voi suurentaa käytännössä rajattomasti tarkkuuden kärsimättä, sekä perinteisiä valokuvaformaatteja hieman pienikokoisempi, mutta hyvän tarkkuuden säilyttävä webp.
Hyödyllisiä lähteitä
Epub-standardeista ja epub-tiedostojen ominaisuuksista kerrotaan kattavasti World Wide Web Consortiumin eli W3C:n julkaisemissa määrittelyissä. Lähteet ovat englanninkielisiä.
Epub 3.3 Candidate Recommendation eli parhaillaan viimeisteltävä luonnos epub 3.3 -standardiksi. Lopullinen versio julkaistaan näillä näkymin keväällä 2023 yhdessä tuoreen saavutettavuusmäärittelyn Epub Accessibility 1.1 kanssa.
Epub Accessibility 1.1 Candidate Recommendation. Luonnos uudeksi epub-saavutettavuusmäärittelyksi. Huomioi EU:n esteettömyysdirektiivin vaatimukset e-kirjoille.
Epub 3.2 Specification eli viimeisin valmis epub-standardi.
Epub Accessibility 1.0, viimeisin valmistunut epubin saavutettavuusmäärittely. Julkaistu myös ISO-standardina ISO/IEC 23761:2021.