weidner/archives/2013/03/

Perl Modul App::MakeEPUB

Heute habe ich eine neue Version des Perl Modules App::MakeEPUB auf CPAN hochgeladen.

Das Modul ist ursprünglich aus einem Skript entstanden, welches ich vor einigen Monaten zum Erstellen der EPUB-Version der GUUG Mitgliederzeitschrift UpTimes entwickelt hatte.

Da ich das Skript künftig für meine Bücher verwenden will, habe ich angefangen, es zu überarbeiten.

Mit der heute hochgeladenen Version ist es möglich, RFCs im HTML-Format von tools.ietf.org zu nehmen, das HTML-Markup etwas anzupassen und dann ein EPUB daraus zu erzeugen.

Auf dem Pockebook 360° sieht das EPUB nicht so gut aus, da man einen sehr kleinen Schriftgrad einstellen muß, damit der ganze Text erscheint. Die HTML-RFCs von tools.ietf.org sind fast alle mit dem <pre> Tag, das heißt genauso wie die ASCII-Versionen formatiert und benötigen daher 80 Spalten. Immerhin funktioniert das Inhaltsverzeichnis soweit, dass man im EPUB zu den einzelnen Sektionen springen kann.

Auf einem 10' Android-Tablett hingegen sieht es sehr gut aus. Im CoolReader stimmen die ASCII-Grafiken, das Inhaltsverzeichnis funktioniert, aber die Links im HTML-Text scheinen nicht zu funktionieren.

Im FB-Reader sind die ASCII-Grafiken zusammengefallen und teilweise nach links gerückt, so dass man schlecht erkennen kann, was es darstellen soll. Dafür kann man auch internen Links folgen und zum Beispiel zu den Literaturangaben oder den Seitenzahlen, die im Inhaltsverzeichnis der HTML-Datei verlinkt sind, springen.

Im EPUB-Reader-Addon von Firefox funktionieren alle drei Sachen.

Ein EPUB-RFC erzeugen

Ein EPUB-RFC zu erzeugen ist relativ einfach und besteht aus diesen vier Schritten:

  1. Download des RFC von tools.ietf.org:

    $ wget https://tools.ietf.org/html/rfc2328 > download/rfc2328.html
    
  2. Nachbearbeiten des HTML, Eliminieren nicht funktionierender Links:

    $ bin/finish-htmlrfc.pl download/rfc2328.html > clean/rfc2328.html
    

    Das Skript bin/finish-htmlrfc.pl ist unterhalb von examples/ im Archiv des Perl-Moduls zu finden.

  3. Erzeugen des EPUB:

    $ make-epub -publisher IETF                \
                -rights 'The Internet Society' \
                -title RFC2328                 \
                -spine rfc2328                 \
                -tocdepth 2                    \
                -output rfc2328.epub           \
                clean
    
  4. Kontrolle mit epubcheck:

    epubcheck rfc2328.epub
    

Falls epubcheck im vierten Schritt Fehlermeldungen bringt, geht es zurück zu Schritt 2 (bei Problemen mit dem HTML) und man muss das Skript bin/finish-htmlrfc.pl anpassen oder zu Schritt 3 (bei Problemen mit den Metadaten). Falls das Problem bei make-epub liegt, helfe ich gern aus.

Hier ist das fertige rfc2328.epub (OSPF Version 2).

Update (20130405): Ich habe eine neue Version des RFC-Ebooks angefertigt, bei der Text automatisch umgebrochen wird. Diese sieht besser auf kleinen Bildschirmen aus.

Posted 2013-03-17
Tags: