HTML jako e-bookový formát

Formát HTML, který všichni známe (aspoň pasivně) z prostředí webu, není zrovna typickým e-bookovým formátem. Přesto jsem nakonec došel k tomu, že ho používám jako svůj hlavní formát a do podoby vhodné pro to které konkrétní zařízení ho konvertuji. Tato „práce navíc“ se totiž velmi rychle vrátí:

Jistota do budoucnosti

Formát HTML je zdaleka nejrozšířenějším formátem, který můžete najít – vždyť je v něm napsána skoro každá webová stránka! To znamená jednak bohatou nabídku nástrojů na jakékoliv myslitelné zpracování (vytváření, úpravy, kontrola, konverze do čehokoliv), ale hlavně naprostou jistotu to budoucnosti – ať už se bude formát měnit jakkoliv, to základní zůstane (jak ukazuje nešťastný osud XHTML 2.0, které právě na nezachování zpětné kompatibility dojelo). Mám jistotu, že moje knihovna zůstane použitelná – což se nedá příliš říct o ostatních e-bookových formátech. Ani u těch, které se ohánějí standardností, není vůbec jisté, jak dlouho přežijí – a i kdyby, nutně dříve nebo později narazíme na to, že aby se e-book dobře četl, musí být (více nebo méně) přizpůsoben čtecímu zařízení; co ale bude, až přejdete na zařízení nové?

Snadné úpravy

Když se do HTML souboru podíváte, zjistíte, že jde o téměř čistý text, který navíc obsahuje jen speciálně zapsané značky. Dá se tudíž snadno upravovat jakýmkoliv nástrojem pro úpravu textů. U ostatních formátů, i když jsou také interně zapsány podobným způsobem, přistupuje přinejmenším požadavek „vytáhnout“ ze souboru e-booku tu textovou část, tu pak upravit a následně ji zase vpravit zpátky do souboru e-booku. V zásadě to není žádný problém, nástroje pro vytažení a vrácení jsou pro většinu formátů k dispozici, ale ne vždy je máte při ruce a ne vždy jsou tím jediným, co je třeba mít na paměti. Jako příklad můžeme vzít formát EPUB – je to obyčejné XHTML (tedy to samé, v čem archivuji já), jen zkomprimované ZIPem. Dnes už těžko najdeme počítač, na kterém by nebyl nástroj pro práci se ZIP archívy, tudíž změnám v EPUBu nic nebrání, že? Brání. Jde o to, že formát, aby zvýšil svoji použitelnost ve čtečkách, klade další požadavky – třeba že soubory v tom ZIP archívu musí být v určitém konkrétním pořadí nebo že jednotlivý blok HTML nesmí překročit určitou velikost. Nebo že metadata jsou udržována v oddělených souborech (ne vždy jen v jednom), takže úpravu je třeba rozprostřít přes víc souborů. A tak dále a tak podobně – a pamatujte, že se pořád ještě bavíme jen o standardy využívajícím EPUBu a ne třeba o LITu nebo LRF, ke kterým je třeba přistupovat úplně speciálně.

Součástí snadných úprav je i to, že HTML jsou principielně textové soubory a dá se v nich jako v textech vyhledávat: otevřete svůj oblíbený správce souborů, řeknete „vyhledej mi všechny soubory v adresáři /knihy obsahující text ???“ a máte výsledek. U ostatních formátů (s výjimkou TXT) tohle neuděláte, pokud váš vyhledávací nástroj nemá pro váš formát knih speciální podporu. Tu najdete pro RTF a PDF, možná pro pár dalších, ale určitě ne pro všechny a už vůbec ne na všech počítačích.

Všechny potřebné vlastnosti

HTML je už dost starý formát na to, aby postupným vývojem získalo podporu pro skoro všechny nápady, které vás mohou postihnout. Prostý text je samozřejmostí ve všech formátech, různé typy, velikosti a barvy písma také, ale jakmile dojde na obrázky, začíná jednodušším formátům docházet dech – specielně pokud jde o obrázky vložené do textu, ne jen o ilustrace stojící mimo hlavní text. Další formáty vypadnou na tabulkách nebo odkazech. HTML zvládne i „frajeřinky“ typu „první písmeno v kapitole zvětšené“ nebo „první řádek kapitoly chci velkými písmeny, ale pozor, délka řádku se mi bude měnit!“

Ani HTML pochopitelně nemá všechno, ale je jen velice málo efektů, se kterými se můžete v knize setkat, které by v HTML nešly udělat – i kdyby jen „napodobením“ pomocí tabulek nebo pozicování.

Samozřejmostí, která při pohledu na ostatní e-bookové formáty zdaleka není tak samozřejmá, je podpora pro libovolné kódování. Chcete češtinu v UTF-8 nebo máte radši Windows-1250? HTML to je jedno, prohlížeč musí zobrazit všechna. U mnoha jiných formátů takovou svobodu nemáte (EPUB například ve svých specifikacích vyžaduje UTF-8 nebo UTF-16) nebo ji sice máte, ale čtecí software se s tím nemusí umět vypořádat (například všechny TXT a mnoho z variant PDB vůbec nenese informaci o tom, ve kterém kódování jsou, takže čtečka musí hádat a doufat, že to trefí).

Udržování konzistence

Všechny ostatní e-bookové formáty jsou ve finále tvořeny jediným souborem. Pro účely čtení to má perfektní logiku, člověk nahraje do svého zařízení jeden soubor a je hotovo, nemusí se zabývat přemýšlením o tom, jestli nezapoměl tady na stylopis nebo tamhle na obrázek. Jenže jakmile začneme uvažovat i o jiných operacích než jen čtení, začne se ta kompaktnost EPUBu a dalších jevit v jiném světle – nutně to znamená, že kniha musí mít svoji vlastní kopii některých pracovních dat, byť je tato kopie stejná (nebo téměř stejná) jako u všech ostatních knih. Potřeba něco změnit pak znamená potřebu změnit každou jednotlivou knihu.

Tento problém u HTML není. Tím, že je kniha tvořena řadou samostatných souborů, není nejmenší problém dát společné části do jednoho souboru a ten pak sdílet všemi knihami. Případná změna pak postihne jen ten jeden společný soubor. Typický případ jsou soubory kaskádových stylů: Chci změnit standardní velikost písma? Změním jeden řádek v jednom souboru a všechny knihy jsou předělány. Omrzí mě zarovnání textu do bloku? Přepíšu jedno slovo a je hotovo. V EPUBu bych musel změnit to jedno slovo v každé knize, u ostatních formátů by to ještě muselo být z obou stran obklopeno konverzí (z e-bookového formátu do něčeho editovatelného a po úpravě zase zpátky).

Já si například svůj archiv knížek držím zhruba v následující podobě:

/knihy/vsechno.css
/knihy/autor/autor.css
/knihy/autor/serie/serie.css
/knihy/autor/serie/prvni_dil.htm
/knihy/autor/serie/druhy_dil.htm
/knihy/autor/serie/treti_dil.htm
/knihy/autor2/autor2.css
/knihy/autor2/samostatna_kniha.htm

Každá kniha odkazuje jen na jediný stylopis (ten jí nejbližší, tedy například serie.css v případě knihy /knihy/autor/serie/druhy_dil.htm, ale úplně klidně by to mohl být soubor specifický přímo pro tu knihu); tento stylopis pak pomocí direktivy @import připojí stylopis nadřazený, a tak dále až k hlavnímu stylopisu (v tomto případě /knihy/vsechno.css). Rozdělení pak je naprosto logické: hlavní stylopis obsahuje všechna standardní pravidla (velikost a typ písma, zarovnání odstavců, mezery a odsazení, orámování obrázků a podobně), „nižší“ stylopisy pak obsahují jenom změny typické pro toho kterého autora nebo tu kterou sérii (třeba že v Pratchettově Zeměploše má smrť svůj specifický způsob řeči, znamená pouze vložení příslušné definice do /knihy/pratchett/zemeplocha/zemeplocha.css). Podstatné je, že když budu chtít něco změnit, udělám zásah nejspíš jen do hlavního stylopisu a nechám znovu překonvertovat všechny knihy.

Jednoduchost

HTML má ještě jednu nezanedbatelnou výhodu: Hodně lidí už ho umí, a ti, kdo ho neumí, se ho mohou snadno naučit. Pro účely tvorby nebo úpravy e-booků si vystačíte s naprostým minimem znalostí: hlavičku HTML souboru stačí zkopírovat z nějakého ukázkového souboru, a poté si (pro beletrii) vystačíte se symboly pro kapitolu, odstavec, zvýrazněné písmo, blokovou citaci a eventuelně obrázky. Další symboly pak můžete přidávat postupně, jak na jejich potřebu začnete narážet.

V dalších příspěvcích se vrátím k hromadné konverzi HTML do e-bookových formátů.

Podobné příspěvky:

3 Responses to “HTML jako e-bookový formát”

  1. avatar Rudolf Korinek napsal:

    Ten navod je uuuzzzaaaasny 🙂 ne vazne – dekuju, ze si s tim davas takovou praci. Ja bych si moc rad vytvoril svoji vlastni knihovnu presne podle toho jak to popisujes …

    -= Rudla

  2. avatar pepak napsal:

    Jak, „začneš“? Už jsem pár návodů napsal 🙂

    Ale žádný strach. Teď nejbližší článek bude o hromadné konverzi HTML, následovat bude vytváření sbírek (Collections v menu Readeru) a pak nejspíš série článků o převodu papírových knih do elektronické podoby.

  3. avatar Rudla napsal:

    Vazne se tesim, az zacnes psat navody 🙂 opet moc hezky clanek.

    Rudla

Leave a Reply

Themocracy iconWordPress Themes

css.php