Har satt igång ett par projekt i Django och tänkte att det kunde vara trevligt att kunna läsa i dokumentationen på iPaden, t.ex. på bussen eller hemma i soffan. Att skapa en ebok från Djangos dokumentation visade sig vara lättare gjort än man kunde tro — Sphinx, som är Pythons och Djangos standardsystem för att skapa dokumentation, bygger nuförtiden direkt till ePub, som är huvudformat för iBooks.
Skapa och installera ebok
1. Installera Apples bokläsare iBooks på iPaden om du inte redan gjort det.
2. Installera Sphinx:
$ sudo easy_install -U Sphinx
3. Eftersom dokumentationen i Django v 1.2.1 inte fungerar med senaste Sphinx, var jag tvungen att använda mig av trunk istället. Om du vill fortsätta använda
$ svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
4. Sedan byggs dokumentationen med ett enda kommando
$ cd django-trunk/docs
$ make epub
5. Vänta… i builds/ finns nu filen Django.epub. Drag och släpp denna på iTunes. Synka iPaden. Om du är slö och inte orkar göra detta själv, kan du ladda ner min fil härifrån.
Svårare än så var det inte! Min väg hit var lite längre, eftersom jag kämpade ganska länge med att reda ut varför allt Sphinx kraschade när jag försökte skapa epubfilen, eller för den delen någon dokumentation överhuvudtaget, med den officiella Django v1.2.1.
Läsa på iPaden
Att sedan läsa dokumentationen på iPaden är på det stora hela en mycket trevlig upplevelse, men med ett par små problem.
Innehållsförteckningen
En sida. Notera att syntaxfärgningen av koden kommit med.
iBooks förteckning över bokmärken, överstrykningar och anteckningar. Man kan tjuvkika på en anteckning genom att peta på den lilla PostIt-lappen.
Här är sidan med den gröna överstrykningen och den lila anteckningen som visades i förteckningen i förra bilden. Peta på PostIt-lappen så öppnas den upp och man kan läsa och skriva i den.
Här är ett exempel på att iBooks inte riktigt klarar av att hantera en text riktigt korrekt (ännu?): En del av rubriken har brutits över till en ny sida — det riktiga hade naturligtvis varit att bryta/flytta hela rubriken över till nästa sida.