calibre Användarhandbok

Storlek: px
Starta visningen från sidan:

Download "calibre Användarhandbok"

Transkript

1 calibre Användarhandbok Utgåva Kovid Goyal September 11, 2015

2

3 Innehåll 1 Avsnitten Grafiska användargränssnittet Lägga till din favorit nyhetswebbplats E-bokläsare E-bokkonvertering Redigera e-böcker Jämföra e-böcker Redigera e-boks metadata Vanliga frågor och svar Handledning Anpassa calibre Kommandoradsgränssnitt Konfigurera calibre utvecklingsmiljö Ordförklaringar Python Modulindex 361 Index 363 i

4 ii

5 calibre är en e-bokbibliotekshanterare. Den kan visa, konvertera, och katalogisera e-böcker i de flesta e-bokformaten. Den kan också kommunicera med många e-bokläsarenheter. Den kan gå ut på internet och hämta metadata för dina böcker. Den kan ladda ner nyhetstidningar och omvandla dem till e-böcker för bekvämare läsning. Den är plattformsoberoende, kör på Linux, Windows och OS X. Du har just startat calibre. Vad ska du göra nu? Innan calibre kan göra något med dina e-böcker, måste den veta något om dem. Dra och släpp några e-böcker på calibre, eller klicka Lägg till böcker -knappen och se över vilka e-böcker du vill arbeta med. När du har lagt till böcker, kommer de dyka upp i huvudvyn och se ut i stil med detta: När du har beundrat listan över böcker som du just lagt till i ditt favoritinnehåll, kommer du antagligen att vilja läsa en. För att göra att du måste konvertera boken till ett format som din läsaren förstår. När du först kör calibre kommer Välkomstinstallationsguiden starta upp och ställa in Calibre för dina läsenheter. Konvertering är en småsak. Välj bara den bok du vill konvertera och klicka sedan på Konvertera böcker -knappen. Ignorera alla alternativ för nu och klicka på OK. Den lilla ikonen i det nedre högra hörnet kommer att börja snurra. När den är klar spinning, är din konverterade boken klar. Klicka på Visa för att läsa boken. Om du vill läsa boken på din läsenhet, anslut den till datorn, vänta tills Calibre upptäcker den (10-20 sekunder) och sedan klicka på Skicka till enhet -knappen. När ikonen slutar rotera igen, koppla bort din läsenhet och börja läsa! Om du inte konverterar boken i tidigare steg, calibre kommer automatiskt konvertera den till formatet som din läsenhet kan hantera. För att komma igång med mer avancerad användning, bör du läsa om Grafiska användargränssnittet (sida 3). För ännu mer kraft och mångsidighet, lära dig Kommandoradsgränssnitt (sida 272). Du hittar listan med Vanliga frågor och svar (sida 104) användbara. Innehåll 1

6 2 Innehåll

7 KAPITEL 1 Avsnitten 1.1 Grafiska användargränssnittet Det grafiska användargränssnittet (GUI) erbjuder tillgång till all bibliotekshantering och e-bokkonverteringsfunktioner. Det grundläggande arbetsflöde för att använda calibre är först att lägga till böcker till biblioteket från din hårddisk. calibre kommer automatiskt försöka läsa metadata från böckerna och lägga till dem i sin interna databas. När de är i databasen, kan du utföra olika Åtgärder (sida 3) på dem som ingår konvertering från ett format till ett annat, överföra till avläsningsanordningen, titta på datorn och redigera metadata. Det senare innefattar modifiering av omslag, beskrivning och etiketter bland andra detaljer. Observera att calibre skapar kopior av de filer som du lägger till. Dina originalfiler lämnas orörda. Gränssnittet är uppdelat i olika sektioner: Åtgärder (sida 3) Inställningar (sida 10) Kataloger (sida 10) Sök & sortera (sida 11) Sökgränssnittet (sida 11) Sparade sökningar (sida 13) Virtuella bibliotek (sida 15) Gissa metadata från filnamn (sida 15) Bokinformation (sida 16) Etikettbläddrare (sida 18) Omslagsrutnät (sida 20) Omslagsbläddrare (sida 21) Snabbvisning (sida 21) Jobb (sida 22) Kortkommandon (sida 22) Åtgärder I åtgärdsverktygsfältet finns praktiska genvägar till vanliga åtgärder. Om du högerklickar på knapparna, kan du utföra varianter på standardåtgärden. Observera att de åtgärdsverktygsfält kommer se lite olika ut beroende på om du har en e-bokläsare ansluten till datorn. 3

8 Lägg till böcker (sida 4) Redigera metadata (sida 5) Konvertera böcker (sida 5) Visa (sida 6) Skicka till enhet (sida 6) Hämta nyheter (sida 7) Bibliotek (sida 7) Enhet (sida 8) Spara till disk (sida 8) Anslut/dela ut (sida 9) Ta bort böcker (sida 9) Lägg till böcker Lägg till böcker åtgärd har sju variationer, som nås genom att göra ett högerklick på knappen. 1. Lägg böcker från en enda katalog: Öppnar en filvalsdialog och låter dig ange vilka böcker i en katalog bör tilläggas. Denna åtgärd är kontextkänslig, det vill säga det beror på vilken katalog (sida 10) som du har valt. Om du har valt biblioteket, kommer böcker att läggas till i biblioteket. Om du har valt e-boksläsarenheten kommer böckerna laddas upp till enheten och så vidare. 2. Lägg böcker från kataloger, inklusive underkataloger (En bok per katalog, antar varje e-bokfil är samma bok i ett annat format): Låter dig välja en katalog. Katalogen och alla dess underkataloger skannas rekursivt, och alla e-böcker som hittas läggs till i biblioteket. calibre förutsätter att varje katalog innehåller en enda bok. Alla e-bokfiler i en katalog antas vara samma bok i olika format. Denna åtgärd är inversen av Spara till disk (sida 8) handling, dvs du kan Spara till disk, ta bort böckerna och lägga tillbaka dem utan någon förlorad information utom för dagen (detta förutsätter att du inte har ändrat någon av inställningarna för Spara till disk åtgärd). 3. Lägg böcker från kataloger, inklusive underkataloger (Flera böcker per katalog, antar varje e-bokfil är en annan bok) : Låter dig välja en katalog. Katalogen och alla dess underkataloger skannas rekursivt och eventuella e-böcker som hittas läggs till i biblioteket. calibre förutsätter att varje katalog innehåller många böcker. Alla e- bokfiler med samma namn i en katalog antas vara samma bok i olika format. E-böcker med olika namn läggs till som olika böcker. 4. Lägg till flera böcker från arkivet (ZIP/RAR): Gör att du kan lägga till flera e-böcker som finns lagrade inuti det markerade ZIP eller RAR-filer. Det är en praktisk genväg som innebär att man slipper att först packa upp arkivet och sedan lägga till böckerna via ett av de två ovanstående alternativen. 5. Lägg tom bok. (Värdeandels utan format): Används för att skapa en tom bok rekord. Detta kan användas för att sedan manuellt fylla i information om en bok som du kanske inte har ännu i din samling. 6. Lägg från ISBN: Låter dig lägga till en eller flera böcker genom att skriva in deras ISBN. 7. Lägg till filer till utvalda boken poster: Gör att du kan lägga till eller uppdatera filer som hör till en befintlig bok i biblioteket. Med Lägg till böcker åtgärden kan läsa metadata från en bred variation av e-boksformat. Dessutom försöker den gissa metadata från filnamnet. Se Gissa metadata från filnamn (sida 15) sektion, för att lära sig att konfigurera denna. 4 Kapitel 1. Avsnitten

9 För att lägga till ett extra format för en befintlig bok du kan göra något av tre saker: 1. Dra och släpp filen på bokens informationspanelen på höger sida i huvudfönstret 2. Högerklicka på knappen Lägg till böcker och välj Lägg till filer till valda bokens poster. 3. Klicka på den röda lägg till böcker -knappen i övre högra delen av Edit Metadata dialog, nås av Redigera metadata (sida 5) åtgärd. Redigera metadata knappen. Redigera metadata åtgärder har fyra variationer, som kan nås genom att göra ett högerklick på 1. Redigera metadata individuellt: Gör att du kan redigera metadata för böcker en efter en med möjlighet att hämta metadata, inklusive omslag, från Internet. Det gör också att du kan lägga till eller ta bort vissa e-bokformat från en bok. 2. Redigera metadata i grupp: Gör det möjligt att redigera vanliga metadatafält för ett stort antal böcker samtidigt. Den fungerar på alla böcker som du har valt i Biblioteksvy (sida 11). 3. Hämta metadata och omslag: Laddar ner metadata och omslag (om möjligt) för de böcker som är markerade i boklistan. 4. Sammanfoga bokuppgifter: Ger dig möjlighet att slå samman metadata och format av två eller flera bokposter. Du kan välja att antingen ta bort eller behålla de register som inte klickade först. För mer detaljer se Redigera e-boks metadata (sida 101). Konvertera böcker E-böcker kan omvandlas från ett antal format till det format din eboksläsare föredrar. Många e-böcker som finns att köpa kommer att skyddas av Digital Rights Management 1 (DRM) teknik. calibre kommer inte konvertera dessa e-böcker. Det är lätt att ta bort DRM från många format, men eftersom det kan vara olagligt, du måste hitta verktyg för att frigöra dina böcker själv och sedan använda calibre för att konvertera dem. För de flesta människor, bör konverteringen vara en enkel en-klicks-uppgift. Om du vill lära dig mer om konverteringsprocessen, se E-bokkonvertering (sida 54). Kovertera böcker åtgärden har tre varianter, som nås genom att göra ett högerklick på knappen. 1. Konvertera individuellt: Här kan du ange konverteringsalternativ för att anpassa konverteringen av varje vald e-bok. 2. Masskonvertering: Här kan du ange alternativ endast en gång för att omvandla ett antal e-böcker i grupp Grafiska användargränssnittet 5

10 3. Skapa en katalog av böckerna i ditt calibre-bibliotek: Gör att du kan skapa en fullständig lista över de böcker i biblioteket, inklusive all metadata, i flera format som XML, CSV, BiBTeX, EPUB och MOBI. Katalogen kommer att innehålla alla böcker nu visas i biblioteksvyn. Detta gör att du kan använda sökfunktioner för att begränsa de böcker som ska katalogiserade. Dessutom, om du väljer flera böcker med musen, kommer bara dessa böcker att läggas till katalogen. Om du skapar katalogen i ett e-bokformat som EPUB, MOBI eller AZW3, nästa gång du ansluter e-boksläsare kommer katalogen skickas automatiskt till enheten. För mer information om hur kataloger fungerar, läs Skapa AZW3 EPUB MOBI kataloger (sida 230). Visa Visa åtgärden visar boken i ett e-bokläsarprogram. calibre har en inbyggd läsare för många e- bokformat. För andra format använder den operativsystemets standardapplikation. Du kan konfigurera vilka format ska öppnas med den interna läsaren via Inställningar->Beteende. Om en bok har fler än ett format, kan du visa ett visst format genom att göra ett högerklick på knappen. Skicka till enhet Skicka till enhet åtgärden har åtta variationer, som nås genom att göra ett högerklick på knappen. 1. Skicka till huvudminne: De utvalda böckerna överförs till huvudminnet av e-bokläsaren. 2. Skicka till minneskortet (A): De utvalda böckerna överförs till minneskortet (A) på e-bokläsaren. 3. Skicka till minneskortet (B): De utvalda böckerna överförs till minneskortet (B) på e-bokläsaren. 4. Skicka specifikt format till: De utvalda böckerna överförs till vald plats på enheten, i det format som du anger. 5. Mata ut enhet: Kopplar bort enheten från calibre. 6. Sätt som standard att skicka till enhet: Här kan du ange vilket av alternativen, 1 till 5 ovan eller 7 nedan, kommer att vara standardåtgärd när du klickar på huvudknappen. 7. Skicka och radera från biblioteket: De utvalda böckerna överförs till vald plats på enheten och sedan raderas från biblioteket. 8. Hämta anteckningar (experimentellt): Överför anteckningar du kan ha gjort på en e-bok på din enhet till kommentarsmetadata av boken i calibre-biblioteket. Du kan kontrollera filnamnet och mappstruktur med filer som skickas till enheten genom att sätta upp en mall i Inställningar->Import/Export->Skickar böcker till enheter. Se också calibre språkmall (sida 161). 6 Kapitel 1. Avsnitten

11 Hämta nyheter Hämta nyheter åtgärden hämtar nyheter från olika webbplatser och omvandlar de till en e-bok som kan läsas på din e-bokläsare. Normalt är att den nyskapade e-boken läggs till ditt e-bokbibliotek, men om en e-bokläsare är ansluten vid den tidpunkt då nedladdningen är klar, laddas nyheten också upp till läsaren automatiskt. Hämta nyheter åtgärden använder enkla recept (10-15 rader kod) för varje nyhetsplats. Om du vill veta hur du skapar recept för dina egna nyhetskällor, se Lägga till din favorit nyhetswebbplats (sida 126). Hämta nyheter åtgärden har tre varianter, som nås genom att göra ett högerklick på knappen. 1. Schemalägg nyhetshämtning: Låter dig schemalägga nedladdningen av dina utvalda nyhetskällor från en lista med hundratals tillgängliga. Schemaläggning kan ställas in individuellt för varje nyhetskälla du väljer och schemaläggning är flexibel så att du kan välja specifika veckodagar eller en frekvens av dagar mellan hämtningar. 2. Lägg till en anpassad nyhetskälla: Gör att du kan skapa ett enkelt recept för nedladdning av nyheter från en egen nyhetsplats som du vill komma åt. Skapa recept kan vara så enkelt som att ange en RSS-flödes-URL, eller så kan du vara mer normativ genom att skapa Python-baserad kod för uppgiften. För mer information se Lägga till din favorit nyhetswebbplats (sida 126). 3. Ladda ner alla schemalagda nyhetskällor: Får calibre att omedelbart börja ladda ner alla nyhetskällor som du har schemalagt. Bibliotek BIbliotek åtgärden låter dig skapa, växla mellan, byta namn på eller ta bort ett bibliotek. calibre ger dig möjlighet att skapa så många bibliotek som du vill. Du kan till exempel skapa ett skönlitterärtbibliotek, ett faktabibliotek, ett bibliotek för främmande språk, ett projektbibliotek, eller någon struktur som passar dina behov. Biblioteken är den högsta organisationsstrukturen inom calibre. Varje bibliotek har sin egen uppsättning av böcker, etiketter, kategorier och lagringsplatsbas. 1. Byt/skapa bibliotek...: Låter dig; a) ansluta till ett befintligt calibre-bibliotek på en annan plats, b) skapa ett tomt biblioteket på en ny plats eller, c) flytta nuvarande biblioteket till en nyligen angiven plats. 2. Snabb växling: Låter dig växla mellan bibliotek som har registrerats eller skapats inom calibre. 3. Byt namn på bibliotek: Låter dig byta namn på ett bibliotek. 4. Ta bort bibliotek: Låter dig avregistrera ett bibliotek från calibre. 5. <biblioteksnamn>: Åtgärder 5, 6 osv... ger dig omedelbar övergång tillgång mellan flera bibliotek som du har skapat eller bifogas. Denna lista innehåller endast de fem mest använda bibliotek. För den kompletta listan, använd Snabb växling -menyn. 6. Biblioteksunderhåll: Låter dig kontrollera det aktuella biblioteket för datakonsistens och återställa den nuvarande bibliotekets databas från säkerhetskopior. Observera: Metadata för dina e-böcker, t.ex. titel, författare, och etiketter, lagras i en enda fil i din calibre Grafiska användargränssnittet 7

12 biblioteksmapp som heter metadata.db. Om filen blir korrupt (mycket ovanligt), kan du förlora metadata. Lyckligtvis säkerhetskopierar calibre automatiskt metadata för varje enskild bok i bokens mapp som en OPF-fil. Genom att använda Återställ databas -åtgärden enligt Biblioteksunderhåll som beskrivs ovan, kan du låta calibre återskapa metadata.db filen från de enskilda OPF-filer åt dig. Du kan kopiera eller flytta böcker mellan olika bibliotek (när du har mer än ett bibliotek uppsatt) genom att högerklicka på boken och välja åtgärd Kopiera till bibliotek. Enhet Enhet åtgärden låter dig visa böckerna i huvudminnet eller minneskort för enheten, eller att mata ut enheten (ta bort den från calibre). Denna ikon visas automatiskt upp på calibres huvudverktygsfält när du ansluter en enhet som stöds. Du kan klicka på den för att se böckerna på enheten. Du kan också dra och släppa böcker från ditt calibre-biblioteket till ikonen för att överföra dem till enheten. Omvänt kan du dra och släppa böcker från din enhet till symbolbiblioteket i verktygsfältet för att överföra böcker från din enhet till calibre-biblioteket Spara till disk Spara till disk åtgärden har fem varianter, som nås genom att göra ett högerklick på knappen. 1. Spara till disk: Sparar de markerade böckerna organiserade i kataloger till disk. Katalogstrukturen ser ut som: Author_(sort) Title Book Files Du kan kontrollera filnamnet och mappstruktur med filer som sparas till disk genom att sätta upp en mall i Inställningar->Import/Export->Spara böcker till disk. Se också calibre språkmall (sida 161). 2. Spara till disk i en enda katalog: Sparar de markerade böckerna till disk i en enda katalog. För 1. och 2., alla tillgängliga format, samt metadata lagras på disk för varje vald bok. Metadata lagras i en OPF-fil. Sparade böcker kan återimporteras till biblioteket utan förlust av information genom att använda Lägg till böcker (sida 4) åtgärd. 3. Spara bara *<ditt önskade>*-format på disk: Sparar de markerade böckerna till disk i katalogstrukturen som visas i (1) men bara i önskat e-bokformat. Du kan ställa din favorit format i Inställningar->Beteende->Önskat utformat 4. Spara bara *<ditt önskade>* format till disk i en enda katalog: Sparar de markerade böckerna till din hårddisk i en enda katalog men bara på ditt önskade e-bokformat. Du kan ställa din favorit format i Inställningar->Beteende->Önskat utformat 8 Kapitel 1. Avsnitten

13 5. Spara ett enstaka format till disk...: Sparar de markerade böckerna till disk i katalogstrukturen som visas i (1) men bara i det format du väljer från rullgardinlistan. Anslut/dela ut Anslut/dela ut åtgärden låter dig ansluta manuellt till en enhet eller mapp på datorn. Det gör också att du kan ställa in ditt calibre-bibliotek för åtkomst via en webbläsare eller e-post. Anslut/dela ut åtgärden har fyra variationer, som nås genom att göra ett högerklick på knappen. 1. Anslut till mapp: Låter dig ansluta till valfri mapp på din dator som om den vore en enhet och använda alla faciliteter calibre har för enheter med den mappen. Användbart om enheten inte kan stödjas av calibre, men finns som en USB-disk. 2. Anslut till itunes: Låter dig ansluta till itunes-böckers databas som om det vore en enhet. När böckerna skickas till itunes kan du använda itunes för att göra dem tillgängliga för dina olika idevices. 3. Starta mediaserver: Startar calibres inbyggda webbserver. Vid start kommer ditt calibre-biblioteket vara tillgänglig via en webbläsare från Internet (om du väljer). Du kan konfigurera hur webbservern nås genom att ställa in preferenser på Inställningar->Dela->Dela på nätet 4. Ställ in epostbaserad delning av böcker: Tillåter delning av böcker och nyhetsflöden via e-post. När du konfigurerat e-postadresser för detta alternativ kommer calibre skicka nyhetsuppdateringar och boka uppdateringar till de angivna e-postadresser. Du kan konfigurera hur calibre skickar e-post genom att ange inställningar på Inställningar->Dela->Dela Böcker via e-post. När du har ställt in en eller flera e-postadresser, kommer menyalternativet ersättas av menyposter för att skicka böcker till de konfigurerade e-postadresser. Ta bort böcker Med Ta bort böcker åtgärden raderas böcker permanent, så använd den med omsorg. Det är kontextkänslig, det vill säga att det beror på vilken katalog (sida 10) du har valt. Om du har valt Bibliotek, kommer böcker att tas bort från biblioteket. Om du har valt eboksläsarenheten kommer böcker att tas bort från enheten. För att ta bort endast ett visst format för en given bok använd Redigera metadata (sida 5) åtgärd. Ta bort böcker har också fem variationer som kan nås genom att göra en högerklicka på knappen. 1. Ta bort valda böcker: Tillåter dig att permanent ta bort alla böcker som är valda i boklistan. 2. Ta bort filer av specifikt format från valda böcker...: Tillåter dig att permanent ta bort e-böcker med ett specifikt format från böcker som är valda i boklistan. 3. Ta bort alla format från valda böcker, utom...: Tillåter dig att permanent ta bort filer av godtyckligt format förutom ett angivet specifikt format från böcker som är valda i boklistan Grafiska användargränssnittet 9

14 4. Ta bort alla format från valda böcker: Tillåter dig att permanent ta bort filer från böcker som är valda i boklistan. Bara metadata kommer återstå. 5. Ta bort omslag från valda böcker: Tillåter dig att permanent ta bort omslagsbildfiler från böcker som är valda i boklistan. 6. Ta bort passande böcker från enheten: Tillåter dig att permanent ta bort e-bokfiler från anslutna enheter som passar böcker som är valda i boklistan. Observera: Observera att när du använder Ta bort böcker för att ta bort böcker från ditt calibre-biblioteket, tas bokposten bort permanent, men på Windows och OS X placeras filerna i papperskorgen. Detta gör att du kan återställa dem om du ångrar dig Inställningar Inställningar åtgärden tillåter dig ändra hur olika aspekter av calibres arbete. Den har fyra variationer, som nås genom att göra ett högerklick på knappen. 1. Inställningar: Tillåter dig ändra hur olika aspekter av calibres arbete. Genom att klicka på knappen utförs också denna åtgärd. 2. Kör välkomstguide: Tillåter dig att starta välkomstguiden som dyker upp första gången du startar calibre. 3. Hämta tillägg för att förbättra calibre: Öppnar ett nytt fönster som visar tillägg för calibre. Dessa tillägg är utvecklade av tredje part för att utöka calibres funktionalitet. 4. Starta om i felsökningsläge: Tillåter dig att aktivera felsökningsläge som kan hjälpa calibres utvecklarna att lösa problem som du stöter på med programmet. För de flesta användare bör det förbli inaktiverad om inte instrueras av en utvecklare att aktivera det Kataloger En Katalog är en samling av böcker. calibre kan hantera två typer av olika kataloger: 1. Bibliotek: Detta är en samling böcker som lagras i ditt calibre-biblioteket på din dator. 2. Enhet: Detta är en samling böcker som lagras i din eboksläsare. Det kommer att vara tillgängliga när du ansluter läsaren till datorn. Många operationer, som att lägga böcker, ta bort, visa, etc., är beroende av kontext. Så, till exempel, om du klickar på knappen Visa när du har Enhet-katalog vald, kommer calibre att öppna filerna på enheten för att visa. Om du har Bibliotek-katalog vald, kommer filer i ditt calibre-bibliotek öppnas i stället. 10 Kapitel 1. Avsnitten

15 1.1.4 Sök & sortera Sök & sortera avsnittet tillåter dig utföra flera kraftfulla åtgärder på dina boksamlingar. Du kan sortera dem efter titel, författare, datum, betyg, etc. genom att klicka på kolumnrubrikerna. Du kan också göra undersortering, dvs sortera på flera kolumner. Till exempel, om du klickar på titelkolumnen och sedan författarkolumnen, kommer boken att sorteras efter författare och sedan alla poster för samma författare sorteras efter titel. Du kan söka efter en viss bok eller en uppsättning böcker med hjälp av sökfältet. Mer om detta nedan. Du kan snabbt och bekvämt redigera metadata genom att dubbelklicka på posten som du vill ändra i listan. Du kan utföra Åtgärder (sida 3) på uppsättningar av böcker. För att välja flera böcker kan du antingen: Håll Ctrl-tangenten nedtryckt och klicka på de böcker du vill markera. Håll Skift-tangenten nedtryckt och klicka på start- och slutbok av en rad böcker som du vill markera. Du kan konfigurera vilka fält som ska visas med hjälp av Inställningar (sida 10) dialogen Sökgränssnittet Du kan söka allt metadata genom att skriva in sökord i sökfältet. Sökningar är skiftlägesokänsliga. Exempelvis: Asimov Foundation format:lrf Detta kommer att passas mot alla böcker i biblioteket som har Asimov och Foundation i sitt metadata och finns i LRF-format. Några fler exempel: author:asimov and not series:foundation title:"the Ring" or "This book is about a ring" format:epub publisher:feedbooks.com Sökningar är som standard innehåller. Ett objekt passar om söksträngen visas någonstans i den angivna metadata. Två andra typer av sökningar finns: likhetssökning och sök hjälp av reguljära uttryck Grafiska användargränssnittet 11

16 Likhetssökningar indikeras genom att inleda söksträngen med ett likhetstecken (=). Till exempel frågan tag: - vetenskap" kommer att passa "vetenskap", men inte science fiction"eller "hård vetenskap". Sök med reguljärt uttryck indikeras genom att inleda söksträngen med tilde (~). Varje python-kompatibla reguljära uttryck < _ kan användas. Observera att omvända snedstreck som används för att undkomma specialtecken i reguljära uttryck måste fördubblas, eftersom enskilda snedstreck kommer att tas bort under frågeanalys. Till exempel, för att matcha en bokstavlig parentes måste du ange \\(. Reguljära uttryckssökningar är innehåller sökningar om inte uttrycket innehåller ankare. Om du behöver söka efter en sträng med inledande likhet- eller tilde-tecken, prefixa strängen med ett omvänt snedstreck. Bifoga söksträngar med citationstecken ( ) om strängen innehåller parentes eller utrymmen till exempel vill söka efter etiketten Science Fiction du skulle behöva söka efter etikett:-science fiction" Om du sök efter etikett:=science fiction hittar du alla böcker med etiketten science och som innehåller ordet fiction av vilket metadata. Du kan bygga avancerade sökfrågor enkelt med hjälp av Avancerad sökdialog som nås genom att klicka på knappen. Tillgängliga fält för att söka är: etikett, titel, författare, förlag, serier, series_index, betyg, omslag, kommentarer, format identifierare, datum, pubdate, sök, storlek och anpassade kolumner. Om en enhet är ansluten, blir ondevice fält tillgängliga, när du söker calibre biblioteksvyn. För att hitta sökningen namnet (egentligen kallad lookup name) för en anpassad kolumn håller du musen över kolumnrubriken i biblioteksvyn. Syntaxen för att söka efter datum är: pubdate:> Will find all books published after Jan, 2000 date:<= Will find all books added to calibre before 3 Jan, 2000 pubdate:=2009 Will find all books published in 2009 Om datumet är tvetydig, är den aktuella används platsinformation för datumjämförelse. Till exempel i en mm/dd/åååå platsinformation 2009/02/01 tolkas det som 1 Feb I en åååå/mm/dd platsinformation tolkas det som 2 januari Vissa speciella datumsträngar är tillgängliga. Strängen today översätter till dagens datum, vad det än är. Strängarna yesterday och thismonth (eller översatta motsvarande i det aktuella språket) fungerar också. Dessutom kan strängen daysago (även översatt) användas för att jämföra med ett datum ett visst antal dagar sedan. Exempelvis: date:>10daysago date:<=45daysago För att undvika eventuella problem med översatta strängar när du använder en icke-engelsk version av calibre, är strängarna _today, _yesterday, _thismonth och _daysago alltid tillgängliga. De översätts inte. Du kan söka efter böcker som har ett format av en viss storlek så här: size:>1.1m Will find books with a format larger than 1.1MB size:<=1k Will find books with a format smaller than 1KB Datum och numeriska fält stöder relationsoperatorer = (lika med), > (större än), >= (större än eller lika med), < (mindre än), <= (mindre än eller lika med), and!= (inte lika med). Betygsfälten anses vara numeriska. Exempelvis sökandet rating:>=3 hittar alla böcker med betyg 3 eller högre. Du kan söka efter det antal poster i flervärda områden som etiketter. Dessa sökningar börjar med tecknet #, sedan använda samma syntax som för numeriska fält. Till exempel, för att hitta alla böcker med mer än 4 etiketter använder tags:#>4. För att hitta alla böcker med exakt 10 etiketter använder tags:#= Kapitel 1. Avsnitten

17 Indexserien är sökbara. För standardserien, är söknamnet series_index. För anpassade seriekolumner, använd kolumnsökningsnamn följt av _index. Om du exempelvis vill söka indexen för en anpassad seriekolumn som heter #my_series, skulle du använda sökfunktionsnamnet #my_series_index. Indexserien är tal, så att du kan använda relationsoperatorer som beskrivs ovan. Det speciella fältet search används för sparade sökningar. Så om du sparar en sökning med namnet Min makes böcker kan du skriva search:min makes böcker" i sökfältet för att återanvända den sparade sökningen. Mer om att spara sökningar nedan. Du kan söka efter frånvaron eller närvaron av ett fält med hjälp av de speciella sanna och falska värden. Exempelvis: cover:false will give you all books without a cover series:true will give you all books that belong to a series comments:false will give you all books with an empty comment format:false will give you all books with no actual files (empty records) Ja/nej anpassade kolumner är sökbara. Söka efter false, empty, eller blank hittar alla böcker med odefinierade värden i kolumnen. Söka efter true hittar alla böcker som inte har odefinierade värden i kolumnen. Söka efter yes eller checked hittar alla böcker med Yes i kolumnen. Söka efter no eller unchecked hittar alla böcker med No i kolumnen. Observera att orden yes, no, blank, empty, checked och unchecked sätts; Du kan antingen använda det aktuella språket motsvariga ord eller det engelska ordet. Orden true och false och de särskilda värden _yes, _no och _empty översätts inte. Hierarkiska objekt (t.ex. A.B.C) använder en utökad syntax för att passa de första delarna av hierarkin. Detta görs genom att lägga till en punkt mellan den exakta indikatorn passningen (=) och texten. Till exempel frågan tags:=a hittar etiketterna A och AB, men hittar inte etiketterna AA eller AA.B. Sökning tags:=.a.b hittar etiketterna A.B och A.B.C, men inte den etiketten A. Identifierare (t.ex. isbn, doi, LCCN etc) också använda en utökad syntax. Först, notera att en identifierare har formen typ:value, som i ISBN: Den utökade syntaxen tillåter dig att specificera självständigt vilken typ och värde för att söka efter. Både typ och värde delarna av frågan kan använda lika med, innehåller eller reguljära uttryck sökningar. Exempel: identifierare:true hittar böcker med någon identifierare. identifierare:false hittar böcker utan identifierare. identifierare:123 kommer att söka efter böcker av någon typ som har ett värde som innehåller 123. identifierare:= kommer att söka efter böcker av någon typ som har ett värde som är lika med identifierare:=isbn: och identifierare: isbn: true hittar böcker med en typ lika med isbn har något värde identifierare:=isbn:false hittar böcker med någon typ lika med isbn. identifierare:=isbn:123 hittar böcker med en typ som motsvarar isbn med ett värde som innehåller 123. identifierare:=isbn:= hittar böcker med en typ som motsvarar isbn med ett värde som är lika med identifierare:i:1 hittar böcker med en typ som innehåller ett i har ett värde som innehåller en Sparade sökningar calibre tillåter dig spara en ofta använd sökning under ett särskilt namn och sedan återanvända den sökningen med ett enda klick. Det gör du genom att skapa din sökning, antingen genom att skriva in det i sökfältet eller använda 1.1. Grafiska användargränssnittet 13

18 Fig. 1.1: Advancerad sökdialog 14 Kapitel 1. Avsnitten

19 etikettbläddraren. Skriv sedan det namn du vill ge till sökningen i rutan Sparade sökningar bredvid sökfältet. Klicka på plusikonen bredvid rutan sparade sökningar för att spara sökningen. Nu kan du komma åt din sparade sökning i etikettbläddraren under sökningar. Ett enda klick gör att du kan återanvända en godtyckligt komplex sökning enkelt, utan att behöva återskapa den Virtuella bibliotek Ett Virtuellt bibliotek är ett sätt att låtsas att ditt calibre-biblioteket bara har ett fåtal böcker i stället för dess fullständiga samling. Detta är ett utmärkt sätt att partitionera din stora samling av böcker i mindre, hanterbara bitar. Om du vill veta hur du skapar och använder virtuella bibliotek, se handledningen: Virtuella bibliotek (sida 234) Gissa metadata från filnamn Normalt läser calibre metadata från bokfilen. Emellertid kan den konfigureras för att läsa metadata från filnamnet i stället, via Inställningar->Lägga till böcker->läs metadata från filens innehåll i stället för filnamn. Du kan också styra hur metadata läses från filnamnet med reguljära uttryck (se Allt om att använda reguljära uttryck i calibre (sida 205)). I Lägg till böcker avsnittet av inställningsdialogrutan kan du ange ett reguljärt uttryck som calibre kommer att använda för att försöka gissa metadata från namnen på e-bokfiler som du lägger till i biblioteket. Standard för reguljära uttrycket är: title - author et vill säga, det förutsätts att alla tecken fram till den första - är titeln på boken och efterföljande tecken är författare till boken. Till exempel, filnamnet: Foundation and Earth - Isaac Asimov.txt kommer att tolkas ha titeln: Foundation and Earth och författare: Isaac Asimov Tips: Om filnamnet inte innehåller bindestrecket, kommer ovanstående reguljära uttryck misslyckas Grafiska användargränssnittet 15

20 1.1.9 Bokinformation Bokdetaljer visar omslag och allt metadata för den valda boken. Det kan döljas via knappen i det nedre högra hörnet 16 Kapitel 1. Avsnitten

21 av huvudfönstret i calibre. De författarnamn som visas i panelen bokdetaljer är klickbara, de kommer som standard att ta dig till Wikipedia-sidan för författaren. Detta kan anpassas genom att högerklicka på författarens namn och välja Hantera denna författare. Likaså om du hämtar metadata för boken, visar panelen bokdetaljer automatiskt dig länkar som pekar på webbsidor för boken på Amazon, WorldCat, etc. från där metadata hämtades. Du kan högerklicka på enskilda e-bokformat i bokdetaljpanelen för att ta bort dem, jämföra dem med sina originalversioner, spara dem till disk, öppna dem med ett externt program, osv. Du kan ändra omslaget till boken genom att helt enkelt dra och släppa en bild på bokdetaljpanelen. Du vill redigera omslagsbild i ett extern program, högerklicka på den och välj Öppna med. Du kan också lägga e-bokfiler till den aktuella boken genom att dra och släppa filerna på bokdetaljpanelen. Dubbelklicka på information om boken så öppnas panelen upp i ett separat fönster. Slutligen kan du skräddarsy exakt vilken information som visas i bokdetaljspanelen via Inställningar->Utseende & Beteende>Bokinformation Grafiska användargränssnittet 17

22 Etikettbläddrare Etikettbläddaren tillåter dig enkelt bläddra i din samling Författare/Etiketter/Serier/etc. Om du klickar på ett objekt i Etikettbläddaren, till exempel författarens namn Isaac Asimov, då begränsas listan över böcker till höger till att visa böcker av denna författare. Du kan klicka på kategorinamn också. Till exempel, klicka på Serier kommer att visa dig alla böcker i någon serie. Det första klicket på ett objekt kommer att begränsa listan över böcker till de som innehåller eller passar objektet. Fortsätt exemplet ovan, att klicka på Isaac Asimov kommer visa böcker av denna författare. Klicka igen på objektet kommer att ändra vad som visas, beroende på om objektet har barn (se underkategorier och hierarkiska artiklar nedan). Fortsätt Isaac Asimov exemplet klicka igen på Isaac Asimov kommer begränsa listan över böcker till dem som inte är av Isaac Asimov. Ett tredje klick tar bort begränsningen, visar alla böcker. Om du håller ned Ctrl eller Skift och klickar på flera objekt, så skapas restriktioner baserade på flera objekt. Till exempel kan du hålla Ctrl och klicka på etiketterna Historia och Europa för att hitta böcker om Europas historia. Etikettbläddraren fungerar genom att bygga sökuttryck som automatiskt förs in i sökfältet. Om man tittar på vad Etikettbläddraren genererar är ett bra sätt att lära sig hur man konstruerar grundläggande sökuttryck. Poster i etikettbläddraren har sina ikoner delvis färgad. Mängden färg beror på den genomsnittliga betyget av böckerna 18 Kapitel 1. Avsnitten

23 i den kategorin. Så till exempel om böcker av Isaac Asimov har i genomsnitt fyra stjärnor, visas ikonen för Isaac Asimov i etikettbläddraren vara 4/5: e färgad. Du kan hålla musen över ikonen för att se det genomsnittliga betyget. Objekten i yttre nivå av etikettbläddraren, till exempel författare och serien, kallas kategorier. Du kan skapa egna kategorier, så kallade användarkategorier, som är användbara för att organisera objekt. Till exempel kan du använda användarkategoriredigering (klicka Etikettbläddrarmeny-> Hantera författare, serier, etc-> Hantera användarkategorier) för att skapa en användarkategori som kallas favoritförfattare, sedan lägg objekten på dina favoriter i kategorin. Användarkategorier kan ha underkategorier. Till exempel är de användarkategori Favorites.Authors en underkategori av favoriter. Du kanske också har Favorites.Series, i vilket fall kommer det att finnas två underkategorier under favoriter. Underkategorier kan skapas genom att högerklicka på en användarkategori och att välja Lägg till underkategori till..., och går in i underkategorin namn; eller genom att använda användarkategoriredigering genom att ange namn som favoriter i exemplet ovan. Du kan söka användarkategorier på samma sätt som inbyggda kategorier, genom att klicka på dem. Det finns fyra olika sökning 1. allt som passar en post i kategorin anges med ett enda gröna plustecknet. 2. allt som passar en post i den kategori eller dess underkategorier anges med två gröna plustecknet. 3. allt som inte passar en post i kategorin visas med ett enda röd minustecken. 4. allt som inte passar en post i den kategori eller dess underkategorier visas av två röda minustecken. Det är också möjligt att skapa hierarkier inom några av kategorierna text såsom etiketter, serier och anpassade kolumner. Dessa hierarkier visar den lilla triangeln, medger delposter att vara dolda. För att använda hierarkier av objekt i en kategori, måste du först gå till Inställningar->Utseende och beteende och ange kategorinamn (s) in i Kategorier med hierarkisk objekt rutan. När detta är gjort, kommer poster i den kategorin som innehåller punkter visas med hjälp av den lilla triangeln. Till exempel, anta att du skapar en egen kolumn som heter Genre och pekar på att den innehåller hierarkiska objekt. När detta är gjort, sådant som Mystery.Thriller och Mystery.English visas som Mystery med den lilla triangeln bredvid den. Genom att klicka på triangeln visas Thriller och engelska som delposter. Se Hantera undergrupper av böcker, till exempel genre (sida 154) för mer information. Hierarkiska objekt (objekt med barn) använder samma fyra klicka-på sökningar som användarkategorier. Poster som inte har barn använder två av de sökningar: allt som passar och allt som inte passar. Du kan dra och släppa objekt i etikettbläddraren på användarkategorier för att lägga till dem i den kategorin. Om källan är en användarkategori, hålla Skift-tangenten medan du drar flyttar objektet till den nya kategorin. Du kan också dra och släppa böcker från boklistan på objekt i etikettbläddraren; släppa en bok om ett objekt medför att objekt som ska tillämpas automatiskt på de släppta böckerna. Till exempel kommer dra en bok på Isaac Asimov sätter författaren till denna bok till Isaac Asimov. Att släppa den på etiketten Historik kommer att lägga till etiketten Historik till bokens etiketter. Det finns ett sökfält längst upp Etikettbläddaren som gör att du enkelt hitta ett objekt i Etikettbläddaren. Dessutom kan du högerklicka på ett objekt och välja en av flera operationer. Några exempel är att dölja det, byta namn på det, eller öppna en Hantera x dialogruta som låter dig hantera objekt av detta slag. Till exempel med Hantera Författare - dialogrutan kan du byta namn på författare och kontrollera hur deras namn sorteras. Du kan styra hur objekt sorteras i etikettbläddraren via Alter Tag Browser knappen längst ner på Tag Browser. Du kan välja att sortera efter namn, genomsnittliga betyget eller popularitet (popularitet är antalet böcker med ett objekt i biblioteket, till exempel, är populariteten av Isaac Asimov antalet böcker i biblioteket av Isaac Asimov) Grafiska användargränssnittet 19

24 Omslagsrutnät Du kan låta calibre visa ett rutnät av bokomslag stället för en lista med böcker, om du föredrar att bläddra i din samling av omslag istället. Den Omslagsrutnät aktiveras genom att klicka på knappen nätet i det nedre högra hörnet av huvudfönstret calibre. Du kan anpassa omslagsstorlekar och bakgrunden till omslagsrutnät via Inställningar->Utseende & Beteende>Omslagsrutnät. Du kan även låta calibre visa någon angivna fältet under omslaget, t.ex. titel eller författare eller betyg eller en egen kolumn som du själva har utformat. 20 Kapitel 1. Avsnitten

25 Omslagsbläddrare Förutom omslag som beskrivs ovan, kan du också låta calibre visa omslag på en enda rad. Detta aktiveras via en knapp i det nedre högra hörnet av huvudfönstret. I Inställningar->Utseende & Beteende->Omslagsbläddrare kan du ändra antalet omslag visas, och även låta omslagen visas i ett separat fönster Snabbvisning Ibland vill du välja en bok och snabbt få en lista av böcker med samma värde i någon kategori (författare, etiketter, förläggare, serie, etc.) som den valda boken, men utan att ändra den aktuella vyn av biblioteket. Du kan göra detta med snabbvisning. Snabbvisning öppnar ett andra fönster som visar listan över böcker som passar mot värdet av intresse. Antag till exempel att du vill se en lista med alla böcker med samma författare till den för tillfället valda boken. Klicka i författarens cell du är intresserad av och tryck på Q -tangenten. Ett fönster öppnas med alla författare för det verket till vänster, och alla böcker av den valda författaren till höger. Några exempel på snabbvisningsanvändning: snabbt se vad andra böcker: har någon etikett som tillämpas på den markerade boken, är i samma serie som aktuell bok har samma värden i en anpassad kolumn som den aktuella boken är skriven av en av samma författare till den aktuella boken utan att ändra innehållet i biblioteksvyn. Snabbvisningsfönstret öppnas ovanpå calibre och håller öppet tills du explicit stänger det. Du kan använda snabbvisning och calibres biblioteksvy samtidigt. Till exempel, om du i calibres biblioteksvy klickar på en kategorikolumn (etiketter, serier, utgivare, författare, etc.) för en bok, kommer fönsterinnehållet snabbvisningen ändras till att visa dig i den vänstra sidopanelen objekten i den kategori för den valda boken (t.ex. etiketter för det verket). Den första posten i denna lista kommer att väljas ut, och snabbvisning kommer att visa dig på den högra sidopanelen alla böcker i biblioteket som refererar den posten. Klicka på en annan post i den vänstra rutan för att se böckerna med att olika objekt. Dubbelklicka på en bok i snabbvisningsfönstret för att välja den bok i biblioteksvyn. Detta kommer också ändra poster som visas i snabbvisningsfönstret (det vänstra fönstret) för att visa objekten i den nyligen valda boken Grafiska användargränssnittet 21

26 Skift- (eller Ctrl-) dubbelklicka på en bok i snabbvisningsfönstret för att öppna dialogrutan för att redigera metadata för boken i calibre-fönstret. Du kan se om en kolumn kan snabbvisas genom att hålla musen över kolumnrubriken och tittar på verktygstips för denna rubrik. Du kan också veta genom att högerklicka på kolumnrubriken för att se om Snabbvisnings alternativet visas i menyn, i vilket fall välja att snabbvisningsalternativet motsvarar att trycka Q i den aktuella cellen. Snabbvisning respekterar det virtuella bibliotekets inställning, visar bara böcker i den aktuella virtuella biblioteket Jobb Panelen jobb visar antalet jobb som körs. Jobb är uppgifter som körs i en separat process. De omfattar konvertera e-böcker och prata med din läsenhet. Du kan klicka på jobbpanelen för att komma åt listan över jobb. När ett jobb har slutförts kan du se en detaljerad logg från det jobbet genom att dubbelklicka på den i listan. Detta är användbart för att felsöka jobb som kanske inte har slutförts Kortkommandon calibre har flera kortkommandon för att spara tid och musrörelser. Dessa kortkommandon är aktiva i boklistvyn (när du inte redigerar detaljerna i en viss bok), och de flesta av dem påverkar den titel du har valt. calibres e-bokläsare har sina egna kortkommandon som kan skräddarsys, genom att klicka på knappen Inställningar i läsaren. Observera: Observera: calibres kortkommandon inte kräver en specialtangent (kommando, alternativ, kontroll, etc.), om inte särskilt anges. Du behöver bara trycka på bokstavsknappen, t.ex. E för att redigera. Table 1.1: Kortkommandon Kortkommando F2 (Enter i OS X) A Skift+A C D Del E G I K M Alt+M O P S T V Alt+V/Cmd+V i OS X Alt+Skift+J Alt+Skift+B Utför Redigera metadata för det valda fältet i boklistan. Lägg till böcker Lägg format till de utvalda böckerna Konvertera valda böcker Skicka till enhet Ta bort valda böcker Redigera metadata av valda böcker Hämta böcker Visa bokdetaljer Redigera Innehållsförteckning Slå samman valda poster Slå samman poster, behåll originalen Öppna mapp Polera böcker Spara till disk Redigera Bok Visa Visa specifikt format Växla jobblista Växla omslagsvisning Fortsätter p 22 Kapitel 1. Avsnitten

27 Table 1.1 fortsättning från föregående sida Kortkommando Utför Alt+Skift+D Växla bokdetaljspanel Alt+Skift+T Växla etikett visning Alt+Skift+G Växla omslagsrutnät Alt+A Visa böcker med samma författare som aktuell bok Alt+T Visa böcker med samma etiketter som aktuell bok Alt+P Visa böcker av samma förlag som aktuell bok Alt+Skift+S Visa böcker i samma serie som aktuell bok /, Ctrl+F Fokusera sökfältet Skift+Ctrl+F Öppna den avancerade sökdialogen Esc Rensa sökning Skift+Esc Fokusera boklista Ctrl+Esc Rensa det virtuella biblioteket Alt+Esc Rensa den ytterligare begränsningen Ctrl+* Skapa ett temporärt virtuellt bibliotek baserat på den aktuella sökningen Ctrl+Höger Välj fliken nästa virtuella bibliotek Ctrl+Vänster Välj fliken föregående virtuella bibliotek N or F3 Hitta nästa bok som passar den aktuella sökningen (fungerar bara om sökmarkering är aktiverad i Skift+N eller Skift+F3 Söka tidigare bok som passar mot aktuell sökning (fungerar bara om sökmarkering är aktiverad i s Ctrl+D Ladda ner metadata och omslag Ctrl+R Starta om calibre Ctrl+Skift+R Starta om calibre i felsökningsläge Skift+Ctrl+E Lägg till tomma böcker till calibre Ctrl+M Växla markeringsstatus för valda böcker Q Öppna snabbsökningsfönstret för visa böcker med relaterade serier/etiketter/etc. Skift+Q Fokusera den öppnade snabbsökningspanelen Skift+S Utför en sökning i snabbsökningspanelen Ctrl+Q Avsluta Calibre 1.2 Lägga till din favorit nyhetswebbplats calibre har en kraftfull, flexibel och lätt att använda ramverk för att hämta nyheter från Internet och omvandla dem till en e-bok. Följande kommer att visa dig, med hjälp av exempel, hur man får nyheter från olika webbplatser. För att få en förståelse för hur man använder ramverket, följ exemplen i den ordning som anges nedan: Helt automatisk hämtning (sida 126) calibre blogg (sida 126) bbc.co.uk (sida 128) Anpassa hämta processen (sida 128) Använda den tryckta versionen av bbc.co.uk (sida 128) Byte av artikelstilar (sida 129) Skivning och tärning (sida 130) Exempel i verkligheten (sida 142) Tips för att utveckla nya recept (sida 144) Ytterligare läsning (sida 145) API dokumentation (sida 145) 1.2. Lägga till din favorit nyhetswebbplats 23

28 1.2.1 Helt automatisk hämtning Om din nyhetskälla är enkel nog, skulle calibre mycket väl kunna hämta det helt automatiskt, allt du behöver göra att ge webbadressen. calibre samlar all information som behövs för att ladda ner en nyhetskälla i ett recept. För att berätta för calibre om en nyhetskälla, måste du skapa ett recept för det. Låt oss se några exempel: calibre blogg calibre blogg är en blogg av inlägg som beskriver många användbara calibre-funktioner på ett enkelt och lättillgängligt sätt för nya calibre-användare. För att ladda ner den här bloggen till en e-bok, förlitar vi oss på RSS-flödet av bloggen: Jag fick RSS URL genom att titta under Prenumerera längst ner på bloggsidan och välja Posts->Atom. För att få calibre hämta flöden och omvandla dem till en e-bok, ska du högerklicka på Hämta nyheter knappen och sedan på Lägg till en anpassad nyhetskälla menyalternativet och sedan Nytt recept knappen. En dialogruta liknande den som visas nedan bör öppna sig. 24 Kapitel 1. Avsnitten

29 Ange först calibre Blog i Recepttitel fält. Detta kommer att vara namnet på den e-bok som kommer att skapas från artiklarna i de ovanstående flöden. De nästa två fälten (Äldsta artikel och Max. number of articles) tillåter dig viss kontroll över hur många artiklar som ska hämtas från varje flöde, och de är ganska självförklarande. För att lägga till flöde till receptet, mata in flödestitel och flödes-url och klicka på Lägg till flöde knappen. När du har lagt till flöde, klicka på Spara knappen och du är klar! Stäng dialogrutan. Så här testar du nya recept klicka på Anpassad nyhetskälla undermenyn klicka calibre blogg nyhetsknapp. Efter ett par minuter, kommer den nyligen nedladdade e-boken av blogginlägget visas i huvudbiblioteksvyn (om du har dina läsare ansluten kommer den att läggas ut på läsaren i stället för in i biblioteket). Välj det och tryck på Visa knappen för att läsa! Anledningen till att detta fungerat så bra, med så liten ansträngning är att bloggen ger fullt innehåll RSS flöden, det vill säga, artikelns innehåll är inbäddat i själva flödet. För de flesta nyhetskällor som tillhandahåller nyheter på detta sätt, med fullt innehåll flöden, du behöver inte någon mer ansträngning för att omvandla dem till e-böcker. Nu ska vi titta på en nyhetskälla som inte ger fullständigt innehållsflöde. I sådana flöden är hela artikeln en webbsida och flödet innehåller bara en länk till webbsidan med en kort sammanfattning av artikeln. bbc.co.uk Låt oss prova följande två flöden från BBC: 1. Nyheter framsida: 2. Vetenskap/Natur: Följ proceduren som beskrivs i calibre blogg (sida 126) ovan för att skapa ett recept på BBC (med hjälp av flöde ovan). Om man tittar på den nedladdade e-boken, ser vi att claibre har gjort ett förtjänstfullt arbete för att utvinna bara innehållet som du bryr dig om från varje artikel hemsida. Emellertid är extraktionsprocessen inte perfekt. Ibland lämnar oönskade innehåll som menyer och navigeringshjälpmedel, eller det tar bort innehåll som borde lämnas i fred, som artikelrubriker. För att få perfekt innehållsutvinning, måste vi anpassa hämta processen, som beskrivs i nästa avsnitt Anpassa hämta processen När du vill att fullända hämtningen, eller hämta innehåll från en särskilt komplicerad webbplats kan du använda dig av all den kraft och flexibilitet i ramen av recept. För att kunna göra det, i Lägg till anpassad nyhetskälla dialog, genom att klicka på Växla till avancerat läge knappen. Det enklaste och ofta mest produktiva anpassning är att använda den tryckta versionen av uppkopplade-artiklar. Den tryckta versionen är oftast mycket mindre hantverk och översätter mycket smidigare till en e-bok. Låt oss försöka använda den tryckta versionen av artiklarna från BBC. Använda den tryckta versionen av bbc.co.uk Det första steget är att titta på e-boken som vi hämtat tidigare från bbc.co.uk (sida 128). Vid slutet av varje artikel, i e-boken finns en liten baksidetext som talar om när artikeln hämtats från. Kopiera och klistra in denna webbadress i en webbläsare. Nu på artikelwebbsidan leta efter en länk som pekar på Utskrift. Klicka på den för att se den tryckta versionen av artikeln. Det ser mycket snyggare! Jämför nu de två webbadresser. För mig var de: Artikel URL Utskriftsversion URL Så det ser ut att få den tryckta versionen måste vi prefix varje artikel URL med: 1.2. Lägga till din favorit nyhetswebbplats 25

30 newsvote.bbc.co.uk/mpapps/pagetools/print/ Nu i Avancerat läge för Anpassad nyhetskällor dialogrutan ska du se något liknande (kom ihåg att välja BBC receptet innan du växlar till avancerat läge): Du kan se att fälten från Grundläge har omräknats med python-kod på ett enkelt sätt. Vi måste lägga till instruktioner för att detta recept för att använda den tryckta versionen av artiklarna. Allt som behövs är att lägga till följande två rader: def print_version(self, url): return url.replace(' ' Detta är python, så indenteringen(indrag) är viktigt. När du har lagt raderna ska det se ut: I ovanstående, def print_version(self, url) definieras en metod som anropas av calibre för varje artikel. url är webbadressen till den ursprungliga artikeln. Vad print_version gör är att den tar URL:n och ersätter den med den nya URL:n som pekar på den tryckta versionen av artikeln. Om du vill veta om python 3 se tutorial 4. Nu klickar du på Lägg till/uppdatera recept-knappen och dina ändringar sparas. Hämta e-boken igen. Du bör nu ha en mycket förbättrad e-bok. Ett av problemen med den nya versionen är att typsnitten på utskriftsversion är för små. Detta är automatiskt justerat vid konvertering till en e-bok, men även efter justeringsprocessen, blir teckenstorleken för menyer och navigeringsfältet för stora i förhållande till artikeltexten. För att åtgärda detta, kommer vi att göra lite mer anpassning, i nästa avsnitt. Byte av artikelstilar I föregående avsnitt såg vi att teckenstorleken efter artiklar från den tryckta versionen av BBC var för liten. I de flesta webbplatser, ingår BBC, är detta textstorlek in med hjälp av CSS stilmallar. Vi kan inaktivera hämtning av sådana Kapitel 1. Avsnitten

31 mallar genom att lägga till raden: no_stylesheets = True Receptet ser nu ut: Den nya versionen ser ganska bra ut. Om du är en perfektionist, vill du nog läsa nästa avsnitt, som handlar faktiskt om att modifiera nedladdat material. Skivning och tärning calibre innehåller mycket kraftfulla och flexibla färdigheter när det gäller att manipulera nedladdat material. För att visa upp ett par av dessa, låt oss titta på vår gamle vän för BBC (sida 129) receptet igen. Om man tittar på källkoden (HTML) i ett par artiklar (utskriftsversion), ser vi att de har en sidfot som innehåller någon användbar information, som finns i <div class="footer">... </div> Detta kan tas bort genom att lägga till: remove_tags = [dict(name='div', attrs={'class':'footer'})] till receptet. Slutligen kan ersätta en del av CSS som vi tidigare inaktiverad, med vår egen :term: CSS om är lämplig för omvandling till en e-bok: extra_css = '.headline {font-size: x-large;} \n.fact { padding-top: 10pt }' Med dessa tillägg har vårt recept blivit produktionskvalitet, ja det är mycket nära till den faktiska receptet används av calibre för BBC, som visas nedan: ## ## Title: BBC News, Sport, and Blog Calibre Recipe ## Contact: mattst - jmstanfield@gmail.com ## ## License: GNU General Public License v3 - ## Copyright: mattst - jmstanfield@gmail.com ## ## Written: November 2011 ## Last Edited: ## 1.2. Lägga till din favorit nyhetswebbplats 27

32 license copyright = 'GNU General Public License v3 - = 'mattst - jmstanfield@gmail.com' ''' BBC News, Sport, and Blog Calibre Recipe ''' # Import the regular expressions module. import re # Import the BasicNewsRecipe class which this class extends. from calibre.web.feeds.recipes import BasicNewsRecipe class BBCNewsSportBlog(BasicNewsRecipe): # # **** IMPORTANT USERS READ ME **** # # First select the feeds you want then scroll down below the feeds list # and select the values you want for the other user preferences, like # oldest_article and such like. # # # Select the BBC rss feeds which you want in your ebook. # Selected feed have NO '#' at their start, de-selected feeds begin with a '#'. # # Eg. ("News Home", " - include feed. # Eg. #("News Home", " - do not include feed. # # There are 68 feeds below which constitute the bulk of the available rss # feeds on the BBC web site. These include 5 blogs by editors and # correspondants, 16 sports feeds, 15 'sub' regional feeds (Eg. North West # Wales, Scotland Business), and 7 Welsh language feeds. # # Some of the feeds are low volume (Eg. blogs), or very low volume (Eg. Click) # so if "oldest_article = 1.5" (only articles published in the last 36 hours) # you may get some 'empty feeds' which will not then be included in the ebook. # # The 15 feeds currently selected below are simply my default ones. # # Note: With all 68 feeds selected, oldest_article set to 2, # max_articles_per_feed set to 100, and simultaneous_downloads set to 10, # the ebook creation took 29 minutes on my speedy 100 mbps net connection, # fairly high-end desktop PC running Linux (Ubuntu Lucid-Lynx). # More realistically with 15 feeds selected, oldest_article set to 1.5, # max_articles_per_feed set to 100, and simultaneous_downloads set to 20, # it took 6 minutes. If that's too slow increase 'simultaneous_downloads'. # # Select / de-select the feeds you want in your ebook. # feeds = [ ("News Home", " ("UK", " ("World", " #("England", " #("Scotland", " #("Wales", " 28 Kapitel 1. Avsnitten

33 #("N. Ireland", " #("Africa", " #("Asia", " #("Europe", " #("Latin America", " #("Middle East", " ("US & Canada", " ("Politics", " ("Science/Environment", " ("Technology", " ("Magazine", " ("Entertainment/Arts", " #("Health", " #("Education/Family", " ("Business", " ("Special Reports", " ("Also in the News", " #("Newsbeat", " #("Click", " ("Blog: Nick Robinson (Political Editor)", " #("Blog: Mark D'Arcy (Parliamentary Correspondent)", " #("Blog: Robert Peston (Business Editor)", " #("Blog: Stephanie Flanders (Economics Editor)", " ("Blog: Rory Cellan-Jones (Technology correspondent)", " ("Sport Front Page", " #("Football", " #("Cricket", " #("Rugby Union", " #("Rugby League", " #("Tennis", " #("Golf", " #("Motorsport", " #("Boxing", " #("Athletics", " #("Snooker", " #("Horse Racing", " #("Cycling", " #("Disability Sport", " #("Other Sport", " #("Olympics 2012", " #("N. Ireland Politics", " #("Scotland Politics", " #("Scotland Business", " #("E. Scotland, Edinburgh & Fife", " #("W. Scotland & Glasgow", " #("Highlands & Islands", " #("NE. Scotland, Orkney & Shetland", " #("South Scotland", " #("Central Scotland & Tayside", " #("Wales Politics", " #("NW. Wales", " #("NE. Wales", " #("Mid. Wales", " #("SW. Wales", " #("SE. Wales", " #("Newyddion - News in Welsh", " #("Gwleidyddiaeth", " #("Gogledd-Ddwyrain", " Lägga till din favorit nyhetswebbplats 29

34 ] #("Gogledd-Orllewin", " #("Canolbarth", " #("De-Ddwyrain", " #("De-Orllewin", " # **** SELECT YOUR USER PREFERENCES **** # Title to use for the ebook. # title = 'BBC News' # A brief description for the ebook. # description = u'bbc web site ebook created using rss feeds.' # The max number of articles which may be downloaded from each feed. # I've never seen more than about 70 articles in a single feed in the # BBC feeds. # max_articles_per_feed = 100 # The max age of articles which may be downloaded from each feed. This is # specified in days - note fractions of days are allowed, Eg. 2.5 (2 and a # half days). My default of 1.5 days is the last 36 hours, the point at # which I've decided 'news' becomes 'old news', but be warned this is not # so good for the blogs, technology, magazine, etc., and sports feeds. # You may wish to extend this to 2-5 but watch out ebook creation time will # increase as well. Setting this to 30 will get everything (AFAICT) as long # as max_articles_per_feed remains set high (except for 'Click' which is # v. low volume and its currently oldest article is 4th Feb 2011). # oldest_article = 1.5 # Number of simultaneous downloads. 20 is consistantly working fine on the # BBC News feeds with no problems. Speeds things up from the defualt of 5. # If you have a lot of feeds and/or have increased oldest_article above 2 # then you may wish to try increasing simultaneous_downloads to 25-30, # Or, of course, if you are in a hurry. [I've not tried beyond 20.] # simultaneous_downloads = 20 # Timeout for fetching files from the server in seconds. The default of # 120 seconds, seems somewhat excessive. # timeout = 30 # The format string for the date shown on the ebook's first page. # List of all values: # Default in news.py has a leading space so that's mirrored here. # As with 'feeds' select/de-select by adding/removing the initial '#', # only one timefmt should be selected, here's a few to choose from. # timefmt = ' [%a, %d %b %Y]' # [Fri, 14 Nov 2011] (Calibre default) #timefmt = ' [%a, %d %b %Y %H:%M]' # [Fri, 14 Nov :30] #timefmt = ' [%a, %d %b %Y %I:%M %p]' # [Fri, 14 Nov :30 PM] #timefmt = ' [%d %b %Y]' # [14 Nov 2011] 30 Kapitel 1. Avsnitten

35 #timefmt = ' [%d %b %Y %H:%M]' # [14 Nov ] #timefmt = ' [%Y-%m-%d]' # [ ] #timefmt = ' [%Y-%m-%d-%H-%M]' # [ ] # # **** IMPORTANT **** # # DO NOT EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING. # # DO NOT EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING. # # I MEAN IT, YES I DO, ABSOLUTELY, AT YOU OWN RISK. :) # # **** IMPORTANT **** # # Author of this recipe. author = 'mattst' # Specify English as the language of the RSS feeds (ISO-639 code). language = 'en_gb' # Set tags. tags = 'news, sport, blog' # Set publisher and publication type. publisher = 'BBC' publication_type = 'newspaper' # Disable stylesheets from site. no_stylesheets = True # Specifies an override encoding for sites that have an incorrect charset # specified. Default of 'None' says to auto-detect. Some other BBC recipes # use 'utf8', which works fine (so use that if necessary) but auto-detecting # with None is working fine, so stick with that for robustness. encoding = None # Sets whether a feed has full articles embedded in it. The BBC feeds do not. use_embedded_content = False # Removes empty feeds - why keep them!? remove_empty_feeds = True # Create a custom title which fits nicely in the Kindle title list. # Requires "import time" above class declaration, and replacing # title with custom_title in conversion_options (right column only). # Example of string below: "BBC News - 14 Nov 2011" # # custom_title = "BBC News - " + time.strftime('%d %b %Y') ''' # Conversion options for advanced users, but don't forget to comment out the # current conversion_options below. Avoid setting 'linearize_tables' as that 1.2. Lägga till din favorit nyhetswebbplats 31

36 # plays havoc with the 'old style' table based pages. # conversion_options = { 'title' : title, 'comments' : description, 'tags' : tags, 'language' : language, 'publisher' : publisher, 'authors' : publisher, 'smarten_punctuation' : True } ''' conversion_options = { 'smarten_punctuation' : True } # Specify extra CSS - overrides ALL other CSS (IE. Added last). extra_css = 'body { font-family: verdana, helvetica, sans-serif; } \.introduction,.first { font-weight: bold; } \.cross-head { font-weight: bold; font-size: 125%; } \.cap,.caption { display: block; font-size: 80%; font-style: italic; } \.cap,.caption,.caption img,.caption span { display: block; text-align: center; ma.byl,.byd,.byline img,.byline-name,.byline-title,.author-name,.author-position.correspondent-portrait img,.byline-lead-in,.name,.bbc-role { display: block; text-align: center; font-size: 80%; font-style: italic; margin: 1px auto; } \.story-date,.published { font-size: 80%; } \ table { width: 100%; } \ td img { display: block; margin: 5px auto; } \ ul { padding-top: 10px; } \ ol { padding-top: 10px; } \ li { padding-top: 5px; padding-bottom: 5px; } \ h1 { text-align: center; font-size: 175%; font-weight: bold; } \ h2 { text-align: center; font-size: 150%; font-weight: bold; } \ h3 { text-align: center; font-size: 125%; font-weight: bold; } \ h4, h5, h6 { text-align: center; font-size: 100%; font-weight: bold; }' # Remove various tag attributes to improve the look of the ebook pages. remove_attributes = [ 'border', 'cellspacing', 'align', 'cellpadding', 'colspan', 'valign', 'vspace', 'hspace', 'alt', 'width', 'height' ] # Remove the (admittedly rarely used) line breaks, "<br />", which sometimes # cause a section of the ebook to start in an unsightly fashion or, more # frequently, a "<br />" will muck up the formatting of a correspondant's byline. # "<br />" and "<br clear/>" are far more frequently used on the table formatted # style of pages, and really spoil the look of the ebook pages. preprocess_regexps = [(re.compile(r'<br[ ]*/>', re.ignorecase), lambda m: ''), (re.compile(r'<br[ ]*clear.*/>', re.ignorecase), lambda m: '')] # Create regular expressions for tag keeping and removal to make the matches more # robust against minor changes and errors in the HTML, Eg. double spaces, leading # and trailing spaces, missing hyphens, and such like. # Python regular expression ('re' class) page: # *************************************** # Regular expressions for keep_only_tags: # *************************************** # The BBC News HTML pages use variants of 'storybody' to denote the section of a HTML # page which contains the main text of the article. Match storybody variants: 'storybody', 32 Kapitel 1. Avsnitten

37 # 'story-body', 'story body','storybody ', etc. storybody_reg_exp = '^.*story[_ -]*body.*$' # The BBC sport and 'newsbeat' (features) HTML pages use 'blq_content' to hold the title # and published date. This is one level above the usual news pages which have the title # and date within 'story-body'. This is annoying since 'blq_content' must also be kept, # resulting in a lot of extra things to be removed by remove_tags. blq_content_reg_exp = '^.*blq[_ -]*content.*$' # The BBC has an alternative page design structure, which I suspect is an out-of-date # design but which is still used in some articles, Eg. 'Click' (technology), 'FastTrack' # (travel), and in some sport pages. These alternative pages are table based (which is # why I think they are an out-of-date design) and account for -I'm guesstimaking- less # than 1% of all articles. They use a table class 'storycontent' to hold the article # and like blq_content (above) have required lots of extra removal by remove_tags. story_content_reg_exp = '^.*story[_ -]*content.*$' # Keep the sections of the HTML which match the list below. The HTML page created by # Calibre will fill <body> with those sections which are matched. Note that the # blq_content_reg_exp must be listed before storybody_reg_exp in keep_only_tags due to # it being the parent of storybody_reg_exp, that is to say the div class/id 'story-body' # will be inside div class/id 'blq_content' in the HTML (if 'blq_content' is there at # all). If they are the other way around in keep_only_tags then blq_content_reg_exp # will end up being discarded. keep_only_tags = [ dict(name='table', attrs={'class':re.compile(story_content_reg_exp, re.ignorec dict(name='div', attrs={'class':re.compile(blq_content_reg_exp, re.ignorecas dict(name='div', attrs={'id':re.compile(blq_content_reg_exp, re.ignorecase)} dict(name='div', attrs={'class':re.compile(storybody_reg_exp, re.ignorecase) dict(name='div', attrs={'id':re.compile(storybody_reg_exp, re.ignorecase)}) # ************************************ # Regular expressions for remove_tags: # ************************************ # Regular expression to remove share-help and variant tags. The share-help class # is used by the site for a variety of 'sharing' type links, Eg. Facebook, delicious, # twitter, . Removed to avoid page clutter. share_help_reg_exp = '^.*share[_ -]*help.*$' # Regular expression to remove embedded-hyper and variant tags. This class is used to # display links to other BBC News articles on the same/similar subject. embedded_hyper_reg_exp = '^.*embed*ed[_ -]*hyper.*$' # Regular expression to remove hypertabs and variant tags. This class is used to # display a tab bar at the top of an article which allows the user to switch to # an article (viewed on the same page) providing further info., 'in depth' analysis, # an editorial, a correspondant's blog entry, and such like. The ability to handle # a tab bar of this nature is currently beyond the scope of this recipe and # possibly of Calibre itself (not sure about that - TO DO - check!). hypertabs_reg_exp = '^.*hyper[_ -]*tabs.*$' # Regular expression to remove story-feature and variant tags. Eg. 'story-feature', # 'story-feature related narrow', 'story-feature wide', 'story-feature narrow'. # This class is used to add additional info. boxes, or small lists, outside of # the main story. TO DO: Work out a way to incorporate these neatly. story_feature_reg_exp = '^.*story[_ -]*feature.*$' # Regular expression to remove video and variant tags, Eg. 'videoinstoryb', 1.2. Lägga till din favorit nyhetswebbplats 33

38 # 'videoinstoryc'. This class is used to embed video. video_reg_exp = '^.*video.*$' # Regular expression to remove audio and variant tags, Eg. 'audioinstoryd'. # This class is used to embed audio. audio_reg_exp = '^.*audio.*$' # Regular expression to remove picturegallery and variant tags, Eg. 'picturegallery'. # This class is used to embed a photo slideshow. See also 'slideshow' below. picture_gallery_reg_exp = '^.*picture.*$' # Regular expression to remove slideshow and variant tags, Eg. 'dslideshow-enclosure'. # This class is used to embed a slideshow (not necessarily photo) but both # 'slideshow' and 'picturegallery' are used for slideshows. slideshow_reg_exp = '^.*slide[_ -]*show.*$' # Regular expression to remove social-links and variant tags. This class is used to # display links to a BBC bloggers main page, used in various columnist's blogs # (Eg. Nick Robinson, Robert Preston). social_links_reg_exp = '^.*social[_ -]*links.*$' # Regular expression to remove quote and (multi) variant tags, Eg. 'quote', # 'endquote', 'quote-credit', 'quote-credit-title', etc. These are usually # removed by 'story-feature' removal (as they are usually within them), but # not always. The quotation removed is always (AFAICT) in the article text # as well but a 2nd copy is placed in a quote tag to draw attention to it. # The quote class tags may or may not appear in div's. quote_reg_exp = '^.*quote.*$' # Regular expression to remove hidden and variant tags, Eg. 'hidden'. # The purpose of these is unclear, they seem to be an internal link to a # section within the article, but the text of the link (Eg. 'Continue reading # the main story') never seems to be displayed anyway. Removed to avoid clutter. # The hidden class tags may or may not appear in div's. hidden_reg_exp = '^.*hidden.*$' # Regular expression to remove comment and variant tags, Eg. 'comment-introduction'. # Used on the site to display text about registered users entering comments. comment_reg_exp = '^.*comment.*$' # Regular expression to remove form and variant tags, Eg. 'comment-form'. # Used on the site to allow registered BBC users to fill in forms, typically # for entering comments about an article. form_reg_exp = '^.*form.*$' # Extra things to remove due to the addition of 'blq_content' in keep_only_tags. #<div class="story-actions"> Used on sports pages for ' ' and 'print'. story_actions_reg_exp = '^.*story[_ -]*actions.*$' #<div class="bookmark-list"> Used on sports pages instead of 'share-help' (for # social networking links). bookmark_list_reg_exp = '^.*bookmark[_ -]*list.*$' #<div id="secondary-content" class="content-group"> # NOTE: Don't remove class="content-group" that is needed. # Used on sports pages to link to 'similar stories'. secondary_content_reg_exp = '^.*secondary[_ -]*content.*$' 34 Kapitel 1. Avsnitten

39 #<div id="featured-content" class="content-group"> # NOTE: Don't remove class="content-group" that is needed. # Used on sports pages to link to pages like 'tables', 'fixtures', etc. featured_content_reg_exp = '^.*featured[_ -]*content.*$' #<div id="navigation"> # Used on sports pages to link to pages like 'tables', 'fixtures', etc. # Used sometimes instead of "featured-content" above. navigation_reg_exp = '^.*navigation.*$' #<a class="skip" href="#blq-container-inner">skip to top</a> # Used on sports pages to link to the top of the page. skip_reg_exp = '^.*skip.*$' # Extra things to remove due to the addition of 'storycontent' in keep_only_tags, # which are the alterative table design based pages. The purpose of some of these # is not entirely clear from the pages (which are a total mess!). # Remove mapping based tags, Eg. <map id="world_map"> # The dynamic maps don't seem to work during ebook creation. TO DO: Investigate. map_reg_exp = '^.*map.*$' # Remove social bookmarking variation, called 'socialbookmarks'. social_bookmarks_reg_exp = '^.*social[_ -]*bookmarks.*$' # Remove page navigation tools, like 'search', ' ', 'print', called 'blq-mast'. blq_mast_reg_exp = '^.*blq[_ -]*mast.*$' # Remove 'sharesb', I think this is a generic 'sharing' class. It seems to appear # alongside 'socialbookmarks' whenever that appears. I am removing it as well # under the assumption that it can appear alone as well. sharesb_reg_exp = '^.*sharesb.*$' # Remove class 'o'. The worst named user created css class of all time. The creator # should immediately be fired. I've seen it used to hold nothing at all but with # 20 or so empty lines in it. Also to hold a single link to another article. # Whatever it was designed to do it is not wanted by this recipe. Exact match only. o_reg_exp = '^o$' # Remove 'promotopbg' and 'promobottombg', link lists. Have decided to # use two reg expressions to make removing this (and variants) robust. promo_top_reg_exp = '^.*promotopbg.*$' promo_bottom_reg_exp = '^.*promobottombg.*$' # Remove 'nlp', provides heading for link lists. Requires an exact match due to # risk of matching those letters in something needed, unless I see a variation # of 'nlp' used at a later date. nlp_reg_exp = '^nlp$' # Remove 'mva', provides embedded floating content of various types. Variant 'mvb' # has also now been seen. Requires an exact match of 'mva' or 'mvb' due to risk of # matching those letters in something needed. mva_or_mvb_reg_exp = '^mv[ab]$' # Remove 'mvtb', seems to be page navigation tools, like 'blq-mast'. mvtb_reg_exp = '^mvtb$' # Remove 'blq-toplink', class to provide a link to the top of the page Lägga till din favorit nyhetswebbplats 35

40 blq_toplink_reg_exp = '^.*blq[_ -]*top[_ -]*link.*$' # Remove 'products and services' links, Eg. desktop tools, alerts, and so on. # Eg. Class="servicev4 ukfs_services" - what a mess of a name. Have decided to # use two reg expressions to make removing this (and variants) robust. prods_services_01_reg_exp = '^.*servicev4.*$' prods_services_02_reg_exp = '^.*ukfs[_ -]*services.*$' # Remove -what I think is- some kind of navigation tools helper class, though I am # not sure, it's called: 'blq-rst blq-new-nav'. What I do know is it pops up # frequently and it is not wanted. Have decided to use two reg expressions to make # removing this (and variants) robust. blq_misc_01_reg_exp = '^.*blq[_ -]*rst.*$' blq_misc_02_reg_exp = '^.*blq[_ -]*new[_ -]*nav.*$' # Remove 'puffbox' - this may only appear inside 'storyextra', so it may not # need removing - I have no clue what it does other than it contains links. # Whatever it is - it is not part of the article and is not wanted. puffbox_reg_exp = '^.*puffbox.*$' # Remove 'sibtbg' and 'sibtbgf' - some kind of table formatting classes. sibtbg_reg_exp = '^.*sibtbg.*$' # Remove 'storyextra' - links to relevant articles and external sites. storyextra_reg_exp = '^.*story[_ -]*extra.*$' dict(name='div', attrs={'id':re.compile(social_bookmarks_reg_exp, re.ignorecase)} remove_tags = [ dict(name='div', attrs={'class':re.compile(story_feature_reg_exp, re.ignorecase) dict(name='div', attrs={'class':re.compile(share_help_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(embedded_hyper_reg_exp, re.ignorecase dict(name='div', attrs={'class':re.compile(hypertabs_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(video_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(audio_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(picture_gallery_reg_exp, re.ignorecas dict(name='div', attrs={'class':re.compile(slideshow_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(quote_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(hidden_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(comment_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(story_actions_reg_exp, re.ignorecase) dict(name='div', attrs={'class':re.compile(bookmark_list_reg_exp, re.ignorecase) dict(name='div', attrs={'id':re.compile(secondary_content_reg_exp, re.ignorecase dict(name='div', attrs={'id':re.compile(featured_content_reg_exp, re.ignorecase) dict(name='div', attrs={'id':re.compile(navigation_reg_exp, re.ignorecase)}), dict(name='form', attrs={'id':re.compile(form_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(quote_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(hidden_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(social_links_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(comment_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(skip_reg_exp, re.ignorecase)}), dict(name='map', attrs={'id':re.compile(map_reg_exp, re.ignorecase)}), dict(name='map', attrs={'name':re.compile(map_reg_exp, re.ignorecase)}), dict(name='div', attrs={'id':re.compile(blq_mast_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(sharesb_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(o_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(promo_top_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(promo_bottom_reg_exp, re.ignorecase)} dict(name='div', attrs={'class':re.compile(nlp_reg_exp, re.ignorecase)}), 36 Kapitel 1. Avsnitten

41 dict(name='div', attrs={'class':re.compile(mva_or_mvb_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(mvtb_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(blq_toplink_reg_exp, re.ignorecase)}) dict(name='div', attrs={'class':re.compile(prods_services_01_reg_exp, re.ignorec dict(name='div', attrs={'class':re.compile(prods_services_02_reg_exp, re.ignorec dict(name='div', attrs={'class':re.compile(blq_misc_01_reg_exp, re.ignorecase)}) dict(name='div', attrs={'class':re.compile(blq_misc_02_reg_exp, re.ignorecase)}) dict(name='div', attrs={'class':re.compile(puffbox_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(sibtbg_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(storyextra_reg_exp, re.ignorecase)}) ] # Uses url to create and return the 'printer friendly' version of the url. # In other words the 'print this page' address of the page. # # There are 3 types of urls used in the BBC site's rss feeds. There is just # 1 type for the standard news while there are 2 used for sports feed urls. # Note: Sports urls are linked from regular news feeds (Eg. 'News Home') when # there is a major story of interest to 'everyone'. So even if no BBC sports # feeds are added to 'feeds' the logic of this method is still needed to avoid # blank / missing / empty articles which have an index title and then no body. def print_version(self, url): # Handle sports page urls type 01: if (url.find("go/rss/-/sport1/")!= -1): temp_url = url.replace("go/rss/-/", "") # Handle sports page urls type 02: elif (url.find("go/rss/int/news/-/sport1/")!= -1): temp_url = url.replace("go/rss/int/news/-/", "") # Handle regular news page urls: else: temp_url = url.replace("go/rss/int/news/-/", "") # Always add "?print=true" to the end of the url. print_url = temp_url + "?print=true" return print_url # Remove articles in feeds based on a string in the article title or url. # # Code logic written by: Starson17 - posted in: "Recipes - Re-usable code" # thread, in post with title: "Remove articles from feed", see url: # # Many thanks and all credit to Starson17. # # Starson17's code has obviously been altered to suite my requirements. def parse_feeds(self): # Call parent's method. feeds = BasicNewsRecipe.parse_feeds(self) # Loop through all feeds. for feed in feeds: # Loop through all articles in feed Lägga till din favorit nyhetswebbplats 37

42 for article in feed.articles[:]: return feeds # End of class and file. # Match key words and remove article if there's a match. # Most BBC rss feed video only 'articles' use upper case 'VIDEO' # as a title prefix. Just match upper case 'VIDEO', so that # articles like 'Video game banned' won't be matched and removed. if 'VIDEO' in article.title: feed.articles.remove(article) # Most BBC rss feed audio only 'articles' use upper case 'AUDIO' # as a title prefix. Just match upper case 'AUDIO', so that # articles like 'Hi-Def audio...' won't be matched and removed. elif 'AUDIO' in article.title: feed.articles.remove(article) # Most BBC rss feed photo slideshow 'articles' use 'In Pictures', # 'In pictures', and 'in pictures', somewhere in their title. # Match any case of that phrase. elif 'IN PICTURES' in article.title.upper(): feed.articles.remove(article) # As above, but user contributed pictures. Match any case. elif 'YOUR PICTURES' in article.title.upper(): feed.articles.remove(article) # 'Sportsday Live' are articles which contain a constantly and # dynamically updated 'running commentary' during a live sporting # event. Match any case. elif 'SPORTSDAY LIVE' in article.title.upper(): feed.articles.remove(article) # Sometimes 'Sportsday Live' (above) becomes 'Live - Sport Name'. # These are being matched below using 'Live - ' because removing all # articles with 'live' in their titles would remove some articles # that are in fact not live sports pages. Match any case. elif 'LIVE - ' in article.title.upper(): feed.articles.remove(article) # 'Quiz of the week' is a Flash player weekly news quiz. Match only # the 'Quiz of the' part in anticipation of monthly and yearly # variants. Match any case. elif 'QUIZ OF THE' in article.title.upper(): feed.articles.remove(article) # Remove articles with 'scorecards' in the url. These are BBC sports # pages which just display a cricket scorecard. The pages have a mass # of table and css entries to display the scorecards nicely. Probably # could make them work with this recipe, but might take a whole day # of work to sort out all the css - basically a formatting nightmare. elif 'scorecards' in article.url: feed.articles.remove(article) Detta recept utforskar bara toppen av isberget när det kommer till makten av calibre. För att utforska mer av förmågan 38 Kapitel 1. Avsnitten

43 hos calibre så undersöker vi en mer komplex verkliga livet exempel i nästa avsnitt. Exempel i verkligheten Ett tämligen komplicerat exempel från verkligheten som exponerar mer av API för BasicNewsRecipe är recept för New York Times import string, re from calibre import strftime from calibre.web.feeds.recipes import BasicNewsRecipe from calibre.ebooks.beautifulsoup import BeautifulSoup class NYTimes(BasicNewsRecipe): title = 'The New York Times' author = 'Kovid Goyal' description = 'Daily news from the New York Times' timefmt = ' [%a, %d %b, %Y]' needs_subscription = True remove_tags_before = dict(id='article') remove_tags_after = dict(id='article') remove_tags = [dict(attrs={'class':['articletools', 'post-tools', 'side_tool', 'nextarticlelink c dict(id=['footer', 'toolsright', 'articleinline', 'navigation', 'archive', 'side_sear dict(name=['script', 'noscript', 'style'])] encoding = 'cp1252' no_stylesheets = True extra_css = 'h1 {font: sans-serif large;}\n.byline {font:monospace;}' def get_browser(self): br = BasicNewsRecipe.get_browser() if self.username is not None and self.password is not None: br.open(' br.select_form(name='login') br['userid'] = self.username br['password'] = self.password br.submit() return br def parse_index(self): soup = self.index_to_soup(' def feed_title(div): return ''.join(div.findall(text=true, recursive=false)).strip() articles = {} key = None ans = [] for div in soup.findall(true, attrs={'class':['section-headline', 'story', 'story headline']}): if div['class'] == 'section-headline': key = string.capwords(feed_title(div)) articles[key] = [] ans.append(key) elif div['class'] in ['story', 'story headline']: a = div.find('a', href=true) if not a: 1.2. Lägga till din favorit nyhetswebbplats 39

44 continue url = re.sub(r'\?.*', '', a['href']) url += '?pagewanted=all' title = self.tag_to_string(a, use_alt=true).strip() description = '' pubdate = strftime('%a, %d %b') summary = div.find(true, attrs={'class':'summary'}) if summary: description = self.tag_to_string(summary, use_alt=false) feed = key if key is not None else 'Uncategorized' if not articles.has_key(feed): articles[feed] = [] if not 'podcasts' in url: articles[feed].append( dict(title=title, url=url, date=pubdate, description=description, content='')) ans = self.sort_index_by(ans, {'The Front Page':-1, 'Dining In, Dining Out':1, 'Obituaries':2 ans = [(key, articles[key]) for key in ans if articles.has_key(key)] return ans def preprocess_html(self, soup): refresh = soup.find('meta', {'http-equiv':'refresh'}) if refresh is None: return soup content = refresh.get('content').partition('=')[2] raw = self.browser.open(' return BeautifulSoup(raw.decode('cp1252', 'replace')) Vi ser flera nya funktioner i detta recept. recept. Först har vi: timefmt = ' [%a, %d %b, %Y]' Detta ställer den visade tiden på förstasidan av den skapade e-boken att vara i formatet, Dag, Dag_Nummer Månad, År. Se timefmt (sida 319). Sedan ser vi en grupp av direktiv till sanering den nedladdade HTML: remove_tags_before = dict(name='h1') remove_tags_after = dict(id='footer') remove_tags =... Dessa tar bort allt innan den första <h1> etiketten och allt efter den första etiketten vars id är footer. Se remove_tags (sida 318), remove_tags_before (sida 318), remove_tags_after (sida 318). Nästa intressant funktion är: needs_subscription = True... def get_browser(self):... needs_subscription = True berättar för calibre att detta recept behöver användarnamn och lösenord för att kunna åt innehållet. Detta medför att, calibre frågar efter användarnamn och lösenord när du försöker använda det här receptet. Koden i calibre.web.feeds.news.basicnewsrecipe.get_browser() (sida 312) loggar faktiskt in på NYT webbsida. När du loggat in, kommer calibre använda samma webbinstans för att hämta allt innehåll. Se mechanize 5 to understand the code in get_browser Kapitel 1. Avsnitten

45 Nästa nyhet är calibre.web.feeds.news.basicnewsrecipe.parse_index() (sida 313) metoden. Dess uppgift är att gå till och hämta listan över artiklar som visas i dagens tidning. Medan mer komplex än att bara använda RSS, skapar receptet en e-bok som motsvarar mycket nära dagens tidning. parse_index använder mycket BeautifulSoup 6 för att tolka dagens tidningswebbsida. Du kan också använda andra, mer moderna parsers om du ogillar BeatifulSoup. calibre comes with lxml 7 och html5lib 8, vilka är de rekommenderade parsers. För att använda dem, byt ut anropet till index_to_soup() med följande: raw = self.index_to_soup(url, raw=true) # For html5lib import html5lib root = html5lib.parse(raw, namespacehtmlelements=false, treebuilder='lxml') # For the lxml html 4 parser from lxml import html root = html.fromstring(raw) Den sista nyheten är calibre.web.feeds.news.basicnewsrecipe.preprocess_html() (sida 314) metoden. Den kan användas för att utföra godtyckliga transformationer på varje nedladdad HTML-sida. Här används det för att kringgå de annonser som de NYTimes visar dig innan varje artikel Tips för att utveckla nya recept Det bästa sättet att utveckla nya recept är att använda kommandoraden. Skapa receptet med din favorit python editor och spara den till en fil låt säga myrecipe.recipe. Den.recipe -tillägget krävs. Du kan hämta innehåll med detta recept med kommandot: ebook-convert myrecipe.recipe.epub --test -vv --debug-pipeline debug Kommandot ebook-convert kommer att ladda ner alla webbsidor och spara dem till EPUB-filen myrecipe.epub. Alternativet -vv får ebook-convert mata ut en hel del information om vad den gör. Alternativet --test begränsar nerladdning till bara ett par artiklar från högst två flöden. Dessutom kommer ebook-convert placera HTML i debug/input-katalogen, där debug är katalogen du angav i --debug-pipeline-alternativet. När nedladdningen är klar kan du titta på den nedladdade HTML genom att öppna filen debug/input/index.html i en webbläsare. När du är nöjd med nedladdningen och förbehandling sker på rätt sätt, kan du skapa e-böcker i olika format enligt nedan: ebook-convert myrecipe.recipe myrecipe.epub ebook-convert myrecipe.recipe myrecipe.mobi... Om du är nöjd med ditt recept, och du känner att det finns tillräcklig efterfrågan för att motivera dess införande i uppsättningen av inbyggda recept, lägg upp receptet på calibres receptforum 9 för att dela den med andra calibreanvändare. Observera: På OS X, kommandoradverktyget är inne i calibre paketet, till exempel om du installerar Calibre i /Applications är kommandoradverktyget i /Applications/calibre.app/Contents/console.app/Contents/MacOS/. Se även: ebook-convert (sida 288) Kommandoradsgränssnittet för all e-bokkonvertering Lägga till din favorit nyhetswebbplats 41

46 1.2.4 Ytterligare läsning Om du vill veta mer om att skriva avancerade recept med några av faciliteterna som finns i BasicNewsRecipe bör du konsultera följande källor: API Dokumentation (sida 311) Dokumentation av BasicNewsRecipe-klassen och alla dess viktiga metoder och fält. BasicNewsRecipe 10 Inbyggda recept 11 Calibres recept forum 12 Källkoden för BasicNewsRecipe Källkoden för de inbyggda recept som kommer med calibre Massor av kunniga calibre recept-författare håller till här API dokumentation API dokumentation för recept API för skriva recept är definierade av BasicNewsRecipe (sida 311) class calibre.web.feeds.news.basicnewsrecipe(options, log, progress_reporter) Basklass som innehåller logik behövs i alla recept. Av överrida progressivt mer av funktionaliteten i denna klass, kan du göra allt mer kundanpassade / kraftfulla recept. En handledning introduktion till att skapa recept, se Lägga till din favorit nyhetswebbplats (sida 126). abort_article(msg=none) Anropa denna metod inne i någon av förbehandlingsmetoderna för att avbryta nedladdningen för den aktuella artikeln. Användbara att hoppa över artiklar som innehåller olämpligt innehåll, såsom rena videoartiklar. abort_recipe_processing(msg) Orsakar att receptetnedladdningssystemet avbryter nedladdningen av detta recept, visar en enkel återkopplingsmeddelande till användaren. add_toc_thumbnail(article, src) Kalla detta från populate_article_metadata med attributet src för en <img> etiketten från artikeln som är lämplig att använda som ikon representerar artikeln i innehållsförteckningen. Huruvida ikonen faktiskt används är beroende av enhet (för närvarande endast används av Kindles). Observera att den refererade bilden måste vara en som framgångsrikt hämtats, annars kommer det att ignoreras. classmethod adeify_images(soup) Om ditt recept vid konvertering till EPUB har problem med bilderna när de visas i Adobe Digital Editions, kalla denna metod inifrån postprocess_html() (sida 314). canonicalize_internal_url(url, is_link=true) Returnera en uppsättning kanoniska representationer av url. Grundinställningen använder bara servervärdnamn och sökväg för URL, ignorerar eventuella frågeparametrar, fragment, etc. kanoniska representationer måste vara unika för alla webbadresser till den här nyhetskällan. Om de inte är det, så interna länkar kan lösas felaktigt. Parametrar is_link Är Sann om webbadressen kommer från en intern länk i en HTML-fil. Falsk om webbadressen är URL som används för att hämta en artikel. cleanup() Anropas efter alla artiklar har laddats ner. Använd den för att göra godtycklig sanering som att logga ut från prenumerationsplatser etc. clone_browser(br) Klona webbläsare br. Klonade webbläsare används för multi-trådade nedladdningar, eftersom mechanize 42 Kapitel 1. Avsnitten

47 (mekanisera) inte är trådsäkert. Standardkloningsrutiner ska fånga de flesta webbläsaranpassningar, men om du gör något exotiskt i ditt recept, ska du åsidosätta den här metoden i ditt recept och klona manuellt. Klonade webbläsarinstanser använder samma, trådsäkra CookieJar som standard, såvida du inte har anpassat cookie-hantering. default_cover(cover_file) Skapa en generisk omslag för recept som inte har ett omslag download() Hämta och förbearbeta alla artiklar från flöde i detta recept. Denna metod bör kallas en gång för en viss receptinstans. Kallas det mer än en gång kommer det att leda till odefinierade beteenden. :return: Path to index.html extract_readable_article(html, url) Tar fram huvudartikelns innehåll från html, rensar upp och återvänder som en (article_html, extracted_title) tupel. Baserat på den ursprungliga läsbarhet algoritm genom Arc90. get_article_url(article) Överrid i en underklass för att anpassa utvinning av URL som pekar på innehållet för varje artikel. Returnera artikel-urln. Den anropas med article, ett objekt som representerar en analyserad artikel från ett flöde. Se feedparser < _. Normalt söker den efter den ursprungliga länken (till flöde syndikerade via en tjänst som Feedburner eller pheedo) och om den hittas, returnerar detta eller annars returneras article.link 13. get_browser(*args, **kwargs) Returnera en webbläsare instans som används för att hämta dokument från webben. Som standard den returnerar en mechanize (mekanisera) 14 browser instans som stöder cookies, ignorerar robots.txt, hanterar fräschar och har ett Mozilla Firefox användaragent. Om ditt recept kräver att du loggar in först, överrids denna metod i din underklass. Till exempel är följande kod används i New York Times recept för att logga in för full tillgång: def get_browser(self): br = BasicNewsRecipe.get_browser(self) if self.username is not None and self.password is not None: br.open(' br.select_form(name='login') br['userid'] = self.username br['password'] = self.password br.submit() return br get_cover_url() Returnera en URL till omslagsbild för den här utgåvan eller None. Som standard returnerar värdet av elementet self.cover_url som normalt är None. Om du vill att ditt recept för att hämta ett omslag för e- boken överrids den här metoden i din underklass, eller ställa medlemsvariabeln self.cover_url innan denna metod anropas. get_feeds() Returnera en lista med RSS flöde att hämta för den här profilen. Varje element i listan måste vara ett 2-elements tupel av formen (titel, url). Om titeln är None eller en tom sträng, används titeln från flödet. Denna metod är användbar om du receptet behöver göra en del bearbetning för att räkna ut lista med inlägg för att ladda ner. Om så är fallet, överrid i din underklass. get_masthead_title() Överrids i underklass för att använda något annat än receptets titel Lägga till din favorit nyhetswebbplats 43

48 get_masthead_url() Returnera en URL till redaktionsloggo till denna utgåva eller None. Som standard returnerar värdet av elementet self.masthead_url som normalt är None. Om du vill att ditt recept ska hämta en redationsloggon för e-boken överrrid den här metoden i din underklass, eller sätt medlemmen variabeln self.masthead_url innan denna metod anropas. Redaktionsloggo används i Kindle MOBI-filer. get_obfuscated_article(url) Om du sätter articles_are_obfuscated anropas denna metod med varje artikel URL. Det ska returnera sökvägen till en fil i filsystemet som innehåller artikeln HTML. Filen bearbetas av den rekursiva HTMLhämtmotor, så det kan innehålla länkar till sidor / bilder på webben. Denna metod är oftast användbart för webbplatser som försöker göra det svårt att komma åt artikelns innehåll automatiskt. classmethod image_url_processor(baseurl, url) Utför någon behandling på bildwebbadresser (kanske ta bort storleksbegränsningar för dynamiskt skapade bilder, etc.) och returnera bearbetad URL. index_to_soup(url_or_raw, raw=false, as_tree=false) Bekväm metod som använder en webadress (URL) för indexera en sida och returnerar en BeautifulSoup 15 av den. url_or_raw: Antingen en webbadress eller den nedladdade indexsidan som en sträng is_link_wanted(url, tag) Returnerar Sann om länken ska följas eller Falsk annars. Som standard höjer NotImplementedError som orsakar hämtningen att ignorera det. Parametrar url Webbadressen som skall följas tag Ettiketen för vilken URL erhölls javascript_login(browser, username, password) Denna metod används för att logga in på en webbplats som använder javascript för sitt inloggningsformulär. Efter inloggningen är klar, kopieras kakorna från webbplatsen kopieras till en normal (icke-javascript) webbläsare och nedladdningen fortsätter som använder dessa kakor. Ett exempel på implementering: def javascript_login(self, browser, username, password): browser.visit(' form = browser.select_form(nr=0) # Select the first form on the page form['username'] = username form['password'] = password browser.submit(timeout=120) # Submit the form and wait at most two minutes for loading t Observera att du också kan välja formulär med CSS2 väljare, så här: browser.select_form('form#login_form') browser.select_from('form[name="someform"]') parse_feeds() Skapa en lista över artiklar i listan över flöden som returneras av BasicNewsRecipe.get_feeds() (sida 312). Returnerar en lista med Feed objekt. parse_index() Denna metod bör implementeras på recept för att tolka en webbplats istället för flöde för att skapa en lista med artiklar. Typiska användningsområden är för nyhetskällor som har en Print Edition webbsida Kapitel 1. Avsnitten

49 som listar alla artiklar i den aktuella tryckupplagan. Om denna funktion implementeras kommer den att användas i stället för BasicNewsRecipe.parse_feeds() (sida 313). Det måste returnera en lista. Varje element i listan måste vara ett 2-inslag tupel av formen (fflödestitel", lista med artiklar). Varje lista av artiklar måste innehålla ordlister på formen: { 'title' : article title, 'url' : URL of print version, 'date' : The publication date of the article as a string, 'description' : A summary of the article 'content' : The full article (can be an empty string). Obsolete do not use, instead save the content to a temporary file and pass a file:///path/to/temp/file.html as the URL. } Till exempel, se receptet för nedladdning The Atlantic. Dessutom kan du lägga till författare för författaren till artikeln. Om du vill avbryta behandlingen av någon anledning och låta calibre visa användaren ett enkelt budskap i stället för ett fel, anropa abort_recipe_processing() (sida 311). populate_article_metadata(article, soup, first) Anropas när varje HTML-sida som hör till artikeln hämtas. Avsedd att användas för att få artikelns metadata som författaren / sammandrag / etc. från analyserad HTML (soppa). :param artikel: Ett objekt av klassen calibre.web.feeds.article. Om du ändrar sammanfattningen, kom ihåg att också ändra text_summary :param soup: Tolkad HTML tillhör denna artikel :param first: Sann om och endast om analyserad HTML är den första sidan av artikeln. postprocess_book(oeb, opts, log) Körs om någon efterbehandling behövs på analyserad nedladdade e-bok. Parametrar oeb Ett OEBBook-objekt opts Konverteringsalternativ postprocess_html(soup, first_fetch) Denna metod kallas med källan till varje nedladdad: term HTML fil, efter att den analyserats för länkar och bilder. Den kan användas för att göra godtyckligt kraftfull efterbehandling på HTML. Det bör returnera soup efter bearbetning det. Parametrar soup En BeautifulSoup 16 instans innehållande nerladdad HTML. first_fetch Sann om detta är första sidan av en artikel. preprocess_html(soup) Denna metod kallas med källan till varje nedladdad HTML fil, innan den analyseras för länkar och bilder. Det kallas efter rensningen som specificerats remove_tags etc. Det kan användas för att göra godtyckliga och starka förbearbetning på HTML. Det bör returnera soup efter bearbetning det. soup: En BeautifulSoup 17 instans innehållande nerladdad HTML Lägga till din favorit nyhetswebbplats 45

50 preprocess_raw_html(raw_html, url) Denna metod anropas med källa av varje nedladdad HTML fil, innan den tolkas i ett objektträd. raw_html är en unicode sträng som representerar råa HTML nedladdningen från webben. url är URL från vilken HTML var nedladdad. Obserevera att denna metod agerar innan preprocess_regexps. Denna metod måste returnera den bearbetade raw_html som ett unicode-objekt. classmethod print_version(url) Ta en url som pekar på en webbsida med artikelinnehåll och returnerar URL som pekar på en utskrivbar version av artikeln. Som standard gör ingenting. TIll exempel: def print_version(self, url): return url + '?&pagewanted=print' skip_ad_pages(soup) Denna metod anropas med källan till varje nedladdad HTML fil, innan någon av rensningsattribut som remove_tags, keep_only_tags tillämpas. Observera att preprocess_regexps kommer redan ha använts. Det är tänkt att låta receptet att hoppa över annonssidor. Om soup är en annonssida, returnera HTML den verkliga sidan. Annars returneras None. soup: En BeautifulSoup 18 instans innehållande nerladdad HTML. sort_index_by(index, weights) Bekväm metod för att sortera titlar i index enligt weights. index sorteras på plats. Returnerar index. index: En lista av titlar. weights: En ordlista som översätter vikt mot titel., Om något titelindex inte har vikt. antas de ha vikten 0. classmethod tag_to_string(tag, use_alt=true, normalize_whitespace=true) Bekväm metod som använder en BeautifulSoup 19 tag-etikett och extraherar text från den rekursivt, inkluderande godtycklig CDATA sektion och alt-attribut. Returnerar en möjlig tom unicode-sträng. use_alt: Om True försök använd alt attribut för etiketter som inte har något textinnehåll tag: BeautifulSoup 20 Tag (Etikett) articles_are_obfuscated = False Sätt till Sann och implementerar get_obfuscated_article() (sida 312) för hantera webbsidor som försöker göra det svårt att skrapa fram innehåll. auto_cleanup = False Automatiskt extrahera all text från nedladdade artikelsidor. Använder algoritmerna från läsbarhet projektet. Sätt denna sann innebär att du inte behöver oroa dig för att städa upp den nedladdade HTML manuellt (även om manuell rensning alltid kommer att vara bättre). auto_cleanup_keep = None Specify elements that the auto cleanup algorithm should never remove. The syntax is a XPath expression. For example: auto_cleanup_keep = '//div[@id="article-image"]' will keep all divs with id="article-image" auto_cleanup_keep = '//*[@class="important"]' will keep all elements with class="important" auto_cleanup_keep = '//div[@id="article-image"] //span[@class="important"]' will keep all divs with id="article-image" and spans with class="important" Kapitel 1. Avsnitten

51 center_navbar = True Om sann centreras navigationslisten annars är den vänsterjusterad compress_news_images = False Ställ in den till Falsk för att ignorera alla skalnings- och komprimeringsparametrar och passera bilder igenom omodifierad. Om Sann och andra komprimeringsparametrar behåller sina standardvärden, kommer jpeg-bilder skalas för att passa in skärmmått som fastställts av utskriftsprofil och komprimeras till storleken på de flesta (b * h) / 16 där bxh är det skalade bildens dimensioner. compress_news_images_auto_size = 16 Den faktor som används när automatisk komprimera jpeg-bilder. Om värdet är None, är komprimering automatisk inaktiverad. Annars kommer bilderna att minskas i storlek till (b * h) / compress_news_images_auto_size byte om möjligt genom att minska kvalitetsnivån, där bxh är bildens dimensioner i pixlar. Den minsta jpeg-kvalitet kommer att vara 5/100 så det är möjligt denna begränsning inte kommer att uppfyllas. Denna parameter kan överridas av parametern compress_news_images_max_size som ger en fast maximal storlek för bilder. Observera att om du aktiverar scale_news_images_to_device kommer sedan bilden först skalas och sedan dess kvalitet sänkas tills dess storlek är mindre än (b*h)/faktor där w och h är nu bildens skalade dimensioner. Med andra ord, denna kompression sker efter skalning. compress_news_images_max_size = None Sätt jpeg-kvalitet så att bilder inte överskrider angiven storlek (i kbytes). Om satt, överrider denna parameter automatisk komprimering via compress_news_images_auto_size. Minimum jpeg-kvalitet kommer vara 5/100 so det är möjligt att denna restriktion inte möts. conversion_options = {} Receptspecifika alternativ för att styra konvertering av nedladdat innehåll in i en e-bok. Dessa kommer överrida alla användare eller tilläggsspecifika värden, så använd bara om det är absolut nödvändigt. TIll exempel: conversion_options = { 'base_font_size' : 16, 'tags' : 'mytag1,mytag2', 'title' : 'My Title', 'linearize_tables' : True, } cover_margins = (0, 0, #ffffff ) Som standard returneras omslagsbild av get_cover_url () och kommer att användas som omslag för tidskriften. Överridning av detta i ditt recept instruerar calibre att anpassa det nedladdade omslaget i en ram vars bredd och höjd uttrycks som en procentandel av den nedladdade omslaget. cover_margins = (10, 15, #ffffff ) fyller omslaget med en vit marginal 10px på vänster och höger, 15px på toppen och botten. Färgnamn som fastställts på Notera att av någon anledning, vitt fungerar inte alltid på fönster. Använd #ffffff istället delay = 0 Fördröjning mellan konsekutiva nedladdningar i sekunder. Argumentet kan vara ett flyttal för att indikera mer exakt tid. description = u Ett par rader som beskriver innehållet detta recept laddar ner. Detta kommer främst att användas i ett användargränssnitt som presenterar en lista med recept. encoding = None Ange en kodningsöverridning för webbplatser som har en felaktig charset-specifikation. Det vanligaste är att ange latin1 och använda cp1252. Om None, försöka identifiera kodningen. Om det är en anropbar, anropas den anropbara med två argument: Receptobjektet och den källa som skall avkodas. Det måste returnera den avkodade källan. extra_css = None 1.2. Lägga till din favorit nyhetswebbplats 47

52 Ange någon extra CSS som bör läggas till ladda ned HTML-filer. Det kommer att införas i <style> etiketter, precis före den avslutande </head> etikett därmed tvingande allt CSS utom det som deklareras med hjälp av stilattribut på individuella HTML etiketter. Exempelvis: extra_css = '.heading { font: serif x-large }' feeds = None Förteckning över flöde för att ladda ner. Kan vara antingen [url1, url2,...] eller [( title1, url1), ( title2, url2),...] filter_regexps = [] Lista över reguljära uttryck som avgör vilka länkar att ignorera. Om den är tom ignoreras det. Endast användas om is_link_wanted inte implementeras. Exempelvis: filter_regexps = [r'ads\.doubleclick\.net'] kommer ta bort alla URLer som har ads.doubleclick.net in sig. Bara en av BasicNewsRecipe.match_regexps (sida 317) eller BasicNewsRecipe.filter_regexps (sida 316) skulle bara definierad. ignore_duplicate_articles = None Ignorera dubbletter av artiklar som finns i mer än ett avsnitt. En dubblettartikel är en artikel som har samma titel och / eller webbadress. Att ignorera artiklar med samma titel, ställa detta till: ignore_duplicate_articles = {'title'} För att använda URL:er i stället, sätt den till: ignore_duplicate_articles = {'url'} För träff mot titel eller URL, sätt den till: ignore_duplicate_articles = {'title', 'url'} keep_only_tags = [] Håll endast specificerade etiketter och deras barn. För formatet för att ange en etikett se BasicNewsRecipe.remove_tags (sida 318). Om denna lista inte är tom, då blir <body> etikett tom och återfylld med etiketter som passar poster i denna lista. Till exempel: keep_only_tags = [dict(id=['content', 'heading'])] kommer bara ha etiketter som har ett id attribut av content eller heading. language = und Språket som nyheterna är i. Måste vara en ISO-639-kod antingen två eller tre tecken långt masthead_url = None Som standard, kommer calibre att använda en redaktionslogga (endast Kindle). Åsido detta i ditt recept för att ge en url för att användas som en redaktionslogga. match_regexps = [] Lista över reguljära uttryck som avgör vilka länkar att följa. Om den är tom, ignoreras den. Endast användas om is_link_wanted inte implementeras. Exempelvis: match_regexps = [r'page=[0-9]+'] kommer passa mot alla URLer som har page=some number i sig. Bara en av BasicNewsRecipe.match_regexps (sida 317) eller BasicNewsRecipe.filter_regexps (sida 316) skulle bara definierad. 48 Kapitel 1. Avsnitten

53 max_articles_per_feed = 100 Maximalt antal artiklar att ladda ned från varje flöde. Den är primärt användbar för flöde som inte har artikeldatum. För de flesta flödes, bör du använda BasicNewsRecipe.oldest_article (sida 317) needs_subscription = False Om Sann kommer gränssnittet att be användaren om ett användarnamn och lösenord för att använda vid nedladdning. Om inställningen är frivilligt att använda ett användarnamn och lösenord blir tillval no_stylesheets = False Bekväm flagga för att inaktivera laddning av formatmallar för webbplatser som har alltför komplexa mallar som är olämpliga för konvertering till e-böcker format. Om Sann hämtas inte mallar och bearbetas oldest_article = 7.0 Äldsta artikel att ladda ner från denna nyhetskälla. I dagarna. preprocess_regexps = [] Lista av regexp substitutionsregler att köras vid nedladdning HTML. Varje element i listan bör vara en tupel. Första elementet av tupel bör vara ett kompilerat regujärt uttryck och andra en anropsbar som tar ett passande objekt och returnerar en sträng för att ersätta träffen. Till exempel: preprocess_regexps = [ (re.compile(r'<!--article ends here-->.*</body>', re.dotall re.ignorecase), lambda match: '</body>'), ] kommer ta bort allt från <! Article ends here > till </body>. publication_type = unknown Publikationstyp Inställd på tidning, tidskrift eller blogg. Om satt till None, kommer ingen publikationstypsmetadata skrivas till opf-filen. recipe_disabled = None Ställ in på en icke tom sträng för att inaktivera detta recept. Strängen kommer att användas som inaktiverade meddelande recursions = 0 Antal nivåer av länkar att följa på en artikelwebbsida remove_attributes = [] Lista över attribut för att ta bort från alla etiketter. Exempelvis: remove_attributes = ['style', 'font'] remove_empty_feeds = False Om Sann tas tomma flöden bort från utdata. Det här alternativet har ingen effekt om parse_index överrids i underklassen. Den är avsedd endast för recept som returnerar en lista med flöden som använder feeds eller get_feeds() (sida 312). Den används också om du använder alternativet ignore_duplicate_articles. remove_javascript = True Bekväm flagga att strippa alla javascript etiketter från den nedladdade HTMLn remove_tags = [] Lista med etiketter som skall avlägsnas. Angivna etiketter tas bort från nedladdad HTML. En etiketter anges som en ordlista på formen: { name : 'tag name', #e.g. 'div' attrs : a dictionary, #e.g. {class: 'advertisment'} } 1.2. Lägga till din favorit nyhetswebbplats 49

54 Alla tangenter är valbara. För full förklaring av sökningskriteria, se Beautiful Soup 21 Ett vanligt exempel: remove_tags = [dict(name='div', attrs={'class':'advert'})] Detta tar bort alla <div class= advert > etiketter och deras barn från nerladdade HTML. remove_tags_after = None Ta bort alla etiketter som förekommer efter angiven etikett. För formatet att ange en etikett se BasicNewsRecipe.remove_tags (sida 318). Till exempel: remove_tags_after = [dict(id='content')] kommer ta bort alla etiketter efter första elementet med id= content. remove_tags_before = None Ta bort alla etiketter som förekommer före angiven etikett. För formatet att ange en etikett se BasicNewsRecipe.remove_tags (sida 318). Till exempel: remove_tags_before = dict(id='content') kommer ta bort alla etiketter före första elementet med id= content. requires_version = (0, 6, 0) Minimum version av calibre som behövs för detta recept resolve_internal_links = False Om satt till Sann så kommer länkar i nedladdade artiklar som pekar på andra nedladdade artiklar ändras till att peka på den nedladdade kopia av artikeln snarare än dess ursprungliga webbadress. Om du ställer in detta till Sann, behöver du kanske du också införa canonicalize_internal_url() (sida 311) för att arbeta med URL-schemat för just din webbplats. reverse_article_order = False Omvänd ordning av artiklar i varje flöde scale_news_images = None Maximala dimensioner (w, h) att skala bilder till. Om scale_news_images_to_device är Sann så är detta inställt på enhetens skärmmått för utskriftsprofil om det inte finns någon profil som, i vilket fall det är kvar på oavsett värde den har tilldelats (standard None). scale_news_images_to_device = True Skala om bilder för att passa enhetens skärmmått satta av utdataprofilen. Ignoreras om ingen utdataprofil är angiven. simultaneous_downloads = 5 Antal samtidiga nedladdningar. Sätt till 1 om servern är petig. Automatisk reducerat till 1 om attr:basicnewsrecipe.delay > 0 summary_length = 500 Maximal antal tecken i den korta beskrivningen template_css = u \n.article_date {\n color: gray; font-family: monospace;\n }\n\n.article_description {\n text-indent: 0 CSS som används för att utforma mallar, dvs de navigeringsfält och innehållsförteckningar. I stället för att överrida denna variabel bör du använda extra_css i receptet för att anpassa utseende och beteende. timefmt = [%a, %d %b %Y] Formatsträng för datum att visa på första sidan. Som standard: Day_Name, Day_Number Month_Name Year timeout = Tidsbegränsning för hämta filer från servern i sekunder Kapitel 1. Avsnitten

55 title = u Ok\xe4nd nyhetsk\xe4lla Titel att använda för e-bok use_embedded_content = None Normalt försöker vi gissa om ett flöde har hela artiklar inbäddade i den baserat på längden av inbäddat innehåll. Om None, sedan standard används gissning. Om True då antar vi alltid flöden har inbäddat innehåll och om False kan vi alltid utgå från flödet inte har inbäddat innehåll. use_javascript_to_login = False Om du sätter detta till Sann, så använder calibre javascript för att logga in på webbplatsen. Detta behövs för vissa webbplatser som kräver användning av javascript för att logga in. Om du ställer in detta till Sann måste du implementera javascript_login() (sida 313) metoden, för att göra den faktiska inloggningen. 1.3 E-bokläsare calibre inkluderar en inbyggd e-bokläsare som kan visa de flesta e-bokformaten. Denna läsare är väldigt anpassbar oc har många avancerade funktioner. Startar läsaren (sida 51) Navigera omkring i en e-bok (sida 51) Anpassning av utseende av din läsupplevelse (sida 54) Ordlistsuppslag (sida 54) Kopiering av text och bilder (sida 54) Startar läsaren Du kan visa godtycklig bok i ditt calibre-bibliotek genom att välja boken och trycka på visa-knappen. Detta kommer öppna upp boken i e-bokläsare. Du kan också sätta igång läsare själv från start-menyn i Windows eller genom att använda kommandot ebook-viewer i Linux och OS X (du måste installera kommandoverktyget i OS X först genom Inställningar->Avancerat->Diverse) Navigera omkring i en e-bok Du kan bläddra sidor i en bok genom att använda Nästa sida och Föregående sida knappar, eller genom att trycka på Page Up/Page Down -knapparna. Till skillnad mot de flesta e-bokläsare, kräver inte calibre dig att visa böcker i sidläge. Du kan rulla andelar som är mindre än en sida genom att använda rullisten eller diverse anpassbara tangentbordssnabbval E-bokläsare 51

56 Bokmärken När du är mitt i en bok och stänger läsare, kommer den komma i håg var du slutade läsa och återvända dit nästa gång du öppnar boken. Du kan också sätt in bokmärken i boken genom att använda bokmärkes-knappen. När EPUB-formaterade böcker läses, sparas dessa bokmärken faktiskt i själva EPUB-filen. Du kan lägga till bokmärken, sedan skicka filen till en vän. När vännen sedan öppnar kommer hen se dina bokmärken. Innehållsförteckning Om boken du läser har en innehållsförteckning, kan du nå den genom att trycka på innehållsförteckningsknappen boken.. Detta kommer att ta fram en lista av sektioner i boken. Du kan klicka på valfri och hoppa till denna del av Navigering genom plats E-böcker till skillnad mot böcker, har inget sidkoncept. I stället, allt eftersom du läser genom boken, kommer du notera att din position i boken visas i övre vänstra hörnet i en ruta som denna. Detta är både din nuvarande position och den totala längden av boken. Dessa nummer är oberoende av skärmstorlek och teckenstorlek som du visar boken i, och de spelar en liknande roll till sidnummer i pappersboken. Du kan skriva in valfritt nummer du vill gå till motsvarande plats i boken. calibre har också en bekvämt referensläge. Du kan slå på detta genom att klicka på referenslägesknappen. När du gör detta, kommer calibre varje gång du för musen över en paragraf visa ett unikt nummer bestående av sektionoch paragrafnummer 52 Kapitel 1. Avsnitten

57 Du kan använda detta nummer för att entydigt hänvisa till delar av böckerna när man diskuterar det med vänner eller hänvisa till den i andra verk. Du kan skriva in dessa nummer i rutan Gå till högst upp i fönstret för att gå till en särskild hänvisning plats. Om du klickar på länkar inne i e-boken kommer du kunna ta dig till olika delar av boken, som slutnotering, kan du använda dig av framåt- och bakåtknappar i övre vänstra hörnet för att återvända var du var. Dessa knappar beter sig precis som dem i en webläsare E-bokläsare 53

58 1.3.3 Anpassning av utseende av din läsupplevelse Du kan ändra typsnittsstorlek på direkten genom att typsnittsstorleksknapparna. Du kan också få läsaren att visa helskärmsläge genom att trycka Helskärmsknappen. Genom att klicka på inställningsknappen, kan du ändra grundinställningen av typsnitt som läsaren använder samt typsnittsstorlek till de du önskar ha när läsaren startar. Mer avancerade anpassningar kan åstadkommas genom inställningar för användarformatmall. Detta är en formatmall som du kan välja att tillämpa på alla böcker. Genom att använda detta kan du göra saker som ha vit text på svart bakgrund, ändra paragrafstilar, textmarginaler, etc. TIll exempel av anpassad formatmal som används av calibre s användare, se the forums Ordlistsuppslag Du kan slå upp betydelsen av ord i aktuell bok genom att högerklicka på ett ord. calibre använder allmänt tillgängliga ordboksserver dict.org för att slå upp ord. Definitionen visas i en liten ruta längst ner på skärmen Kopiering av text och bilder Du kan välja text och bilder genom att dra innehållet med din mus och sedan högerklicka för att kopiera till klippbordet. Kopierat material kan sedan klistras in i en annan applikation som ren text och bilder. 1.4 E-bokkonvertering calibre har ett konverteringssystem som är utformat för att vara mycket lätt att använda. Normalt du bara lägger till en bok till calibre, klicka konvertera och calibre kommer att försöka intensivt för att generera utdata som är så nära som möjligt till ingången. Däremot accepterar calibre ett mycket stort antal indataformat, inte alla som är så lämpliga som andra för konvertering till e-böcker. I fråga om sådana inmatningsformat, eller om du bara vill ha större kontroll över konverteringssystemet, har calibre en hel del alternativ för att finjustera konverteringen. Observera dock att calibre omvandlingssystemet inte är en ersättning för en fullständig e-bokeditor. Om du vill redigera e-böcker, rekommenderar jag att du först konverterar dem till epub eller AZW3 med calibre och sedan använder Redigera Bok-funktionen för att få dem i perfekt form. Du kan sedan använda den redigerade e-boken som indata för omvandling till andra format i calibre. Detta dokument kommer avser främst konverteringsinställningarna som finns i dialogrutan omvandlingen, bilden nedan. Alla dessa inställningar är även tillgängliga via kommandoraden för konvertering, dokumenterat på ebook-convert (sida 288). I calibre, kan du få hjälp av någon enskild inställning genom att hålla musen över det, då kommer ett verktygstips visas som beskriver inställningen Kapitel 1. Avsnitten

59 Innehåll Introduktion (sida 55) Utseende (sida 57) Sidinställning (sida 59) Heuristisk bearbetning (sida 60) Sök och ersätt (sida 61) Struktrurdetektion (sida 61) Innehållsförteckning (sida 62) Att använda bilder som kapitelrubriker när du konverterar HTML-inmatningsdokument (sida 64) Använda etikettattribut för att leverera texten för posterna i innehållsförteckningen (sida 64) Hur alternativen är inställda/sparade för Konvertering (sida 64) Formatspecifika tips (sida 65) Introduktion Det första man måste förstå om omvandlingssystemet är att det är utformat som en rörledning. Schematiskt ser det ut så här: 1.4. E-bokkonvertering 55

60 Inmatningsformatet först konverteras till XHTML med lämplig indatatillägg. Denna HTML transformeras sedan. I det sista steget, är den bearbetade XHTML omvandlad till det angivna utdataformat med lämplig utdatatillägg. Resultaten av omvandlingen kan variera kraftigt, beroende på inmatningsformatet. Vissa format konverterar mycket bättre än andra. En lista över de bästa källformaten för omvandling finns här. De omvandlingar som verkar på XHTML-utdata är där allt arbete sker. Det finns olika transformer, till exempel för att sätta in bokens metadata som en sida i början av boken, för att upptäcka kapitelrubriker och automatiskt skapa en innehållsförteckning, att proportionellt justera teckenstorlekar och så vidare. Det är viktigt att minnas att alla omvandlingar verkar på XHTML-utdatas av indatatillägget, inte på indatafilen. Så, till exempel, om du ber calibre att konvertera en RTF-fil till EPUB, kommer den först omvandlas till XHTML internt, de olika transformationer kommer appliceras på XHTML och sedan kommer utdatatillägget att skapa EPUB-filen, automatiskt generera all metadata, innehållsförteckning, och så vidare. 56 Kapitel 1. Avsnitten

61 Du kan se denna process i handling genom att använda felsökningsalternativet. Bara ange sökvägen till en katalog för felsökningsutdata. Under konverteringen kommer calibre placera XHTML genereras av de olika stegen i omvandlingen pipeline i olika underkataloger. De fyra underkataloger är: Stadie indata analyserad struktur bearbetad Beskrivning Table 1.2: Stadier av omvandlingen Det innehåller HTML-utdata från indatatillägget. Använd detta för att felsöka Input Plugin. Resultatet av förbehandling och konvertering till XHTML utsignalen från indatatillägget. Används för att felsöka strukturdetektion. Efterstrukturell detektion, men innan CSS utplattning och teckenstorlekskonvertering. Används för att felsöka teckenstorlekskonvertering och CSS-omvandlingar. Precis innan e-bok leds till utdatatillägget. Används för att felsöka utdatatillägget. Om du vill redigera indatadokumentet lite innan calibre konverterar det, är det bästa att göra redigera filerna i indata undermapp och sedan packa upp och använda zip-filen som indataformat för efterföljande omvandlingar. För att göra detta använder Edit meta information dialogrutan för att lägga zip-filen som ett format för boken och sedan, i det övre vänstra hörnet i konverteringsdialogrutan väljer ZIP som indataformat. Detta dokument kommer att främst ta itu med de olika transformer som verkar på mellan XHTML och hur man kan kontrollerar dem. I slutet är några tips som är specifika för varje indata- och utdataformat Utseende Innehåll Teckenstorleksomskalning - Typgradsjustering (sida 57) Styckesavstånd (sida 58) Extra CSS (sida 58) Diverse (sida 59) Denna grupp av alternativ styr olika aspekter av utseendet och känslan av den konverterade e-boken. Teckenstorleksomskalning - Typgradsjustering En av de trevligaste inslagen i e-läsupplevelse är möjligheten att enkelt justera teckenstorlek för att passa individuella behov och ljusförhållanden. calibre har sofistikerade algoritmer för att säkerställa att alla böcker det avger har konsistenta teckenstorlekar, oavsett vilken teckenstorlekar anges i indatadokumentet. Basstorlek för typsnitt på ett dokument är den vanligaste teckenstorlek/typgrad i detta dokument, det vill säga storleken på den största delen av texten i dokumentet. När du anger en Basteckenstorlek, skalar calibre automatiskt alla teckenstorlekar i dokumentet proportionellt, så att den vanligaste teckenstorleken blir den angivna basstorleken och andra teckenstorlekar skalas på lämpligt sätt. Genom att välja en större basstorlek, kan du göra typsnitten i dokumentet större och vice versa. När du ställer in basstorleken, för bästa resultat, bör du också ställa in teckenstorleken. Normalt kommer calibre automatiskt att välja en basstorlek lämplig för utdataprofil som du har valt (se Sidinställning (sida 59) ). Du kan dock åsidosätta detta här ifall standarden inte är lämplig för dig E-bokkonvertering 57

62 Teckenstorleksnycklar alternativet kan du styra hur icke-baserade teckenstorlekar är skalas. Typsnittetets omskalningsalgoritm fungerar med hjälp av en teckenstorleksnyckel, vilket helt enkelt är en kommaseparerad lista med teckenstorlekar. Teckenstorleksnyckel anger för calibre hur många steg större eller mindre en given teckenstorlek bör jämföras med basstorleken. Tanken är att det ska finnas ett begränsat antal teckenstorlekar i ett dokument. Till exempel, en storlek för brödtext, ett par storlekar för olika nivåer av rubriker och ett par storlekar för upphöjd / nersänkt typsnitt och fotnoter. Teckenstorleksnyckel tillåter calibre att dela upp de teckenstorlekar i inmatningsdokumenten i separata fack som motsvarar de olika logiska teckenstorlekarna. Låt oss illustrera med ett exempel. Antag källdokumentet vi konverterar producerades av någon med utmärkt syn och har en basstorlek på 8 pt. Det innebär att huvuddelen av texten i dokumentet är dimensionerad för 8pts, medan rubriker är något större (säg 10 och 12pt) och fotnoter något mindre som 6pt. Nu om vi använder följande inställningar: Base font size : 12pt Font size key : 7, 8, 10, 12, 14, 16, 18, 20 Utdatadokumentet kommer att ha en basstorlek på 12 punkter, rubrikerna 14 och 16pt och fotnoter i 8 pt. Antag nu vi vill göra att den största rubriken storleken sticker ut mer och göra fotnötter lite större också. För att uppnå detta bör det typsnittsnyckel ändras till: New font size key : 7, 9, 12, 14, 18, 20, 22 De största rubrikerna blir nu 18 pt, medan fotnötter blir 9pt. Du kan spela med dessa inställningar för att försöka lista ut vad som skulle vara optimalt för dig med hjälp av tecken omskalningsguiden som kan nås genom att klicka på den lilla knappen bredvid Teckenstorleksnyckel. Alla omskalningar av teckenstorleken i omvandlingen kan även stängas av här, om du vill bevara teckenstorlekar i inmatningsdokumentet. En relaterad inställning är Radhöjd. Radhöjd styr den vertikala höjden på rader. Som standard (ett radavstånd av 0) utförs ingen manipulation av linjehöjder. Om du anger ett icke-standardvärde, kommer linjehöjder sättas på alla platser som inte anger sina egna linjehöjder. Detta är dock något av en trubbigt vapen och bör användas sparsamt. Om du vill justera linjehöjder för vissa avsnitt av indata, är det bättre att använda Extra CSS (sida 58). Styckesavstånd Normalt ska stycker/paragrafer i XHTML återges med en tom rad mellan dem och ingen ledande textindrag. calibre har ett par alternativ för att styra detta. Ta bort blankrad mellan stycken ser med kraft till att alla stycken har någon bland paragraf/styckesavstånd. Den sätter också textindraget till 1.5em (kan ändras) för att markera början på varje punkt. Infoga tom rad gör det motsatta, som garanterar att det finns exakt en tom rad mellan varje par av stycken. Båda dessa alternativ är mycket omfattande, avlägsna avstånd, eller sätta in den för alla stycken (tekniskt <p> och <div> etiketter). Det är så att du bara kan ställa in alternativet och vara säker på att den presterar som utlovat, oavsett hur rörig indatafilen är. Det enda undantaget är när indatafilen använder hårda radbrytningar att genomföra interstyckeavstånd. Om du vill ta bort avståndet mellan alla stycken, förutom några få utvalda, använd inte dessa alternativ. I stället lägger du till följande CSS-kod till Extra CSS (sida 58): p, div { margin: 0pt; border: 0pt; text-indent: 1.5em }.spacious { margin-bottom: 1em; text-indent: 0pt; } Då, i ditt källdokument, markera de punkter som behöver avståndet med class= spacious. Om indatadokumentet inte är i HTML, använd felsökningsalternativet, beskrivet i inledningen till att få HTML (använd input underkatalog). Extra CSS Det här alternativet kan du ange godtyckliga CSS som kommer att tillämpas på alla HTML-filer i inmatningen. Denna CSS appliceras med mycket hög prioritet och bör åsidosätta de flesta CSS närvarande i själva inmatningsdokumentet. 58 Kapitel 1. Avsnitten

63 Du kan använda denna inställning för att finjustera presentation / layout av dokumentet. Till exempel, om du vill att alla stycken i klassen endnote att vara högerställda, lägg bara till:.endnote { text-align: right } eller om du vill ändra indraget på alla stycken: p { text-indent: 5mm; } Extra CSS är ett mycket kraftfullt alternativ, men du behöver en förståelse för hur CSS fungerar för att använda den till sin fulla potential. Du kan använda alternativet felsök rörledningsalternativet som beskrivs ovan för att se vad CSS finns i ditt indatadokument. Diverse Det finns några fler alternativ i det här avsnittet. Ingen textjustering Normalt, om utdataformatet stöder det, kommer calibre tvinga e-boksutdata att ha justerad text (dvs en jämn högermarginal). Detta alternativ kommer att stänga av detta beteende, i vilket fall oavsett kommer justering som anges i indatadokument användas istället. Omvandla data i tabeller till linjära data Några dåligt utformade dokument använder tabeller för att styra layouten på texten på sidan. Vid konvertering har dessa dokument ofta text som rinner ut från sidan och andra artefakter. Detta alternativ kommer att extrahera innehållet från tabellerna och presentera den på ett linjärt sätt. Observera att detta alternativ linjärisera alla bord, så att använd bara den om du är säker ingångsdokumentet använder inte tabeller för verkliga ändamål, som att presentera tabellinformation. Translitterera Unicode-tecken Transkribera Unicode-tecken till en ASCII-representation. Använd med försiktighet eftersom detta kommer att ersätta Unicode-tecken med ASCII. Till exempel kommer det att ersätta Михаил Горбачёв med Mikhail Gorbachiov. Observera också att i de fall där det finns flera representationer av ett tecken (tecken som delas av kinesiska och japanska till exempel) representation som används av det största antal människor kommer att användas (kinesiska i föregående exempel). Det här alternativet är främst användbart om du ska visa e-bok på en enhet som inte har stöd för unicode. Teckenkodning för indata Äldre dokument anger ibland inte sin teckenkodning. Vi omkodning kan detta resultera i icke-engelska tecken eller specialtecken som smarta citat skadas. calibre försöker att automatiskt detektera teckenkodning av källdokumentet, men det är inte alltid lyckas. Du kan tvinga den att anta en viss teckenkodning med den här inställningen. cp1252 är en gemensam kodning för dokument för Windows-programvara. Du bör också läsa :ref: char-kodning-faq för mer information om kodningsfrågor Sidinställning Alternativen för utskriftsformat är till för att styra skärmlayout, som marginaler och skärmstorlekar. Det finns alternativ till sidmarginalsinställningar, som kommer att användas av utdatatillägget, om det valda utmatningsformatet stödjer sidmarginaler. Dessutom bör du välja en inmatningsprofil och en utskriftsprofil. Båda uppsättningarna av profiler i princip behandlar hur man ska tolka mått i dokumentets indata/utdata, skärmstorlekar och standardtypsnitts omskalningsnycklar. Om du vet att filen du konverterar var avsett att användas på en viss enhet / mjukvaruplattform, välj motsvarande inmatningsprofil, annars bara välja standardinmatningsprofil. Om du vet att filerna som du producerar är avsedda för en viss typ enhet, välj motsvarande resultatprofil. Särskilt för MOBI-utdatafiler, bör du välja Kindle, för Microsoft Reader LIT och EPUB Sony Reader. I fallet med EPUB kommer Sony Reader profil resultera i EPUB-filer som kommer att fungera överallt. Det har dock vissa biverkningar, som att sätta in konstgjorda avsnittsbrytningar för att hålla interna komponenter under tröskelstorlek, behövs för Sony-enheter. Särskilt för iphone / Android-telefoner, välj Sony-utskriftsprofil. Om du vet att dina EPUB-filer kommer inte att läsas på en Sony eller liknande enhet, använda 1.4. E-bokkonvertering 59

64 standardutskriftsprofil. Om du vill skriva MOBI-filer som inte är avsedda för Kindle, välj utskriftsprofil Mobipocket books. Resultatprofilen styr även skärmstorleken. Detta kommer att orsaka, till exempel bilder som automatiskt storleksändras vara tjänliga till skärmen i vissa utdataformat. Så välj en profil av en enhet som har en skärmstorlek som liknar din enhet Heuristisk bearbetning Heuristisk bearbetning erbjuder en mängd olika funktioner som kan användas för att försöka upptäcka och åtgärda vanliga problem i dåligt formaterade indatadokument. Använd dessa funktioner om ditt indatadokument lider av dålig formatering. Eftersom dessa funktioner är beroende av gemensamma mönster, var medveten om att ett alternativ i vissa fall kan leda till sämre resultat, så använd med försiktighet. Som ett exempel, kommer flera av dessa alternativ ta bort alla icke-mellanslagsbrytande entiteter, eller kan innefatta Falskt positiva resultat avseende funktionen. Aktivera heuristisk bearbetning Det här alternativet aktiverar calibre heuristisk bearbetnings steg av omvandlingen. Detta måste vara aktiverat för olika delfunktioner som skall tillämpas Ta bort radbrytningar Aktivering av detta alternativ kommer att orsaka att calibre försöker upptäcka och korrigera hårda radbrytningar som finns inom ett dokument med ledtrådar som skiljetecken och linjelängd. calibre kommer först att försöka att upptäcka om hårda radbrytningar finns, om de inte tycks existera calibre kommer inte att försöka ta bort radbrytningar. Radbrytningsfaktor kan minskas om man vill tvinga calibre att veckla ut rader. Faktor för ta bort radbrytningar Det här alternativet styr algoritmen calibre använder för att ta bort hårda radbrytningar. Till exempel, om värdet av detta alternativ är 0,4, innebär att calibre kommer att ta bort hårda radbrytningar från slutet av linjer vars längd är mindre än längden på 40% av alla rader i dokumentet. Om dokumentet har bara några radbrytningar som behöver korrigering, då detta värde bör minskas till någonstans mellan 0,1 och 0,2. Identifiera och markera oformaterade kapitelrubriker och underrubriker Om dokumentet inte har kapitelrubriker och titlar formaterade annorlunda från resten av texten, kan calibre använda det här alternativet för att försöka detektions dem och omge dem med rubriketiketter. <H2> etiketter används för kapitelrubriker; <H3> etiketter används för några titlar som upptäcks. Den här funktionen kommer inte att skapa en innehållsförteckning, men i många fall kommer det att orsaka calibre inställningar standard kapitlet upptäckt att korrekt upptäcka kapitel och bygga en innehållsförteckning. Justera XPath enligt Structure Detection om TOC inte skapas automatiskt. Om det inte finns några andra rubriker som används i dokumentet sedan inställningen // h: h2 under Structure Detection skulle vara det enklaste sättet att skapa en innehållsförteckning för dokumentet. De insatta rubriker är inte formaterad, för att tillämpa formatering använd Extra CSS alternativet under konverteringsinställningar för utseende och beteende. Till exempel, för att centrera rubriketiketter, använd följande: h2, h3 { text-align: center } Renumber sequences of <h1> or <h2> tags Vissa förlag formaterar kapitelrubriker som använder flera <h1> eller <h2> etiketter sekventiellt. calibres standardkonverteringsinställningar kommer orsaka att sådana titlar delas upp i två delar. Detta alternativ kommer att numrera rubrikensetiketter för att undvika delning. Ta bort tomma rader mellan stycken Detta alternativ kommer att få calibre att analysera tomma rader som ingår i dokumentet. Om varje stycke interfolierade med en tom rad, då kommer calibre att ta bort alla dessa tomma stycken. Sekvenser av flera tomma rader kommer att betraktas som scenbrott och behållas som ett enda stycke. Detta alternativ skiljer sig från Ta bort styckesavstånd alternativ under Utseende och känsla i att det faktiskt ändrar HTML-innehåll, medan det andra alternativet ändrar dokumentmallar. Detta alternativ kan också ta bort stycken som infogats med hjälp av calibres Infoga tom rad alternativ. Se till scenslut är konsekvent formaterade Med detta alternativ kommer calibre att försöka upptäcka vanliga scenbrytmarkörer och se till att de är centrerad. Mjuka scen brytmarkörer, dvs scenraster endast definieras av extra 60 Kapitel 1. Avsnitten

65 tomrum, är utformade för att säkerställa att de inte kommer att visas i samband med sidbrytningar. Ersätt scen byten Om det här alternativet konfigureras sedan ersätter calibre scenbrytmarkörer som hittas med den nya texten som anges av användaren. Observera att vissa prydnadstecken kanske inte stöds i alla läser enheter. Generellt bör man undvika att använda html-etiketter, calibre kommer bortse från några etiketter och använda fördefinierade uppmärkning. <hr /> etiketter, det vill säga övergripande regler och <img> -etiketter undantages. Horisontella regler kan eventuellt fås med stilar, om du väljer att lägga till din egen stil se till att inkludera bredd -inställning, annars informations stilen kommer att slängas. Bildetiketter kan användas, men calibre ger inte möjlighet att lägga till bilden under konverteringen, måste detta ske i efterhand med hjälp av Redigera Book -funktionen. Exempel bildetiketter (placera bilden i en Bilder -mapp inne i epub efter konvertering): <img style= width:10% src=../images/scenebreak.png /> Exempel horisontell linje med stilar: <hr style= width:20%;padding-top: 1px;border-top: 2px ridge black;border-bottom: 2px groove black; /> Ta bort onödiga bindestreck calibre kommer att analysera alla bindestrecksinnehåll i dokumentet när det här alternativet är aktiverat. Dokumentet i sig används som ett lexikon för analys. Detta gör calibre att noggrant ta bort bindestreck för något ord i dokumentet på något språk, tillsammans med påhittade och obskyra vetenskapliga ord. Den primära nackdelen är ord som förekommer endast en gång i dokumentet ändras inte. Analys sker i två omgångar, det första passet analyserar radslut. Linjer är bara oförpackade om ordet finns med eller utan bindestreck i dokumentet. Det andra passet analyserar alla ord med bindestreck i hela dokumentet, bindestreck tas bort om ordet förekommer på andra ställen i dokumentet utan träff. Kursivera vanliga ord och mönster När funktionen är aktiverad kommer calibre söka efter vanliga ord och mönster som betecknar kursiv och kursivera dem. Exempel är vanliga textkonventioner såsom ~ ordet ~ eller fraser som generellt bör vara kursiv, t.ex. latin fraser som etc. eller et cetera. Byt enhetstrecksatserna med CSS strecksatser Vissa dokument använder en konvention att definiera textindrag med att använd hårda blanka enheter. När det här alternativet är aktiverat calibre kommer att försöka upptäcka denna typ av formatering och konvertera dem till en 3% textindrag hjälp av css Sök och ersätt De här alternativen är användbart främst för konvertering av PDF-dokument eller OCR omvandlingar, även om de också kan användas för att åtgärda många dokument-specifika problem. Som ett exempel kan lämna bladen bakom sidhuvud och sidfot i texten några konverteringar. Dessa alternativ använder vanliga uttryck för att försöka upptäcka sidhuvuden, sidfötter eller annan godtycklig text och ta bort eller byta ut dem. Kom ihåg att de är verksamma på mellan XHTML producerad av konverteringsrörledning. Det finns en guide som hjälper dig att anpassa de reguljära uttryck för dokumentet. Klicka på trollstaven bredvid uttrycksrutan och klicka på Test knappen efter att komponerat ditt sökuttryck. Framgångsrika träffar kommer att markeras i gult. Sökningen fungerar med hjälp av ett python-reguljärt uttryck. Allt passande texten tas helt enkelt bort från dokumentet eller byts ut med hjälp av ersättningsmönstret. Ersättningsmönster är valfritt, om det lämnas tomt kommer text som passar sökbegreppet kommer att tas bort från dokumentet. Du kan läsa mer om reguljära uttryck och deras syntax på: ref: regexptutorial Struktrurdetektion Strukturdetektion innebär att calibre försöker sitt bästa för att upptäcka strukturella element i indatadokumentet, när de inte är korrekt angivet. Till exempel, kapitel, sidbrytningar, rubriker, sidfot, etc. Som ni kan föreställa er, varierar denna process mycket från bok till bok. Lyckligtvis har calibre mycket kraftfulla alternativ för att styra detta. Med makt kommer komplexitet, men om när du tar dig tid att lära sig komplexiteten, upptäcker du att det väl värt ansträngningen E-bokkonvertering 61

66 Kapitel och sidbrytningar calibre har två uppsättningar av alternativ för kapiteldetektion och infoga sidbrytningar. Detta kan ibland vara lite förvirrande, som standard, kommer calibre infoga sidbrytningar innan upptäckta kapitel samt de platser som upptäckts av alternativet sidbrytningar. Anledningen till detta är att det ofta finns platser där sidbrytningar bör införas som inte är kapitelgränser. Dessutom upptäckta kapitlen kan eventuellt införas i automatiskt genererade innehållsförteckningen. calibre använder XPath, ett kraftfullt språk för att göra det möjligt för användaren att specificera kapitelgränser / sidbrytningar. XPath kan verka lite skrämmande att använda i början, lyckligtvis finns det en Introduktion (sida 55) i användarhandboken. Kom ihåg att Strukturdetektion fungerar på tillfällig XHTML producerad av konverteringsrörledningen. Använd felsökningsalternativet beskrivs i Introduktion (sida 55) att räkna ut lämpliga inställningar för din bok. Det finns också en knapp för en XPath-guide för att hjälpa till med generering av enkla XPath-uttryck. So standard använder calibre följande uttrycker för kapiteldetektion: //*[((name()='h1' or name()='h2') and re:test(., 'chapter book section part\s+', 'i')) = 'c Detta uttryck är ganska komplicerat, eftersom det försöker hantera ett antal gemensamma fall samtidigt. Vad det betyder är att calibre antar att kapitel börjar på antingen <h1> eller <h2> etiketter som har något av orden (chapter, book, section eller part) i dem eller som har class = chapter attribut. Ett relaterat alternativ är Kapitelmärkning, vilket gör att du kan styra vad calibre gör när den upptäcker ett kapitel. Som standard kommer den att infoga en sidbrytning före kapitlet. Du kan ha det infoga en styrd linje i stället för, eller som komplement till sidbrytning. Du kan också få den göra ingenting. Standardinställningen för detektering av sidbrytningar är: //*[name()='h1' or name()='h2'] vilket innebär att calibre kommer att infoga sidbrytningar före varje <h1> och <h2> etikett som standard. Observera: Standarduttryck kan ändras beroende på inmatningsformat du konverterar. Diverse Det finns några fler alternativ i det här avsnittet. Infoga metadata som en sida i början av boken En av de bästa sakerna med calibre är att det tillåter dig att behålla mycket komplett metadata om alla dina böcker, till exempel, ett betyg, etiketter, kommentarer, etc. Detta alternativ kommer att skapa en enda sida med all denna metadata och sätta in den i den konverterade e-boken, typiskt just efter omslaget. Se det som ett sätt att skapa egna bokskyddsomslag. Ta bort första bilden Ibland innehåller källdokumentet du konverterar omslaget som en del av boken, i stället för som ett separat omslag. Om du också ange ett omslag i calibre, den då konverterade boken kommer att ha två omslag. Detta alternativ kommer att helt enkelt ta bort den första bilden från källdokumentet, vilket säkerställer att den konverterade boken har bara ett omslag, det som anges i calibre Innehållsförteckning När indatadokumentet har en innehållsförteckning i sitt metadata, kommer calibre bara använda det. Men ett antal äldre format stöder antingen inte metadata baserade innehållsförteckning, eller enskilda dokument har inte en. I dessa fall kan alternativen i det här avsnittet automatiskt hjälp dig generera en innehållsförteckning i den konverterade e-bok, baserat på det faktiska innehållet i inmatningsdokumentet. Observera: Det kan vara lite utmanande att få exakt rätt med hjälp av dessa alternativ. Om du föredrar att skapa / redigera innehållsförteckningen för hand, konvertera till EPUB eller AZW3 format och markera kryssrutan längst ner 62 Kapitel 1. Avsnitten

67 i innehållsförteckningen i dialogrutan omvandlingen som säger Manuellt finjustera innehållsförteckning efter konverteringen är klar. Detta startar Redigeraren för innehållsförteckningen efter konverteringen. Det låter dig skapa poster i innehållsförteckningen genom att klicka på platsen i boken där du vill att posten ska peka till. Du kan också använda innehållsförteckningen Editor av sig själv, utan att göra en konvertering. Gå till Inställningar->Verktyg och lägga redigeraren för innehållsförteckningen till huvudverktygsraden. Sedan är det bara att välja den bok du vill redigera och klicka på innehållsförteckningredigeringsknappen. Det första alternativet är Använd alltid den automatiskt skapade innehållsförteckningen. Genom att markera det här alternativet kan du låta calibre åsidosätta innehållsförteckning som finns i metadata för indatadokumentet med automatiskt genererade en. Det normala sättet att skapandet av autogenererade innehållsförteckningen fungerar är att, calibre först kommer att försöka lägga alla upptäckta kapitel till den genererade innehållsförteckningen. Du kan lära dig hur du anpassar upptäckt av kapitel i Struktrurdetektion (sida 61) ovan. Om du inte vill ha med ett detekterade kapitel i den genererade innehållsförteckningen, se Lägg inte till upptäcka kapitel i innehållsförteckningen-alternativet. Om mindre än Kapiteltröskel antal kapitel hittades kommer calibre lägga till alla hyperlänkar som hittas i indatadokumentet till innehållsförteckningen. Detta fungerar ofta väl, många indatadokument innehåller en hyperlänkad innehållsförteckning precis i början. Antal länkar alternativet kan användas för att styra detta beteende. Om värdet är noll, kommer inga länkar läggas till. Om satt till ett tal större än noll, kommer på sin höjd att antalet länkar läggs till. calibre kommer automatiskt att filtrera dubbletter från den genererade innehållsförteckningen. Men om det finns några ytterligare oönskade poster kan du filtrera dem genom att använda Innehållsförteckningsfilter-alternativet. Detta är ett reguljärt uttryck som söker titeln på poster i den genererade innehållsförteckningen. När en träff hittas, kommer den att tas bort. Till exempel, för att ta bort alla titlar Nästa eller Föregående användning: Next Previous Med Nivå 1,2,3 innehållsförteckning-alternativet kan du skapa en sofistikerad flera nivåer Innehållsförteckning. De är XPath-uttryck som passsar etiketter i medan XHTML produceras av konverteringsrörledningen. Se Introduktion (sida 55) för hur du får tillgång till denna XHTML. Läs också XPath Handledning (sida 159), att lära sig att konstruera XPath-uttryck. Bredvid varje alternativ finns en knapp som startar en guide för att hjälpa till med att skapa grundläggande XPath-uttryck. Följande enkla exempel visar hur man använder de här alternativen. Anta att du har en indatadokument som resulterar i XHTML som ser ut så här: <html xmlns=" <head> <title>sample document</title> </head> <body> <h1>chapter 1</h1>... <h2>section 1.1</h2>... <h2>section 1.2</h2>... <h1>chapter 2</h1>... <h2>section 2.1</h2>... </body> </html> Sedan sätter vi alternativ som: Level 1 TOC : //h:h1 Level 2 TOC : //h:h E-bokkonvertering 63

68 Detta kommer att resultera i ett automatiskt genererat tvånivåers Innehållsförteckning som ser ut som: Chapter 1 Section 1.1 Section 1.2 Chapter 2 Section 2.1 Varning: Inte alla utdataformat stödjer en innehållsförteckning med multinivåer. Du bör först försöka med EPUButdata. Om det fungerar, sedan prova ditt var av format Att använda bilder som kapitelrubriker när du konverterar HTMLinmatningsdokument Anta att du vill använda en bild som din kapitelrubrik, men ändå vill kunna att calibre automatiskt generera en innehållsförteckning för dig från kapiteltitlar. Använd följande HTML-kod för att uppnå detta <html> <body> <h2>chapter 1</h2> <p>chapter 1 text...</p> <h2 title="chapter 2"><img src="chapter2.jpg" /></h2> <p>chapter 2 text...</p> </body> </html> Ställ in Nivå 1 innehållsförteckning inställning till //h:h2. Då, för kapitel två, kommer calibre ta titeln från värdet av titel-attribut på <h2> etikett, eftersom etiketten inte har någon text Använda etikettattribut för att leverera texten för posterna i innehållsförteckningen Om du har speciellt långa kapitelrubriker och vill förkortade versioner i innehållsförteckningen, kan du använda attributet titel för att uppnå detta, till exempel: <html> <body> <h2 title="chapter 1">Chapter 1: Some very long title</h2> <p>chapter 1 text...</p> <h2 title="chapter 2">Chapter 2: Some other very long title</h2> <p>chapter 2 text...</p> </body> </html> Ställ in Nivå 1 TOC inställning till //h:h2/@titel. Då tar calibre titeln från värdet på titel attribut på <h2> etiketter, istället för att använda texten i etiketten. Observera den avslutande /@titel på XPath-uttryck kan du använda det här formuläret för att berätta calibre för att få text från alla attribut du vill Hur alternativen är inställda/sparade för Konvertering Det finns två platser där konverteringsalternativ kan ställas in i calibre. Den första är i Inställningar->Konvertering. Dessa inställningar är standardinställningar för konverteringsalternativen. När du försöker konvertera en ny bok kommer inställningarna som finns här användas som standard. 64 Kapitel 1. Avsnitten

69 Du kan också ändra inställningarna i dialogrutan konvertering för varje bokkonvertering. När du konverterar en bok, minns calibre de inställningar du använt för den boken, så att om du konverterar det igen, kommer de sparade inställningarna för den enskilde boken har företräde framför standardinställningarna som anges i Inställningar. Du kan återställa enskilda inställningar till standard genom att använda Återställ till standardvärden knapp i individuell bokkonverteringsdialog. Du kan ta bort sparade inställningar för en grupp av böcker genom att välja alla böcker och sedan klicka på redigera metadata-knappen för att bulk metadata redigeringsdialogen, nära botten av dialogen är ett alternativ att ta bort lagrade konverteringsinställningar. När du masskonvertera en uppsättning böcker, tas inställningarna i följande ordning (sista vinner): Från standardvärdena som i Inställningar->Konvertering Från de sparade konverteringsinställningarna för varje bok som konverteras (om någon). Detta kan stängas av alternativ i det övre vänstra hörnet av dialogrutan masskonvertering. Från inställningarna i masskonverteringsdialogen Observera att de slutliga inställningar för varje bok i en masskonvertering kommer att sparas och återanvändas om boken omvandlas igen. Eftersom högsta prioritet av masskonvertering ges till inställningarna av dialogrutan masskonvertering kommer dessa åsidosätta bokens specifika inställningar. Så du ska bara masskonvertera böcker tillsammans som behöver liknande inställningar. Undantaget är metadata och specifika inställningar för indataformat. Eftersom masskonveringsdialogrutan inte har inställningar för dessa två kategorier, kommer de att tas från boken specifika inställningar (om någon) eller standardvärdena. Observera: Du kan se de verkliga inställningar som används under någon konvertering genom att klicka på roterande ikon i det nedre högra hörnet och sedan dubbelklicka på individuella konverteringsjobbet. Då visas en konverteringslogg som ska innehålla de verkliga inställningar som används, nära toppen Formatspecifika tips Här hittar du tips som är specifika för konvertering av vissa format. Alternativ specifika för visst format, oavsett indata eller utdata finns i dialogrutan konvertering under eget avsnitt, till exempel TXT indata eller EPUB utdata. Konvertera Microsoft Word dokument calibre kan automatiskt konvertera.docx filer som skapats av Microsoft Word 2007 och nyare. Lägg bara till den fil till calibre och klicka konvertera (se till att du kör den senaste versionen av calibre eftersom stöd för.docx filer är mycket nytt). Observera: Det finns en demo docx-fil < _ som visar funktionerna i calibre-konvertering. Bara ladda ner den och omvandla den till EPUB eller AZW3 att se vad calibre kan göra. calibre kommer att automatiskt generera en innehållsförteckning som baseras på rubrikerna om du markerar dina rubriker med Rubrik 1, rubrik 2 etc. stilar i Word. Öppna utdata e-bok i calibre läsare och klicka på innehållsförteckningen för att visa den genererade innehållsförteckningen. Äldre.doc filer För äldre doc-filer, kan du spara dokumentet som HTML med Microsoft Word och sedan konvertera den resulterande HTML-filen med calibre. När du sparar som HTML, se till att använda Spara som webbsida, filtrerad alternativet eftersom detta kommer att producera ren HTML som kommer att konverteras bra. Observera att Word producerar en 1.4. E-bokkonvertering 65

70 riktigt rörig HTML, omvandla det kan ta lång tid, så ha tålamod. Om du har en nyare version av Word tillgänglig kan du också direkt spara den som docx. Ett annat alternativ är att använda fria Openoffice som är gratis. Öppna din doc-fil i Openoffice och spara den i Openoffice-formatet.odt. calibre kan direkt konvertera.odt filer. Konvertera TXT-dokument TXT-dokument har något väldefinierat sätt att ange formatering som fet, kursiv, etc, eller dokumentstruktur som stycken, rubriker, sektioner och så vidare, men det finns en mängd olika konventioner som vanligen används. Som standard försöker calibre automatisk detektering av korrekt formatering och uppmärkning utifrån dessa konventioner. TXT-indata stöder ett antal alternativ för att differentiera hur stycken upptäcks. Styckeformat: auto Analyserar textfilen och försök att automatiskt avgöra hur styckena är definierade. Detta val kommer i allmänhet fungerar bra, om du uppnår oönskade resultat prova ett av de manuella alternativen. Styckeformat: block Förutsätter en eller flera tomma rader är en styckesgräns: This is the first. This is the second paragraph. Styckeformat: single Förutsätter varje rad är ett stycke: This is the first. This is the second. This is the third. Styckeformat: Print Förutsätter att varje stycke börjar med en indragning (antingen en tabulering eller 2+ mellanslag). Styckena avslutas när nästa rad som börjar med en indragning nås: This is the first. This is the second. This is the third. Styckeformat: unformatted Förutsätter att dokumentet inte har någon formatering, men använder hårda radbrytningar. Skiljetecken och medianradslängd används för att försöka återskapa stycken. Formatmall: auto Försök att känna av vilken formatering uppmärkning som används. Om ingen markup används då kommer heuristisk formatering att tillämpas. Formatmall: Heuristisk Analyserar dokumentet för gemensamma kapitelrubriker, scenbrott och kursiverade ord och tillämpar lämpliga HTML-kod under konverteringen. Formatmall: Markdown calibre stöder också kör TXT-indata genom en tranformationspreprocessor som kallas markdown. Markdown möjliggör grundläggande formatering som ska läggas till TXT-dokument, till exempel fet, kursiv, avsnittsrubriker, tabeller, listor, en innehållsförteckning, etc. Markeringskapitelrubriker med en ledande # och sätta XPathkapiteldetekteringsuttryck för //h:h1 är det enklaste sättet att få en korrekt innehållsförteckning att genereras från ett TXT-dokument. Du kan läsa mer om markdown syntax i daringfireball < _. Formatmall: none Använder ingen speciell formatering av texten, dokumentet konverteras till HTML utan några ändringar. 66 Kapitel 1. Avsnitten

71 Konvertera PDF-dokument PDF-dokument är en av de värsta format för att konvertera från. De är en fast sidstorlek och textplaceringsformat. Mening, är det mycket svårt att avgöra var en stycke slutar och en annat börjar. calibre kommer att försöka packa stycken med en konfigurerbar, Radbrytningsfaktor. Detta är en skala som används för att bestämma längden, vid vilken en rad bör radbruten. Giltiga värden är ett decimaltal mellan 0 och 1. Standardinställningen är 0,45, strax under medianradslängden. Sänk detta värde att inkludera mer text i uppackning. Öka till att omfatta mindre. Du kan justera detta värde i konverteringsinställningarna under PDF-indata. De har också ofta sidhuvud och sidfot som en del av dokumentet som kommer att bli inkluderat med texten. Använd Sök och ersätt panel för att ta bort sidhuvud och sidfot för att lindra problemet. Om sidhuvuden och sidfötter inte tas bort från texten kan den ge upp uppackning. Om du vill veta hur du använder sidhuvud och sidfot borttagningsalternativ, läs Allt om att använda reguljära uttryck i calibre (sida 205). Vissa begränsningar i PDF-indata är: Komplex, flera kolumner, och bildbaserade dokument stöds inte. Extraction of vector images and tables from within the document is also not supported. Vissa PDF-filer använder speciella glyfer för att representera ll eller ff eller fi, etc. Konvertering av dessa kanske eller kanske inte fungerar beroende på hur de representeras internt i PDF. Länkar och innehållsförteckningar stöds inte PDF-filer med inbäddade icke-unicode-typsnitt för att representera icke-engelska tecken kommer att resultera i förvrängt utdata för dessa tecken Vissa PDF-filer är uppbyggda av fotografier av sidan med OCRed text bakom dem. I sådana fall använder calibre OCR-text, vilket kan vara mycket annorlunda från vad du ser när du visar PDF-filen PDF-filer som används för att visa komplexa texter, liksom höger till vänster språk och matematiksättning kommer inte konverteras korrekt För att återupprepa PDF är en riktigt, riktigt dåligt format att användas som indata. Om du absolut måste använda PDF, sedan förberedas för ett utdata som varierar allt från anständigt att oanvändbara, beroende på indata PDF. Serieboksamlingar En serietidningssamling är en.cbc fil. En.cbc fil är en zip-fil som innehåller andra CBZ/CBR-filer. Dessutom.cbc filen måste innehålla en enkel textfil som heter comics.txt, kodade i UTF-8. Den comics.txt-filen måste innehålla en förteckning över de serier filerna inuti.cbc filen i form filnamnet: titel, enligt nedan: one.cbz:chapter One two.cbz:chapter Two three.cbz:chapter Three.cbc-filen kommer då innehålla: comics.txt one.cbz two.cbz three.cbz calibre kommer automatiskt omvandla denna.cbc fil till en e-bok med en innehållsförteckning som pekar på varje post i comics.txt E-bokkonvertering 67

72 EPUB avancerad formateringsdemo Olika avancerad formatering för EPUB-filer demonstreras i det här demofil < _. Filen skapades från handkodat HTML med calibre och är tänkt att användas som en mall för dina egna EPUB skapande insatser. Källan HTML som det skapades från är tillgänglig demo.zip < _. De inställningar som används för att skapa EPUB från ZIP-filen är: ebook-convert demo.zip.epub -vv --authors "Kovid Goyal" --language en --level1-toc '//*[@class="titl Observera att eftersom den här filen utforskar potentialen i EPUB, kommer inte de flesta av de avancerade formatering att fungera på läsarna mindre kapabla än calibres inbyggda EPUB-visare. Konvertera ODT-dokument calibre kan direkt konvertera ODT (Opendocument Text) filer. Du bör använda stilar för att formatera ditt dokument och minimera användningen av direkt formatering. När bilder infogas i ditt dokument måste du förankra dem till stycke, förankrade bilder till en sida kommer alla hamna på framsidan av konverteringen. Om du vill aktivera automatisk detektering av kapitlen, måste du markera dem med inbyggd stilar som kallas Rubrik 1, Rubrik 2,..., Rubrik 6 ( Rubrik 1 motsvarar HTML-etiketten <h1>, Rubrik 2 till <h2> etc). När du konverterar i calibre kan du ange vilken stil du använde i Identifiera kapitel på rutan. Exempel: Om du markerar kapitel med stil Rubrik 2, måste du ställa in Detektera kapitel på rutan till //h:h2 För en kapslad innehållsförteckning med avsnitten märkta med Rubrik 2 och de kapitel som är markerade med Rubrik 3 du måste ange //h:h2 //h:h3. På Konvertera - innehållsförteckningssidan satt den nivå 1 innehållsförteckning rutan till //h:h2 och nivå 2 innehållsförteckning rutan till //h:h3. Välkända dokumentegenskaper (titel, sökord, Beskrivning, Skapare) känns igen och calibre kommer att använda den första bilden (inte för liten, och med god aspektförhållande) som omslagsbild. Det finns också ett avancerat egenskapskonverteringsläge, som aktiveras genom att ställa den anpassade egenskapen opf.metadata ( Ja eller Nej typ) till Ja i ODT-dokument (Fil> Egenskaper-> Anpassade egenskaper). Om egenskapen detekteras av calibre är följande anpassade egenskaper igenkända (opf.authors åsidosättningar dokumentets skapare): opf.titlesort opf.authors opf.authorsort opf.publisher opf.pubdate opf.isbn opf.language opf.series opf.seriesindex Utöver detta kan du ange vilken bild som ska användas som omslag genom att namnge den opf.cover (högerklicka, Bild-> Alternativ-> Namn) i ODT. Om ingen bild med detta namn hittas, används den smarta metoden. Eftersom omslagsupptäckt kan leda till dubbla omslag i vissa utdataformat, kommer processen att ta bort stycken (endast om det enda innehållet är omslaget!) från dokumentet. Men detta fungerar bara med namngiven bild! För att inaktivera omslagsupptäckt kan du ställa in den anpassade egenskapen opf.nocover ( Ja eller Nej typ) till Ja i avancerat läge. 68 Kapitel 1. Avsnitten

73 Konvertera till PDF Den första, viktigaste, inställning för att bestämma när du konverterar till PDF är sidstorleken. Som standard använder calibre en sidstorlek som definieras av det aktuella utdataprofil. Så om din utskriftsprofil är inställd på Kindle, kommer calibre skapa en PDF med sidstorlek lämplig för visning på den lilla Kindle skärmen. Men om du visar den här PDFfilen på en datorskärm, så kommer det att synas att ha för stora tecken. För att skapa normal storlek på PDF-filer, använd Åsidosätt sidstorlek alternativ under PDF-utdata i dialogrutan omvandlingen Sidhuvud och sidfötter Du kan infoga godtyckliga sidhuvud och sidfot på varje sida i PDF genom att ange sidhuvud och sidfot mallar. Mallar är bara fragmentsnuttar av HTML-kod som blir utförda i sidhuvud och sidfot platser. Till exempel, för att visa sidnummer centrerat längst ner på varje sida, i grönt, använd följande sidfotsmall <p style="text-align:center; color:green">page _PAGENUM_</p> calibre ersätter automatiskt _PAGENUM_ med det aktuella sidnumret. Du kan även sätta olika innehåll på jämna och udda sidor, till exempel följande rubrikmall visar titeln på udda sidor och författaren på jämna sidor: <p style="text-align:right"><span class="even_page">_author_</span><span class="odd_page"><i>_title_< calibre ersätter automatiskt _TITLE_ och _AUTHOR_ med titel och författare av dokumentet som konverteras. Du kan även visa text på vänster och höger sida och ändra teckenstorlek, vilket visas med den här rubrikmallen: <div style="font-size:x-small"><p style="float:left">_title_</p><p style="float:right;"><i>_author_</ Detta kommer att visa titeln till vänster och författare till höger, i en teckenstorlek som är mindre än huvudtexten. Du kan också använda det aktuella avsnittet i mallar, enligt nedan: <p style="text-align:right">_section_</p> _SECTION_ ersätts med vad namnet på det aktuella avsnittet är. Dessa namn är taget från metadatats innehållsförteckningen i dokumentet (PDF Outline). Om dokumentet inte har någon innehållsförteckning kommer det att ersättas av tom text. Om en PDF-sida har flera sektioner, kommer det första avsnittet på sidan användas. Du kan även använda javascript inne i sidhuvud och sidfot mallar, till exempel, kommer följande mall resultera i att sidnummer börjar vid 4 istället för på 1: <p id="pagenum" style="text-align:center;"></p><script>document.getelementbyid("pagenum").innerhtml = Observera: När du lägger till sidhuvud och sidfot se till att du ställa in sidan övre och nedre marginal till tillräckligt stora värden, under avsnittet Utskriftsformat i konverteringsdialogrutan. Utskrivbar/tryckbar innehållsförteckning Du kan också infoga en utskrift/tryckbar innehållsförteckning i slutet av PDF som listar sidnummer för varje avsnitt. Detta är mycket användbart om du tänker skriva ut PDF till papper. Om du vill använda PDF på en elektronisk produkt, PDF Outline ger då denna funktionalitet och som genereras som standard. Du kan anpassa utseendet på den genererade Innehållsförteckning med hjälp av extra CSS konvertering inställning under Utseende del av konverteringsdialogen. Standard css som används är listade nedan, helt enkelt kopiera den och göra de ändringar du vill E-bokkonvertering 69

74 .calibre-pdf-toc table { width: 100%% }.calibre-pdf-toc table tr td:last-of-type { text-align: right }.calibre-pdf-toc.level-0 { font-size: larger; }.calibre-pdf-toc.level-1 td:first-of-type { padding-left: 1.4em }.calibre-pdf-toc.level-2 td:first-of-type { padding-left: 2.8em } 1.5 Redigera e-böcker calibre har en integrerad e-bokeditor som kan användas för redigera böcker i EPUB- och AZW3(Kindle)-formaten. Editorn visar dig HTML och CSS som används internt i bokfiler, med en direkt förhandsgranskning som uppdateras allt eftersom du gör ändringar. Den innehåller också olika automatiserade verktyg för att utföra vanliga uppsnyggningoch justeringsuppgifter. Du kan använda denna editor genom att högerklicka på valfri bok i calibre och välja Redigera bok. 70 Kapitel 1. Avsnitten

75 Innehåll Grundläggande arbetsflöde (sida 71) Filbläddraren (sida 74) Byter namn på filer (sida 75) Slår samman filer (sida 75) Ändrar textfilordning (sida 75) Märkning av omslaget (sida 75) Radera filer (sida 76) Export av filer (sida 76) Lägga till nya bilder / fonts / etc. eller skapa nya tomma filer (sida 76) Byta filer (sida 76) Länka stilmallar till HTML-filer effektivt (sida 76) Sök och ersätt (sida 76) Sparade sökningar (sida 77) Funktionsläge (sida 77) Automatiserade verktyg (sida 77) Redigera innehållsförteckningen (sida 77) Kontrollera bok (sida 79) Lägg till ett omslag (sida 80) Inbäddadningsrefererade typsnitt (sida 80) Använder delmängd av inbäddade typsnitt (sida 80) Förbättrad skiljeteckenhantering (sida 80) Tar bort oanvända CSS-stilregler (sida 80) Justera HTML (sida 80) Försköna filer (sida 81) Inför innehållsförteckning på raden (sida 81) Sätt semantik (sida 81) Filtrera stil Information (sida 81) Kontrollpunkt (sida 81) Panelen för direkt förhandsgranskning (sida 84) Dela upp HTML-filer (sida 85) Direkta CSS-panelen (sida 86) Diverse verktyg (sida 87) Innehållsförteckningsvyn (sida 87) Kontroll av stavning av ord i boken (sida 87) Infoga specialtecken (sida 88) Kodinspektörvyn (sida 89) Checking external links (sida 89) Ordna filer i mappar efter typ (sida 89) Importera filer i andra e-boksformat som EPUB (sida 89) Rapportverktyget (sida 97) Speciella funktioner i kodeditorn (sida 98) Syntaxmarkering (sida 98) Sammanhangsberoende hjälp (sida 98) Komplettera automatiskt (sida 98) Snuttar (sida 99) Grundläggande arbetsflöde Observera: En videogenomgång av calibre editorn finns här Redigera e-böcker 71

76 När du först öppnar en bok med bokredigeringsverktyget, kommer få se en list av filer på vänster sida. Dessa är individuella HTML-filer, stilmallar, bilder, etc. som tillsammans utgör innehållet av boken. Genom dubbelklicka på en fil startar du enkelt redigering av den. Notera att om du vill göra något mer sofistikerat än små justeringar, kommer du behöva känna till HTML-handledning 24 och CSS-handledning 25. Allt eftersom du gör ändringar till HTML eller CSS i editors, kommer du direkt kunna förhandsgranska förändringarna i förhandsgranskningsvyn till höger. När du är nöjd med ändringarna och dess utseende, klicka på sparaknappen eller använd Fil->Spara för att spara dina ändringar i e-boken. One useful feature is Checkpoints. Before you embark on some ambitious set of edits, you can create a checkpoint. The checkpoint will preserve the current state of your book, then if in the future you decide you don t like the changes you have made to you can go back to the state when you created the checkpoint. To create a checkpoint, use Edit->Create checkpoint. Checkpoints will also be automatically created for you whenever you run any automated tool like global search and replace. The checkpointing functionality is in addition to the normal Undo/redo mechanism when editing individual files. Checkpoints are useful for when changes are spread over multiple files in the book. Det är det grundläggande arbetsflödet för redigering böcker Öppna en fil, göra ändringar, förhandsgranska och spara. Resten av denna handbok kommer att diskutera de olika verktyg och funktioner som finns så att du kan utföra specifika uppgifter effektivt Kapitel 1. Avsnitten

77 1.5. Redigera e-böcker 73

78 1.5.2 Filbläddraren 74 Kapitel 1. Avsnitten

79 Med Filbläddrare får du en översikt över de olika filerna inne i boken som du redigerar. Filerna är ordnade efter kategori, med text (HTML) filer i toppen, följt av stilmallar (CSS) filer, bilder och så vidare. Helt enkelt dubbelklicka på en fil för att börja redigera den. Redigering stöds för HTML, CSS och bildfiler. Ordningen på textfiler är samma ordning som de skulle visas i, om du läser boken. Alla andra filer är ordnade i bokstavsordning. Genom att dra muspekaren över en post, kan du se dess storlek, men också, längst ner på skärmen, den fullständiga sökvägen till filen inne i boken. Observera att filer i e-böcker är komprimerade, så storleken på den sista boken är inte summan av de enskilda filstorlekar. Många filer har speciell betydelse, i boken. Dessa har normalt en ikon bredvid deras namn, med angivande av speciell betydelse. Till exempel, på bilden till vänster, kan du se att filerna cover_image.jpg och titlepage.xhtml som har ikonen av ett omslag bredvid dem, indikerar detta att de är bokomslaget bilden och titlepage. På liknande sätt har content.opf - filen en metadata ikon bredvid sig, vilket indikerar boken metadata finns i den och toc.ncx-filen har en T ikon bredvid sig, vilket indikerar att det är innehållsförteckningen. Du kan utföra många åtgärder på enskilda filer, genom att högerklicka på dem. Byter namn på filer Du kan byta namn på en enskild fil genom att högerklicka på den och välja Byt namn. Byta namn på en fil uppdaterar automatiskt alla länkar och referenser till den i hela boken. Så allt du behöver göra är att ge det nya namnet kommer calibre tar hand om resten. Du kan också massbyta namn på många filer på en gång. Detta är användbart om du vill att filerna ha några enkla namn mönster. Till exempel kanske du vill byta namn på alla HTML-filer för att ha namn kapitel-1.html, kapitel- 2.html osv. Markera de filer du vill bulk bytt namn genom att hålla nere Skift eller Ctrl-tangenten och klicka på filerna. Högerklicka och välj Massändring av namn. Ange ett prefix och vilket nummer du vill att automatisk numrering för att börja på, klicka på OK och du är klar. Slår samman filer Ibland kanske du vill slå samman två HTML-filer eller två CSS-filer tillsammans. Det kan ibland vara bra att ha allt i en enda fil. Var försiktig dock, att sätta en hel del innehåll i en enda fil orsakar prestandaproblem när du tittar på boken i en typisk e-boksläsare. För att sammanfoga flera filer tillsammans, markera dem genom att hålla Ctrl-tangenten och klicka på dem (se till att du bara välja filer av en typ, antingen alla HTML-filer eller alla CSS-filer och så vidare). Högerklicka och välj slå samman. Det är allt, calibre kommer slå ihop filerna automatiskt, ta hand om migrera alla länkar och referenser till de fusionerade filerna. Observera att samgående filer ibland kan orsaka textformatering förändras, eftersom de enskilda filerna kunde ha använt olika stilmallar. Ändrar textfilordning Du kan arrangera i vilken ordning texten (HTML) filer öppnas när du läser boken genom att helt enkelt dra och släppa dem i filer webbläsaren. För den tekniskt kunnige, kallas detta omordning av bokryggen. Observera att du måste släppa objekt mellan andra objekt, inte på dem, kan det vara lite krångliga tills du vänjer det. Märkning av omslaget E-böcker har normalt en omslagsbild. Bilden visas i Filbläddraren med ikonen av en brun bok bredvid bildnamnet. Om du vill ange en annan bild som omslag, kan du göra det genom att högerklicka på filen och välja Välj som omslag. Dessutom har EPUB-filer begreppet titel. En titelsidan finns en HTML-fil som fungerar som titelbladet/omslaget till boken. Du kan markera en HTML-fil som Titel vid EPUB-redigering genom att högerklicka. Var noga med att filen du 1.5. Redigera e-böcker 75

80 markerar innehåller endast omslagsinformationen. Om det innehåller annat innehåll, till exempel det första kapitlet, då det innehållet kommer att förloras om användaren någonsin omvandlar EPUB-filen i calibre till ett annat format. Detta beror på att när du konverterar, förutsätter calibre att den markerade titeln sidan innehåller bara omslaget och inget annat innehåll. Radera filer Du kan ta bort filer genom att antingen högerklicka på dem eller genom att markera dem och trycka på Deletetangenten. Ta bort en fil tar bort alla hänvisningar till filen från OPF-filen, sparar dig detta grovgöra. Men referenser på andra platser tas inte bort, du kan använda Kontrollera bok -verktyg för att enkelt hitta och ta bort / byta ut dem. Export av filer Du kan exportera en fil från bokens till någon annanstans på datorn. Detta är användbart om du vill arbeta på filen i sig, med specialverktyg. För att göra detta, helt enkelt högerklicka på filen och välj Exportera. När du är klar arbetar på den exporterade filen kan du importera den i boken, genom att högerklicka på filen igen och välja Ersätt med fil... vilket gör att du kan byta ut filen i boken med den tidigare exporterad fil. Lägga till nya bilder / fonts / etc. eller skapa nya tomma filer Du kan lägga till en ny bild, typsnitt, format, etc. från datorn in i boken genom att klicka på Fil->Ny fil. Det gör att du antingen importera en fil genom att klicka på Importera resursfilen-knappen Importera resurs eller skapa en ny tom html-fil eller stilmallen genom att helt enkelt skriva in filnamnet i rutan för den nya filen. Du kan även importera flera filer till boken på en gång genom att använda Fil->Importera filer till bok. Byta filer Du kan enkelt byta ut befintliga filer i boken, genom att högerklicka på filen och välja ersätta. Detta kommer automatiskt att uppdatera alla länkar och referenser, om ersättningsfilen har ett annat namn än filen som ersätts. Länka stilmallar till HTML-filer effektivt Som en bekvämlighet kan du välja flera HTML-filer i Filbläddraren, högerklicka och välj Länka stilmallar för att ha calibre automatiskt infoga <link> etiketter för dessa stilmallar i alla markerade HTML-filer Sök och ersätt Redigera bok har en mycket kraftfull sök- och ersättsgränssnitt som låter dig söka och ersätta text i den aktuella filen, över alla filer och till och med i ett markerat område av den aktuella filen. Du kan söka med hjälp av en vanlig sökning eller använda reguljära uttryck. För att lära dig att använda reguljära uttryck för avancerad sökning, se Allt om att använda reguljära uttryck i calibre (sida 205). Starta sök och ersätt via Sök->Sök/Ersätt -menyalternativet (du måste redigera en HTML-eller CSS-fil). 76 Kapitel 1. Avsnitten

81 Fyll i texten du vill söka efter i rutan Sök och dess ersättning i rutan Ersätt. Du kan klicka på lämpliga knappar för att hitta nästa träff, byt den aktuella träffen och ersätta alla passande träffar. Använda rullgardinsmenyer i botten av lådan, kan du söka arbeta över den aktuella filen, alla textfiler, alla stilfiler eller alla filer. Du kan också välja sökläget för att vara en normal (sträng) sökning eller ett reguljärt uttryckssökning. Du kan räkna alla träffar för ett sökuttryck via Sök->Räkna alla. Räkningen kommer att köra över allt vad filer/regioner som du har valt i rullgardinsrutan. Du kan också gå till en specifik rad i den öppna editorn via Sök->Gå till rad. Observera: Kom ihåg, att utnyttja den fulla kraften i sök och ersätt, måste du använda reguljära uttryck. Se Allt om att använda reguljära uttryck i calibre (sida 205). Sparade sökningar Du kan spara ofta använda sök/ersätt-uttryck och återanvända dem flera gånger. Om du vill spara en sökning högerklicka bara i rutan Spara aktuell sökning. Du kan öppna dialogrutan för sparade sökningar via Sök->Sparade sökningar. Detta kommer att visa dig en lista med sök och ersätt uttryck som du kan använda. Du kan även välja flera poster i listan genom att hålla ned CTRL-tangenten samtidigt som du klickar för att köra flera sök och ersätt uttryck i en enda operation. Funktionsläge Med funktionsläget kan du skriva godtyckliga och starka python-funktioner som körs på varje Hitta/ersätt. Du kan göra i stort sett alla texthantering du vill i funktionsläge. För mer information se Funktionsläge för Sök & Ersätt i editorn (sida 89) Automatiserade verktyg Redigera bok har olika verktyg för att hjälpa till med vanliga uppgifter. Dessa nås via menyn Verktyg. Redigera innehållsförteckningen Det finns en särskild verktyg för att underlätta redigeringen av innehållsförteckningen. Starta det med Verktyg- >Innehållsförteckning->Redigera innehållsförteckning Redigera e-böcker 77

82 Redigera innehållsförteckning-verktyget visar den aktuella innehållsförteckningen (om någon) till vänster. Helt enkelt dubbelklicka på en post för att ändra texten. Du kan också arrangera poster genom att dra och släppa eller genom att använda knapparna till höger. För böcker som inte har en befintlig innehållsförteckning, ger verktyget dig olika alternativ för att automatiskt generera en innehållsförteckning från texten. Du kan generera från rubrikerna i dokumentet, från länkar, från enskilda filer och så vidare. Du kan redigera enskilda poster genom att klicka på dem och sedan klicka på Ändra platsen denna startpunkt pekar på-knappen. Detta kommer att öppna upp ett mini-förhandsvisning av boken, bara flytta muspekaren över boken vyn panelen och klicka där du vill att posten att peka på. En tjock grön linje visar dig platsen. Klicka på OK när du är nöjd med platsen. 78 Kapitel 1. Avsnitten

83 Kontrollera bok Kontrollera bok-verktyget söker igenom din bok efter problem som kan förhindra det fungerar som avsett på faktiska läsaranordningar. Aktivera den via Verktyg->Kontrollera bok. Eventuella problem som finns redovisas i en trevlig, lätt att använda listan. Genom att klicka på en post i listan visas lite hjälp om felet samt ger dig möjlighet att automatiskt åtgärda detta fel, om felet kan åtgärdas automatiskt. Du kan också dubbelklicka på felet för att öppna platsen för fel i en editor, så du kan fixa det själv. En del av de kontroller som gjorts är: Felaktigt HTML-kod. Alla HTML-kod som inte kan tolkas som välformad XML rapporteras. Korrigera det kommer att se till att din kod fungerar som det ska i alla sammanhang. calibre kan även automatiskt åtgärda felen, men auto-rättning kan ibland få oväntade effekter, så använd den med försiktighet. Som alltid, skapas en kontrollpunkt innan auto-rättning så att du enkelt kan återställa alla förändringar. Auto-rättning fungerar genom att tolka markeringen med hjälp av HTML5-algoritmen, som är mycket feltolerant och sedan konvertera till välformade XML Redigera e-böcker 79

84 Felaktiga eller okända CSS-format. Alla CSS som inte är giltig eller som har egenskaper som inte är definierade i standarden CSS 2.1 (plus några från CSS 3) rapporteras. CSS kontrolleras i alla stilmallar, stilattribut på raden och <style> etiketter i HTML-filer. Trasiga länkar. Länkar som pekar på filer i boken som saknas rapporteras. Orefererade filer. Filer i boken som inte refereras till av någon annan fil eller inte finns på bokryggen redovisas. Olika vanliga problem i OPF filer såsom dubbletter av bokryggar eller uppenbara poster, trasiga idrefs eller metaomslagsetiketter, saknade nödvändiga sektioner och så vidare. Olika kompatibilitets kontroller för kända problem som kan orsaka boken inte fungerar på läsenheter. Lägg till ett omslag Du kan enkelt lägga till ett omslag till boken via Verktyg->Lägg till omslag. Detta gör att du kan antingen välja en befintlig bild i boken som omslag eller importera en ny bild in i boken och göra den till omslag. När du redigerar EPUB-filer är HTML-täckbladet för omslaget automatiskt. Om en befintlig omslag i boken hittas, ersätts det. Verktyget tar automatiskt hand om korrekt märkning av omslagsfiler som omslag i OPF. Inbäddadningsrefererade typsnitt Nås via Verktyg->Bädda in refererade typsnitt, finner detta verktyg alla typsnitt som refereras i boken, och om de inte redan är inbäddade, söker igenom datorn efter dem och bäddar in dem i boken, om de hittas. Se till att du har de nödvändiga Upphovsrätter för inbäddning av kommersiellt licensierade typsnitt, innan du gör detta. Använder delmängd av inbäddade typsnitt Nås via Verktyg->Använd delmängd av inbäddade typsnitt, reducerar detta verktyg alla typsnitt i boken att bara innehålla tecken för texten som faktiskt finns i boken. Detta minskar ofta storleken på typsnittsfiler med ~ 50%. Dock var medveten om att när typsnitten är en delmängd, om du lägger till ny text vars tecken är inte tidigare förekommer i den undergrupp typsnitt, kommer typsnittet inte att fungera för den nya texten. Så gör det bara som detta som sista steget i arbetsflödet. Förbättrad skiljeteckenhantering Konvertera oformaterad textstreck, ellips, citationstecken, flera bindestreck, etc. i sina typografisk korrekta motsvarigheter. Observera att algoritmen ibland kan generera felaktiga resultat, speciellt när apostrof i början av sammandragningar är inblandade. Nås via Verktyg->Förbättrad skiljeteckenhantering. Tar bort oanvända CSS-stilregler Ta bort alla oanvända CSS-regler från mallar och <style> etiketter. Några böcker som skapas från produktionsmallar kan ha ett stort antal extra CSS-regler som inte passar något materiellt innehåll. Dessa extra regler kan bromsa läsare som behöver bearbeta dem alla. Nås via Verktyg->Ta bort oanvända CSS. Justera HTML Detta verktyg omvandlar HTML som inte kan tolkas som XML till välformad XML. Det är mycket vanligt i böcker för att ha icke-välformad XML, så detta verktyg automatiserar helt enkelt processen med att fastställa en sådan HTML. Verktyget fungerar genom att tolka HTML med hjälp av HTML5-algoritmen (den algoritm som används i alla moderna webbläsare) och sedan omvandla resultatet till XML. Var medveten om att auto-rättning ibland kan ha kontraintuitivt 80 Kapitel 1. Avsnitten

85 resultat. Om du vill kan du använda Check Book-verktyget som diskuteras ovan för att hitta och manuellt korrigera problem i HTML. Nås via Verktyg->Laga HTML. Försköna filer This tool is used to auto-format all HTML and CSS files so that they look pretty. The code is auto-indented so that it lines up nicely, blank lines are inserted where appropriate and so on. Note that beautifying also auto-fixes broken HTML/CSS. Therefore, if you don t want any auto-fixing to be performed, first use the Check Book tool to correct all problems and only then run beautify. Accessed via Tools->Beautify all files. Observera: I HTML kan finnas text med betydande mängd mellanslag, via CSS-blank direktivet. Därför skulle försköning eventuellt ändra rendering av HTML. För att undvika detta så långt som möjligt, försköningsalgoritmen förskönar bara på blocknivå etiketter som innehåller andra blocknivåetiketter. Så, till exempel, text i en <p> tag kommer inte att ha sina mellanslag förändrade. Men en <body> etiketter som innehåller bara andra <p> och <div> etiketter kommer att förskönas. Detta kan ibland innebära att en viss fil inte kommer att påverkas av försköning eftersom den inte har lämpliga blocknivåetiketter. I sådana fall kan du prova olika försköning verktyg, som är mindre försiktiga, till exempel: HTML Tidy 26. Inför innehållsförteckning på raden Normalt i e-böcker, är innehållsförteckningen separat från huvudtexten och är vanligtvis nås via en speciell innehållsförteckningsknapp / meny i e-bokens läsenhet. Du kan också låta calibre automatiskt generera en innehållsförteckning på raden som blir en del av texten i boken. Det genereras utifrån definierade innehållsförteckningen. Om du använder det här verktyget flera gånger kommer varje anrop orsaka den tidigare skapade innehållsförteckningen på raden att bytas ut. Verktyget kan nås via Verktyg->Innehållsförteckning->Infoga en innehållsförteckning. Sätt semantik Detta verktyg används för att ställa in semantik i EPUB-filer. Semantik är helt enkelt, länkar i OPF som identifierar vissa platser i boken som har särskild betydelse. Du kan använda dem för att identifiera förordet, engagemang, omslag, innehållsförteckning, osv. Välj bara vilken typ av semantisk information som du vill ange och välj sedan platsen i boken som länken ska peka på. Detta verktyg kan nås via Verktyg->Sätt semantik. Filtrera stil Information Detta verktyg kan användas för att enkelt ta bort specificerade CSS-stilmallar från hela boken. Du kan tala om vilka egenskaper du vill ha bort, till exempel färg, bakgrundsfärg, radhöjd och det kommer att ta bort dem överallt de inträffar - stilmallar, <style> etiketter och radformateringsattribut. Efter borttag av stilinformationen, en sammanfattning av alla de ändringar som gjorts visas så att du kan se exakt vad som ändrats. Verktyget kan nås via Verktyg->Filtrera stilinformation Kontrollpunkt Checkpoints are a way to mark the current state of the book as special. You can then go on to do whatever changes you want to the book and if you don t like the results, return to the checkpointed state. Checkpoints are automatically created every time you run any of the automated tools described in the previous section Redigera e-böcker 81

86 Du kan skapa en kontrollpunkt via Redigera->Skapa kontrollpunkt. Och gå tillbaka till en tidigare kontrollpunkt med Redigera->Återställ till... Kontrollpunktsfunktionen är utöver det normala ångra/gör om mekanismen vid redigering av enskilda filer. Kontrollpunkter är särskilt användbara för när ändringar är spridda över flera filer i boken eller om du vill kunna återställa en stor grupp relaterade förändringar som helhet. Du kan se en lista över tillgängliga kontrollpunkter via Visa->Kontrollpunkter. Du kan jämföra det nuvarande läget i boken till en angiven kontrollpunkt med Jämföra e-böcker (sida 99)-verktyget - genom att välja kontrollpunkt av intresse och klicka på knappen Jämför. Revert to-knappen återställer boken till den valda kontrollpunkten, ångra alla ändringar efter den kontrollpunkten skapades. 82 Kapitel 1. Avsnitten

87 1.5. Redigera e-böcker 83

88 1.5.6 Panelen för direkt förhandsgranskning 84 Kapitel 1. Avsnitten

89 Förhandsgranska fil ger dig en direkt överblick över de olika filerna i förhandsgranskningspanelen som visar dig hitta de ändringar du gör direkt (med en sekund eller två av försening). När du redigerar HTML eller CSS-filer, är uppdateras förhandsgranskningspanelen automatiskt för att återspegla ändringarna. När du flyttar runt markören i editorn kommer förhandsgranskningspanelen spåra dess plats och visar motsvarande plats i boken. Genom att klicka i förhandsgranskningspanelen gör att markören i editorn placeras över element du klickade. Om du klickar på en länk som pekar på en annan fil i boken, kommer filen automatiskt att öppnas i redigerings- och förhandsgranskningspanelen. Du kan stänga av automatisk synkronisering av läget och direkt förhandsvisning av ändringar - med knapparna under förhandsgranskningspanelen. Den direkta uppdateringen av förhandsvisningspanelen händer bara när du inte aktivt skriver i editorn, för att inte vara störande eller sakta ner dig, väntar förhandsvisningen med att göra detta. Förhandsgranskningspanelen visar hur texten kommer att se ut när de visas. Dock är förhandsgranskningspanelen inte en ersättning för faktiskt testa din bok på en verklig läsenhet. Det är både mer och mindre kapabel än en verklig läsare. Det kommer att tolerera fel och slarviga språkmarkeringar mycket bättre än de flesta läsaranordningar. Det kommer också att inte visa dig sidmarginaler, sidbrytningar och inbäddade typsnitt som använder typsnittsersättning. Använd förhandsgranskningspanelen medan du arbetar på boken, men när du är klar, granska den i en verklig läsenhet eller programvaruemulator. Observera: Förhandsgranskningspanelen stöder inte inbäddade typsnitt om namnet på typsnittet inuti typsnittsfil inte passar namnet i -regeln. Du kan använda kontrollera bok-verktyg för att snabbt hitta och åtgärda sådana problem typsnitt. Dela upp HTML-filer Ett, kanske icke uppenbara, är användningen av förhandsgranskningspanelen för att dela upp långa HTML-filer. Medan du tittar på filen som du vill dela, klicka på Delat läge-knappen under förhandsgranskningspanelen. Sedan helt enkelt flytta musen till den plats där du vill dela filen och klicka. En tjock grön linje kommer att visa dig exakt var uppdelningen kommer att hända när du flyttar musen. När du har hittat den plats du vill, klicka och delning kommer att utföras. Filuppdelningen kommer automatiskt uppdatera alla länkar och referenser som pekade in i den nedre halvan av filen och kommer att öppna den nyligen delade filen i en editor. Du kan också dela upp en enda HTML-fil på flera platser automatiskt, genom att högerklicka inne i filen i editorn och välja Dela upp på flera ställen. Detta gör att du enkelt delar upp en stor fil på alla rubriketiketter eller alla etiketter som har en viss klass och så vidare Redigera e-böcker 85

90 1.5.7 Direkta CSS-panelen Gälllande CSS visar alla stilregler som gäller för etiketten som du för närvarande redigerar. Namnet på etiketten, tillsammans med dess radnummer i editorn visas, följt av en lista med passande stilregler. Det är ett bra sätt att snabbt se vilken stilregler som gäller för varje etikett. Visningen har också klickbara länkar (i blått), som tar dig direkt till den plats där stilen definierades, om du vill göra några ändringar i stilregler. Stilregler som gäller direkt på etiketten, liksom regler som ärvs från överetiketter visas. Panelen visar även hur de slutligen beräknade stilar för etiketten är. Egenskaper i listan som ersätts av högre prioriteringsregler visas med en linje genom dem. Du kan aktivera CSS-panelens direktvisning via Visa->Gällande CSS. 86 Kapitel 1. Avsnitten

91 1.5.8 Diverse verktyg Det finns några fler verktyg som kan vara användbara när du redigerar boken. Innehållsförteckningsvyn Innehållsförteckningsvyn visar aktuell innehållsförteckning i boken. Genom att dubbelklicka på en post öppnar den plats som posten pekar på i en editor. Du kan högerklicka för att redigera innehållsförteckningen, uppdatera vyn eller expandera / komprimera alla objekt. Åtkomst till denna vy via Visa->Innehållsförteckning. Kontroll av stavning av ord i boken Du kan köra en stavningskontroll via Verktyg->Kontrollera stavning Redigera e-böcker 87

92 Ord visas med antalet gånger de förekommer i boken och språket ordet tillhör. Språkinformation tas från böckernas metadata och från lang-attribut i HTML-filer. Detta gör att stavningskontrollen fungerar bra även med böcker som innehåller text på flera språk. Till exempel i följande HTML utdrag, ordet färgen kommer att kontrolleras med hjälp av amerikansk engelska och ordet färg med brittisk engelska: <div lang="en_us">color <span lang="en_gb">colour</span></div> Observera: Du kan dubbelklicka på ett ord för att markera nästa förekomst av det ordet i editorn. Detta är användbart om du vill manuellt redigera ordet eller se vilket sammanhang det är i. För att ändra ett ord, helt enkelt dubbelklicka en av de föreslagna alternativa stavningar på höger eller skriv in ditt eget korrigerade stavning och klicka på Ändra valda ord till-knappen. Detta kommer att ersätta alla förekomster av ordet i boken. Du kan också högerklicka på ett ord i huvud ordlistan ändra ordet lämpligen från högerklicksmenyn. Du kan låta stavningskontrollen ignorerar ett ord för den aktuella sessionen genom att klicka på knappen Ignorera. Du kan även lägga till ett ord i ordlistan genom att klicka på Lägg till ordlista. Stavningskontrollen har stöd för flera ordlistor, så att du kan välja den ordlista du vill att ordet läggs till. Du kan även få stavningskontrollen visa alla ord i din bok, inte bara de felstavade sådana. Detta är användbart för att se vilka ord är vanligast i din bok och köra en enkel sökning och ersätta på enskilda ord. Observera: Om du gör några ändringar i boken genom att redigera filer medan stavningskontroll-verktyget är öppet, ska du klicka på knappen Uppdatera i stavningskontroll-verktyget. Om du inte gör detta och fortsätter att använda stavningskontroll -verktyget, kan du förlora de ändringar du har gjort i editorn. Lägga till nya ordböcker Stavningskontrollen kommer med inbyggda ordlistor för engelska och spanska. Du kan installera egna ordlistor via Redigera->Inställningar->Redigera inställningar->hantera stavningsordlistor. Stavningskontrollen kan använda ordböcker från Openoffice-programmet (i.oxt format). Du kan ladda ner dessa ordlistor från The OpenOffice Extensions repository 27 Infoga specialtecken Du kan infoga tecken som är svåra att skriva med hjälp av Redigera->Inforga specialtecken-verktyget. Detta visar alla Unicode-tecken, klicka på det tecken du vill skriva. Om du håller Ctrl samtidigt som du klickar, fönstret kommer stänga sig själv efter att det valda tecknet förts in. Detta verktyg kan användas för att infoga specialtecken i huvudtexten eller i någon annan del av användargränssnittet, till exempel sök och ersätt-verktyg. Eftersom det finns en hel del tecken kan du definiera dina egena Favorit karaktärer, som kommer att visas först. Högerklicka på ett tecken för att markera den som favorit. Du kan också högerklicka på en karaktär i favoriter för att ta bort den från favoriter. Slutligen kan du arrangera ordningen på tecknen i favoriter genom att klicka på arrangera favoriter knappen och sedan dra och släppa tecknen i favoriter runt omkring. Du kan också skriva direkt i specialtecken med hjälp av tangentbordet. För att göra detta skriver du Unicode-koden för tecknet (i hexadecimal) och tryck sedan på Alt+X-tangenten som omvandlar tidigare skrivit koden i motsvarande tecken. Till exempel, för att skriva ÿ du skulle skriva ff och sedan Alt + X. För att skriva ett fast mellanslag som du skulle använda a0 och sedan Alt+X, för att skriva den horisontella ellips du skulle använda 2026 och Alt+X och så vidare. Slutligen kan du skriva in specialtecken med hjälp av HTML-enheter. Till exempel, att skriva kommer att ersättas av ett hårt mellanslag när du skriver semikolon. Bytet sker bara när du skriver semikolon Kapitel 1. Avsnitten

93 Kodinspektörvyn Denna vy visar HTML-kodning och CSS som gäller för det aktuella elementet av intresse. Du öppnar den genom att högerklicka på en plats i förhandsvisningspanelen och välja Granska. Det gör att du kan se HTML-kodning för det elementet och ännu viktigare, de CSS-format som gäller för den. Du kan till och med dynamiskt redigera stilar och se vilken effekt ändringarna har direkt. Observera att redigera stilar faktiskt inte gör ändringar i bokens innehåll, det innebär bara ett snabb experimenterande. Förmågan att redigera direkt inne i inspektören är under utveckling. Checking external links You can use this tool to check all links in your book that point to external websites. The tool will try to visit every externally linked website, and if the visit fails, it will report all broken links in a convenient format for you to fix. Ordna filer i mappar efter typ Ofta när du redigerar EPUB-filer som du får från någonstans, kommer du att finna att filerna inuti EPUB är ordnade på måfå, i olika undermappar. Detta verktyg gör det möjligt att automatiskt flytta alla filer i undermappar baserat på deras typer. Åtkomst det via Verktyg->Ordna i mappar. Observera att detta verktyg ändrar bara hur filerna är ordnade inne i EPUB, det betyder inte att det ändras hur de visas i filbläddraren. Importera filer i andra e-boksformat som EPUB Editorn inkluderar möjligheten att importera filer i vissa andra e-boksformat direkt som en ny EPUB, utan att gå igenom en full konvertering. Detta är särskilt användbart för att direkt skapa EPUB-filer från dina egna handredigerade HTML-filer. Du kan göra detta via Fil->Importera en HTML- eller DOCX-fil som en ny bok. Funktionsläge för Sök & Ersätt i editorn Verktyget Sök & Ersätt i editorn stöder ett funktionsläge. I detta läge kan du kombinera reguljära uttryck (see Allt om att använda reguljära uttryck i calibre (sida 205)) med godtyckliga kraftfulla python-funktioner för att göra alla typer av avancerad textbehandling. I vanliga regexp läget för sök och ersätt kan du ange både ett reguljärt uttryck för att söka efter såväl som en mall som används för att ersätta alla funna träffar. I funktionsläge, i stället för använda en fast mall, kan du ange en godtycklig funktion i programmeringsspråket python 28. Detta gör att du kan göra massor av saker som inte är möjligt med enkla mallar. Tekniker för att använda funktionsläge och syntaxen beskrivs med hjälp av exempel, som visar dig hur du skapar funktioner för att utföra allt mer komplexa uppgifter Redigera e-böcker 89

94 Automatiskt justera skiftläget med rubrikerna i dokumentet Här kommer vi att utnyttja en av de inbyggda funktioner i editorn för att automatiskt ändra skiftläget för all text i rubriketiketter till versal: Find expression: <([Hh][1-6])[^>]*>.+?</\1> För funktionen, helt enkelt välj inbyggd funktion Titelskiftlägestext. Det kommer att ändra titlar som ser ut: <h1>någon TITEL</h1> till <h1>någon Titel</h1>. Det kommer även att fungera om det finns andra HTML-etiketter inuti rubriketiketter. Din första egna funktion - smarta bindestreck Den verkliga kraften i funktionsläge kommer från att kunna skapa egna funktioner för att bearbeta text på godtyckliga sätt. Verktyget Snygga till Skiljetecken i editorn lämnar enskilda bindestreck i fred, så att du kan använda denna funktion för att ersätta dem med em-streck. För att skapa en ny funktion, klickar du bara på knappen Skapa/Redigera för att skapa en ny funktion och kopiera python-koden från nedan. def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): return match.group().replace('--', '--').replace('-', '--') Varje Sök och Ersätt anpassad funktion måste ha ett unikt namn och består av en python-funktion som heter ersätta, som accepterar alla argument som visas ovan. För tillfället ska vi inte oroa för alla olika argument till replace()- funktionen. Bara fokusera på match argumentet. Det representerar en träff när man kör en sök och ersätt. Dess fulla dokumentation finns tillgänglig här 29. match.group() helt enkelt tillbaka all den passande texten och allt vi gör är att ersätta bindestreck i den texten med em-streck, först ersätt dubbla bindestreck och sedan enstaka bindestreck. Använd denna funktion med att hitta reguljära uttrycket: >[^<>]+< Och det kommer att ersätta alla bindestreck med em-streck, men bara i själva texten och inte inne i HTMLetikettdefinitioner. Kraften i funktionsläge - med hjälp av en stavningsordlistan att fixa felaktigt avstavade ord Ofta innehåller böcker skapade av genomsökningar av tryckta böcker felavstavade ord ord som delades vid slutet av raden på den utskrivna sidan. Vi kommer att skriva en enkel funktion för att automatiskt hitta och åtgärda sådana ord. import regex from calibre import replace_entities from calibre import prepare_string_for_xml def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): def replace_word(wmatch): # Try to remove the hyphen and replace the words if the resulting # hyphen free word is recognized by the dictionary without_hyphen = wmatch.group(1) + wmatch.group(2) if dictionaries.recognized(without_hyphen): return without_hyphen return wmatch.group() # Search for words split by a hyphen text = replace_entities(match.group()[1:-1]) # Handle HTML entities like & corrected = regex.sub(r'(\w+)\s*-\s*(\w+)', replace_word, text, flags=regex.version1 regex.unic return '>%s<' % prepare_string_for_xml(corrected) # Put back required entities Använd denna funktion med samma uttryck som tidigare, det vill säga: Kapitel 1. Avsnitten

95 >[^<>]+< Och det kommer magiskt fixa alla felavstavade ord i texten i boken. Huvudtricket är att använda en av de användbara extra argument till replace-funktionen dictionaries. Detta syftar på de ordlistor editorn själv använder för att stavningskontrollera text i boken. Vad denna funktion gör är att leta efter ord separerade med ett bindestreck, tar bort bindestrecket och kontrollerar om ordlistan godkänner sammansatt ordet, om den gör det, ersättas de ursprungliga orden med de bindestrecksfria sammansatta orden. Observera att en begränsning med denna teknik är att det kommer bara att fungera för enspråkiga böcker, därför att, som standard använder, dictionaries.recognized() det huvudsakliga språket i boken. Numrera sektioner automatiskt Nu kommer vi att se något lite annorlunda. Anta att din HTML-fil har många sektioner, var och en med en rubrik i en <h2> etikett som ser ut som <h2>någon text</h2>. Du kan skapa en anpassad funktion som automatiskt numrerar dessa rubriker med avsnittsnummer i följd, så att de ser ut <h2>1. Någon text</h2>. def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): section_number = '%d. ' % number return match.group(1) + section_number + match.group(2) # Ensure that when running over multiple files, the files are processed # in the order in which they appear in the book replace.file_order = 'spine' Använd det för att hitta uttryck: (?s)(<h2[^<>]*>)(.+?</h2>) Placera markören i början av filen och klicka Ersätt alla. Denna funktion använder andra användbara extra argumenten för replace(): number argumentet. När alternativet Ersätt alla används räknas numret upp automatiskt för varje efterföljande träff. En annan nyhet är att använda replace.file_order inställning som till spine innebär att om sökningen körs på flera HTML-filer, bearbetas filerna i den ordning som de visas i boken. Se Välj filordning när flera HTML-filer körs (sida 94) för detaljer. Skapa innehållsförteckning automatiskt Slutligen, låt oss prova något lite mer ambitiöst. Antag att din bok har rubriker i h1 och h2 etiketter som ser ut som <h1 id=someid">någon Text</h1>. Vi kommer automatiskt generera en HTML-innehållsförteckning baserad på dessa rubriker. Skapa den anpassade funktionen nedan: from calibre import replace_entities from calibre.ebooks.oeb.polish.toc import TOC, toc_to_html from calibre.gui2.tweak_book import current_container from calibre.ebooks.oeb.base import xml2str def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): if match is None: # All matches found, output the resulting Table of Contents. # The argument metadata is the metadata of the book being edited if 'toc' in data: toc = data['toc'] root = TOC() for (file_name, tag_name, anchor, text) in toc: parent = root.children[-1] if tag_name == 'h2' and root.children else root parent.add(text, file_name, anchor) toc = toc_to_html(root, current_container(), 'toc.html', 'Table of Contents for ' + metad 1.5. Redigera e-böcker 91

96 print (xml2str(toc)) else: print ('No headings to build ToC from found') else: # Add an entry corresponding to this match to the Table of Contents if 'toc' not in data: # The entries are stored in the data object, which will persist # for all invocations of this function during a 'Replace All' operation data['toc'] = [] tag_name, anchor, text = match.group(1), replace_entities(match.group(2)), replace_entities(m data['toc'].append((file_name, tag_name, anchor, text)) return match.group() # We don't want to make any actual changes, so return the original matc # Ensure that we are called once after the last match is found so we can # output the ToC replace.call_after_last_match = True # Ensure that when running over multiple files, this function is called, # the files are processed in the order in which they appear in the book replace.file_order = 'spine' Och använd den med sökuttrycket: <(h[12]) [^<>]* id=['"]([^'"]+)['"][^<>]*>([^<>]+) Kör sökningen på Alla textfiler och vid slutet av sökningen, kommer ett fönster dyka upp med Felsök utdata från den funktion vilken kommer ha HTML-innehållsförteckning, klar att klistras in i toc.html. Funktionen ovan är kraftigt kommenterad, så det borde vara lätt att följa. Det viktigaste nya funktionen är att använda ett annan användbart extra argument till replace() funktion, data objektet. data objektet är en python dict som kvarstår mellan alla efterföljande anrop av replace() under en enda Ersätt alla operation. En annan ny funktion är användning av call_after_last_match genom att sätta denna till True på replace() funktionen innebär att editorn kommer anropa replace() en extra gång efter alla träffar hittats. För detta extra anrop, kommer träffobjektet vara None. Det var bara en demonstration för att visa styrkan av funktionsläge, om du verkligen behöver skapa en innehållsförteckning från rubriker i din bok, kommer du ha större nytta av att använda det dedikerade innehållsförteckningsverktyget i Vertyg->Innehållsförteckning. Alla funktionsläge funktioner måste vara python-funktioner som heter replace med föl- API för funktionsläget jande signatur: def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): return a_string När en sök/ersätt körs, för varje träff som hittas kommer funktionen replace() att kallas, den måste returnera ersättningssträngen för träffen. Om inga ersättare finns att göra, bör den returnera tillbaka, match.group() som är den ursprungliga strängen. De olika argument till replace() funktion dokumenteras nedan. match argumentet match argumentet representerar den aktuella funna träffen. Det är ett python objekt 30. Det mest användbara metoden är group() som kan användas för att få den passande texten motsvarar enskilda fångstgrupper i reguljära sökuttrycket. number argumentet number argumentet är numret på den aktuella träffen. När du kör Ersätt alla, kommer varje efterföljande träff få replace() att anropas med ett ökande nummer. Den första träffen har nummer Kapitel 1. Avsnitten

97 file_name argumentet Detta är filnamnet på den fil i vilken den aktuella träffen hittades. När du söker inne i markerad text file_name är tom. file_name i kanonisk form, en relativ sökväg till roten av boken, med hjälp av / som sökvägsavgränsare. metadata argumentet This represents the metadata of the current book, such as title, authors, language, etc. It is an object of class calibre.ebooks.metadata.book.base.metadata (sida 201). Useful attributes include, title, authors (a list of authors) and language (the language code). dictionaries argumentet Detta innebär insamling av ordlistor som används för stavningskontroll den aktuella boken. en mest användbara metoden dictionaries.recognized(word) vilken som kommer returnera True om givet inord känns igen av ordlista för den aktuella bokens språk. data argumentet Detta en enkel python dict. När du kör Ersätt alla, kommer varje efterföljande träff orsaka replace() att kallas med samma dict som data. Du kan alltså använda den för att lagra godtyckliga data mellan anrop av replace() under en Replace All operation. functions argumentet functions argumentet ger dig tillgång till alla andra användardefinierade funktioner. Detta är användbart för kodåteranvändning. Du kan definiera nyttofunktioner på ett ställe och återanvända dem i alla dina andra funktioner. Anta till exempel att du skapar ett funktionsnamn My Function så här: def utility(): # do something def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):... Sedan i en annan funktion kan du accessa utility() funktionen så här: def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): utility = functions['my Function']['utility']... Du kan även använda funktionsobjekt för att lagra beständiga data, som kan återanvändas av andra funktioner. Till exempel kan du ha en funktion som när det körs med Ersätt alla samlar några uppgifter och en annan funktion som använder det när det körs i efterhand. Betrakta följande två funktioner: # Function One persistent_data = {} def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):... persistent_data['something'] = 'some data' # Function Two def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): persistent_data = functions['function One']['persistent_data']... Felsöka dina funktioner Du kan felsöka de funktioner som du skapar med hjälp av standard print() funktionen från python. Utskrift från print kommer visas i ett extrafönster efter att sök/ersätt är klar. Du såg ett exempel på att använda print() för att mata ut en hel innehållsförteckning ovan Redigera e-böcker 93

98 Välj filordning när flera HTML-filer körs När du kör Ersätt alla på flera HTML filer, beror ordningen för vilka filer behandlas på vilka filer du har öppnat för redigering. Du kan tvinga sökningen att behandla filer i den ordning de dyker upp genom att sätta file_order attributet på din funktion, så här. def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):... replace.file_order = 'spine' file_order accepterar två värden, spine och spine-reverse vilka får sökprocessen att behandla multipla filer i den ordning de dyker upp i boken, antingen framlänges eller baklänges. Med din funktion kallad en extra tid efter den sista träffen hittas Ibland, som i automatisk skapa innehållsförteckning som i exemplet ovan, är det användbart att din funktion anropas en extra gång efter sista träffen hittades. Du kan göra detta genom att sätta call_after_last_match attributet på din funktion, så här: def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):... replace.call_after_last_match = True Snuttar Den kaliber Redigeraren stöder snuttar. En snutt är ett stycke text som antingen återanvänds ofta eller innehåller mycket överflödig text. Editorn kan du infoga en snutt med endast ett fåtal knapptryckningar. Anta till exempel att du ofta befinner dig sätta in etikettlänk när du redigerar HTML-filer, då kan du helt enkelt skriva <a i editorn och trycka Control+J. Editorn kommer att expandera den till: <a href="filename"></a> Inte bara det, kommer ordet filnamn väljas, med markören placeras över det, så att du enkelt kan skriva i den verkliga filnamnet, använder redaktörens fiffiga Komplettera automatiskt (sida 98)-funktionen. Och när du är klar att skriva filnamnet tryck Control+J igen och markören hoppar till positionen i mellan <a> etiketter så att du enkelt kan skriva in texten för länken. Snuttsystemet i editorn är mycket sofistikerad, finns det några inbyggda snuttar och du kan skapa din egen för att passa din redigeringsstil. Följande diskussion av de inbyggda snuttar bör hjälpa illustrera kraften i snuttsystemet. Observera: Du kan också använda snuttar i textinmatningsfält i Sök och ersätt-panelen, dock platshållare (med Control+J för att hoppa runt) kommer inte att fungera. Inbyggda snuttar De inbyggda snuttar beskrivs nedan. Observera att du kan åsidosätta dem genom att skapa egna snuttar med samma textutlösare. Infogar fyllnadstext [Lorem] Den första inbyggda snutten (kodavsnitt), och det enklaste används för att infoga fyll text i ett dokument. Fyllnadstexten är hämtad från De finibus bonorum et malorum 31 ett filosofiskt verk av Cicero (översatt till engelska). För att använda den helt enkelt skriva Lorem i en HTML-fil och tryck Control+J. Det kommer att ersättas av ett par stycken av fyllnadstext. Definitionen av denna snutt är mycket enkel, textutlösaren definieras som Lorem och mallen definieras helt enkelt som den bokstav texten som ska infogas. Du kan enkelt anpassa den för att använda din favorit form av fyllnadstext Kapitel 1. Avsnitten

99 Infoga en självstängande HTML-etikett [<>] Nu ska vi titta på ett enkelt exempel på den kraftfulla begreppet platshållare. Säg att du vill infoga självstängande etiketten <hr/>. Skriv bara <> och tryck Control+J så kommer editorn expandera snutten till: < /> Här, representerar symbolen den aktuella markörpositionen. Du kan sedan skriva hr och trycka Control+J för att flytta markören till efter slutet av etiketten. Denna snutt definieras som: Trigger: <> Template: <$1/>$2 Platshållare är helt enkelt dollar ($)-tecken följt av ett nummer. När snutten utökas genom att trycka Control+J är markören placerad vid den första platshållaren (platshållaren med det lägsta numret). När du trycker på Control+J igen markören hoppar till nästa platshållare (platshållaren med nästa högre nummer). Infoga en HTML-länketikett [<a] HTML-länketiketter delar alla en gemensam struktur. De har ett href-attribut och lite text mellan start- och slutetiketten. En snutt att skriva in dem mer effektiva kommer att introducera oss till några fler funktioner i platshållare. För att använda denna textsnutt, skriv helt enkelt <a och tryck Control+J. Editorn kommer att utöka detta till: <a href="filename "></a> Inte bara det, kommer ordet filnamn väljas, med markören placeras över det, så att du enkelt kan skriva i den verkliga filnamnet, använder editorns fiffiga Komplettera automatiskt (sida 98)-funktionen. Och när du är klar att skriva filnamnet trycker Control+J igen och markören hoppar till positionen i mellan <a> etiketter så att du enkelt kan skriva in texten för länken. När du är klar skriver texten, tryck Control+J igen för att hoppa till positionen efter den avslutande etiketten. Denna snutten definieras som: Trigger: <a Template: <a href="${1:filename}">${2*}</a>$3 Det finns ett par nya funktioner här. Först $1 platshållare har blivit mer komplex. Den innehåller nu en del standardtext (ordet filename Om en platshållare innehåller standardtext, är standardtexten i stället för platshållaren när snutten utvidgas. Även när du hoppar till en platshållare med standardtext som använder Control+J, väljs standardtexten. På detta sätt kan du använda standardtexten som en påminnelse till dig att fylla i viktiga delar av mallen. Du kan ange standardtext för en platshållare genom att använda syntaxen: ${<number>:default text}. Den andra nyheten är att den andra platshållaren har en asterisk efter det (${2*}). Det innebär att all text som valdes innan expansion ersätts mallen av platshållaren. För att se detta i handling, markera lite text i editorn, tryck Control+J, typ <a och tryck Control+J igen, mallen kommer att utökas till: <a href="filename">whatever text you selected</a> Infoga en HTML-bildetikett [<i] Detta är mycket likt att infoga en HTML-länk, som vi såg ovan. Det gör att du snabbt kan mata in en <img src=filenameält=description"/>-etikett och hoppa mellan src och alt attribut: Trigger: <i Template: <img src="${1:filename}" alt="${2*:description}" />$3 Infoga en godtycklig HTML-etikett [<<] Detta gör att du kan sätta in en godtycklig full HTML-etikett (eller linda in tidigare valda texten i etiketten). För att använda den, skriv helt enkelt << och tryck Control+J. Editorn kommer att expandera den till: 1.5. Redigera e-böcker 95

100 < ></> Skriv etikettnamnet, till exempel: span och tryck Control+J, som kommer att resultera i: <span> </span> Du kommer att notera att den avslutande etiketten automatiskt har fyllts med span. Detta uppnås med ännu ett annat särdrag av platshållare, spegling. Spegling betyder helt enkelt att om du anger provplatshållaren mer än en gång i en mall, den andra och alla senare positioner kommer automatiskt fyllas i med vad du skriver i det första positionen, när du trycker Control+J. Definitionen för denna snutten är: Trigger: << Template: <$1>${2*}</$1>$3 Som ni kan se, har den första platshållaren ($1) specificerats två gånger, andra gången i den avslutande etiketten, som helt enkelt kommer att kopiera vad du skriver i öppningsetiketten. Infoga en godtycklig HTML-etikett med ett klassattribut [<c] Detta är mycket likt infogningen av godtycklig etikett i exemplet ovan, förutom att det förutsätter att du vill ange en klass för etiketten: Trigger: <c Template: <$1 class="${2:classname}">${3*}</$1>$4 Detta gör att du kan först skriva etikettnamnet, tryck Control+J, skriv klassnamnet, tryck Control+J, skriv innehållet i etiketten och tryck Control+J en sista gång för att hoppa ur etiketten. Den avslutande etiketten kommer att automatiskt fyllas. Skapa dina egna snuttar Snuttar verkligen lysa eftersom du kan skapa dina egna för att passa din redigeringsstil. För att skapa egna snuttar gå till Redigera->Inställningar->Editorinställningar->Hantera snuttar i editorn. Detta kommer att ta fram en lättanvänd dialogruta för att hjälpa dig att skapa dina egna snuttar. Klicka bara på Lägg snuttar-knappen och du kommer att se en dialogruta som ser ut: 96 Kapitel 1. Avsnitten

101 Först ge din snutt ett namn, något beskrivande, för att hjälpa till att identifiera (text)snutten i framtiden. Ange sedan textutlösare. En textutlösare är helt enkelt den text som du måste skriva i editorn innan du trycker Control+J för att expandera snutten. Ange sedan snuttmallen. Du bör börja med en av exemplet ovan och ändra det för att passa dina behov. Slutligen, ange vilka filtyper du vill att snutten ska vara aktiv för. På så sätt kan du ha flera snuttar med samma textutlösare som fungerar olika i olika filtyper. Nästa steg är att testa din nyskapade snutt. Använd Test-rutan längst ner. Skriv in textutlösaren och tryck Control+J att utöka snutten och hoppa mellan platshållarna. Rapportverktyget Editorn har ett trevligt *Rapport*verktyg (via: guilabel: Verktyg->Reporter) som visar sammanfattningar av filer, bilder, ord, tecken och stilar som används i boken. Varje rad i rapporten är hyperlänkad. Dubbel klicka på en linje hoppar till den plats i boken där objektet används eller definieras (i förekommande fall) Till exempel i Länkar vy kan du dubbelklicka poster på Källa kolumnen för att hoppa till där länken är definierad och poster i Mål kolumnen för att hoppa till där länken pekar Redigera e-böcker 97

102 1.5.9 Speciella funktioner i kodeditorn calibres HTML-editor är mycket kraftfull. Den har många funktioner som gör redigering av HTML (och CSS) lättare. Syntaxmarkering HTML-editorn har mycket sofistikerad syntaxmarkering. Funktioner inkluderar: Texten inne i fet, kursiv och rubriketiketter görs fet/kursiv När du flyttar markören genom HTML, är passande HTML-etikettpar markerade Felaktig HTML markeras med en röd understrykning Stavfel i texten inuti HTML-etiketter och attribut som titel är markerade. Stavningskontrollen är språkmedveten, baserat på värdet av lang-attributet av den aktuella etiketten och det övergripande bokspråket. CSS inbäddade inuti <style>-etiketter är markerad Specialtecken som kan vara svåra att skilja såsom icke-brytande mellanslag, olika typer av bindestreck etc. är markerade. Länkar till andra filer i <a>-etiketter, <img>- och <link>-etiketter har alla filnamnen markerade. Om filnamnet de pekar på finns inte, markeras filnamnet med en röd understrykning. Sammanhangsberoende hjälp Du kan högerklicka på ett HTML-etikettnamn eller ett CSS-egenskapsnamn för att få hjälp för den etiketten eller egenskapen. Du kan också hålla nere Ctrl-tangenten och klicka på godtyckligt filnamn inuti en länketikett för att automatiskt öppna filen i editorn. Komplettera automatiskt När du redigerar en e-bok, är en av de mest tråkiga uppgifter att skapa länkar till andra filer inne i boken, eller till CSS-mallar eller bilder. Du måste räkna ut rätt filnamn och relativ sökväg till filen. Editorn kompletterar automatiskt för att göra det lättare. 98 Kapitel 1. Avsnitten

103 När du skriver ett filnamn, tar editorn automatiskt fram förslag. Använd bara Tab-tangenten för att välja rätt filnamn. Editorn erbjuder även förslag på länkar som pekar på ett ankare inuti en annan HTML-fil. När du har skrivit tecknet #, kommer editorn visa en lista över alla ankare i målfilen, med en liten snutt av text för att hjälpa dig välja rätt ankare. Observera att till skillnad från de flesta övriga system med automatisk komplettering, använder editorns kompletteringssystem delsekvensträffar. Detta innebär att du behöver bara skriva bara två eller tre tecken från någonstans i filnamnet att slutföra filnamnet. Till exempel, låt säga att du önskar filnamnet../images/arrow1.png, kan du helt enkelt skriva ia1 och tryck Tab för att slutföra filnamn. När du söker efter träffar, prioriterar kompletteringssystemet tecken som är i början av ett ord, eller omedelbart efter en sökvägsavskiljare. När man vänjer sig detta system, finner du det sparar mycket tid och ansträngning. Snuttar calibre editorn stöder snuttar. En snutt är ett stycke text som antingen återanvänds ofta eller innehåller mycket överflödig text. Editorn kan du infoga en snutt med endast ett fåtal knapptryckningar. De snuttar är mycket kraftfull, med många funktioner, som platshållare som du kan hoppa mellan, automatisk spegling av upprepad text och så vidare. För mer information se Snuttar (sida 94). 1.6 Jämföra e-böcker calibre innehåller en integrerad e-boks jämförelseverktyg som kan användas för att se vad som har förändrats inuti en e-bok efter redigering eller konvertera den. Det kan jämföra böcker i epub-och AZW3 format. För att använda den, antingen öppna e-bok i verktyget för Redigera e-böcker (sida 70) och sedan klicka på Fil->Jämför med annan bok eller använd Bokinformation (sida 16)-panelen. Om du gör en konvertering från EPUB till EPUB, kommer den ursprungliga EPUB-filen sparas som ORIGINAL_EPUB. Högerklicka på ORIGINAL_EPUB posten i Bokdetaljpanelen och välj Jämför med EPUB-format. Jämförelseverktyg som öppnas kommer att se ut som skärmdumpen nedan. Det visas skillnader i text, färger och bilder i de valda böckerna Jämföra e-böcker 99

104 1.6.1 Förstå jämförelsevyn Som framgår av skärmdumpen ovan, jämförelse vyn visar skillnaderna mellan de två böcker sida vid sida. Endast skillnaderna, med några rader av sammanhang runt dem visas. Detta gör det enkelt att snabbt se bara vad som har ändrats i ett stort dokument som en bok. Tillagd text visas med en grön bakgrund, borttagen text med en röd bakgrund och ändrad text med en blå bakgrund. Radnummer för all text som förändrats visas på sidorna, vilket gör det lätt att gå till en viss förändring i editorn. När du öppnar jämförelseverktyget inifrån editorn, kan du också dubbelklicka på en rad i den högra panelen för att gå till den raden i editorn automatiskt. En användbar teknik när man jämför böcker är att tala om för jämförelseverktyget för att försköna de text-och Stil-filer innan du beräknar skillnader. Detta kan ofta resultera i renare och lättare att följa skillnader. Det gör du genom att klicka på Alternativ-knappen i det nedre högra och välj Försköna filer innan man jämför dem. Observera att förskönande kan 100 Kapitel 1. Avsnitten

105 ibland ha oönskade effekter, eftersom det kan orsaka ogiltig uppmärkning ändras för att göra det giltigt. Du kan också ändra antalet rader av sammanhang visade runt skillnader via Inställningar knappen. Du kan söka efter all text i skillnaderna via sökfältet längst ner. Du måste ange vilken panel för att söka, Vänster eller Höger Hur att starta jämförelseverktyget Jämförelse verktyget är mest användbart när du har två versioner av samma bok och du vill se vad som skiljer mellan dem. För detta ändamål finns det flera sätt att starta verktyget. Jämför två e bokfiler Öppna den första filen i Redigera e-böcker (sida 70) verktyget. Klicka nu på Fil->Jämför med en annan bok och välj den andra filen (det måste vara i samma format som den första). Jämförelsen vyn öppnas med filen som redigeras till höger och den andra filen till vänster. Jämför ORIGINAL_FMT med FMT När du gör en omvandling i calibre från en FMT till sig själv, den ursprungliga filen sparas som ORIGINAL_FMT. Du kan se vad som har ändrats genom omvandling, genom att högerklicka på ORIGINAL_FMT posten i Bokinformation (sida 16) panelen i huvud calibre fönstret och välj Jämför med FMT. Jämförelsevyn öppnas med ORIGINAL_FMT till vänster och FMT till höger. Jämför en kontrollpunkt för det aktuella tillståndet av boken under redigering Redigera e-böcker (sida 70) verktyget har en mycket användbar funktion, som kallas Kontrollpunkt (sida 81). Detta gör att du kan spara det aktuella tillståndet i boken som en namngiven kontrollpunkt, som du kan återgå till, om du inte gillar de ändringar du har gjort sedan skapa kontrollpunkten. Kontrollpunkter skapas också automatiskt när du utför olika automatiska åtgärder i editorn. Du kan se listan med kontrollpunkter genom att gå till Visa->Kontrollpunkter och använd sedan Jämför knappen för att jämföra boken på den valda kontrollpunkten med det aktuella läget. Jämförelsen Verktyget visar kontrollpunkt till vänster och det aktuella läget till höger. 1.7 Redigera e-boks metadata Innehåll Redigera metadata av en bok i taget (sida 102) Nedladdning av metadata (sida 102) Hantering bokformat (sida 102) Allt om omslag (sida 102) Redigera metadata för flera böcker på en gång (sida 102) Sök och ersätt (sida 103) Massnerladdning av metadata (sida 104) E-böcker finns i alla former och storlekar, och oftare än inte, (saker som titel / författare / serie / utgivare) är ofullständig eller felaktig sin metadata. Det enklaste sättet att ändra metadata i calibre är att helt enkelt dubbelklicka på en post och skriv rätt ersättare. För mer sofistikerade, power redigering använda redigeringsmetadataverktyg som diskuteras nedan Redigera e-boks metadata 101

106 1.7.1 Redigera metadata av en bok i taget Klicka på den bok du vill redigera och klicka sedan på Redigera metadata-knappen eller tryck på E nyckel. En dialogruta öppnas som låter dig redigera alla aspekter av metadata. Den har olika funktioner för att göra redigeringen snabbare och effektivare. En lista över de vanligaste tips: Du kan klicka knappen mellan titel och författare för att växla dem automatiskt. Du kan klicka på knappen bredvid författaren sorterings för att ha calibre automatiskt fylla i med hjälp av sorteringsvärden som lagrats med varje upphovsman. Använd Hantera Författare dialog att se och ändra författarnas sorteringsvärden. Denna dialogruta kan öppnas genom att klicka och hålla in knappen bredvid författaren sortera. Du kan klicka på knappen bredvid etiketter att använda Etikett Editor för att hantera etiketter i samband med boken. ISBN rutan kommer att ha en röd bakgrund, om du anger ett ogiltigt ISBN. Det kommer att vara grönt för giltiga ISBN Författaren sorterings rutan blir röd om författaren sorterings värdet skiljer sig från det som calibre tycker att det borde vara. Nedladdning av metadata Den trevligaste funktionen i dialogrutan redigera metadata är dess förmåga att automatiskt fylla i många metadatafält genom att få metadata från olika webbplatser. För närvarande calibre använder isbndb.com, Google Books, Amazon och bibliotek Thing. Metadata nedladdning kan fylla i titel, författare, serier, etiketter, betyg, beskrivning och ISBN för dig. För att använda nedladdning, fyll i titel och författare och tryck Hämta metadata. calibre kommer att visa dig en lista på böcker som närmast passar titel och författare. Om du fyller i ISBN-fältet först, kommer det att användas i stället för titeln och författare. Om inga passade träffar hittas, försök att göra din sökning lite mindre specifik genom att ta med endast några nyckelord i titeln och bara författarens efternamn. Hantering bokformat I calibre, kan en enda bokpost har många olika format i samband med det. Till exempel kan du ha fått de samlade verk av Shakespeare i EPUB-format och senare konverterade den till MOBI att läsa på din Kindle. calibre hanterar automatiskt flera format för dig. I Tillgängliga format i dialogrutan Redigera metadata, kan du hantera dessa format. Du kan lägga till ett nytt format, ta bort ett befintligt format och även be calibre för att ange metadata och täcka för boken posten från metadata i ett av formaten. Allt om omslag Du kan be calibre ladda ner bokomslag för dig, förutsatt att boken har en känd ISBN. Alternativt kan du ange en fil på din dator som ska användas som omslag. calibre kan även generera ett standardomslag med grundläggande metadata om det för dig. Du kan dra och släppa bilder på locket för att byta den och även högerklicka för att kopiera / klistra in omslagsbilder. Dessutom finns det en knapp för att automatiskt justera gränser från omslag, om din omslagsbild har en ful kant Redigera metadata för flera böcker på en gång Välj först de böcker du vill redigera genom att hålla ner Ctrl eller Skift och klicka på dem. Om du väljer mer än en bok, klicka på Redigera metadata-knappen kommer att orsaka en ny Mass metadata redigeringsdialogruta för att öppna. 102 Kapitel 1. Avsnitten

107 Med den här dialogrutan kan du snabbt ställa författaren /förlag/betyg/etikett/serie etc av ett gäng böcker till samma värde. Detta är särskilt användbart om du just har importerat ett antal böcker som har någon metadata gemensamt. Denna dialog är mycket kraftfullt, till exempel, har det en Sök och ersätt flik som du kan använda för att utföra massoperationer på metadata och med kopiera metadata från en kolumn till en annan. Normala redigeringsdialogen för metadata har också knapparna Nästa och Föregående som du kan använda för att redigera metadata för flera böcker efter varandra. Sök och ersätt Massmetadata redigeringsdialogrutan låter dig utföra godtyckligt kraftfulla sök och ersätt operationer på de valda böckerna. Som standard använder en enkel textsökning och ersätta, men det stöder också reguljära uttryck. För mer information om reguljära uttryck finns Allt om att använda reguljära uttryck i calibre (sida 205). Som nämnts ovan finns det två sök- och ersättningslägen: teckenpassning och reguljära uttryck. Teckenpassning kommer att se i Sök-fältet du väljer för de tecken du skriver i söka efter -rutan och ersätta dessa tecken med vad du skriver i ersätta med-rutan. Varje förekomst av söktecknen på området kommer att ersättas. Antag till exempel fältet som sökte innehåller en len sten. om du söker på en ersättas med HELLO, då resultatet kommer att bli HELLO lhello sthello. Om fältet du söker på är ett multi-fält som etiketter, då varje etikett behandlas separat. Till exempel, om dina etiketter innehåller Skräck, Kuslig, sökuttrycket r kommer inte passa mot något eftersom uttrycket först kommer att tillämpas på Skräck och sedan till Kuslig. Om du vill sökning ska vara skifteslägeokänslig, bocka Case sensitive rutan. Du kan låta calibre ändra det gäller resultatet (information efter det att ersättning har hänt) genom att välja en av funktionerna från Verkställ funktion efter ersätta-rutan. Möjliga åtgärder är: Lower case ändra alla tecken i fältet till gemener Upper case ändra alla tecken i fältet till versaler Title case Varje ord med bara versaler. Den Din test-rutan finns för dig att skriva in text för att kontrollera att sök/ersätt gör vad du vill. I de flesta fall kommer bokens provrutorna att räcka, men det är möjligt att det finns ett fall som du vill kontrollera som inte visas i dessa rutor. Skriv in det målet i Din test. Reguljära uttrycksläget har vissa skillnader från teckenläge, förutom (naturligtvis) användning av reguljära uttryck. Den första är att funktionerna tillämpas på de delar av strängen som passar mot söksträngen, inte hela fältet. Det andra är att funktionerna gäller ersättningssträngen, inte hela fältet. Den tredje och viktigaste är att ersättningssträngen kan hänvisa till delar av söksträngen med bakåtreferenser. En bakåtreferens är \\n där n är ett heltal som hänvisar till den n:te parentesgrupp i sökuttrycket. Till exempel, givet samma exempel som ovan, en dålig katt, ett sökuttryck en (...) (...), och ersätter uttrycket en \2 \1, resultatet kommer vara en katt dålig. Se Allt om att använda reguljära uttryck i calibre (sida 205) för mer information om bakåtreferenser. Ett användbart mönster: anta att du vill ändra skiftläge för ett helt fält. Det enklaste sättet att göra detta är att använda teckenläge, men låt oss vidare anta att du vill använda reguljära uttrycksläge. Sökningen uttrycket ska vara (.*) ersättningsuttrycket ska vara \1 och önskad förändringsfunktion bör väljas. Slutligen, i reguljära uttrycksläget kan du kopiera värden från ett fält till ett annat. Helt enkelt göra fältets källa och destination annorlunda. Kopian kan ersätta destinationsfältet lägger du till fältet (lägg till i början), eller lägga till fältet (lägg till på slutet). Den &#x27använd kommatecken&#x27 kryssrutan berättar calibre lägga till (eller inte) lägga till ett kommatecken mellan texten och destinationsfältet i lägg till före och efter lägen. Om destinationen är flera (t.ex. etiketter), kan du inte avmarkera rutan Sök och ersätt görs efter alla andra metadataändringar i de andra flikarna tillämpas. Detta kan leda till en viss förvirring, eftersom testrutorna visar informationen innan andra förändringar, men åtgärden kommer att tillämpas efter 1.7. Redigera e-boks metadata 103

108 övriga förändringar. Om du har några tvivel om vad som kommer att hända, blanda inte ihop sök/ersätt med andra förändringar. Massnerladdning av metadata Om du vill hämta metadata för flera böcker på en gång, högerklickar du på Redigera metadata-knappen och välj Hämta metadata. Du kan välja att hämta endast metadata, bara omslag, eller båda. 1.8 Vanliga frågor och svar Innehåll E-bok formatkonvertering (sida 104) Enhetsintergration (sida 107) Bibliotekshantering (sida 115) Diverse (sida 119) E-bok formatkonvertering Innehåll Vilka format stöder calibre konvertering till/från? (sida 104) Vilka är de bästa källformaten att konvertera? (sida 105) Jag konverterade en PDF-fil, men resultatet har diverse problem? (sida 105) Hur konverterar jag min fil som innehåller icke-engelska tecken, eller typografiska citattecken? (sida 105) Vad är det med innehållsförteckningen i MOBI-filer? (sida 105) Omslagen till mina MOBI-filer har slutat dyka upp i Kindle för PC / Kindle for Android / ipad etc. (sida 106) Hur konverterar jag en samling HTML-filer i en viss ordning? (sida 106) EPUB som producerades med calibre är inte giltig? (sida 107) Hur använder jag en del av de avancerade funktionerna i omvandlingsverktyget? (sida 107) Vilka format stöder calibre konvertering till/från? calibre stöder konvertering av många indataformat till många utdataformat. Den kan konvertera alla indataformat i följande list, till alla utdataformat. Indataformat: AZW, AZW3, AZW4, CBZ, CBR, CBC, CHM, DJVU, DOCX, EPUB, FB2, HTML, HTMLZ, LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, SNB, TCR, TXT, TXTZ Utdataformat: AZW3, EPUB, DOCX, FB2, HTMLZ, OEB, LIT, LRF, MOBI, PDB, PMLZ, RB, PDF, RTF, SNB, TCR, TXT, TXTZ, ZIP Observera: PRC är ett generiskt format calibre stöder PRC-filer med TextRead och MOBIBook rubriker. PDB är också en generisk format. calibre stöder läsplatta, Plucker, PML och ztxt preliminära filer. DjVu stöd endast för att konvertera DjVu-filer som innehåller inbäddade text. Dessa är oftast genereras av OCR-program. MOBI böcker kan vara av två typer Mobi6 och KF8. calibre stöder båda fullt ut. MOBI filer har ofta.azw eller.azw3 filändelser. Docx-filer från Microsoft Word 2007 och nyare stöds. 104 Kapitel 1. Avsnitten

109 Vilka är de bästa källformaten att konvertera? I fallande preferens: LIT, MOBI, AZW, EPUB, AZW3, FB2, DOCX, HTML, PRC, ODT, RTF, PDB, TXT, PDF Jag konverterade en PDF-fil, men resultatet har diverse problem? PDF är ett hemskt format att konvertera från. För en lista av diverse problem du kommer stöta på vid PDF-konvertering, se: Konvertera PDF-dokument (sida 67). Hur konverterar jag min fil som innehåller icke-engelska tecken, eller typografiska citattecken? Det finns två aspekter på detta problem: 1. Medveten om kodningen av källfilen: calibre försöker gissa vad teckenkodning källfilerna använder, men ofta är detta omöjligt, så du måste tala om vad för kodning att använda. Detta kan göras i det grafiska gränssnittet via Teckenkodning för indata-fältet i Utseende i dialogrutan omvandlingen. Kommandoradsverktyg har alla ett: alternativ: input-encoding alternativ. 2. När du lägger till HTML-filer till calibre, kan du behöva tala om för calibre vad filerna är kodade i. För att göra detta går du till Inställningar->Tillägg->Filtyp tlllägg och anpassa HTML2Zip-tlllägget, berätta för det vad dina HTML-filer är kodade i. Nu när du lägger HTML-filer till calibre kommer de att behandlas på rätt sätt. HTML-filer från olika källor har ofta olika kodningar, så du kan behöva ändra denna inställning upprepade gånger. En gemensam kodning för många filer från webben är cp1252 och jag föreslår att du prova det först. Observera att när du konverterar HTML-filer, lämna indata kodningsinställningen ovan nämnda tomt. Detta beror på att HTML2Zip-tillägg automatiskt konverterar de HTML-filer till en standardkodning (UTF-8). Vad är det med innehållsförteckningen i MOBI-filer? Det första man måste inse är att de flesta e-böcker har två innehållsförteckningar. Den ena är den traditionella innehållsförteckningen, som innehållsförteckningen du hittar i pappersboken. Denna innehållsförteckning är en del av huvuddokumentflödet och kan titulera hur du vill. Detta innehållsförteckningen kallas innehålls innehållsförteckningen. Sedan är det metadatats innehållsförteckningen. En metadatas innehållsförteckningen är en innehållsförteckning som inte är en del av bokens text och vanligtvis nås av någon speciell knapp på en läsare. Till exempel i calibre läsare använder du Visa innehållsförteckningen för att se den här innehållsförteckningen. Denna innehållsförteckningen kan inte anpassas av bokens skapare. Hur det representeras är upp till läsarprogrammet. I MOBI-formatet är situationen lite förvirrad. Detta beror på att MOBI-format, ensamt bland vanliga e-bokformat, inte har ordentlig stöd för ett metadatainnehållsförteckning. En MOBI-bok simulerar närvaron av en metadatainnehållsförteckning genom att sätta en extra innehållsförteckning i slutet av boken. När du klickar på Gå Innehållsförteckning på din Kindle, är det denna extra Innehållsförteckning Kindle tar. Nu kan det väl verka för dig att MOBI bok har två identiska innehållsförteckningar. Kom ihåg att en är semantiskt ett innehåll innehållsförteckningen och den andra är en metadatainnehållsförteckningen, även om båda kan ha exakt samma poster och ser likadana ut. Ena kan nås direkt från Kindle menyer, den andra inte kan. Vid konvertering till MOBI, upptäcker Calibre metadatainnehållsförteckning i inmatningsdokumentet och genererar en slut-på-fil innehållsförteckning i utdata MOBI-filen. Du kan stänga av detta med ett alternativ i MOBIutdatainställningarna. Du kan också berätta för Calibre att sätta den i början eller slutet av boken via ett alternativ i MOBI -utdatainställningarna. Kom ihåg detta innehållsförteckning är semantiskt en metadatainnehållsförteckning, 1.8. Vanliga frågor och svar 105

110 på annat MOBI-format kan det inte vara en del av texten. Det faktum att det är en del av texten i MOBI är en olycka som orsakats av begränsningar i MOBI. Om du vill ha en innehållsförteckning på en viss plats i dokumentets text, skapa en efter hand. Så vi rekommenderar att du lämnar standardinställning som den är, det vill säga med metadatainnehållsförteckningen i slutet av boken. Observera också att om du inaktiverar generering av slut-på-fil innehållsförteckning kanske den resulterande MOBI-filen inte fungerar korrekt på en Kindle, eftersom Kindle använder metadatainnehållsförteckningen för många saker, bland annat sidväxlingsfunktionen. Om du har en handredigerad innehållsförteckning i inmatningsdokumentet kan du använda alternativen innehållsförteckningsupptäckt i Calibre för att automatiskt generera metadatainnehållsförteckning från den. Se omvandlingsavsnittet i användarhandboken för mer information om hur du använder de här alternativen. Slutligen uppmanar jag dig att dumpa innehållet iinnehållsförteckningen och bara har en metadatainnehållsförteckningen i dina e-böcker. Metadatainnehållsförteckningen kommer att ge människor som läser dina e-böcker en mycket överlägsen navigeringserfarenhet (utom på Kindle, där de är i princip samma som en innehållsförteckningen). Observera: Den nyare AZW3-formatet har ordentligt stöd för metadatainnehållsförteckning. Dock tenderar Kindle firmware inte fungerar om du avaktiverar generationen av slut-påfil-radbaserad innehållsförteckning. Så det rekommenderas att du lämnar den genererade innehållsförteckningen i fred. Om du skapar en AZW3-fil med metadatainnehållsförteckning och inget slut-på-fil som genererad innehållsförteckning, kommer en del funktioner på Kindle inte fungerar, till exempel sidväxlingsfunktionen. Omslagen till mina MOBI-filer har slutat dyka upp i Kindle för PC / Kindle for Android / ipad etc. Detta orsakas av en bugg i Amazonas programmet. Du kan lösa det genom att gå till Inställningar->Alternativ för utdata-> MOBI utdata och ställa in Aktivera delning av bokinnehåll alternativet. Om du kodar om en tidigare konverterade bok, måste du också aktivera alternativet i omvandlingsdialogrutan för att enskild bok (som per bok konverteringsinställningar sparas och har företräde). Observera att detta kommer att innebära att den genererade MOBI kommer att dyka upp i personliga dokument i stället för böcker på Kindle Fire och Amazon Whispersync kommer inte att fungera, men omslagen kommer. Det är ditt val vilken funktion som är viktigare för dig. Jag uppmuntrar dig att kontakta Amazon och be dem att åtgärda detta fel. Felet i Amazons mjukvara är att när du skriver en MOBI-fil på en Kindle, om inte filen är markerad som en personligt dokument, förutsätter Amazon att du köpte boken från dem och försöker hämta omslagsminiatyren för den från deras servrar. När hämtningen misslyckas, vägrar den att gå tillbaka till omslaget som definieras i MOBI-filen. Detta är sannolikt avsiktligt från Amazons sida att försöka tvinga författare att endast sälja genom dem. Med andra ord, Kindle visar endast omslag av böcker markerade som personliga dokument eller av böcker som köps direkt från Amazon. Om du skickar en MOBI-fil till en e-ink Kindle med calibre med hjälp av en USB-anslutning, calibre arbetar runt denna Amazon bugg genom att ladda upp ett omslag själv. Men denna lösning är bara möjligt när du använder en USB-anslutning och skickar med calibre. Observera att om du skickar via e-post, kommer Amazon automatiskt markera MOBI-filen som ett personligt dokument och omslaget kommer att fungera, men boken kommer att dyka upp i personliga dokument. Hur konverterar jag en samling HTML-filer i en viss ordning? För att omvandla en samling HTML-filer i en viss ordning, måste du skapa en innehållsförteckningsfil. Det vill säga, en annan HTML-fil som innehåller länkar till de andra filerna i önskad ordning. En sådan fil ser ut som: <html> <body> <h1>table of Contents</h1> <p style="text-indent:0pt"> <a href="file1.html">first File</a><br/> <a href="file2.html">second File</a><br/> 106 Kapitel 1. Avsnitten

111 ... </p> </body> </html> Sedan är det bara lägga till den här HTML-filen till grafiska gränssnittet och använd knappen Konvertera för att skapa din e-bok. Du kan använda alternativet i innehållsförteckningsavsnittet i dialogrutan för att styra omvandlingen hur innehållsförteckningen genereras. Observera: Som standard när du lägger till HTML-filer, följer calibre länkar i filerna i djup först ordning. Detta innebär att om filen A.html länkarna för att B.html och C.html och D.html, men B.html också länkar till D.html, då filerna kommer att vara i ordning a.html, B.html, D Html, C.html. Om du istället vill att för att bli a.html, B.html, C.html, D.html då måste du berätta calibre att lägga dina filer i bredden först ordning. Gör detta genom att gå till Inställningar->Tillägg och anpassa HTML till ZIP-tillägg. EPUB som producerades med calibre är inte giltig? calibre garanterar inte att en EPUB som produceras är giltigt. Den enda garantin det gör är att om du matar den giltig XHTML CSS 2.1 matar den ut en giltig EPUB. calibre försöker hårt för att säkerställa att EPUB den producerar faktiskt fungerar som det är tänkt på en mängd olika enheter, ett mål som inte är förenligt med att producera giltiga EPUBs, och en som är mycket viktigare att de allra flesta av sina användare. Om du behöver ett verktyg som alltid ger tillförlitliga EPUB är calibre inte för dig. Detta innebär, att om du vill skicka en calibre som produceras EPUB till en online-butik som använder en EPUB giltighetskontroller, måste du se till att EPUB är giltig, calibre kommer inte göra det åt dig - med andra ord måste du mata calibre med giltig XHTML + CSS som ingångsdokument. Hur använder jag en del av de avancerade funktionerna i omvandlingsverktyget? Du kan få hjälp av någon enskild egenskap hos omvandlarna genom att föra musen över den i GUI eller köra ebook-convert dummy.html.epub -h vid en terminal. Ett bra ställe att börja är att titta på följande demo-fil som visar en del av de avancerade funktioner html-demo.zip Enhetsintergration Vanliga frågor och svar 107

112 Innehåll Vilken enhet stöder calibre? (sida 108) Hur kan jag hjälpa till för att få stöd för min enhet i calibre? (sida 108) Enheten upptäcks inte av calibre? (sida 108) Min enhet är icke-standard eller ovanligt. Vad kan jag göra för att ansluta till den? (sida 109) Hur hanterar calibre samlingar på min SONY-läsare? (sida 109) Kan jag använda både calibre och SONY programvara för att hantera min läsare? (sida 110) Hur använder jag calibre med min ipad / iphone / ipod touch? (sida 110) Hur använder jag calibre med min Android-telefon / surfplatta eller Kindle Fire HD? (sida 111) Kan jag komma åt mina calibre-böcker med hjälp av webbläsaren i min Kindle eller annan läsenhet? (sida 112) Jag får felmeddelandet Det gick inte att starta mediaservern: Port 8080 inte ledig ? (sida 113) Jag kan inte skicka e-post med hjälp av calibre? (sida 113) Varför är min enhet inte registrerad i linux? (sida 113) Min enhet är monterat skrivskyddad i linux, så calibre kan inte ansluta till det? (sida 114) Varför stöder calibre inte samlingar på Kindle eller hyllor på Nook? (sida 114) Jag får ett felmeddelande när jag försöker använda calibre med min Kobo Touch/Glo/etc.? (sida 114) Jag överförde några böcker till min Kindle använder calibre och de inte dyker upp? (sida 114) Vilken enhet stöder calibre? calibre kan direkt ansluta till alla stora (och de flesta av de mindre) e-boksläsenheter, smarta mobiler, surfplattor, etc. Dessutom används Anslut till mapp-funktionen kan du använda den med någon e-boksläsare som exporterar sig som en USB-disk. Du kan även ansluta till Apple-enheter (via itunes), med hjälp av Anslut till itunes-funktionen. Hur kan jag hjälpa till för att få stöd för min enhet i calibre? Om enheten visas som en USB-disk för operativsystemet, att lägga till stöd för calibre är mycket enkelt. Vi behöver bara lite information från dig: Komplett lista över e-bokformat som enheten stöder. Finns det en särskild katalog på enheten där alla e-bokfiler ska placeras? Också om inte enheten upptäcker filer som placeras i underkataloger? Vi behöver också information om enheten som calibre samlar automatiskt. Först, om enheten har stöd för SDkort, sätt in dem. Anslut sedan enheten till datorn. I calibre gå till Inställningar->Diverse och klicka på knappen Felsök enhetsupptäckt. Detta kommer att skapa en del felsökningsutskrifter. Kopiera den till en fil och upprepa processen, den här gången med enheten bortkopplad från datorn. Skicka båda de ovanstående utdata till oss med andra uppgifter och vi kommer att skriva en drivrutin för enheten. När du skickar utdata för ett visst operativsystem, kommer stöd för enheten i det operativsystemet visas i nästa version av calibre. För att skicka utdata, öppna en felrapport och fäst utdata till den. Se calibre bugs < _. Enheten upptäcks inte av calibre? Gör så här för att hitta problemet: Se till att du ansluter en enda enhet till datorn åt gången. Använd inte någon annan calibre-stöd enhet som iphone/ipad etc. samtidigt. 108 Kapitel 1. Avsnitten

113 Om du ansluter en Apple idevice (ipad, ipod Touch, iphone), använder du Anslut till itunes -metod i Komma igång instruktioner i Calibre + Apple idevices: Börja här. < _. Se till att du kör den senaste versionen av calibre. Den senaste versionen kan alltid laddas ner från calibres webbplats 33. Du kan se vilken version av calibre du kör genom att titta på den nedersta raden i calibre-huvudfönster. Försäkra ditt operativsystem är att ser enheten. Det vill säga, att enheten ska visa upp i Utforskaren (Windows) eller Finder (i OS X). I calibre, gå till Inställningar->Ignorerade enheter och kolla att din enhet inte ignoreras Om alla dessa åtgärder misslyckas, gå till Inställningar->Diverse och klicka Felsök enhetsdetektion med enheten ansluten och skicka resultatet som en biljett på calibres bug tracker 34. Min enhet är icke-standard eller ovanligt. Vad kan jag göra för att ansluta till den? Förutom Anslut till mapp-funktion finns under Anslut/dela-knappen ger calibre en Användardefineradenhetstillägg som kan användas för att ansluta till en USB-enhet som dyker upp som en hårddisk i operativsystemet. Obs: Windows, måste enheten ha en enhetsbeteckning för calibre ska kunna använda den. Se enhetens tillägg Inställningar->Tillägg->Enhetstillägg-> Användardefinerad och Inställningar->Övrigt->Få informationen för att ställa in användardefinierade enhet för mer information. Observera att om du använder det användardefinierade tillägget för en enhet som normalt upptäcks av en inbyggd calibre-tillägg, måste du stänga av den inbyggda tillägget först, så att din användardefinierade plugin används istället. Hur hanterar calibre samlingar på min SONY-läsare? När calibre ansluter med läsaren, hämtar det alla kollektioner av böcker på läsaren. Samlingarna av vilka böcker är medlemmar visas på enheten. När du skickar en bok till läsaren, kommer calibre lägga boken till samlingar som baseras på metadata för den boken. Som standard kollektioner skapas från etiketter och serier. Du kan styra vilka metadata används genom att gå till Inställningar->Tillägg->Enhetsgränssnitt tillägg och anpassa SONY tillägget för enhetsgränssnitt. Om du tar bort alla värden, kommer calibre inte lägga boken till någon samling. Samlingshantering styrs till stor del av Metadatas hantering alternativet finns på Inställningar->Import/Export- >Skickar böcker till enheter. Om satt till Manual (standard), lämnas hantering av samlingar till användaren; calibre kommer inte att ta bort redan befintliga samlingar för en bok på läsaren när du skicka boken till läsaren, men calibre kommer att lägga boken till samlingar vid behov. För att säkerställa att samlingarna för en bok bygger enbart på aktuell calibre metadata, först ta bort böckerna från läsaren, sedan skicka om böckerna. Du kan redigera samlingar direkt på enhets genom att dubbelklicka eller högerklicka i samlingarna kolumnen. Om Metadata hantering är satt till Endast vid sändning, så kommer calibre att hantera samlingar mer aggressivt. Samlingar byggs exklusivt med calibre-metadata. Skicka en bok till läsaren kommer att korrigera samlingarna för boken så samlingarna exakt passar bokens metadata, vid behov lägga till och ta bort samlingarna. Redigera samlingar på enhetsvisningen är inte tillåtet, eftersom samlingarna som inte finns i metadata kommer att tas bort automatiskt. Om Metadata management är inställd på Automatisk hantering, då kommer calibre att uppdatera metadata och samlingar både när läsaren är ansluten och när böcker skickas. När calibre upptäcker läsaren och genereras en lista över böcker på läsaren kommer den att sända metadata från biblioteket till läsaren för alla böcker på läsaren som finns i biblioteket (På enheten är Sann), lägga till och ta bort böcker från samlingarna som indikeras av metadata och enhetsanpassning. När en bok skickas, korrigerar calibre metadata för den boken, samlingar läggs till och tas bort Vanliga frågor och svar 109

114 Manuell redigering av metadata på enheten är inte tillåtet. Observera att det här alternativet anger att skicka metadata, inte böcker. Bokens filer på läsaren ändras inte. Sammanfattningsvis välj manuell hantering om du vill hantera samlingar själv. Samlingar för en bok kommer aldrig att tas bort av calibre, men kan tas bort av dig genom att redigera på enheten. Välj Endast vid sändning om du vill att calibre ska hantera samlingar när du skickar en bok, lägga böcker till och ta bort böcker från samlingarna som behövs. Välj Automatisk hantering om du vill att calibre ska hålla samlingarna uppdaterade när läsaren är ansluten. Om du använder flera installationer av calibre för att hantera din läsare, då alternativet Automatisk hantering kanske inte är vad du vill. Anslutning av läsaren till ett bibliotek återställer metadata till vad som finns i det biblioteket. Anslutning till andra bibliotek återställer metadata till vad som är i den andra bibliotek. Metadata i böcker som finns i båda biblioteken kommer att hoppa fram och tillbaka. Kan jag använda både calibre och SONY programvara för att hantera min läsare? Ja, du kan använda båda, förutsatt att du inte kör dem samtidigt. Det vill säga, du bör använda följande sekvens: Anslut läsare-> Använd någon av program-> Koppla läsare. Anslut läsare-> Använd den andra program> Koppla läsare. Den bakomliggande orsaken är att läsaren använder en enda fil för att hålla reda på meta information, såsom samlingar, och det skrivs till av både calibre och Sonys programvara när något uppdateras på läsaren. Filen kommer att sparas när läsaren är (säkert) bortkopplad, så att använda det ena eller det andra är säkert om det finns en frånkoppling mellan dem, men om du inte är den typen att komma ihåg detta, så det enkla svaret är att hålla sig till en eller det andra för överföring och bara export / import från / till den andra via datorns hårddisk. Om du behöver återställa metadata på grund av problem som orsakas av att använda både på samma gång, i så fall bara radera media.xml filen på läsaren med hjälp av datorns filhanterare och det kommer att återskapas efter frånkoppling. Med de senaste läsariterationer, SONY, i all sin vishet beslutat att försöka tvinga dig att använda deras programvara. Om du installerar det, auto-startar det när du ansluter läsaren. Om du inte vill avinstallera det helt och hållet, det finns ett par knep du kan använda. Det enklaste är att helt enkelt byta namn på körbar fil som startar biblioteksprogrammet. Mer i detalj i forumen < _. Hur använder jag calibre med min ipad / iphone / ipod touch? Över luftsnitt Det enklaste sättet att bläddra i din calibre-samling på din Apple-enhet (ipad / iphone / ipod) är att använda calibre innehållsservern, vilket gör din samling tillgänglig över nätet. Utför först följande steg i calibre Ställ önskat utdataformat i calibre till EPUB (Utdataformatet kan ställas in under Inställningar->Gränssnitt- >Beteende) Ställ in utdatasprofil till ipad (detta kommer att fungera för iphone / ipod också), enligt Inställnigar- >Konvertera->Vanliga alternativ->sidinställning Konvertera de böcker du vill läsa på din i-enhet till EPUB-format genom att markera dem och klicka på knappen Konvertera. Slå på innehållsserver genom att klicka på Anslut / Dela-knappen och lämna calibre igång. Du kan även tala om för calibre att automatiskt starta innehållsservern via Inställningar->Dela->Dela på nätet. Det finns många appar till din i-enhet som kan ansluta till calibre. Här beskriver vi med hjälp av två av dem, ibooks och Stanza. 110 Kapitel 1. Avsnitten

115 Använda Stanza Du bör kunna komma åt dina böcker på din iphone genom att öppna Stanza. Gå till Get Books och klicka sedan på Shared fliken. Under Shared du att se en post Books i calibre. Om du inte, se till att din ipad / iphone är ansluten med hjälp av WiFi-nätverk i ditt hus, inte 3G. Om calibre katalogen fortfarande inte upptäcks i Stanza, kan du lägga till den manuellt i Stanza. Det gör du genom att klicka på Shared fliken, klicka sedan på Edit och sedan på Add book source för att lägga till en ny bok källa. I Add book source bilden anger vilket namn du vill och i fältet URL anger du följande: Ersätt med den lokala IP-adressen till den dator som kör calibre. Om du har ändrat porten calibre innehållsservern körs på, måste du ändra 8080 samt till den nya porten. Den lokala IP-adress är IP-adressen som du dator tilldelas i ditt hemmanätverk. En snabb Google-sökning kommer att berätta hur du hittar din lokala IP-adress. Klicka nu på Spara och du är klar. Om du får tidbegränsningsfel medan du surfar på calibre katalogen i Stanza, prova att öka anslutnings timeout -värdet i stanza inställningar. Gå till Info->Settings och öka värdet på Download Timeout. Använda ibooks så här: Starta webbläsaren Safari och skriv in IP-adressen och porten på den dator som kör calibre servern, Ersätt med den lokala IP-adressen till den dator som kör calibre. Om du har ändrat porten calibre innehållsservern körs på, måste du ändra 8080 samt till den nya hamnen. Den lokala IP-adress är IP-adressen som du dator tilldelas i ditt hemmanätverk. En snabb Google-sökning kommer att berätta hur du hittar din lokala IP-adress. Du kommer att se en lista över böcker i Safari, klicka bara på länken epub för vilket som bok du vill läsa, kommer Safari då att uppmana dig att öppna den med ibooks. Med USB-kabeln + itunes Använd Anslut till itunes metoden i Getting started instructioner i Calibre + Apple idevices: Start here 35. Denna metod fungerar endast på Windows Vista och senare, och OS X upp till 10.8 och högre. Linux stöds inte (itunes är inte tillgänglig i Linux) och OS X nyare än 10.8 stöds inte, eftersom Apple tagit bort möjligheten att använda itunes för att hantera böcker och ersatt den med ibooks. Hur använder jag calibre med min Android-telefon / surfplatta eller Kindle Fire HD? Det finns två sätt som du kan ansluta din Android-enhet till calibre. Med hjälp av en USB-kabel - eller trådlöst, via etern. Det första steget till att använda en Android-enhet är att installerar en e-bok att läsa program på den. Det finns många gratis och betalal e-bokläsningsapplikationer för Android: Några exempel (utan inbördes ordning): FBReader 36, Moon+ 37, Mantano 38, Aldiko 39, Kindle 40. Med hjälp av en USB-kabel Anslut bara enheten till datorn med en USB-kabel. calibre ska automatiskt upptäcka enheten och sedan kan du överföra böcker till den genom att klicka på Skicka till enhet knappen. calibre har inte stöd för varje Android-enhet där ute, så Vanliga frågor och svar 111

116 om enheten inte identifieras automatiskt, följ instruktionerna i Hur kan jag hjälpa till för att få stöd för min enhet i calibre? (sida 108) för att få din enhet stöds i calibre. Observera: Med nyare Android-enheter, stöds inte USB-anslutningen i Windows XP och OS X innan Mavericks (10,9). Om du är på Windows XP eller äldre versioner av OS X, bör du använda en av de trådlösa anslutningsmetoder. Över luftsnitt Det enklaste sättet att överföra böcker trådlöst till din Android-enhet är att använda Calibre Companion 41 Android app. Denna app underhålls av en Calibre utvecklare och låter calibre för att ansluta till din Android-enhet trådlöst, precis som om du satt i enheten med en USB-kabel. Du kan bläddra bland filer på enheten i calibre och använda Skicka till enhet för att överföra filer till enheten trådlöst. calibre har också en inbyggd webbserver, mediaserver. Du kan bläddra i din calibre samling på din Android-enhet är att använda calibre mediaservern, vilket gör din samling tillgängligt över nätet. Utför först följande steg i calibre Ställ in Önskat utformat i calibre till EPUB för normala Android-enheter eller MOBI för Kindles (Utdataformatet kan ställas in under Inställningar->Gränssnitt->Beteende) Konvertera de böcker du vill läsa på din enhet till EPUB / MOBI-format genom att markera dem och klicka på knappen Konvertera. Slå på mediaserver i calibre inställningar och lämna calibre igång. Nu på din Android-enhet, öppna webbläsaren och gå till Ersätt med den lokala IP-adressen till den dator som kör calibre. Om ditt lokala nätverk stöder användning av datornamn, kan du byta ut IP-adressen med nätverket namnet på datorn. Om du har ändrat porten calibremediaservern körs på, måste du ändra 8080 samt till den nya porten. Den lokala IP-adress är IP-adressen som du dator tilldelas i ditt hemmanätverk. En snabb Google-sökning kommer att berätta hur du hittar din lokala IP-adress. Nu kan du bläddra i din boksamling och hämta böcker från calibre till enheten för att öppna med vad e-bokläsprogram du har på din Android-enhet. Vissa läsprogram stöder direkt bläddning i calibre-biblioteket. Till exempel i Aldiko, klickar du på Mina kataloger, sedan + lägga till en katalog, sedan ge katalogen en titel som calibre och webbadressen som anges ovan. Nu kan du bläddra i calibre-biblioteket och ladda ner direkt i läsprogrammet. Kan jag komma åt mina calibre-böcker med hjälp av webbläsaren i min Kindle eller annan läsenhet? calibre har en mediaerver som exporterar böcker i calibre som en webbsida. Du kan slå på den under Inställningar- >Dela på nätet. Sedan är det bara peka webbläsaren på enheten till datorn som kör mediaserver och du kommer att kunna bläddra i din boksamling. Till exempel, om den dator som kör servern har IP-adressen i webbläsaren skriver du: Vissa enheter, t.ex. Kindle (1/2/DX), tillåter inte att du kan kommer åt port 8080 (standard port som mediaservern körs. I så fall ändra porten i calibre Inställningar till 80 (på vissa operativsystem, kan du inte att kunna köra servern på ett portnummer under 1024 på grund av säkerhetsinställningar. I detta fall den enklaste lösningen är att anpassa din router att vidarebefordra förfrågningar på port 80 till port 8080) Kapitel 1. Avsnitten

117 Jag får felmeddelandet Det gick inte att starta mediaservern: Port 8080 inte ledig ? Den troligaste orsaken till detta är antivirusprogrammet. Försök att tillfälligt inaktivera det och se om det gör susen. Jag kan inte skicka e-post med hjälp av calibre? På grund av den stora mängden av spam e-post, kan e-post sändning vara knepigt, eftersom olika e-postservrar använder olika strategier för att blockera e-post. Det vanligaste problemet är om du skickar e-post direkt (utan postvidarebefordran) i calibre. Många servrar (t.ex. Amazon) blockera e-post som inte kommer från en välkänd vidarebefordran. Det mest robusta sättet att installera e-sändning i calibre är att göra följande: Skapa ett gratis GMX konto på GMX 42. Gå till Inställningar->Dela med e-post i calibre och klicka på Använd GMX knappen och fyll i den information som efterfrågas. calibre kommer sedan att använda GMX att skicka e-post. Om du skickar till din Kindle, kom ihåg att uppdatera e-postinställningar på Amazon Kindle-sidan för att möjliggöra att e-post skickas från GMX e-postadress. Observera också att Amazon inte tillåter e-postleverans av AZW3 och ny stil (KF8) MOBI-filer. Även efter att ha gjort detta, kan du få problem. En vanlig källa till problem är att vissa dåligt utformade antivirusprogram blockerar calibre från att öppna en anslutning för att skicka e-post. Prova att lägga ett undantag för calibre i antivirusprogrammet. Observera: Microsoft/Google/GMX kan inaktivera ditt konto om du använder den för att skicka stora mängder e- post. Så, när du använder Hotmail/Gmail att skicka e-post begränsar calibre sig automatiskt till att skicka en bok var femte minut. Om du inte har något emot att riskera ditt konto blockeras kan du minska detta väntintervall genom att gå till Inställningar->Justeringar i calibre. Observera: Google nyligen bröt medvetet sin e-post sändprotokollsstöd (SMTP) i ett försök att tvinga alla att använda deras webbgränssnitt så att de kan visa dig flera annonser. De försöker hävda att SMTP är osäker, det är felaktigt och helt enkelt en ursäkt. Om du har problem med Gmail måste du tillåta mindre säkra program som beskrivs här 43. Observera: Om du är orolig för att ge calibre åtkomst till ditt e-postkonto, helt enkelt skapa en ny gratis e-postkonto med GMX eller Hotmail och använder den endast för calibre. Varför är min enhet inte registrerad i linux? calibre behöver att din Linux-kärnan har ställts in på rätt sätt för att upptäcka enheter. Om dina enheter inte upptäcks, utför följande tester: grep SYSFS_DEPRECATED /boot/config-`uname -r` Du bör se någonting som liknar CONFIG_SYSFS_DEPRECATED_V2 är inte inställd. Också, grep CONFIG_SCSI_MULTI_LUN /boot/config-`uname -r` måste återvända CONFIG_SCSI_MULTI_LUN = y. Om du inte ser någon, måste du kompilera din kärna med rätt inställningar Vanliga frågor och svar 113

118 Min enhet är monterat skrivskyddad i linux, så calibre kan inte ansluta till det? Linuxkärnor montera enheter skrivskyddad när deras filsystem har fel. Du kan reparera filsystemet med: sudo fsck.vfat -y /dev/sdc Ersätt /dev/sdc med sökvägen till enhetsnoden på din enhet. Du hittar enhetsnoden av enheten, som alltid kommer att vara under /dev genom att undersöka utdata av: mount Varför stöder calibre inte samlingar på Kindle eller hyllor på Nook? Varken Kindle eller Nook ger något sätt att manipulera samlingar över en USB-anslutning. Om du verkligen bryr dig om hur du använder samlingar, vill jag uppmana dig att sälja din Kindle / Nook och få en Kobo. Endast Kobo verkar förstå att livet är för kort för att mata in samlingarna en efter en på en e-ink skärm :) Observera att i fallet med Kindle, finns det ett sätt att manipulera samlingar via USB, men det kräver att Kindle startas om varje gång den kopplas bort från datorn, för ändringar i samlingarna ska erkännas. Som sådan, är det osannolikt att någon calibre utvecklare någonsin kommer att känna sig motiverade nog att stödja det. Det finns dock en calibre-tillägg som låter dig skapa samlingar på din Kindle från calibre-metadata. Det finns från här 44. Observera: Amazon har tagit bort möjligheten att manipulera samlingar fullständigt i sina nyare modeller, som Kindle Touch och Kindle Fire, vilket även gör ovanstående tillägg värdelöst, om du inte rootar din Kindle och installerar anpassad firmware. Jag får ett felmeddelande när jag försöker använda calibre med min Kobo Touch/Glo/etc.? Den Kobo har firmware med mycket fel. Anslutning till den har varit känt att slumpmässigt misslyckas. Vissa kombinationer av moderkort, USB-portar/kablar/hubbar kan förvärra denna tendens att misslyckas. Om du får ett felmeddelande när du ansluter till din beröring med calibre prova följande, som var och en har löst problemet för vissa calibre-användare. Anslut Kobo direkt till datorn, inte via USB-hubb Försök med en annan USB-kabel och en annan USB-port på datorn Försök med en annan dator, i synnerhet fungerar Kobo inte bra med vissa Windows XP-maskiner. Om du är på Windows XP, prova en dator med en nyare version av Windows. Försök uppgradera firmware på Kobo Touch till den senaste Prova att återställa Kobo (ibland botar problemet för ett tag, men sedan visas på nytt, i vilket fall du måste återställa igen och igen) Försök bara att sätta en eller två böcker på Kobo i taget och ha inte stora samlingar på Kobo Jag överförde några böcker till min Kindle använder calibre och de inte dyker upp? Böcker som skickas till Kindle visas bara upp på Kindle efter att de har blivit indexerade av Kindle. Detta kan ta lite tid. Om boken ännu inte dyker upp efter en viss tid, så är det troligt att Kindle indexering misslyckades. Ibland kan en viss bok kan orsaka indexeraren att kraschar. Tyvärr har Amazon inte lämnat något sätt att härleda vilken bok som orsakar en krasch på Kindle. Din enda utväg är att antingen återställa Kindle, eller ta bort alla filer från sitt minne med Windows Explorer (eller vad filhanteraren du använder) och sedan skicka böckerna till det igen, en efter en, tills du Kapitel 1. Avsnitten

119 upptäcker problemboken. När du har hittat problemboken, ta bort den från Kindle och gör en MOBI till MOBI eller MOBI till AZW3 omvandling i calibre och sedan skicka tillbaka den. Detta kommer med största sannolikhet att ta hand om problemet Bibliotekshantering Innehåll Vilka format läser calibre metadata från? (sida 115) Var finns boken filer som lagras? (sida 115) Hur hanterar calibre författarnamn och sortering? (sida 115) Varför inte calibre låta mig lagra böcker i min egen katalogstruktur? (sida 117) Varför inte calibre har en foo-kolumn? (sida 117) Kan jag ha en kolumn som visar format eller ISBN? (sida 118) Hur flyttar jag min calibre-biblioteket från en dator till en annan? (sida 118) Listan över böcker i calibre är tom! (sida 118) Jag får fel med min calibre-biblioteket på en nätverksenhet/nas? (sida 118) Vilka format läser calibre metadata från? calibre läser metadata från följande format: CHM, LRF, PDF, LIT, RTF, OPF, MOBI, PRC, EPUB, FB2, IMP, RB, HTML. Dessutom kan skriva metadata till: LRF, RTF, OPF, EPUB, PDF, MOBI Var finns boken filer som lagras? När du först kör calibre, kommer det att be dig om en mapp där du vill spara dina böcker. När du lägger till en bok till calibre, kommer det att kopiera boken i den mappen. Böcker i mappen snyggt ordnade i undermappar efter författare och titel. Observera att innehållet i den här mappen automatiskt hanteras av calibre, lägg inte till några filer / mappar manuellt till den här mappen, eftersom de kan tas bort automatiskt. Om du vill lägga till en fil associerad till en viss bok, använd det övre högra området av dialogrutan Redigera metadata för att göra det. Då kommer calibre automatiskt sätta filen i rätt mapp och flytta runt när titeln / författare förändras. Metadata om böckerna lagras i filen metadata.db på den översta nivån i biblioteksmappen här filen finns en SQLite databas. När du säkerhetskopierar ditt bibliotek att du kopierar hela mappen och alla dess undermappar. Mappen biblioteket och alla dess innehåll utgör vad som kallas en calibre bibliotek. Du kan ha flera sådana bibliotek. För att hantera biblioteken, klickar du på ikonen calibre i verktygsfältet. Du kan skapa nya bibliotek, ta bort / byta namn på befintliga och växla mellan biblioteken lätt. Du kan kopiera eller flytta böcker mellan olika bibliotek (när du har mer än ett bibliotek inställning) genom att högerklicka på en bok och välj Kopiera till bibliotek åtgärd. Hur hanterar calibre författarnamn och sortering? Författarnamn är komplexa och i synnerhet de kulturer, se denna anmärkning 45 för vissa av komplexiteter. calibre har en mycket flexibel strategi för att hantera författarnamn. Det första man måste förstå är att böcker och författare är separata enheter i calibre. En bok kan ha mer än en författare, och en författare kan ha mer än en bok. Du kan hantera författarna till en bok av dialogrutan redigera metadata. Du kan hantera enskilda författare genom att högerklicka på författaren i etikettbläddraren till vänster om calibre-huvudskärmen och välja Hantera Författare. Genom att använda Vanliga frågor och svar 115

120 den här dialogrutan kan du ändra namnet på en författare och även hur det namnet sorteras. Detta kommer automatiskt att ändra namnet på författaren i alla böcker i denna författare. När en bok har flera författare, separera deras namn med hjälp av och karaktär. Nu kommer vi till författarnamnssortering: När en ny författare läggs till calibre (det händer varje gång en bok av en ny författare läggs till), beräknar calibre automatiskt en sorts sträng för både boken och författaren. Författare i etikettbläddraren sorteras efter sorteringsvärde för författarna. Kom ihåg att detta skiljer sig från den Författaresorteringsfältet för en bok. Som standard antar denna sortingsalgoritm att författaren heter i Förnamn Efternamn format och genererar ett Efternamn, Förnamn-sorteringsvärdet. Du kan ändra denna algoritm genom att gå till Inställningar->Avancerat->Justeringar och ställa in author_sort_copy_method justering. Du kan tvinga calibre att räkna om författarssorteringsvärdena för varje författare genom att högerklicka på en författare och välja Hantera Författare, sedan trycka på Beräkna om alla författare slags värden-knappen. Gör detta efter att du har ställt in author_sort_copy_method för att justera vad du vill. Du kan tvinga calibre att räkna om författarsorteringsvärden för alla böcker med hjälp av mass redigera metadata dialogrutan (välj alla böcker och klicka på redigera metadata, kontrollera automatiskt ställ in författarsorterings rutan, tryck sedan på OK.) Vid omräkning av författarsorteringsvärden för böcker, använder calibre författarsorteringsvärden för varje enskild författare. Se därför till att de enskilda författarsorteringsvärden är korrekta innan omräkning av böckernas författarsorteringsvärden. Du kan styra om de etikettbläddrarens visar författare genom att använda deras namn eller deras sorteringsvärden genom att ställa in categories_use_field_for_author_name justering i Inställningar->Avancerat->Justeringar Observera att du kan ställa in en enskild författares sorteringsvärde till vad du vill med hjälp av Hantera Författare. Detta är användbart när det handlar om namn som calibre inte kommer att få rätt, till exempel komplexa flerdelade namn som Miguel de Cervantes Saavedra eller när behandlar asiatiska namn som Sun Tzu. Med all denna flexibilitet, är det möjligt att ha calibre hantera dina författarnamn som du vill. Till exempel är en gemensam beg Ställ in author_sort_copy_method justera kopiera såsom beskrivits ovan. Starta calibre. Ändra inte någon boks metadata innan du gör de återstående stegen. Ändra alla författarnamn till LN, FN använder dialogrutan Hantera författare. När du har ändrat alla författare, tryck på Räkna all författaren slags värden-knappen. Tryck på OK, vid vilken punkt calibre kommer att ändra författarna i alla dina böcker. Detta kan ta ett tag. Observera: Vid byte från FN LN till LN, FN, är det ofta så att värdena i author_sort är redan i LN, FN-format. Om detta är fallet, gör följa ställa in author_sort_copy_method justera kopiera såsom beskrivits ovan. omstarta calibre. Ändra inte någon bok metadata innan du gör de återstående stegen. Öppna dialogrutan Hantera författare. Tryck på kopian alla författare sortera värden till författaren knappen. Kolla igenom författarna för att vara säker på att du är nöjd. Du kan fortfarande trycka på Avbryt för att överge ändringarna. När du trycker på OK, det finns inget att ångra. 116 Kapitel 1. Avsnitten

121 Tryck på OK, vid vilken punkt calibre kommer att ändra författarna i alla dina böcker. Detta kan ta ett tag. Varför inte calibre låta mig lagra böcker i min egen katalogstruktur? Hela poängen med calibre-bibliotekhanteringsfunktioner är att de ger en sökning och sortering baserat gränssnitt för att lokalisera böcker som är mycket effektivare än någon eventuell katalogschema du kunde komma på för din samling. Ja, när du blir bekväm med calibre-gränssnitt för att hitta, sortera och bläddra i din samling, kommer du inte någonsin känna ett behov av att jaga igenom filerna på din hårddisk för att hitta en bok igen. Genom att hantera böcker i sin egen katalogstruktur Författare -> Titel -> Boka filer är calibre kan uppnå en hög grad av tillförlitlighet och standardisering. För att illustrera varför en sökning / märkning baserat gränssnitt är överlägsen mappar, tänka på följande. Anta att din boksamling är snyggt sorterade i mappar med följande schema: Genre -> Author -> Series -> ReadStatus Nu gör det mycket enkelt att hitta till exempel alla science fiction böcker av Isaac Asimov i stiftelsen serien. Men antar att du vill hitta alla olästa science fiction böcker. Det finns inget enkelt sätt att göra detta med den här mappen system, du måste i stället ha en mapp system som ser ut som: ReadStatus -> Genre -> Author -> Series I calibre, skulle du istället använda etiketter för att markera genre och läsa status och sedan bara använda en enkel sökfråga som etikett: scifi och inte : läsa. calibre har även en fint grafiskt gränssnitt, så att du inte behöver lära sig sitt sökspråk istället kan du bara klicka på etiketter för att inkludera eller exkludera dem från sökningen. Till er som hävdar att du behöver tillgång till filsystemet på så att du kan få tillgång till dina böcker över nätet, har calibre en utmärkt innehållsserver som ger dig tillgång till ditt calibre-biblioteket över nätet. Om du är orolig att en dag calibre kommer att upphöra att utvecklas och att lämna alla dina böcker strandsatta i sin mappstruktur, utforska den kraftfulla Spara till disk -funktionen i calibre som låter dig exportera alla dina filer i en mappstruktur för godtycklig komplexitet baserat på sina metadata. Slutligen, anledningen finns det siffror i slutet av varje titelmapp är för robusthet. Det antalet är ID-nummer av bokregistreringen i calibre-databasen. Med närvaron av numret kan du ha flera poster med samma titel och författarnamn. Det är också en del av det som gör calibre magiskt regenerera databas med all metadata om databasfilen blir korrupt. Med tanke på att calibre uppdrag är att få dig att sluta lagra metadata i filnamn och sluta använda filsystemet för att hitta saker, är den ökade robust ges av id-nummer väl värt de fulare mappnamn. Om du fortfarande inte övertygad, så jag är rädd calibre är inte för dig. Leta någon annanstans för din bok katalogisering behov. Bara så att vi är klara, detta kommer inte att förändras. Vänligen kontakta inte oss i ett försök att få oss att ändra på detta. Varför inte calibre har en foo-kolumn? calibre är konstruerad för att ha kolumner för de mest frekvent och mest använda fälten. Dessutom kan du lägga till några kolumner som du gillar. Kolumner kan läggas till via Inställningar->Gränssnitt->Lägg till dina egna kolumner. Titta på handledningen UI Power tips 46 för att lära sig att skapa egna kolumner, eller läs detta blogginlägg 47. Du kan också skapa virtuella kolumner som innehåller kombinationer av metadata från andra kolumner. I dialogrutan Lägg till kolumnen använda :guilabel: Snabb create-länkar för att enkelt skapa kolumner för att visa bokens ISBN eller format. Du kan använda kraftfulla calibre mallspråk att göra mycket mer med kolumner. För mer information, se calibre språkmall (sida 161) Vanliga frågor och svar 117

122 Kan jag ha en kolumn som visar format eller ISBN? Ja, det kan du. Följ instruktionerna i svaret ovan för att lägga till egna kolumner. Hur flyttar jag min calibre-biblioteket från en dator till en annan? Bara kopiera mappen med calibre-biblioteket från den gamla till den nya datorn. Du kan ta reda på var biblioteksmappen är genom att klicka på ikonen calibre i verktygsfältet. Den allra första punkten är sökvägen till biblioteksmappen. Nu på den nya datorn, starta calibre för första gången. Det kommer Välkomstguiden att köras som ber dig om placeringen av calibre-biblioteket. Hänvisa den till den tidigare kopierade mappen. Om datorn du överför till redan har en calibre-installation, kommer inte Välkomstguiden att köras. I så fall, högerklicka på ikonen calibre i verktygsfältet och led den till den nyligen kopierade katalogen. Du kommer nu att ha två calibre-bibliotek på din dator och du kan växla mellan dem genom att klicka på ikonen calibre i verktygsfältet. Överföra ditt bibliotek på detta sätt bevarar alla dina metadata, etiketter, anpassade kolumner, etc. Observera att om du överför mellan olika typer av datorer (till exempel Windows till OS X) sedan efter att ha gjort ovanstående bör du också högerklicka på ikonen calibre i verktygsfältet, välj Biblioteksunderhåll och utför åtgärden Kontrollera bibliotek. Det kommer att varna dig om eventuella problem i biblioteket, som du bör åtgärda på för hand. Observera: Ett calibre bibliotek är bara en mapp som innehåller alla bokfiler och deras metadata. All metadata lagras i en enda fil som heter metadata.db, i den översta mappnivån. Om filen blir skadad, kan det hända att en tom lista över böcker i calibre. I så fall kan du be calibre återställa dina böcker genom att göra en högerklicka på calibre -ikonen i verktygsfältet och välja Biblioteksunderhåll-> Återställ databasen Listan över böcker i calibre är tom! För att förstå varför det hände, måste du förstå vad calibre-biblioteket är. På den mest grundläggande nivån, är ett calibre-bibliotek bara en mapp. När du lägger till en bok till calibre, är att bokens filer kopieras till denna mapp (ordnade i undermappar efter författare och titel). Inne i calibre-biblioteksmappen, på den högsta nivån, kommer du att se en fil som heter metadata.db. Den här filen är där calibre lagrar metadata som titel / författare / betyg / etiketter etc. för varje bok i ditt calibre-biblioteket. Listan över böcker som calibre visar skapas genom att läsa innehållet i denna metadata.db filen. Det kan finnas två skäl till att calibre visar en tom lista över böcker: Your calibre library folder changed its location. This can happen if it was on an external disk and the drive letter for that disk changed. Or if you accidentally moved the folder. In this case, calibre cannot find its library and so starts up with an empty library instead. To remedy this, do a right-click on the calibre icon in the calibre toolbar and select Switch/create library. Click the little blue icon to select the new location of your calibre library and click OK. If you don t know the new location search your computer for the file metadata.db. Din metadata.db raderades / skadades. I så fall kan du be calibre att bygga om metadata.db från sina säkerhetskopior. Högerklicka på ikonen calibre i calibre-verktygsfältet och välj Biblioteksunderhålls> Återställ databas. calibre kommer automatiskt återuppbygga metadata.db. Jag får fel med min calibre-biblioteket på en nätverksenhet/nas? Lägg inte ditt calibre-bibliotek på en nätverksenhet. A filesystem is a complex beast. Most network filesystems lack various filesystem features that calibre uses. Some don t support file locking, some don t support hardlinking, some are just flaky. Additionally, calibre is a single user application, if you accidentally run two copies of calibre on the same networked library, bad things will happen. Finally, different OSes impose different limitations on filesystems, so if you share your networked drive across OSes, once again, bad things will happen. 118 Kapitel 1. Avsnitten

123 Överväg att använda calibre mediaserver för att göra dina böcker tillgängliga på andra datorer. Kör calibre på en enda dator och komma åt den via mediaserver eller en Remote Desktop-lösning. Om du måste dela det faktiska biblioteket, använd ett filsynkroniseringsverktyg som DropBox eller rsync istället för en nätverksenhet. Om du använder ett filsynkroniseringsverktyg är det viktigt att du ser till att både calibre och filsynkroniseringsverktyget inte försöker komma åt calibre bibliotek samtidigt. Med andra ord, kör inte filsynkroniseringsverktyget och calibre samtidigt. Även med dessa verktyg finns det risk för datakorruption eller förlust, så gör bara detta om du är villig att leva med den risken. Framför allt, tänk på att Google Drive är oförenlig med calibre, om du sätter ditt calibre biblioteket i Google Drive, du kommer att drabbas dataförlust. Se this thread < Diverse Innehåll Jag vill att calibre hämtar nyheter från min favoritnyhetssajten. (sida 119) Varför namnet Calibre? (sida 119) Varför visar calibre bara några av mina typsnitt på OS X? (sida 120) calibre startar inte på Windows? (sida 120) caliber fryser / kraschar ibland? (sida 121) Användning av läsare eller att göra några omvandlingar resulterar i en tillåtelse nekas fel i Windows (sida 121) calibre startar inte eller kraschar på OS X? (sida 122) Jag laddade ner installationsprogrammet, men det fungerar inte? (sida 122) Mitt antivirusprogram påstår calibre är ett virus / trojan? (sida 122) Hur säkerhetskopierar calibre? (sida 123) Hur använder jag köpta EPUB-böcker med calibre (eller vad ska jag göra med.acsm filer)? (sida 123) Jag får ett Permission Denied fel? (sida 123) Kan jag få kommentarsmetadata att dyka upp på min läsare? (sida 123) Hur får jag calibre att använda min HTTP-proxy? (sida 124) Jag vill ha lite funktionstilllägg i calibre. Vad kan jag göra? (sida 124) Varför har inte calibre en automatisk uppdatering? (sida 124) Hur är calibre licensierad? (sida 125) Hur kör jag calibre från mitt USB-minne? (sida 125) Hur kör jag delar av calibre som nyhetsnedladdning och mediaservern på min egen Linux-server? (sida 125) Jag vill att calibre hämtar nyheter från min favoritnyhetssajten. Om du är någorlunda skicklig med datorer, kan du lära calibre att hämta nyheter från en webbplats som du väljer. Om du vill veta hur du gör detta se Lägga till din favorit nyhetswebbplats (sida 126). Annars kan du begära en viss nyhetssajt genom att posta i calibre Recipes forum 48. Varför namnet Calibre? Gör ditt val: Convertor And LIBRary for Ebooks Vanliga frågor och svar 119

124 En stor calibre produkt En hyllning till SONY Librie som var den första e-bokläsare baserade på elektroniskt bläck Min fru valde det ;-) calibre uttalas som kal-i-ber inte ka-li-bre. Om du undrar, calibre är den brittiska/ samväldets stavning för caliber. Att vara indisk, det är den naturliga stavningen för mig. Varför visar calibre bara några av mina typsnitt på OS X? calibre bäddar in typsnitt i e-bokfiler som skapas. E-bokfiler stöder endast inbäddning av Truetype och Opentype (.ttf och.otf) typsnitt. De flesta typsnitt på OS X-system är i.dfont format, vilket de inte kan bäddas in. calibre visar endast Truetype och Opentype-typsnitt som finns på ditt system. Du kan få många sådana typsnitt på webben. Helt enkelt ladda ner.ttf /.otf filer och lägga till dem i Bibliotek / Fonts katalogen i din hemkatalog. calibre startar inte på Windows? Det kan finnas flera orsaker för detta: Om du är på Windows XP, eller på en dator med en processor som inte stödjer SSE2 (t.ex. AMD-processorer från före 2003) försöka installera calibre version 1.48 < _. calibre 2.0 och nyare använda Qt 5 som är känd för att vara kompatibelt med Windows XP-maskiner, och kräver SSE2. Helt enkelt avinstallera calibre och sedan installera version 1.48, detta kommer inte att påverka dina böcker / inställningar. Om du får ett felmeddelande om att calibre inte kunna öppna en fil eftersom den används av ett annat program, gör följande: Avinstallera calibre Boota om din dator Återinstallera calibre, men starta inte calibre från installationsguiden. Tillfälligt deaktivera ditt antivirus program (koppla bort från internet innan du gör det, för att vara säker) Titta inne i mappen du valt till ditt calibre-bibliotek. Om du ser en fil vid namn metadata.db, ta bort den. Starta calibre Från och med nu bör du kunna starta calibre normalt. Om du får ett fel i en Python-funktion som avslutas oväntat efter en uppgradering av calibre, först avinstallera calibre, sedan ta bort mappar (om det finns några) C:\Program Files\Calibre och C:\Program Files\Calibre2. Nu återinstallera och du bör vara OK. Om du får ett fel i välkomstguiden vid en initieringsköring av calibre, försök välja en mapp som C:\library för calibre-biblioteket (eftersom ibland har calibre problem med biblioteksplatser om sökvägen innehåller ickeengelska tecken, eller bara siffror etc.) Försök köra som administratör (högerklicka på ikonen och välj Kör som administratör ) Om det fortfarande inte startar, starta en kommandotolk (tryck på Windows-tangenten och R, skriv sedan: kommando: cmd.exe i dialogrutan Kör som visas). I kommandotolken skriver du följande kommando och tryck på Retur calibre-debug -g Lägg upp något utdata som du ser i ett hjälpmeddelande på Forum Kapitel 1. Avsnitten

125 caliber fryser / kraschar ibland? Det finns flera möjliga saker som jag känner till, som kan orsaka detta: Du kopplade nyligen en extern bildskärm eller TV till datorn. I detta fall, när calibre öppnas ett nytt fönster som metadataredigerinsfönstret eller konverteringsdialogrutan, visas det på den andra bildskärmen där du inte märker det, och så du tror calibre har frusit. Koppla bort din andra bildskärmen och starta om calibre. Om du använder RoboForm är det känt för att orsaka calibre kraschar. Lägg calibre till den svarta listan över program i RoboForm för att fixa detta. Eller avinstallera RoboForm. Logitechs inställningsprogram orsakar slumpmässiga krascher i calibre när den är öppen. Stäng det innan calibre. Constant Guard Protection från Xfinity orsakar krascher i calibre. Du måste manuellt tillåta calibre i det eller avinstallera Constant Guard Protection. Spybot - Search & Destroy hindrar calibre från att komma åt sina temporära filer som förstör visning och konvertering av böcker. Du använder en Wacom märkes USB-mus. Det finns en inkompatibilitet mellan Wacom-möss och grafisk verktygslåda calibre använder. Försök att använda en icke-wacom-mus. På vissa 64-bitarsversioner av Windows finns säkerhetsprogramvara / inställningar som hindrar 64-bitars calibre från att fungera korrekt. Om du använder 64-bitarsversionen av calibre försöka byta till 32-bitarsversionen. Om krascher händer speciellt när du använder en filöppningsdialog, som att klicka på knappen Lägg till böcker eller spara till disk-knappen, då kan du ha ett problem med fönstren filöppningsdialoger på din dator. Vissa calibre användare har rapporterat att avinstallera SpiderOak krypterings backup-programvara fixar även dessa krascher. Om du inte vill avinstallera SpiderOak kan du också stänga av Aktivera OS integration i SpiderOakinställningar. Om inget av ovanstående gäller för dig, så finns det något annat program på datorn som stör calibre. Först starta om datorn i felsäkert läge, att ha så få program som körs som möjligt, och se om krascher fortfarande händer. Om de inte gör det, då vet du att det är något program som orsakar problemet. Den mest sannolika boven i dramat är ett sådant program som modifierar andra programs beteende, till exempel ett antivirusprogram, en drivrutin, något som RoboForm (en automatisk ifyllnings app) eller hjälpmedel som röststyrning eller en skärmläsare. Det enda sättet att hitta den skyldige är att eliminera program ett efter ett och se vilken som orsakar problemet. I grund och botten, stoppa ett program, köra calibre, kontrollera om det krascher. Om det fortfarande händer, stoppa ett annat program och upprepa. Användning av läsare eller att göra några omvandlingar resulterar i en tillåtelse nekas fel i Windows Något på datorn hindrar calibre från att komma åt sina egna temporära filer. Troligtvis behörighet på din Temp-mappen är felaktig. Gå till mappen filen: C:\Användare\ANVÄNDARNAMN\AppData\Local i Utforskaren och högerklicka på filen: Temp mapp, välj Egenskaper och gå till fliken Säkerhet. Se till att ditt användarkonto har full kontroll på den här mappen. Vissa användare har rapporterat att köra följande kommando i en administratörskommandotolk löser deras behörigheter. För att få en administratörskommandotolk sök efter cmd.exe i startmenyn, högerklicka på Kommandotolksposten och välj Kör som administratör. I kommandotolken skriver du följande kommando och tryck på Retur: icacls "%appdata%\..\local\temp" /reset /T Alternativt kan du köra calibre som administratör, men detta kommer att leda till vissa problem, till exempel dra och släppa inte fungerar. Slutligen har en del användare rapporterat att inaktivera UAC löser problemet Vanliga frågor och svar 121

126 calibre startar inte eller kraschar på OS X? En vanlig orsak till fel på OS X är användningen av tillgänglighetsteknik som är oförenliga med grafikverktygen calibre använder. Prova att stänga av VoiceOver om du har det på. Också gå till System Inställningar->System->Hjälpmedel och stäng av inställningen för att ge tillgång till hjälpmedel i alla flikar. En annan orsak kan vara en tredjepartsapps som modifierar systembeteende, såsom Smart Scroll. Du kan få felsökningsinformation om varför calibre inte startar genom att köra Console.app. Felsökningsinformation skrivs till den. Om felsökningsinformationen innehåller en rad som ser ut: Qt: internal: -108: Error ATSUMeasureTextImage text/qfontengine_mac.mm då problemet är troligen en skadad typsnittsbuffer. Du kan rensa bufferten genom att följa dessa instruktioner 50. Om det inte löser det, leta efter en skadad typsnitts-fil på datorn, i ~/Library/Fonts eller liknande. Ett enkelt sätt att kontrollera om det finns skadade typsnitt i OS X är att starta Font Book -programmet välja alla typsnitt och sedan på Arkivmenyn, välj Verifiera typsnitt. Jag laddade ner installationsprogrammet, men det fungerar inte? Downloading from the Internet can sometimes result in a corrupted download. If the calibre installer you downloaded is not opening, try downloading it again. If re-downloading it does not work, download it from an alternate location 51. If the installer still doesn t work, then something on your computer is preventing it from running. Försök att tillfälligt inaktivera antivirusprogrammet (Microsoft Security Essentials eller Kaspersky eller Norton eller McAfee eller vad). Detta är troligen den skyldige om uppgraderingen hänger i mitten. Försök att starta om datorn och köra ett registerrensninsprogram som Wise Registry Cleaner 52. Prova en ren installation. Det vill säga, avinstallera calibre ta bort: file: C:\Program\Calibre2 (eller var du tidigare valde att installera calibre). Därefter ominstallera calibre. Observera att avinstallering inte rör dina böcker eller inställningar. Prova att ladda ner installationsprogrammet med en alternativ webbläsare. Till exempel om du använder Internet Explorer, prova att använda Firefox eller Chrome istället. Om du får ett felmeddelande om en saknad DLL i Windows, så är troligen behörigheterna på din tillfälliga mapp är felaktig. Gå till mappen C:\Users\USERNAME\AppData\Local i Windows Explorer och högerklicka sedan på Temp-mappen och välj Egenskaper och gå till Säkerhet-fliken. Se till att ditt användarkonto har full kontroll för denna mapp. Om du fortfarande inte kan få installeraren att fungera och du använder Windows, kan du använda calibre portable install 53, som inte behöver en installatör (det är bara en zip-fil). Mitt antivirusprogram påstår calibre är ett virus / trojan? Det första du bör kontrollera är att du laddar ner calibre från den officiella hemsidan: < _. Se till att du klicka på nedladdningslänkar till vänster, inte reklam till höger. calibre är ett mycket populärt program och skrupelfria människor försöker installations webbplatser som erbjuder den för nedladdning för att lura oförsiktiga. Om du har den officiella nedladdningen och antivirusprogrammet fortfarande hävdar calibre är ett virus är alltså felet antivirusprogrammet. Antivirusprogram använder heuristik, mönsterkod som ser misstänkt för att upptäcka virus. Det är ungefär som rasprofilering. calibre är en helt öppen källkodsprodukt. Du kan faktiskt bläddra i källkoden själv Kapitel 1. Avsnitten

127 (eller anlita någon att göra det åt dig) för att kontrollera att det inte är ett virus. Vänligen rapportera falska identifiering till vad företaget du köper ditt antivirusprogram från. Om antivirusprogram hindrar dig från att ladda ner / installera calibre inaktivera det temporärt, installera calibre och sedan återaktivera det. Hur säkerhetskopierar calibre? Det viktigaste för att säkerhetskopiera är calibre-biblioteksmapp som innehåller alla dina böcker och metadata. Detta är den mapp du valde för din calibre-biblioteket när du körde calibre för första gången. Du kan få sökvägen till biblioteksmappen genom att klicka på calibre-ikonen på verktygslisten. Du måste säkerhetskopiera den här hel mapp med alla filer och undermappar. Du kan växla calibre till att använda en säkerhetskopierad biblioteksmapp genom att klicka på calibre ikonen i verktygsfältet och välja din säkerhetskopierade biblioteksmapp. En säkerhetskopierad biblioteksmappen säkerhetskopierar dina egna kolumner och sparade sökningar samt alla dina böcker och metadata. Om du vill säkerhetskopiera calibres konfigurations/tillägg, måste du säkerhetskopiera konfigurationskatalogen. Du hittar den här konfiguring mappen via Inställningar->Diverse. Observera att återställa konfigurationskataloger inte officiellt stöds, men bör fungera i de flesta fall. Bara kopiera innehållet i backup-katalogen i den aktuella konfigurationen katalogen att återställa. Hur använder jag köpta EPUB-böcker med calibre (eller vad ska jag göra med.acsm filer)? Mest köpta EPUB böcker har DRM < _. Detta förhindrar calibre från att öppna dem. Du kan fortfarande använda calibre att lagra och överföra dem till eboksläsare. Först måste du tillåta dina läsare på en Windows-maskin med Adobe Digital Editions. När detta är gjort, överförs EPUB böcker med calibre kommer att fungera bra på din läsare. När du köper en epub bok från en webbplats, kommer du att få en.acsm filen. Denna fil ska öppnas med Adobe Digital Editions, som sedan kommer att hämta själva.epub ebook. Den e-bokfilen sparas i mappen Mina digitala upplagor, där du kan lägga till det till calibre. Jag får ett Permission Denied fel? En tillståndsnekningsfel kan uppstå på grund av många möjliga orsaker, ingen av dem har något att göra med calibre. Du kan få tillståndsnekningsfel om du använder ett SD-kort med skrivskydd aktiverat. Om du, eller något program du använde ändrat filrättigheter av filerna i fråga att bara läsas. Om det finns ett filsystemsfel på enheten som orsakade operativsystemet att montera filsystemet i skrivskyddat läge eller markera en viss fil som skrivskyddad för att återvinnas. Om filerna har sina ägare inställda till en annan användare än du. Om filen är öppen i ett annat program. Om filen finns på en enhet, kan du ha nått gränsen för maximalt 256 filer i roten på enheten. I det här fallet måste du formatera enheten/sd-kortet som avses i felmeddelandet med FAT32 filsystem, eller ta bort några filer från SD-kortet/enhetens minne. Du måste rätta till det underliggande orsaken till behörighetsfelen innan du fortsätter använda calibre. Läs felmeddelandet noggrant, se vilken fil det pekar på och fixa behörigheterna på den filen eller dess mappar. Kan jag få kommentarsmetadata att dyka upp på min läsare? De flesta läsare stöder inte detta. Du ska klaga hos tillverkaren om det och förhoppningsvis om tillräckligt många klagar, kommer saker och ting förändras. Under tiden kan du infoga metadata, med kommentarer till en skyddsomslagssida i början av e-bok, genom att använda alternativet Infoga metadata som sidan i början på boken under 1.8. Vanliga frågor och svar 123

128 konverteringen. Alternativet finns i Strukturdetektion-avsnittet av konverteringsinställningarna. Notera att för att detta ska gälla måste du konvertera boken. Om din bok är redan i ett format som inte behöver konvertering kan du konvertera från det formatet till samma format. Ett annat alternativ är att skapa en katalog i e-boksform innehållande en lista på alla böcker i ditt calibre-bibliotek, med sina metadata. Klicka och håll knappen Konvertera för att komma åt skapa katalog verktyget. Och innan du frågar, nej du kan inte ha den länken direkt till sortiment böcker på din läsare. Hur får jag calibre att använda min HTTP-proxy? Som standard använder calibre de tillgängliga proxyinställningar som är inställda i ditt operativsystem. Ibland dessa är felaktiga, till exempel i Windows om du inte använder Internet Explorer så kan proxyinställningar vara ouppdaterade. Du kan tala om för calibre att använda en viss proxyserver genom att ställa in http_proxy-miljövariabel. Formatet på variabeln är du bör fråga din nätverksadministratör för att ge dig rätt värde för denna variabel. Observera att calibre bara stödjer HTTP proxyer inte SOCKS proxy. Du kan se den aktuella proxy som används av calibre i Inställningar->Övrigt. Jag vill ha lite funktionstilllägg i calibre. Vad kan jag göra? Du har två val: 1. Skapa en lösning genom att hacka på calibre och skicka det till mig för granskning och inkludering. Se Development Öppna en bugg som begär funktionen < _. Kom ihåg att även om du tror att din funktion förfrågan är oerhört viktigt / mycket viktigt, calibre-utvecklare kanske inte håller med. Lyckligtvis är calibre öppen källkod, vilket innebär att du alltid har möjlighet att genomföra din funktion själv, eller anställa någon att göra det åt dig. Vidare calibre har en omfattande tilläggsarkitektur, så du kanske kan utveckla din funktion som ett tillägg, se Skriva dina egna tillägg för att utöka calibres funktionalitet (sida 213). Varför har inte calibre en automatisk uppdatering? För många orsaker: Det finns ingen anledning att uppdatera varje vecka. Om du är nöjd med hur calibre kör stäng av anmälan om uppdateringen och vara på god väg. Återkom för att se om du vill uppdatera en gång om året eller så. Det finns en kryssruta för att stänga av uppdateringsmeddelandet, på själva uppdateringsanmälan. calibre-nedladdningar använder idag omkring 100TB bandbredd per månad 55. Implementera automatiska uppdateringar skulle kraftigt öka det och resulltera kostnad på tusentals dollar i månaden, vilket någon måste betala. Om jag implementerar en dialogruta som hämtar uppdateringen och släpper det, istället för att gå till webbplatsen som det gör nu, som skulle rädda den ivrigaste calibre-uppdaterare, högst fem klick i veckan. Det finns betydligt högre prioritet att göra i calibre-utveckling. Om du verkligen, verkligen hatar att ladda ner calibre varje vecka, men ändå vill vara upp till den senaste, jag uppmuntrar dig att köra från källkod, vilket gör att uppdatera trivialt. Instruktioner: ref: finns här <utveckla>. Det finns automatiska tredjepartsuppdaterare för calibre gjorda av calibre användare på calibre forum Kapitel 1. Avsnitten

129 Hur är calibre licensierad? calibre licensieras under GNU General Public License v3 (en öppen källkod-licens). Det innebär att du är fri att distributera calibre så länge du gör källkoden tillgänglig. Så om du vill sätta calibre på en CD med din produkt, måste du också sätta calibre-källkod på CD. Källkoden är tillgänglig för nedladdning < _. Du är fri att använda resultaten av konverteringar från calibre hur du vill. Du kan inte använda någon kod eller bibliotek från calibre i programmet utan att göra din programvara med öppen källkod. För mer information, se GNU GPL v3 < _. Hur kör jag calibre från mitt USB-minne? En bärbar version av finns här 57. Hur kör jag delar av calibre som nyhetsnedladdning och mediaservern på min egen Linux-server? Först måste du installera calibre på din Linux-server. Om servern använder en modern Linux-distributioner, bör du inte ha några problem med att installera calibre på den. Observera: calibre behöver GLIBC >= 2.13 och libstdc++ >= Om du har en äldre server, kommer du antingen vara tvungen sammanställa dessa från källan, eller använda calibre 1.48 vilket kräver endast GLIBC >= Dessutom, även om calibres kommandoradsverktyg behöver inte ha en körande X-server, kräver en del av dem att X- serverns bibliotek ska installeras på ditt system. Detta beror på att användningen Qt, som länkar mot dessa bibliotek. Om du får en ImportError om några Qt moduler, är det sannolikt du saknar vissa X-bibliotek. Du kan köra calibre-servern med kommandot: /opt/calibre/calibre-server --with-library /path/to/the/library/you/want/to/share Du kan ladda ner nyheter och omvandla de till en e-bok med kommandot: /opt/calibre/ebook-convert "Title of news source.recipe" outputfile.epub Om du vill generera MOBI, använd outputfile.mobi istället och använd --output-profil Kindle. Du kan skicka e-post med nedladdade nyheter med kommandot: /opt/calibre/calibre-smtp Jag lämnar att lista ut exakt kommandorad som en övning för läsaren. Slutligen kan du lägga till nedladdade nyheter till calibre-biblioteket med: /opt/calibre/calibredb add --with-library /path/to/library outfile.epub Kom ihåg att läsa kommandoraden dokumentationsavsnittet av calibre i användarhandboken för mer information om dessa och andra kommandon. 1.9 Handledning Här hittar du handledningar för att komma igång med hjälp av calibrears mer avancerade funktioner, t.ex. XPath och mallar Handledning 125

130 1.9.1 Lägga till din favorit nyhetswebbplats calibre har en kraftfull, flexibel och lätt att använda ramverk för att hämta nyheter från Internet och omvandla dem till en e-bok. Följande kommer att visa dig, med hjälp av exempel, hur man får nyheter från olika webbplatser. För att få en förståelse för hur man använder ramverket, följ exemplen i den ordning som anges nedan: Helt automatisk hämtning (sida 126) calibre blogg (sida 126) bbc.co.uk (sida 128) Anpassa hämta processen (sida 128) Använda den tryckta versionen av bbc.co.uk (sida 128) Byte av artikelstilar (sida 129) Skivning och tärning (sida 130) Exempel i verkligheten (sida 142) Tips för att utveckla nya recept (sida 144) Ytterligare läsning (sida 145) API dokumentation (sida 145) Helt automatisk hämtning Om din nyhetskälla är enkel nog, skulle calibre mycket väl kunna hämta det helt automatiskt, allt du behöver göra att ge webbadressen. calibre samlar all information som behövs för att ladda ner en nyhetskälla i ett recept. För att berätta för calibre om en nyhetskälla, måste du skapa ett recept för det. Låt oss se några exempel: calibre blogg calibre blogg är en blogg av inlägg som beskriver många användbara calibre-funktioner på ett enkelt och lättillgängligt sätt för nya calibre-användare. För att ladda ner den här bloggen till en e-bok, förlitar vi oss på RSS-flödet av bloggen: Jag fick RSS URL genom att titta under Prenumerera längst ner på bloggsidan och välja Posts->Atom. För att få calibre hämta flöden och omvandla dem till en e-bok, ska du högerklicka på Hämta nyheter knappen och sedan på Lägg till en anpassad nyhetskälla menyalternativet och sedan Nytt recept knappen. En dialogruta liknande den som visas nedan bör öppna sig. 126 Kapitel 1. Avsnitten

131 Ange först calibre Blog i Recepttitel fält. Detta kommer att vara namnet på den e-bok som kommer att skapas från artiklarna i de ovanstående flöden. De nästa två fälten (Äldsta artikel och Max. number of articles) tillåter dig viss kontroll över hur många artiklar som ska hämtas från varje flöde, och de är ganska självförklarande. För att lägga till flöde till receptet, mata in flödestitel och flödes-url och klicka på Lägg till flöde knappen. När du har lagt till flöde, klicka på Spara knappen och du är klar! Stäng dialogrutan. Så här testar du nya recept klicka på Anpassad nyhetskälla undermenyn klicka calibre blogg nyhetsknapp. Efter ett par minuter, kommer den nyligen nedladdade e-boken av blogginlägget visas i huvudbiblioteksvyn (om du har dina läsare ansluten kommer den att läggas ut på läsaren i stället för in i biblioteket). Välj det och tryck på Visa knappen för att läsa! Anledningen till att detta fungerat så bra, med så liten ansträngning är att bloggen ger fullt innehåll RSS flöden, det vill säga, artikelns innehåll är inbäddat i själva flödet. För de flesta nyhetskällor som tillhandahåller nyheter på detta sätt, med fullt innehåll flöden, du behöver inte någon mer ansträngning för att omvandla dem till e-böcker. Nu ska vi titta på en nyhetskälla som inte ger fullständigt innehållsflöde. I sådana flöden är hela artikeln en webbsida och flödet innehåller bara en länk till webbsidan med en kort sammanfattning av artikeln Handledning 127

132 bbc.co.uk Låt oss prova följande två flöden från BBC: 1. Nyheter framsida: 2. Vetenskap/Natur: Följ proceduren som beskrivs i calibre blogg (sida 126) ovan för att skapa ett recept på BBC (med hjälp av flöde ovan). Om man tittar på den nedladdade e-boken, ser vi att claibre har gjort ett förtjänstfullt arbete för att utvinna bara innehållet som du bryr dig om från varje artikel hemsida. Emellertid är extraktionsprocessen inte perfekt. Ibland lämnar oönskade innehåll som menyer och navigeringshjälpmedel, eller det tar bort innehåll som borde lämnas i fred, som artikelrubriker. För att få perfekt innehållsutvinning, måste vi anpassa hämta processen, som beskrivs i nästa avsnitt. Anpassa hämta processen När du vill att fullända hämtningen, eller hämta innehåll från en särskilt komplicerad webbplats kan du använda dig av all den kraft och flexibilitet i ramen av recept. För att kunna göra det, i Lägg till anpassad nyhetskälla dialog, genom att klicka på Växla till avancerat läge knappen. Det enklaste och ofta mest produktiva anpassning är att använda den tryckta versionen av uppkopplade-artiklar. Den tryckta versionen är oftast mycket mindre hantverk och översätter mycket smidigare till en e-bok. Låt oss försöka använda den tryckta versionen av artiklarna från BBC. Använda den tryckta versionen av bbc.co.uk Det första steget är att titta på e-boken som vi hämtat tidigare från bbc.co.uk (sida 128). Vid slutet av varje artikel, i e-boken finns en liten baksidetext som talar om när artikeln hämtats från. Kopiera och klistra in denna webbadress i en webbläsare. Nu på artikelwebbsidan leta efter en länk som pekar på Utskrift. Klicka på den för att se den tryckta versionen av artikeln. Det ser mycket snyggare! Jämför nu de två webbadresser. För mig var de: Artikel URL Utskriftsversion URL Så det ser ut att få den tryckta versionen måste vi prefix varje artikel URL med: newsvote.bbc.co.uk/mpapps/pagetools/print/ Nu i Avancerat läge för Anpassad nyhetskällor dialogrutan ska du se något liknande (kom ihåg att välja BBC receptet innan du växlar till avancerat läge): Du kan se att fälten från Grundläge har omräknats med python-kod på ett enkelt sätt. Vi måste lägga till instruktioner för att detta recept för att använda den tryckta versionen av artiklarna. Allt som behövs är att lägga till följande två rader: 128 Kapitel 1. Avsnitten

133 def print_version(self, url): return url.replace(' ' Detta är python, så indenteringen(indrag) är viktigt. När du har lagt raderna ska det se ut: I ovanstående, def print_version(self, url) definieras en metod som anropas av calibre för varje artikel. url är webbadressen till den ursprungliga artikeln. Vad print_version gör är att den tar URL:n och ersätter den med den nya URL:n som pekar på den tryckta versionen av artikeln. Om du vill veta om python 58 se tutorial 59. Nu klickar du på Lägg till/uppdatera recept-knappen och dina ändringar sparas. Hämta e-boken igen. Du bör nu ha en mycket förbättrad e-bok. Ett av problemen med den nya versionen är att typsnitten på utskriftsversion är för små. Detta är automatiskt justerat vid konvertering till en e-bok, men även efter justeringsprocessen, blir teckenstorleken för menyer och navigeringsfältet för stora i förhållande till artikeltexten. För att åtgärda detta, kommer vi att göra lite mer anpassning, i nästa avsnitt. Byte av artikelstilar I föregående avsnitt såg vi att teckenstorleken efter artiklar från den tryckta versionen av BBC var för liten. I de flesta webbplatser, ingår BBC, är detta textstorlek in med hjälp av CSS stilmallar. Vi kan inaktivera hämtning av sådana mallar genom att lägga till raden: no_stylesheets = True Receptet ser nu ut: Handledning 129

134 Den nya versionen ser ganska bra ut. Om du är en perfektionist, vill du nog läsa nästa avsnitt, som handlar faktiskt om att modifiera nedladdat material. Skivning och tärning calibre innehåller mycket kraftfulla och flexibla färdigheter när det gäller att manipulera nedladdat material. För att visa upp ett par av dessa, låt oss titta på vår gamle vän för BBC (sida 129) receptet igen. Om man tittar på källkoden (HTML) i ett par artiklar (utskriftsversion), ser vi att de har en sidfot som innehåller någon användbar information, som finns i <div class="footer">... </div> Detta kan tas bort genom att lägga till: remove_tags = [dict(name='div', attrs={'class':'footer'})] till receptet. Slutligen kan ersätta en del av CSS som vi tidigare inaktiverad, med vår egen :term: CSS om är lämplig för omvandling till en e-bok: extra_css = '.headline {font-size: x-large;} \n.fact { padding-top: 10pt }' Med dessa tillägg har vårt recept blivit produktionskvalitet, ja det är mycket nära till den faktiska receptet används av calibre för BBC, som visas nedan: ## ## Title: BBC News, Sport, and Blog Calibre Recipe ## Contact: mattst - jmstanfield@gmail.com ## ## License: GNU General Public License v3 - ## Copyright: mattst - jmstanfield@gmail.com ## ## Written: November 2011 ## Last Edited: ## license copyright = 'GNU General Public License v3 - = 'mattst - jmstanfield@gmail.com' ''' 130 Kapitel 1. Avsnitten

135 BBC News, Sport, and Blog Calibre Recipe ''' # Import the regular expressions module. import re # Import the BasicNewsRecipe class which this class extends. from calibre.web.feeds.recipes import BasicNewsRecipe class BBCNewsSportBlog(BasicNewsRecipe): # # **** IMPORTANT USERS READ ME **** # # First select the feeds you want then scroll down below the feeds list # and select the values you want for the other user preferences, like # oldest_article and such like. # # # Select the BBC rss feeds which you want in your ebook. # Selected feed have NO '#' at their start, de-selected feeds begin with a '#'. # # Eg. ("News Home", " - include feed. # Eg. #("News Home", " - do not include feed. # # There are 68 feeds below which constitute the bulk of the available rss # feeds on the BBC web site. These include 5 blogs by editors and # correspondants, 16 sports feeds, 15 'sub' regional feeds (Eg. North West # Wales, Scotland Business), and 7 Welsh language feeds. # # Some of the feeds are low volume (Eg. blogs), or very low volume (Eg. Click) # so if "oldest_article = 1.5" (only articles published in the last 36 hours) # you may get some 'empty feeds' which will not then be included in the ebook. # # The 15 feeds currently selected below are simply my default ones. # # Note: With all 68 feeds selected, oldest_article set to 2, # max_articles_per_feed set to 100, and simultaneous_downloads set to 10, # the ebook creation took 29 minutes on my speedy 100 mbps net connection, # fairly high-end desktop PC running Linux (Ubuntu Lucid-Lynx). # More realistically with 15 feeds selected, oldest_article set to 1.5, # max_articles_per_feed set to 100, and simultaneous_downloads set to 20, # it took 6 minutes. If that's too slow increase 'simultaneous_downloads'. # # Select / de-select the feeds you want in your ebook. # feeds = [ ("News Home", " ("UK", " ("World", " #("England", " #("Scotland", " #("Wales", " #("N. Ireland", " #("Africa", " #("Asia", " #("Europe", " #("Latin America", " Handledning 131

136 ] #("Middle East", " ("US & Canada", " ("Politics", " ("Science/Environment", " ("Technology", " ("Magazine", " ("Entertainment/Arts", " #("Health", " #("Education/Family", " ("Business", " ("Special Reports", " ("Also in the News", " #("Newsbeat", " #("Click", " ("Blog: Nick Robinson (Political Editor)", " #("Blog: Mark D'Arcy (Parliamentary Correspondent)", " #("Blog: Robert Peston (Business Editor)", " #("Blog: Stephanie Flanders (Economics Editor)", " ("Blog: Rory Cellan-Jones (Technology correspondent)", " ("Sport Front Page", " #("Football", " #("Cricket", " #("Rugby Union", " #("Rugby League", " #("Tennis", " #("Golf", " #("Motorsport", " #("Boxing", " #("Athletics", " #("Snooker", " #("Horse Racing", " #("Cycling", " #("Disability Sport", " #("Other Sport", " #("Olympics 2012", " #("N. Ireland Politics", " #("Scotland Politics", " #("Scotland Business", " #("E. Scotland, Edinburgh & Fife", " #("W. Scotland & Glasgow", " #("Highlands & Islands", " #("NE. Scotland, Orkney & Shetland", " #("South Scotland", " #("Central Scotland & Tayside", " #("Wales Politics", " #("NW. Wales", " #("NE. Wales", " #("Mid. Wales", " #("SW. Wales", " #("SE. Wales", " #("Newyddion - News in Welsh", " #("Gwleidyddiaeth", " #("Gogledd-Ddwyrain", " #("Gogledd-Orllewin", " #("Canolbarth", " #("De-Ddwyrain", " #("De-Orllewin", " 132 Kapitel 1. Avsnitten

137 # **** SELECT YOUR USER PREFERENCES **** # Title to use for the ebook. # title = 'BBC News' # A brief description for the ebook. # description = u'bbc web site ebook created using rss feeds.' # The max number of articles which may be downloaded from each feed. # I've never seen more than about 70 articles in a single feed in the # BBC feeds. # max_articles_per_feed = 100 # The max age of articles which may be downloaded from each feed. This is # specified in days - note fractions of days are allowed, Eg. 2.5 (2 and a # half days). My default of 1.5 days is the last 36 hours, the point at # which I've decided 'news' becomes 'old news', but be warned this is not # so good for the blogs, technology, magazine, etc., and sports feeds. # You may wish to extend this to 2-5 but watch out ebook creation time will # increase as well. Setting this to 30 will get everything (AFAICT) as long # as max_articles_per_feed remains set high (except for 'Click' which is # v. low volume and its currently oldest article is 4th Feb 2011). # oldest_article = 1.5 # Number of simultaneous downloads. 20 is consistantly working fine on the # BBC News feeds with no problems. Speeds things up from the defualt of 5. # If you have a lot of feeds and/or have increased oldest_article above 2 # then you may wish to try increasing simultaneous_downloads to 25-30, # Or, of course, if you are in a hurry. [I've not tried beyond 20.] # simultaneous_downloads = 20 # Timeout for fetching files from the server in seconds. The default of # 120 seconds, seems somewhat excessive. # timeout = 30 # The format string for the date shown on the ebook's first page. # List of all values: # Default in news.py has a leading space so that's mirrored here. # As with 'feeds' select/de-select by adding/removing the initial '#', # only one timefmt should be selected, here's a few to choose from. # timefmt = ' [%a, %d %b %Y]' # [Fri, 14 Nov 2011] (Calibre default) #timefmt = ' [%a, %d %b %Y %H:%M]' # [Fri, 14 Nov :30] #timefmt = ' [%a, %d %b %Y %I:%M %p]' # [Fri, 14 Nov :30 PM] #timefmt = ' [%d %b %Y]' # [14 Nov 2011] #timefmt = ' [%d %b %Y %H:%M]' # [14 Nov ] #timefmt = ' [%Y-%m-%d]' # [ ] #timefmt = ' [%Y-%m-%d-%H-%M]' # [ ] 1.9. Handledning 133

138 # # **** IMPORTANT **** # # DO NOT EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING. # # DO NOT EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING. # # I MEAN IT, YES I DO, ABSOLUTELY, AT YOU OWN RISK. :) # # **** IMPORTANT **** # # Author of this recipe. author = 'mattst' # Specify English as the language of the RSS feeds (ISO-639 code). language = 'en_gb' # Set tags. tags = 'news, sport, blog' # Set publisher and publication type. publisher = 'BBC' publication_type = 'newspaper' # Disable stylesheets from site. no_stylesheets = True # Specifies an override encoding for sites that have an incorrect charset # specified. Default of 'None' says to auto-detect. Some other BBC recipes # use 'utf8', which works fine (so use that if necessary) but auto-detecting # with None is working fine, so stick with that for robustness. encoding = None # Sets whether a feed has full articles embedded in it. The BBC feeds do not. use_embedded_content = False # Removes empty feeds - why keep them!? remove_empty_feeds = True # Create a custom title which fits nicely in the Kindle title list. # Requires "import time" above class declaration, and replacing # title with custom_title in conversion_options (right column only). # Example of string below: "BBC News - 14 Nov 2011" # # custom_title = "BBC News - " + time.strftime('%d %b %Y') ''' # Conversion options for advanced users, but don't forget to comment out the # current conversion_options below. Avoid setting 'linearize_tables' as that # plays havoc with the 'old style' table based pages. # conversion_options = { 'title' : title, 'comments' : description, 'tags' : tags, 'language' : language, 134 Kapitel 1. Avsnitten

139 ''' } 'publisher' : publisher, 'authors' : publisher, 'smarten_punctuation' : True conversion_options = { 'smarten_punctuation' : True } # Specify extra CSS - overrides ALL other CSS (IE. Added last). extra_css = 'body { font-family: verdana, helvetica, sans-serif; } \.introduction,.first { font-weight: bold; } \.cross-head { font-weight: bold; font-size: 125%; } \.cap,.caption { display: block; font-size: 80%; font-style: italic; } \.cap,.caption,.caption img,.caption span { display: block; text-align: center; ma.byl,.byd,.byline img,.byline-name,.byline-title,.author-name,.author-position.correspondent-portrait img,.byline-lead-in,.name,.bbc-role { display: block; text-align: center; font-size: 80%; font-style: italic; margin: 1px auto; } \.story-date,.published { font-size: 80%; } \ table { width: 100%; } \ td img { display: block; margin: 5px auto; } \ ul { padding-top: 10px; } \ ol { padding-top: 10px; } \ li { padding-top: 5px; padding-bottom: 5px; } \ h1 { text-align: center; font-size: 175%; font-weight: bold; } \ h2 { text-align: center; font-size: 150%; font-weight: bold; } \ h3 { text-align: center; font-size: 125%; font-weight: bold; } \ h4, h5, h6 { text-align: center; font-size: 100%; font-weight: bold; }' # Remove various tag attributes to improve the look of the ebook pages. remove_attributes = [ 'border', 'cellspacing', 'align', 'cellpadding', 'colspan', 'valign', 'vspace', 'hspace', 'alt', 'width', 'height' ] # Remove the (admittedly rarely used) line breaks, "<br />", which sometimes # cause a section of the ebook to start in an unsightly fashion or, more # frequently, a "<br />" will muck up the formatting of a correspondant's byline. # "<br />" and "<br clear/>" are far more frequently used on the table formatted # style of pages, and really spoil the look of the ebook pages. preprocess_regexps = [(re.compile(r'<br[ ]*/>', re.ignorecase), lambda m: ''), (re.compile(r'<br[ ]*clear.*/>', re.ignorecase), lambda m: '')] # Create regular expressions for tag keeping and removal to make the matches more # robust against minor changes and errors in the HTML, Eg. double spaces, leading # and trailing spaces, missing hyphens, and such like. # Python regular expression ('re' class) page: # *************************************** # Regular expressions for keep_only_tags: # *************************************** # The BBC News HTML pages use variants of 'storybody' to denote the section of a HTML # page which contains the main text of the article. Match storybody variants: 'storybody', # 'story-body', 'story body','storybody ', etc. storybody_reg_exp = '^.*story[_ -]*body.*$' # The BBC sport and 'newsbeat' (features) HTML pages use 'blq_content' to hold the title # and published date. This is one level above the usual news pages which have the title # and date within 'story-body'. This is annoying since 'blq_content' must also be kept, 1.9. Handledning 135

140 # resulting in a lot of extra things to be removed by remove_tags. blq_content_reg_exp = '^.*blq[_ -]*content.*$' # The BBC has an alternative page design structure, which I suspect is an out-of-date # design but which is still used in some articles, Eg. 'Click' (technology), 'FastTrack' # (travel), and in some sport pages. These alternative pages are table based (which is # why I think they are an out-of-date design) and account for -I'm guesstimaking- less # than 1% of all articles. They use a table class 'storycontent' to hold the article # and like blq_content (above) have required lots of extra removal by remove_tags. story_content_reg_exp = '^.*story[_ -]*content.*$' # Keep the sections of the HTML which match the list below. The HTML page created by # Calibre will fill <body> with those sections which are matched. Note that the # blq_content_reg_exp must be listed before storybody_reg_exp in keep_only_tags due to # it being the parent of storybody_reg_exp, that is to say the div class/id 'story-body' # will be inside div class/id 'blq_content' in the HTML (if 'blq_content' is there at # all). If they are the other way around in keep_only_tags then blq_content_reg_exp # will end up being discarded. keep_only_tags = [ dict(name='table', attrs={'class':re.compile(story_content_reg_exp, re.ignorec dict(name='div', attrs={'class':re.compile(blq_content_reg_exp, re.ignorecas dict(name='div', attrs={'id':re.compile(blq_content_reg_exp, re.ignorecase)} dict(name='div', attrs={'class':re.compile(storybody_reg_exp, re.ignorecase) dict(name='div', attrs={'id':re.compile(storybody_reg_exp, re.ignorecase)}) # ************************************ # Regular expressions for remove_tags: # ************************************ # Regular expression to remove share-help and variant tags. The share-help class # is used by the site for a variety of 'sharing' type links, Eg. Facebook, delicious, # twitter, . Removed to avoid page clutter. share_help_reg_exp = '^.*share[_ -]*help.*$' # Regular expression to remove embedded-hyper and variant tags. This class is used to # display links to other BBC News articles on the same/similar subject. embedded_hyper_reg_exp = '^.*embed*ed[_ -]*hyper.*$' # Regular expression to remove hypertabs and variant tags. This class is used to # display a tab bar at the top of an article which allows the user to switch to # an article (viewed on the same page) providing further info., 'in depth' analysis, # an editorial, a correspondant's blog entry, and such like. The ability to handle # a tab bar of this nature is currently beyond the scope of this recipe and # possibly of Calibre itself (not sure about that - TO DO - check!). hypertabs_reg_exp = '^.*hyper[_ -]*tabs.*$' # Regular expression to remove story-feature and variant tags. Eg. 'story-feature', # 'story-feature related narrow', 'story-feature wide', 'story-feature narrow'. # This class is used to add additional info. boxes, or small lists, outside of # the main story. TO DO: Work out a way to incorporate these neatly. story_feature_reg_exp = '^.*story[_ -]*feature.*$' # Regular expression to remove video and variant tags, Eg. 'videoinstoryb', # 'videoinstoryc'. This class is used to embed video. video_reg_exp = '^.*video.*$' # Regular expression to remove audio and variant tags, Eg. 'audioinstoryd'. # This class is used to embed audio. audio_reg_exp = '^.*audio.*$' 136 Kapitel 1. Avsnitten

141 # Regular expression to remove picturegallery and variant tags, Eg. 'picturegallery'. # This class is used to embed a photo slideshow. See also 'slideshow' below. picture_gallery_reg_exp = '^.*picture.*$' # Regular expression to remove slideshow and variant tags, Eg. 'dslideshow-enclosure'. # This class is used to embed a slideshow (not necessarily photo) but both # 'slideshow' and 'picturegallery' are used for slideshows. slideshow_reg_exp = '^.*slide[_ -]*show.*$' # Regular expression to remove social-links and variant tags. This class is used to # display links to a BBC bloggers main page, used in various columnist's blogs # (Eg. Nick Robinson, Robert Preston). social_links_reg_exp = '^.*social[_ -]*links.*$' # Regular expression to remove quote and (multi) variant tags, Eg. 'quote', # 'endquote', 'quote-credit', 'quote-credit-title', etc. These are usually # removed by 'story-feature' removal (as they are usually within them), but # not always. The quotation removed is always (AFAICT) in the article text # as well but a 2nd copy is placed in a quote tag to draw attention to it. # The quote class tags may or may not appear in div's. quote_reg_exp = '^.*quote.*$' # Regular expression to remove hidden and variant tags, Eg. 'hidden'. # The purpose of these is unclear, they seem to be an internal link to a # section within the article, but the text of the link (Eg. 'Continue reading # the main story') never seems to be displayed anyway. Removed to avoid clutter. # The hidden class tags may or may not appear in div's. hidden_reg_exp = '^.*hidden.*$' # Regular expression to remove comment and variant tags, Eg. 'comment-introduction'. # Used on the site to display text about registered users entering comments. comment_reg_exp = '^.*comment.*$' # Regular expression to remove form and variant tags, Eg. 'comment-form'. # Used on the site to allow registered BBC users to fill in forms, typically # for entering comments about an article. form_reg_exp = '^.*form.*$' # Extra things to remove due to the addition of 'blq_content' in keep_only_tags. #<div class="story-actions"> Used on sports pages for ' ' and 'print'. story_actions_reg_exp = '^.*story[_ -]*actions.*$' #<div class="bookmark-list"> Used on sports pages instead of 'share-help' (for # social networking links). bookmark_list_reg_exp = '^.*bookmark[_ -]*list.*$' #<div id="secondary-content" class="content-group"> # NOTE: Don't remove class="content-group" that is needed. # Used on sports pages to link to 'similar stories'. secondary_content_reg_exp = '^.*secondary[_ -]*content.*$' #<div id="featured-content" class="content-group"> # NOTE: Don't remove class="content-group" that is needed. # Used on sports pages to link to pages like 'tables', 'fixtures', etc. featured_content_reg_exp = '^.*featured[_ -]*content.*$' #<div id="navigation"> 1.9. Handledning 137

142 # Used on sports pages to link to pages like 'tables', 'fixtures', etc. # Used sometimes instead of "featured-content" above. navigation_reg_exp = '^.*navigation.*$' #<a class="skip" href="#blq-container-inner">skip to top</a> # Used on sports pages to link to the top of the page. skip_reg_exp = '^.*skip.*$' # Extra things to remove due to the addition of 'storycontent' in keep_only_tags, # which are the alterative table design based pages. The purpose of some of these # is not entirely clear from the pages (which are a total mess!). # Remove mapping based tags, Eg. <map id="world_map"> # The dynamic maps don't seem to work during ebook creation. TO DO: Investigate. map_reg_exp = '^.*map.*$' # Remove social bookmarking variation, called 'socialbookmarks'. social_bookmarks_reg_exp = '^.*social[_ -]*bookmarks.*$' # Remove page navigation tools, like 'search', ' ', 'print', called 'blq-mast'. blq_mast_reg_exp = '^.*blq[_ -]*mast.*$' # Remove 'sharesb', I think this is a generic 'sharing' class. It seems to appear # alongside 'socialbookmarks' whenever that appears. I am removing it as well # under the assumption that it can appear alone as well. sharesb_reg_exp = '^.*sharesb.*$' # Remove class 'o'. The worst named user created css class of all time. The creator # should immediately be fired. I've seen it used to hold nothing at all but with # 20 or so empty lines in it. Also to hold a single link to another article. # Whatever it was designed to do it is not wanted by this recipe. Exact match only. o_reg_exp = '^o$' # Remove 'promotopbg' and 'promobottombg', link lists. Have decided to # use two reg expressions to make removing this (and variants) robust. promo_top_reg_exp = '^.*promotopbg.*$' promo_bottom_reg_exp = '^.*promobottombg.*$' # Remove 'nlp', provides heading for link lists. Requires an exact match due to # risk of matching those letters in something needed, unless I see a variation # of 'nlp' used at a later date. nlp_reg_exp = '^nlp$' # Remove 'mva', provides embedded floating content of various types. Variant 'mvb' # has also now been seen. Requires an exact match of 'mva' or 'mvb' due to risk of # matching those letters in something needed. mva_or_mvb_reg_exp = '^mv[ab]$' # Remove 'mvtb', seems to be page navigation tools, like 'blq-mast'. mvtb_reg_exp = '^mvtb$' # Remove 'blq-toplink', class to provide a link to the top of the page. blq_toplink_reg_exp = '^.*blq[_ -]*top[_ -]*link.*$' # Remove 'products and services' links, Eg. desktop tools, alerts, and so on. # Eg. Class="servicev4 ukfs_services" - what a mess of a name. Have decided to # use two reg expressions to make removing this (and variants) robust. prods_services_01_reg_exp = '^.*servicev4.*$' 138 Kapitel 1. Avsnitten

143 prods_services_02_reg_exp = '^.*ukfs[_ -]*services.*$' # Remove -what I think is- some kind of navigation tools helper class, though I am # not sure, it's called: 'blq-rst blq-new-nav'. What I do know is it pops up # frequently and it is not wanted. Have decided to use two reg expressions to make # removing this (and variants) robust. blq_misc_01_reg_exp = '^.*blq[_ -]*rst.*$' blq_misc_02_reg_exp = '^.*blq[_ -]*new[_ -]*nav.*$' # Remove 'puffbox' - this may only appear inside 'storyextra', so it may not # need removing - I have no clue what it does other than it contains links. # Whatever it is - it is not part of the article and is not wanted. puffbox_reg_exp = '^.*puffbox.*$' # Remove 'sibtbg' and 'sibtbgf' - some kind of table formatting classes. sibtbg_reg_exp = '^.*sibtbg.*$' # Remove 'storyextra' - links to relevant articles and external sites. storyextra_reg_exp = '^.*story[_ -]*extra.*$' dict(name='div', attrs={'id':re.compile(social_bookmarks_reg_exp, re.ignorecase)} remove_tags = [ dict(name='div', attrs={'class':re.compile(story_feature_reg_exp, re.ignorecase) dict(name='div', attrs={'class':re.compile(share_help_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(embedded_hyper_reg_exp, re.ignorecase dict(name='div', attrs={'class':re.compile(hypertabs_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(video_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(audio_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(picture_gallery_reg_exp, re.ignorecas dict(name='div', attrs={'class':re.compile(slideshow_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(quote_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(hidden_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(comment_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(story_actions_reg_exp, re.ignorecase) dict(name='div', attrs={'class':re.compile(bookmark_list_reg_exp, re.ignorecase) dict(name='div', attrs={'id':re.compile(secondary_content_reg_exp, re.ignorecase dict(name='div', attrs={'id':re.compile(featured_content_reg_exp, re.ignorecase) dict(name='div', attrs={'id':re.compile(navigation_reg_exp, re.ignorecase)}), dict(name='form', attrs={'id':re.compile(form_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(quote_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(hidden_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(social_links_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(comment_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(skip_reg_exp, re.ignorecase)}), dict(name='map', attrs={'id':re.compile(map_reg_exp, re.ignorecase)}), dict(name='map', attrs={'name':re.compile(map_reg_exp, re.ignorecase)}), dict(name='div', attrs={'id':re.compile(blq_mast_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(sharesb_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(o_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(promo_top_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(promo_bottom_reg_exp, re.ignorecase)} dict(name='div', attrs={'class':re.compile(nlp_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(mva_or_mvb_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(mvtb_reg_exp, re.ignorecase)}), dict(name='div', attrs={'class':re.compile(blq_toplink_reg_exp, re.ignorecase)}) dict(name='div', attrs={'class':re.compile(prods_services_01_reg_exp, re.ignorec dict(name='div', attrs={'class':re.compile(prods_services_02_reg_exp, re.ignorec dict(name='div', attrs={'class':re.compile(blq_misc_01_reg_exp, re.ignorecase)}) 1.9. Handledning 139

144 dict(name='div', attrs={'class':re.compile(blq_misc_02_reg_exp, re.ignorecase)}) dict(name='div', attrs={'class':re.compile(puffbox_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(sibtbg_reg_exp, re.ignorecase)}), dict(attrs={'class':re.compile(storyextra_reg_exp, re.ignorecase)}) ] # Uses url to create and return the 'printer friendly' version of the url. # In other words the 'print this page' address of the page. # # There are 3 types of urls used in the BBC site's rss feeds. There is just # 1 type for the standard news while there are 2 used for sports feed urls. # Note: Sports urls are linked from regular news feeds (Eg. 'News Home') when # there is a major story of interest to 'everyone'. So even if no BBC sports # feeds are added to 'feeds' the logic of this method is still needed to avoid # blank / missing / empty articles which have an index title and then no body. def print_version(self, url): # Handle sports page urls type 01: if (url.find("go/rss/-/sport1/")!= -1): temp_url = url.replace("go/rss/-/", "") # Handle sports page urls type 02: elif (url.find("go/rss/int/news/-/sport1/")!= -1): temp_url = url.replace("go/rss/int/news/-/", "") # Handle regular news page urls: else: temp_url = url.replace("go/rss/int/news/-/", "") # Always add "?print=true" to the end of the url. print_url = temp_url + "?print=true" return print_url # Remove articles in feeds based on a string in the article title or url. # # Code logic written by: Starson17 - posted in: "Recipes - Re-usable code" # thread, in post with title: "Remove articles from feed", see url: # # Many thanks and all credit to Starson17. # # Starson17's code has obviously been altered to suite my requirements. def parse_feeds(self): # Call parent's method. feeds = BasicNewsRecipe.parse_feeds(self) # Loop through all feeds. for feed in feeds: # Loop through all articles in feed. for article in feed.articles[:]: # Match key words and remove article if there's a match. # Most BBC rss feed video only 'articles' use upper case 'VIDEO' # as a title prefix. Just match upper case 'VIDEO', so that 140 Kapitel 1. Avsnitten

145 return feeds # End of class and file. # articles like 'Video game banned' won't be matched and removed. if 'VIDEO' in article.title: feed.articles.remove(article) # Most BBC rss feed audio only 'articles' use upper case 'AUDIO' # as a title prefix. Just match upper case 'AUDIO', so that # articles like 'Hi-Def audio...' won't be matched and removed. elif 'AUDIO' in article.title: feed.articles.remove(article) # Most BBC rss feed photo slideshow 'articles' use 'In Pictures', # 'In pictures', and 'in pictures', somewhere in their title. # Match any case of that phrase. elif 'IN PICTURES' in article.title.upper(): feed.articles.remove(article) # As above, but user contributed pictures. Match any case. elif 'YOUR PICTURES' in article.title.upper(): feed.articles.remove(article) # 'Sportsday Live' are articles which contain a constantly and # dynamically updated 'running commentary' during a live sporting # event. Match any case. elif 'SPORTSDAY LIVE' in article.title.upper(): feed.articles.remove(article) # Sometimes 'Sportsday Live' (above) becomes 'Live - Sport Name'. # These are being matched below using 'Live - ' because removing all # articles with 'live' in their titles would remove some articles # that are in fact not live sports pages. Match any case. elif 'LIVE - ' in article.title.upper(): feed.articles.remove(article) # 'Quiz of the week' is a Flash player weekly news quiz. Match only # the 'Quiz of the' part in anticipation of monthly and yearly # variants. Match any case. elif 'QUIZ OF THE' in article.title.upper(): feed.articles.remove(article) # Remove articles with 'scorecards' in the url. These are BBC sports # pages which just display a cricket scorecard. The pages have a mass # of table and css entries to display the scorecards nicely. Probably # could make them work with this recipe, but might take a whole day # of work to sort out all the css - basically a formatting nightmare. elif 'scorecards' in article.url: feed.articles.remove(article) Detta recept utforskar bara toppen av isberget när det kommer till makten av calibre. För att utforska mer av förmågan hos calibre så undersöker vi en mer komplex verkliga livet exempel i nästa avsnitt Handledning 141

146 Exempel i verkligheten Ett tämligen komplicerat exempel från verkligheten som exponerar mer av API för BasicNewsRecipe är recept för New York Times import string, re from calibre import strftime from calibre.web.feeds.recipes import BasicNewsRecipe from calibre.ebooks.beautifulsoup import BeautifulSoup class NYTimes(BasicNewsRecipe): title = 'The New York Times' author = 'Kovid Goyal' description = 'Daily news from the New York Times' timefmt = ' [%a, %d %b, %Y]' needs_subscription = True remove_tags_before = dict(id='article') remove_tags_after = dict(id='article') remove_tags = [dict(attrs={'class':['articletools', 'post-tools', 'side_tool', 'nextarticlelink c dict(id=['footer', 'toolsright', 'articleinline', 'navigation', 'archive', 'side_sear dict(name=['script', 'noscript', 'style'])] encoding = 'cp1252' no_stylesheets = True extra_css = 'h1 {font: sans-serif large;}\n.byline {font:monospace;}' def get_browser(self): br = BasicNewsRecipe.get_browser() if self.username is not None and self.password is not None: br.open(' br.select_form(name='login') br['userid'] = self.username br['password'] = self.password br.submit() return br def parse_index(self): soup = self.index_to_soup(' def feed_title(div): return ''.join(div.findall(text=true, recursive=false)).strip() articles = {} key = None ans = [] for div in soup.findall(true, attrs={'class':['section-headline', 'story', 'story headline']}): if div['class'] == 'section-headline': key = string.capwords(feed_title(div)) articles[key] = [] ans.append(key) elif div['class'] in ['story', 'story headline']: a = div.find('a', href=true) if not a: continue url = re.sub(r'\?.*', '', a['href']) 142 Kapitel 1. Avsnitten

147 url += '?pagewanted=all' title = self.tag_to_string(a, use_alt=true).strip() description = '' pubdate = strftime('%a, %d %b') summary = div.find(true, attrs={'class':'summary'}) if summary: description = self.tag_to_string(summary, use_alt=false) feed = key if key is not None else 'Uncategorized' if not articles.has_key(feed): articles[feed] = [] if not 'podcasts' in url: articles[feed].append( dict(title=title, url=url, date=pubdate, description=description, content='')) ans = self.sort_index_by(ans, {'The Front Page':-1, 'Dining In, Dining Out':1, 'Obituaries':2 ans = [(key, articles[key]) for key in ans if articles.has_key(key)] return ans def preprocess_html(self, soup): refresh = soup.find('meta', {'http-equiv':'refresh'}) if refresh is None: return soup content = refresh.get('content').partition('=')[2] raw = self.browser.open(' return BeautifulSoup(raw.decode('cp1252', 'replace')) Vi ser flera nya funktioner i detta recept. recept. Först har vi: timefmt = ' [%a, %d %b, %Y]' Detta ställer den visade tiden på förstasidan av den skapade e-boken att vara i formatet, Dag, Dag_Nummer Månad, År. Se timefmt (sida 319). Sedan ser vi en grupp av direktiv till sanering den nedladdade HTML: remove_tags_before = dict(name='h1') remove_tags_after = dict(id='footer') remove_tags =... Dessa tar bort allt innan den första <h1> etiketten och allt efter den första etiketten vars id är footer. Se remove_tags (sida 318), remove_tags_before (sida 318), remove_tags_after (sida 318). Nästa intressant funktion är: needs_subscription = True... def get_browser(self):... needs_subscription = True berättar för calibre att detta recept behöver användarnamn och lösenord för att kunna åt innehållet. Detta medför att, calibre frågar efter användarnamn och lösenord när du försöker använda det här receptet. Koden i calibre.web.feeds.news.basicnewsrecipe.get_browser() (sida 312) loggar faktiskt in på NYT webbsida. När du loggat in, kommer calibre använda samma webbinstans för att hämta allt innehåll. Se mechanize 60 to understand the code in get_browser. Nästa nyhet är calibre.web.feeds.news.basicnewsrecipe.parse_index() (sida 313) metoden. Dess uppgift är att gå till och hämta listan över artiklar som Handledning 143

148 visas i dagens tidning. Medan mer komplex än att bara använda RSS, skapar receptet en e-bok som motsvarar mycket nära dagens tidning. parse_index använder mycket BeautifulSoup 61 för att tolka dagens tidningswebbsida. Du kan också använda andra, mer moderna parsers om du ogillar BeatifulSoup. calibre comes with lxml 62 och html5lib 63, vilka är de rekommenderade parsers. För att använda dem, byt ut anropet till index_to_soup() med följande: raw = self.index_to_soup(url, raw=true) # For html5lib import html5lib root = html5lib.parse(raw, namespacehtmlelements=false, treebuilder='lxml') # For the lxml html 4 parser from lxml import html root = html.fromstring(raw) Den sista nyheten är calibre.web.feeds.news.basicnewsrecipe.preprocess_html() (sida 314) metoden. Den kan användas för att utföra godtyckliga transformationer på varje nedladdad HTML-sida. Här används det för att kringgå de annonser som de NYTimes visar dig innan varje artikel. Tips för att utveckla nya recept Det bästa sättet att utveckla nya recept är att använda kommandoraden. Skapa receptet med din favorit python editor och spara den till en fil låt säga myrecipe.recipe. Den.recipe -tillägget krävs. Du kan hämta innehåll med detta recept med kommandot: ebook-convert myrecipe.recipe.epub --test -vv --debug-pipeline debug Kommandot ebook-convert kommer att ladda ner alla webbsidor och spara dem till EPUB-filen myrecipe.epub. Alternativet -vv får ebook-convert mata ut en hel del information om vad den gör. Alternativet --test begränsar nerladdning till bara ett par artiklar från högst två flöden. Dessutom kommer ebook-convert placera HTML i debug/input-katalogen, där debug är katalogen du angav i --debug-pipeline-alternativet. När nedladdningen är klar kan du titta på den nedladdade HTML genom att öppna filen debug/input/index.html i en webbläsare. När du är nöjd med nedladdningen och förbehandling sker på rätt sätt, kan du skapa e-böcker i olika format enligt nedan: ebook-convert myrecipe.recipe myrecipe.epub ebook-convert myrecipe.recipe myrecipe.mobi... Om du är nöjd med ditt recept, och du känner att det finns tillräcklig efterfrågan för att motivera dess införande i uppsättningen av inbyggda recept, lägg upp receptet på calibres receptforum 64 för att dela den med andra calibreanvändare. Observera: På OS X, kommandoradverktyget är inne i calibre paketet, till exempel om du installerar Calibre i /Applications är kommandoradverktyget i /Applications/calibre.app/Contents/console.app/Contents/MacOS/. Se även: ebook-convert (sida 288) Kommandoradsgränssnittet för all e-bokkonvertering Kapitel 1. Avsnitten

149 Ytterligare läsning Om du vill veta mer om att skriva avancerade recept med några av faciliteterna som finns i BasicNewsRecipe bör du konsultera följande källor: API Dokumentation (sida 311) Dokumentation av BasicNewsRecipe-klassen och alla dess viktiga metoder och fält. BasicNewsRecipe 65 Inbyggda recept 66 Calibres recept forum 67 Källkoden för BasicNewsRecipe Källkoden för de inbyggda recept som kommer med calibre Massor av kunniga calibre recept-författare håller till här. API dokumentation API dokumentation för recept API för skriva recept är definierade av BasicNewsRecipe (sida 311) class calibre.web.feeds.news.basicnewsrecipe(options, log, progress_reporter) Basklass som innehåller logik behövs i alla recept. Av överrida progressivt mer av funktionaliteten i denna klass, kan du göra allt mer kundanpassade / kraftfulla recept. En handledning introduktion till att skapa recept, se Lägga till din favorit nyhetswebbplats (sida 126). abort_article(msg=none) Anropa denna metod inne i någon av förbehandlingsmetoderna för att avbryta nedladdningen för den aktuella artikeln. Användbara att hoppa över artiklar som innehåller olämpligt innehåll, såsom rena videoartiklar. abort_recipe_processing(msg) Orsakar att receptetnedladdningssystemet avbryter nedladdningen av detta recept, visar en enkel återkopplingsmeddelande till användaren. add_toc_thumbnail(article, src) Kalla detta från populate_article_metadata med attributet src för en <img> etiketten från artikeln som är lämplig att använda som ikon representerar artikeln i innehållsförteckningen. Huruvida ikonen faktiskt används är beroende av enhet (för närvarande endast används av Kindles). Observera att den refererade bilden måste vara en som framgångsrikt hämtats, annars kommer det att ignoreras. classmethod adeify_images(soup) Om ditt recept vid konvertering till EPUB har problem med bilderna när de visas i Adobe Digital Editions, kalla denna metod inifrån postprocess_html() (sida 314). canonicalize_internal_url(url, is_link=true) Returnera en uppsättning kanoniska representationer av url. Grundinställningen använder bara servervärdnamn och sökväg för URL, ignorerar eventuella frågeparametrar, fragment, etc. kanoniska representationer måste vara unika för alla webbadresser till den här nyhetskällan. Om de inte är det, så interna länkar kan lösas felaktigt. Parametrar is_link Är Sann om webbadressen kommer från en intern länk i en HTML-fil. Falsk om webbadressen är URL som används för att hämta en artikel. cleanup() Anropas efter alla artiklar har laddats ner. Använd den för att göra godtycklig sanering som att logga ut från prenumerationsplatser etc. clone_browser(br) Klona webbläsare br. Klonade webbläsare används för multi-trådade nedladdningar, eftersom mechanize 1.9. Handledning 145

150 (mekanisera) inte är trådsäkert. Standardkloningsrutiner ska fånga de flesta webbläsaranpassningar, men om du gör något exotiskt i ditt recept, ska du åsidosätta den här metoden i ditt recept och klona manuellt. Klonade webbläsarinstanser använder samma, trådsäkra CookieJar som standard, såvida du inte har anpassat cookie-hantering. default_cover(cover_file) Skapa en generisk omslag för recept som inte har ett omslag download() Hämta och förbearbeta alla artiklar från flöde i detta recept. Denna metod bör kallas en gång för en viss receptinstans. Kallas det mer än en gång kommer det att leda till odefinierade beteenden. :return: Path to index.html extract_readable_article(html, url) Tar fram huvudartikelns innehåll från html, rensar upp och återvänder som en (article_html, extracted_title) tupel. Baserat på den ursprungliga läsbarhet algoritm genom Arc90. get_article_url(article) Överrid i en underklass för att anpassa utvinning av URL som pekar på innehållet för varje artikel. Returnera artikel-urln. Den anropas med article, ett objekt som representerar en analyserad artikel från ett flöde. Se feedparser < _. Normalt söker den efter den ursprungliga länken (till flöde syndikerade via en tjänst som Feedburner eller pheedo) och om den hittas, returnerar detta eller annars returneras article.link 68. get_browser(*args, **kwargs) Returnera en webbläsare instans som används för att hämta dokument från webben. Som standard den returnerar en mechanize (mekanisera) 69 browser instans som stöder cookies, ignorerar robots.txt, hanterar fräschar och har ett Mozilla Firefox användaragent. Om ditt recept kräver att du loggar in först, överrids denna metod i din underklass. Till exempel är följande kod används i New York Times recept för att logga in för full tillgång: def get_browser(self): br = BasicNewsRecipe.get_browser(self) if self.username is not None and self.password is not None: br.open(' br.select_form(name='login') br['userid'] = self.username br['password'] = self.password br.submit() return br get_cover_url() Returnera en URL till omslagsbild för den här utgåvan eller None. Som standard returnerar värdet av elementet self.cover_url som normalt är None. Om du vill att ditt recept för att hämta ett omslag för e- boken överrids den här metoden i din underklass, eller ställa medlemsvariabeln self.cover_url innan denna metod anropas. get_feeds() Returnera en lista med RSS flöde att hämta för den här profilen. Varje element i listan måste vara ett 2-elements tupel av formen (titel, url). Om titeln är None eller en tom sträng, används titeln från flödet. Denna metod är användbar om du receptet behöver göra en del bearbetning för att räkna ut lista med inlägg för att ladda ner. Om så är fallet, överrid i din underklass. get_masthead_title() Överrids i underklass för att använda något annat än receptets titel Kapitel 1. Avsnitten

151 get_masthead_url() Returnera en URL till redaktionsloggo till denna utgåva eller None. Som standard returnerar värdet av elementet self.masthead_url som normalt är None. Om du vill att ditt recept ska hämta en redationsloggon för e-boken överrrid den här metoden i din underklass, eller sätt medlemmen variabeln self.masthead_url innan denna metod anropas. Redaktionsloggo används i Kindle MOBI-filer. get_obfuscated_article(url) Om du sätter articles_are_obfuscated anropas denna metod med varje artikel URL. Det ska returnera sökvägen till en fil i filsystemet som innehåller artikeln HTML. Filen bearbetas av den rekursiva HTMLhämtmotor, så det kan innehålla länkar till sidor / bilder på webben. Denna metod är oftast användbart för webbplatser som försöker göra det svårt att komma åt artikelns innehåll automatiskt. classmethod image_url_processor(baseurl, url) Utför någon behandling på bildwebbadresser (kanske ta bort storleksbegränsningar för dynamiskt skapade bilder, etc.) och returnera bearbetad URL. index_to_soup(url_or_raw, raw=false, as_tree=false) Bekväm metod som använder en webadress (URL) för indexera en sida och returnerar en BeautifulSoup 70 av den. url_or_raw: Antingen en webbadress eller den nedladdade indexsidan som en sträng is_link_wanted(url, tag) Returnerar Sann om länken ska följas eller Falsk annars. Som standard höjer NotImplementedError som orsakar hämtningen att ignorera det. Parametrar url Webbadressen som skall följas tag Ettiketen för vilken URL erhölls javascript_login(browser, username, password) Denna metod används för att logga in på en webbplats som använder javascript för sitt inloggningsformulär. Efter inloggningen är klar, kopieras kakorna från webbplatsen kopieras till en normal (icke-javascript) webbläsare och nedladdningen fortsätter som använder dessa kakor. Ett exempel på implementering: def javascript_login(self, browser, username, password): browser.visit(' form = browser.select_form(nr=0) # Select the first form on the page form['username'] = username form['password'] = password browser.submit(timeout=120) # Submit the form and wait at most two minutes for loading t Observera att du också kan välja formulär med CSS2 väljare, så här: browser.select_form('form#login_form') browser.select_from('form[name="someform"]') parse_feeds() Skapa en lista över artiklar i listan över flöden som returneras av BasicNewsRecipe.get_feeds() (sida 312). Returnerar en lista med Feed objekt. parse_index() Denna metod bör implementeras på recept för att tolka en webbplats istället för flöde för att skapa en lista med artiklar. Typiska användningsområden är för nyhetskällor som har en Print Edition webbsida Handledning 147

152 som listar alla artiklar i den aktuella tryckupplagan. Om denna funktion implementeras kommer den att användas i stället för BasicNewsRecipe.parse_feeds() (sida 313). Det måste returnera en lista. Varje element i listan måste vara ett 2-inslag tupel av formen (fflödestitel", lista med artiklar). Varje lista av artiklar måste innehålla ordlister på formen: { 'title' : article title, 'url' : URL of print version, 'date' : The publication date of the article as a string, 'description' : A summary of the article 'content' : The full article (can be an empty string). Obsolete do not use, instead save the content to a temporary file and pass a file:///path/to/temp/file.html as the URL. } Till exempel, se receptet för nedladdning The Atlantic. Dessutom kan du lägga till författare för författaren till artikeln. Om du vill avbryta behandlingen av någon anledning och låta calibre visa användaren ett enkelt budskap i stället för ett fel, anropa abort_recipe_processing() (sida 311). populate_article_metadata(article, soup, first) Anropas när varje HTML-sida som hör till artikeln hämtas. Avsedd att användas för att få artikelns metadata som författaren / sammandrag / etc. från analyserad HTML (soppa). :param artikel: Ett objekt av klassen calibre.web.feeds.article. Om du ändrar sammanfattningen, kom ihåg att också ändra text_summary :param soup: Tolkad HTML tillhör denna artikel :param first: Sann om och endast om analyserad HTML är den första sidan av artikeln. postprocess_book(oeb, opts, log) Körs om någon efterbehandling behövs på analyserad nedladdade e-bok. Parametrar oeb Ett OEBBook-objekt opts Konverteringsalternativ postprocess_html(soup, first_fetch) Denna metod kallas med källan till varje nedladdad: term HTML fil, efter att den analyserats för länkar och bilder. Den kan användas för att göra godtyckligt kraftfull efterbehandling på HTML. Det bör returnera soup efter bearbetning det. Parametrar soup En BeautifulSoup 71 instans innehållande nerladdad HTML. first_fetch Sann om detta är första sidan av en artikel. preprocess_html(soup) Denna metod kallas med källan till varje nedladdad HTML fil, innan den analyseras för länkar och bilder. Det kallas efter rensningen som specificerats remove_tags etc. Det kan användas för att göra godtyckliga och starka förbearbetning på HTML. Det bör returnera soup efter bearbetning det. soup: En BeautifulSoup 72 instans innehållande nerladdad HTML Kapitel 1. Avsnitten

153 preprocess_raw_html(raw_html, url) Denna metod anropas med källa av varje nedladdad HTML fil, innan den tolkas i ett objektträd. raw_html är en unicode sträng som representerar råa HTML nedladdningen från webben. url är URL från vilken HTML var nedladdad. Obserevera att denna metod agerar innan preprocess_regexps. Denna metod måste returnera den bearbetade raw_html som ett unicode-objekt. classmethod print_version(url) Ta en url som pekar på en webbsida med artikelinnehåll och returnerar URL som pekar på en utskrivbar version av artikeln. Som standard gör ingenting. TIll exempel: def print_version(self, url): return url + '?&pagewanted=print' skip_ad_pages(soup) Denna metod anropas med källan till varje nedladdad HTML fil, innan någon av rensningsattribut som remove_tags, keep_only_tags tillämpas. Observera att preprocess_regexps kommer redan ha använts. Det är tänkt att låta receptet att hoppa över annonssidor. Om soup är en annonssida, returnera HTML den verkliga sidan. Annars returneras None. soup: En BeautifulSoup 73 instans innehållande nerladdad HTML. sort_index_by(index, weights) Bekväm metod för att sortera titlar i index enligt weights. index sorteras på plats. Returnerar index. index: En lista av titlar. weights: En ordlista som översätter vikt mot titel., Om något titelindex inte har vikt. antas de ha vikten 0. classmethod tag_to_string(tag, use_alt=true, normalize_whitespace=true) Bekväm metod som använder en BeautifulSoup 74 tag-etikett och extraherar text från den rekursivt, inkluderande godtycklig CDATA sektion och alt-attribut. Returnerar en möjlig tom unicode-sträng. use_alt: Om True försök använd alt attribut för etiketter som inte har något textinnehåll tag: BeautifulSoup 75 Tag (Etikett) articles_are_obfuscated = False Sätt till Sann och implementerar get_obfuscated_article() (sida 312) för hantera webbsidor som försöker göra det svårt att skrapa fram innehåll. auto_cleanup = False Automatiskt extrahera all text från nedladdade artikelsidor. Använder algoritmerna från läsbarhet projektet. Sätt denna sann innebär att du inte behöver oroa dig för att städa upp den nedladdade HTML manuellt (även om manuell rensning alltid kommer att vara bättre). auto_cleanup_keep = None Specify elements that the auto cleanup algorithm should never remove. The syntax is a XPath expression. For example: auto_cleanup_keep = '//div[@id="article-image"]' will keep all divs with id="article-image" auto_cleanup_keep = '//*[@class="important"]' will keep all elements with class="important" auto_cleanup_keep = '//div[@id="article-image"] //span[@class="important"]' will keep all divs with id="article-image" and spans with class="important" Handledning 149

154 center_navbar = True Om sann centreras navigationslisten annars är den vänsterjusterad compress_news_images = False Ställ in den till Falsk för att ignorera alla skalnings- och komprimeringsparametrar och passera bilder igenom omodifierad. Om Sann och andra komprimeringsparametrar behåller sina standardvärden, kommer jpeg-bilder skalas för att passa in skärmmått som fastställts av utskriftsprofil och komprimeras till storleken på de flesta (b * h) / 16 där bxh är det skalade bildens dimensioner. compress_news_images_auto_size = 16 Den faktor som används när automatisk komprimera jpeg-bilder. Om värdet är None, är komprimering automatisk inaktiverad. Annars kommer bilderna att minskas i storlek till (b * h) / compress_news_images_auto_size byte om möjligt genom att minska kvalitetsnivån, där bxh är bildens dimensioner i pixlar. Den minsta jpeg-kvalitet kommer att vara 5/100 så det är möjligt denna begränsning inte kommer att uppfyllas. Denna parameter kan överridas av parametern compress_news_images_max_size som ger en fast maximal storlek för bilder. Observera att om du aktiverar scale_news_images_to_device kommer sedan bilden först skalas och sedan dess kvalitet sänkas tills dess storlek är mindre än (b*h)/faktor där w och h är nu bildens skalade dimensioner. Med andra ord, denna kompression sker efter skalning. compress_news_images_max_size = None Sätt jpeg-kvalitet så att bilder inte överskrider angiven storlek (i kbytes). Om satt, överrider denna parameter automatisk komprimering via compress_news_images_auto_size. Minimum jpeg-kvalitet kommer vara 5/100 so det är möjligt att denna restriktion inte möts. conversion_options = {} Receptspecifika alternativ för att styra konvertering av nedladdat innehåll in i en e-bok. Dessa kommer överrida alla användare eller tilläggsspecifika värden, så använd bara om det är absolut nödvändigt. TIll exempel: conversion_options = { 'base_font_size' : 16, 'tags' : 'mytag1,mytag2', 'title' : 'My Title', 'linearize_tables' : True, } cover_margins = (0, 0, #ffffff ) Som standard returneras omslagsbild av get_cover_url () och kommer att användas som omslag för tidskriften. Överridning av detta i ditt recept instruerar calibre att anpassa det nedladdade omslaget i en ram vars bredd och höjd uttrycks som en procentandel av den nedladdade omslaget. cover_margins = (10, 15, #ffffff ) fyller omslaget med en vit marginal 10px på vänster och höger, 15px på toppen och botten. Färgnamn som fastställts på Notera att av någon anledning, vitt fungerar inte alltid på fönster. Använd #ffffff istället delay = 0 Fördröjning mellan konsekutiva nedladdningar i sekunder. Argumentet kan vara ett flyttal för att indikera mer exakt tid. description = u Ett par rader som beskriver innehållet detta recept laddar ner. Detta kommer främst att användas i ett användargränssnitt som presenterar en lista med recept. encoding = None Ange en kodningsöverridning för webbplatser som har en felaktig charset-specifikation. Det vanligaste är att ange latin1 och använda cp1252. Om None, försöka identifiera kodningen. Om det är en anropbar, anropas den anropbara med två argument: Receptobjektet och den källa som skall avkodas. Det måste returnera den avkodade källan. extra_css = None 150 Kapitel 1. Avsnitten

155 Ange någon extra CSS som bör läggas till ladda ned HTML-filer. Det kommer att införas i <style> etiketter, precis före den avslutande </head> etikett därmed tvingande allt CSS utom det som deklareras med hjälp av stilattribut på individuella HTML etiketter. Exempelvis: extra_css = '.heading { font: serif x-large }' feeds = None Förteckning över flöde för att ladda ner. Kan vara antingen [url1, url2,...] eller [( title1, url1), ( title2, url2),...] filter_regexps = [] Lista över reguljära uttryck som avgör vilka länkar att ignorera. Om den är tom ignoreras det. Endast användas om is_link_wanted inte implementeras. Exempelvis: filter_regexps = [r'ads\.doubleclick\.net'] kommer ta bort alla URLer som har ads.doubleclick.net in sig. Bara en av BasicNewsRecipe.match_regexps (sida 317) eller BasicNewsRecipe.filter_regexps (sida 316) skulle bara definierad. ignore_duplicate_articles = None Ignorera dubbletter av artiklar som finns i mer än ett avsnitt. En dubblettartikel är en artikel som har samma titel och / eller webbadress. Att ignorera artiklar med samma titel, ställa detta till: ignore_duplicate_articles = {'title'} För att använda URL:er i stället, sätt den till: ignore_duplicate_articles = {'url'} För träff mot titel eller URL, sätt den till: ignore_duplicate_articles = {'title', 'url'} keep_only_tags = [] Håll endast specificerade etiketter och deras barn. För formatet för att ange en etikett se BasicNewsRecipe.remove_tags (sida 318). Om denna lista inte är tom, då blir <body> etikett tom och återfylld med etiketter som passar poster i denna lista. Till exempel: keep_only_tags = [dict(id=['content', 'heading'])] kommer bara ha etiketter som har ett id attribut av content eller heading. language = und Språket som nyheterna är i. Måste vara en ISO-639-kod antingen två eller tre tecken långt masthead_url = None Som standard, kommer calibre att använda en redaktionslogga (endast Kindle). Åsido detta i ditt recept för att ge en url för att användas som en redaktionslogga. match_regexps = [] Lista över reguljära uttryck som avgör vilka länkar att följa. Om den är tom, ignoreras den. Endast användas om is_link_wanted inte implementeras. Exempelvis: match_regexps = [r'page=[0-9]+'] kommer passa mot alla URLer som har page=some number i sig. Bara en av BasicNewsRecipe.match_regexps (sida 317) eller BasicNewsRecipe.filter_regexps (sida 316) skulle bara definierad Handledning 151

156 max_articles_per_feed = 100 Maximalt antal artiklar att ladda ned från varje flöde. Den är primärt användbar för flöde som inte har artikeldatum. För de flesta flödes, bör du använda BasicNewsRecipe.oldest_article (sida 317) needs_subscription = False Om Sann kommer gränssnittet att be användaren om ett användarnamn och lösenord för att använda vid nedladdning. Om inställningen är frivilligt att använda ett användarnamn och lösenord blir tillval no_stylesheets = False Bekväm flagga för att inaktivera laddning av formatmallar för webbplatser som har alltför komplexa mallar som är olämpliga för konvertering till e-böcker format. Om Sann hämtas inte mallar och bearbetas oldest_article = 7.0 Äldsta artikel att ladda ner från denna nyhetskälla. I dagarna. preprocess_regexps = [] Lista av regexp substitutionsregler att köras vid nedladdning HTML. Varje element i listan bör vara en tupel. Första elementet av tupel bör vara ett kompilerat regujärt uttryck och andra en anropsbar som tar ett passande objekt och returnerar en sträng för att ersätta träffen. Till exempel: preprocess_regexps = [ (re.compile(r'<!--article ends here-->.*</body>', re.dotall re.ignorecase), lambda match: '</body>'), ] kommer ta bort allt från <! Article ends here > till </body>. publication_type = unknown Publikationstyp Inställd på tidning, tidskrift eller blogg. Om satt till None, kommer ingen publikationstypsmetadata skrivas till opf-filen. recipe_disabled = None Ställ in på en icke tom sträng för att inaktivera detta recept. Strängen kommer att användas som inaktiverade meddelande recursions = 0 Antal nivåer av länkar att följa på en artikelwebbsida remove_attributes = [] Lista över attribut för att ta bort från alla etiketter. Exempelvis: remove_attributes = ['style', 'font'] remove_empty_feeds = False Om Sann tas tomma flöden bort från utdata. Det här alternativet har ingen effekt om parse_index överrids i underklassen. Den är avsedd endast för recept som returnerar en lista med flöden som använder feeds eller get_feeds() (sida 312). Den används också om du använder alternativet ignore_duplicate_articles. remove_javascript = True Bekväm flagga att strippa alla javascript etiketter från den nedladdade HTMLn remove_tags = [] Lista med etiketter som skall avlägsnas. Angivna etiketter tas bort från nedladdad HTML. En etiketter anges som en ordlista på formen: { name : 'tag name', #e.g. 'div' attrs : a dictionary, #e.g. {class: 'advertisment'} } 152 Kapitel 1. Avsnitten

157 Alla tangenter är valbara. För full förklaring av sökningskriteria, se Beautiful Soup 76 Ett vanligt exempel: remove_tags = [dict(name='div', attrs={'class':'advert'})] Detta tar bort alla <div class= advert > etiketter och deras barn från nerladdade HTML. remove_tags_after = None Ta bort alla etiketter som förekommer efter angiven etikett. För formatet att ange en etikett se BasicNewsRecipe.remove_tags (sida 318). Till exempel: remove_tags_after = [dict(id='content')] kommer ta bort alla etiketter efter första elementet med id= content. remove_tags_before = None Ta bort alla etiketter som förekommer före angiven etikett. För formatet att ange en etikett se BasicNewsRecipe.remove_tags (sida 318). Till exempel: remove_tags_before = dict(id='content') kommer ta bort alla etiketter före första elementet med id= content. requires_version = (0, 6, 0) Minimum version av calibre som behövs för detta recept resolve_internal_links = False Om satt till Sann så kommer länkar i nedladdade artiklar som pekar på andra nedladdade artiklar ändras till att peka på den nedladdade kopia av artikeln snarare än dess ursprungliga webbadress. Om du ställer in detta till Sann, behöver du kanske du också införa canonicalize_internal_url() (sida 311) för att arbeta med URL-schemat för just din webbplats. reverse_article_order = False Omvänd ordning av artiklar i varje flöde scale_news_images = None Maximala dimensioner (w, h) att skala bilder till. Om scale_news_images_to_device är Sann så är detta inställt på enhetens skärmmått för utskriftsprofil om det inte finns någon profil som, i vilket fall det är kvar på oavsett värde den har tilldelats (standard None). scale_news_images_to_device = True Skala om bilder för att passa enhetens skärmmått satta av utdataprofilen. Ignoreras om ingen utdataprofil är angiven. simultaneous_downloads = 5 Antal samtidiga nedladdningar. Sätt till 1 om servern är petig. Automatisk reducerat till 1 om attr:basicnewsrecipe.delay > 0 summary_length = 500 Maximal antal tecken i den korta beskrivningen template_css = u \n.article_date {\n color: gray; font-family: monospace;\n }\n\n.article_description {\n text-indent: 0 CSS som används för att utforma mallar, dvs de navigeringsfält och innehållsförteckningar. I stället för att överrida denna variabel bör du använda extra_css i receptet för att anpassa utseende och beteende. timefmt = [%a, %d %b %Y] Formatsträng för datum att visa på första sidan. Som standard: Day_Name, Day_Number Month_Name Year timeout = Tidsbegränsning för hämta filer från servern i sekunder Handledning 153

158 title = u Ok\xe4nd nyhetsk\xe4lla Titel att använda för e-bok use_embedded_content = None Normalt försöker vi gissa om ett flöde har hela artiklar inbäddade i den baserat på längden av inbäddat innehåll. Om None, sedan standard används gissning. Om True då antar vi alltid flöden har inbäddat innehåll och om False kan vi alltid utgå från flödet inte har inbäddat innehåll. use_javascript_to_login = False Om du sätter detta till Sann, så använder calibre javascript för att logga in på webbplatsen. Detta behövs för vissa webbplatser som kräver användning av javascript för att logga in. Om du ställer in detta till Sann måste du implementera javascript_login() (sida 313) metoden, för att göra den faktiska inloggningen Hantera undergrupper av böcker, till exempel genre Vissa människor vill organisera böcker i deras bibliotek i undergrupper, liknande undermappar. Den mest allmänt givna anledningen är att skapa genrehierarkier, men det finns många andra. En användare begärde ett sätt att organisera läroböcker efter ämne och kursnummer. En annan ville hålla reda på gåvor efter ämne och mottagare. Denna handledning kommer att använda genren exempel för resten av det här inlägget. Innan vi går vidare, observera att vi inte talar om mappar på hårddisken. Undergrupper är inte mappar. Böcker kopieras inte någonstans. Calibres bibliotek filstruktur påverkas inte. Istället presenterar vi ett sätt att organisera och visa undergrupper av böcker inom ett calibre bibliotek. Ställ in (sida 156) Sökning (sida 158) Begränsningar (sida 158) Användbara mallfunktioner (sida 159) De gemensamt som krav för undergrupper såsom genrer är: En undergrupp (t.ex. en genre) ska innehålla (pekare till) böcker, inte kategorier av böcker. Detta är vad som skiljer undergrupper från calibre användarkategorier. En bok kan vara i flera undergrupper (genrer). Detta skiljer grupper från fysiska mappar. Undergrupper (genrer) måste bilda en hierarki; undergrupper kan innehålla undergrupper. Etiketter ger dig de två första. Om du etiketterar en bok med genren kan du använda etikettläsaren (eller sök) för att hitta de böcker med den genren, vilket ger dig den första. Många böcker kan ha samma etikett(er), vilket ger dig den andra. Problemet är att etiketter inte uppfyller det tredje kravet. De ger inte en hierarki. 154 Kapitel 1. Avsnitten

159 Calibres hierarki funktion ger dig den tredje, förmågan att se de genrer i ett träd och möjligheten att enkelt söka efter böcker i genre eller undergenre. Antag till exempel att din genrestruktur är ungefär så här: Genre. History.. Japanese.. Military.. Roman. Mysteries.. English.. Vampire. Science Fiction.. Alternate History.. Military.. Space Opera. Thrillers.. Crime.. Horror etc. Genom att använda hierarkifunktionen kan du se dessa genrer i etikettläsaren i trädform, som visas på skärmbilden. I detta exempel den yttersta nivån (Genre) är en anpassad kolumn som innehåller genrer. Genrer som innehåller undergenrer visas med en liten triangel bredvid dem. Genom att klicka på den triangel ska öppna objektet och visa undergenrer, som ni kan se med Historia och Science Fiction. Genom att klicka på en genre kan sökning ske efter alla böcker med denna genre eller barn i samma genre. Till exempel kan klicka på science fiction ge alla tre av de underordnade genrer, alternativ historia, militär och rymdopera. Genom att klicka på alternativ historia kommer att ge böcker i denna genre, och ignorera de i militär and rymdopera. Naturligtvis kan en bok ha flera genres. Om en bok har både rymdopera -och militärgenrer, så kommer du se att boken om du klickar på någon av genrerna. Sökning diskuteras mer i detalj nedan. En annan sak du kan se från bilden är att genren militä visas två gånger, en gång i historia och en gång i science fiction. Eftersom genrer är i en hierarki, är dessa två skilda genrer. En bok kan vara i den ena, i den andra, eller (tveksamt i det här fallet) båda. Till exempel kan böckerna i Winston Churchills Andra världskriget vara i historia.militär Handledning 155

160 David Webers Honor Harrington böckerna kan vara i science fiction.militär, och för den delen även i science fiction.rymdopera. När en genre finns, det är att genren har minst en bok, kan du enkelt använda den på andra böcker genom att dra böcker från biblioteket vyn till genren som du vill att böckerna ska ha. Du kan också använda genrer i metadata redaktörer; mer om detta nedan. Ställ in Nu kan din fråga vara " Hur var allt detta upp&quot?; Det finns tre steg: 1) skapa den anpassade kolumnen, 2) berättar calibre att den nya kolumnen ska behandlas som en hierarki, och 3) lägga till genrer. Du skapar den anpassade kolumnen på vanligt sätt, med hjälp av Inställningar->Lägg till dina egna kolumner. Det här exemplet använder #genre som uppslagsnamn och Genre som kolumnrubriken. Kolumntypen är kommaseparerad text, liksom etiketter, som visas i etikett webbläsaren. Sedan efter omstart av calibre måste du tala om för calibre att kolumnen ska behandlas som en hierarki. Gå till Inställningar->Utseende och känsla->etikettläsare och anger uppslagsnamn #genre i Kategorier med hierarkiska objekt rutan. Tryck på Verkställ och du är klar med att ställa in. 156 Kapitel 1. Avsnitten

161 Vid den punkt det inte finns genres i kolumnen. Vi är kvar med det sista steget: hur man tillämpar en genre till en bok. En genre finns inte i calibre tills det visas på minst en bok. För att lära sig att tillämpa en genre för första gången, måste vi gå in i detalj om vad en genre ser ut i metadata för en bok. En hierarki av saker är byggd genom att skapa ett objekt som består av fraser åtskilda av punkter. Fortsätt genren exempel dessa poster skulle historia.militär, mysterier. vampyr, science fiction.rymdopera, etc. Alltså för att skapa en ny genre, väljer du en bok som borde ha den genren, redigera dess metadata och ange den nya genren i kolumnen du skapat. Fortsätter vårt exempel, om du vill tilldela en ny genre Comics med en sub-genre superhjältar till en bok, skulle du redigera metadata för det (komiker) bok väljer fliken Anpassad metadata och ange Comics.superhjältar som visas i det följande (ignorera andra anpassade kolumner): Efter att ha gjort ovanstående, ser du i etikettlläsaren: 1.9. Handledning 157

calibre Användarhandbok

calibre Användarhandbok calibre Användarhandbok Utgåva 2.49.0 Kovid Goyal January 15, 2016 Innehåll 1 Avsnitten 3 Python Modulindex 285 Index 287 i ii calibre är en e-bokbibliotekshanterare. Den kan visa, konvertera, och katalogisera

Läs mer

Användarhandbok för calibre

Användarhandbok för calibre Användarhandbok för calibre Utgåva 3.14.0 Kovid Goyal december 15, 2017 Innehåll 1 Det grafiska användargränssnittet 3 2 Lägg till din favorit nyhetswebbplats 25 3 E-bokvisaren 57 4 E-bokskonvertering

Läs mer

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt. Kom igång Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.se/login Nu dyker en ruta upp på skärmen. Fyll i ditt användarnamn och lösenord och klicka på "logga in". Nu

Läs mer

Grundkurs 1 IKT Filhantering

Grundkurs 1 IKT Filhantering Filhantering Dan Haldin Ålands lyceum I N N E H Å L L S F Ö R T E C K N I N G Innehållsförteckning... 2 Filhantering med Windows... 3 Skapa Mappar... 4 Spara rätt... 5 Öppna sparade filer... 7 Flytta och

Läs mer

Miljön i Windows Vista

Miljön i Windows Vista 1 Miljön i Windows Vista Windows Aero Windows Aero (Aero Glass), som det nya utseendet eller gränssnittet heter i Vista, påminner mycket om glas och har en snygg genomskinlig design. Det är enklare att

Läs mer

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg Introduktion till kursbyggarverktyg Contento Svenska AB Hornsgatan 103 117 28 Stocholm Table of Contents KAPITEL 1 Introduktion 2 Begrepp

Läs mer

ALEPH ver. 16 Introduktion

ALEPH ver. 16 Introduktion Fujitsu, Westmansgatan 47, 582 16 Linköping INNEHÅLLSFÖRTECKNING 1. SKRIVBORDET... 1 2. FLYTTA RUNT M.M.... 2 3. LOGGA IN... 3 4. VAL AV DATABAS... 4 5. STORLEK PÅ RUTORNA... 5 6. NAVIGATIONSRUTA NAVIGATIONSTRÄD...

Läs mer

Filbindningar. Mike McBride Översättare: Stefan Asserhäll

Filbindningar. Mike McBride Översättare: Stefan Asserhäll Mike McBride Översättare: Stefan Asserhäll 2 Innehåll 1 Filbindningar 4 1.1 Inledning........................................... 4 1.2 Hur det här modulen används.............................. 4 1.2.1

Läs mer

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 2.0.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. * Filen MP.exe (Mobilus programmet) får inte användas* under tiden uppdateringen

Läs mer

FIRSTCLASS. Innehåll:

FIRSTCLASS. Innehåll: FIRSTCLASS Innehåll: Hämta klient...2 Installera klient...2 Konfigurera klient...2 Koppla upp...3 Skrivbordet...3 Mailbox...3 Presentation...3 Skapa ett nytt meddelande...4 Söka mottagare för nytt meddelande...4

Läs mer

Handhavande manual problemhantering

Handhavande manual problemhantering av Handhavande manual problemhantering 1(9) av Flytta dina dokument från H: till OneDrive I och med att Norrtälje kommun går över till Office 365 för skolverksamheten så kommer den egna lagringsplatsen

Läs mer

Publicera taltidningen

Publicera taltidningen Publicera taltidningen Innehåll Publicera taltidningen...1 Två-stegs-raketen: Webbpubliceringen av taltidningen...1 Manual för publiceringsverktyget WaveFusion...2 Starta verktyget WaveFusion och skapa

Läs mer

Skapa mappar, spara och hämta dokument

Skapa mappar, spara och hämta dokument Skapa mappar, spara och hämta dokument Övningen görs på hårddisken i mappen Mina dokument 1a Starta programmet utforskaren 1 b Huvudgrupper i utforskaren 1c Expandera huvudgrupper, enheter och mappar Skapa

Läs mer

SENIORER SENIORER. Grundläggande IT för. Windows 7. Grundläggande IT för. Windows 7. Eva Ansell Marianne Ahlgren. Eva Ansell Marianne Ahlgren

SENIORER SENIORER. Grundläggande IT för. Windows 7. Grundläggande IT för. Windows 7. Eva Ansell Marianne Ahlgren. Eva Ansell Marianne Ahlgren 600 IT för seniorer Windows 7.qxp 2011-06-0 10:27 Sida 1 Eva Ansell Marianne Ahlgren Eva Ansell Marianne Ahlgren Grundläggande IT för SENIORER Windows 7 Det här är en bok för dig som behöver grundläggande

Läs mer

2009-08-20. Manual för Typo3 version 4.2

2009-08-20. Manual för Typo3 version 4.2 2009-08-20 Manual för Typo3 version 4.2 1 2 Innehåll: 1. Allmänt 4 2. Grunderna i Typo3 5 2.1 Knappar 5 2.2 Inloggning 5 2.3 Den inledande vyn 6 2.4 Sidträdet 7 3. Sidor 8 3.1 Skapa en ny sida 8 3.1.1

Läs mer

BLI VÄN MED DIN DATOR ENHETER MAPPAR FILER

BLI VÄN MED DIN DATOR ENHETER MAPPAR FILER BLI VÄN MED DIN DATOR ENHETER MAPPAR FILER Innehållsförteckning ENHETER...2 MAPPAR...2 VISNINGSLÄGEN...3 SORTERING...4 MAPPAR OCH FILER...5 FILNAMN...6 FILTILLÄGG...6 FILHANTERING KOPIERA FLYTTA BYTA NAMN

Läs mer

Sidpanelen och gadgetar De är nya. De är smarta. Lär dig hur du använder dem.

Sidpanelen och gadgetar De är nya. De är smarta. Lär dig hur du använder dem. Kap 03.indd 444 KAPITEL TRE Sidpanelen och gadgetar De är nya. De är smarta. Lär dig hur du använder dem. Gadgetar och den nya Sidpanelen är nog mina favoriter bland de nya funktionerna i Windows Vista.

Läs mer

> Guide till Min webmail

> Guide till Min webmail > Guide till Min webmail Skriv och skicka e-post. Klicka på ikonen Skicka nytt meddelande.. Fältet Avsändare : Här visas vilken e-postadress som kommer att stå som avsändare i ditt mail.. Fältet Mottagare

Läs mer

Novell Vibe 4.0. Mars 2015. Snabbstart. Starta Novell Vibe. Bekanta dig med gränssnittet och funktionerna i Novell Vibe

Novell Vibe 4.0. Mars 2015. Snabbstart. Starta Novell Vibe. Bekanta dig med gränssnittet och funktionerna i Novell Vibe Novell Vibe 4.0 Mars 2015 Snabbstart När du börjar använda Novell Vibe kanske du vill börja med att skapa en personlig arbetsyta och en teamarbetsyta. Det här dokumentet innehåller information om hur du

Läs mer

Användarutbildning i SiteVision

Användarutbildning i SiteVision Användarutbildning i SiteVision Innehållsförteckning 1 Komma igång med SiteVision 2 1.1 Starta SiteVision 2 1.2 Redigeringsläget i SiteVision 3 1.2.1 Verktygsfält 3 1.2.2 Modulväljare 4 1.2.3 Navigator

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

FOR BETTER UNDERSTANDING. Snabbguide. www.wordfinder.se

FOR BETTER UNDERSTANDING. Snabbguide. www.wordfinder.se FOR BETTER UNDERSTANDING Snabbguide www.wordfinder.se Tekniska förutsättningar WordFinder 10 Professional för Mac kräver följande: Processor: Intel Mac OS X 10.5 eller senare. Installation Installation

Läs mer

Huvudfönstret för GroupWise

Huvudfönstret för GroupWise Huvudfönstret för Det mesta arbetet i utförs i huvudfönster. Huvudfönstrets olika delar beskrivs nedan. HUVUDMENY visas längst upp i och innehåller menypunkter: Arkiv, Redigera, Visa, Åtgärder, Verktyg,

Läs mer

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet.

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet. Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet. Då du klickar på Användare öppnas denna bläddringslista.

Läs mer

Din guide till. Klientinstallation MS Driftservice

Din guide till. Klientinstallation MS Driftservice Din guide till Klientinstallation MS Driftservice September 2012 Innehåll ALLMÄNT... 3 Gamla klienter... 3 Installation... 3 Vid problem... 5 inställningar för brandväggar... 6 Inställningar för Windows

Läs mer

Umgås på nätet KAPITEL 6. Chatta via webbläsaren

Umgås på nätet KAPITEL 6. Chatta via webbläsaren KAPITEL 6 Umgås på nätet Internet håller alltmer på att utvecklas till en parallellvärld med vår vanliga tillvaro. Man spelar spel över nätet, bygger upp virtuella världar med virtuella prylar och virtuella

Läs mer

INSTALLATION AV VITEC MÄKLARSYSTEM

INSTALLATION AV VITEC MÄKLARSYSTEM INSTALLATION AV VITEC MÄKLARSYSTEM Studentversion september 2013 Innehållsförteckning 1. Installera VITEC Mäklarsystem... 2 2. Läs noga igenom manualen... 2 3. Systemkrav... 2 4. Kundservice/Teknisk support...

Läs mer

Internet. En enkel introduktion. Innehåll:

Internet. En enkel introduktion. Innehåll: Internet En enkel introduktion Innehåll: Datorns olika delar Starta datorn Så gör du om du kan webbadressen Så gör du om du inte kan webbadressen Kortfattad repetition Alingsås bibliotek, 2012 2 3 4 6

Läs mer

Migrera till PowerPoint 2010

Migrera till PowerPoint 2010 I den här guiden Microsoft Microsoft PowerPoint 2010 skiljer sig rent utseendemässigt mycket, så vi har skapat den här guiden för att hjälpa dig att snabbare lära dig programmet. Här kan du läsa om de

Läs mer

Operativsystem - Windows 7

Operativsystem - Windows 7 Uppgift 5 B Operativsystem - Windows 7 Skapa mappar och undermappar Det finns olika sätt att skapa nya mappar på. Alternativ. Högerklicka på en tom yta. Håll muspekaren över Nytt. Klicka på Mapp Alternativ.

Läs mer

E-post. A. Windows Mail. Öppna alternativ. Placera ikonen på skrivbordet.

E-post. A. Windows Mail. Öppna alternativ. Placera ikonen på skrivbordet. E-post A. Windows Mail Öppna alternativ Klicka på startknappen Startmenyn öppnas Klicka på Alla Program Leta reda på Windows Mail Dubbelklicka Windows Mail öppnas. Om ikonen ligger i Start-menyn Klicka

Läs mer

SORSELE KOMMUN. Handbok OEW. 28 sept 2012 Mari-Anne Englund Barbro Olofsson. Sorsele kommun Version 2012-09-28, rev 131101 1 (19)

SORSELE KOMMUN. Handbok OEW. 28 sept 2012 Mari-Anne Englund Barbro Olofsson. Sorsele kommun Version 2012-09-28, rev 131101 1 (19) Handbok i OEW 28 sept 2012 Mari-Anne Englund Barbro Olofsson Sorsele kommun Version 2012-09-28, rev 131101 1 (19) Använd det användarnamn och lösenord som du fått. Fungerar det inte hör av dig till Mari-Anne

Läs mer

Snabbmanual. för. Lärresurshanteringsverktyget

Snabbmanual. för. Lärresurshanteringsverktyget Snabbmanual för Lärresurshanteringsverktyget Beskrivning av olika vyer i Lärresurshanteringsverktyget Skapa I detta fönster skapar man nya sidor och/eller väljer struktur på sin lärresurs. Men man redigerar

Läs mer

Administration av lagets arbetsrum lathund

Administration av lagets arbetsrum lathund Administration av lagets arbetsrum lathund 1: Logga in Öppna din webbläsare och gå in på nya Skuru-webben (www.skuruik.se/handboll). 1. Gå till ditt lags arbetsrum (du hittar laget antingen under Barn/Ungdom

Läs mer

APA för nybörjare. Innan du börjar. Översikt

APA för nybörjare. Innan du börjar. Översikt APA för nybörjare Den här texten är tänkt som en snabb introduktion hur du kan använda publiceringssystemet APA (Advanced Publication Application) för att redigera webbplatser. Texten kräver inga förkunskaper

Läs mer

FirstClass Hur du använder FirstClass.

FirstClass Hur du använder FirstClass. OPEN TEXT FirstClass Hur du använder FirstClass. Mars 2008 Peter Gustafsson, Skf Logga in på FirstClass För att starta FirstClass, dubbelklicka på FirstClass ikonen på skrivbordet eller på start-menyn.

Läs mer

Egna genvägar. Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll

Egna genvägar. Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 4 2 Hantera genvägar och grupper 4 2.1 Lägga till grupper...................................... 4 2.2 Lägga till

Läs mer

Arbetsuppgifter. JPEG-filerna/kopiorna skall döpas om efter projektets mall: ÅÅ-MM-DD bildtitel Fotograf

Arbetsuppgifter. JPEG-filerna/kopiorna skall döpas om efter projektets mall: ÅÅ-MM-DD bildtitel Fotograf Arbetsuppgifter Tre bilder skall väljas ut från en dags fotografering för projektet 365 dagar. RAW-filer skall konverteras till JPEG (Vid fotografering i JPEG gör vi fullstora JPEG kopior för att inte

Läs mer

Manual för lokalredaktörer villaagarna.se

Manual för lokalredaktörer villaagarna.se Manual för lokalredaktörer villaagarna.se Version 2 Villaägarnas Riksförbund Sollentuna 2011 Innehåll Redigera befintlig sida... 3 Skriva text eller klistra in kopierad text... 5 Rubriker i brödtext...

Läs mer

Microsoft. Excel 2010. Migrera till Excel 2001. från Excel 2003

Microsoft. Excel 2010. Migrera till Excel 2001. från Excel 2003 I den här guiden Migrera till Excel 2001 Microsoft skiljer sig rent utseendemässigt mycket, så vi har skapat den här guiden för att hjälpa dig att snabbare lära dig programmet. Här kan du läsa om de viktigaste

Läs mer

Att arbeta med. Müfit Kiper

Att arbeta med. Müfit Kiper Att arbeta med Müfit Kiper Att skriva nya inlägg Alla inlägg som är postade visas i kronologisk ordning, det vill säga det senast postade inlägget kommer visas först om inget annat angetts i temafilerna.

Läs mer

Kom igång med. Windows 8. www.datautb.se DATAUTB MORIN AB

Kom igång med. Windows 8. www.datautb.se DATAUTB MORIN AB Kom igång med Windows 8 www.datautb.se DATAUTB MORIN AB Innehållsförteckning Grunderna i Windows.... 1 Miljön i Windows 8... 2 Startskärmen... 2 Zooma... 2 Snabbknappar... 3 Sök... 4 Dela... 4 Start...

Läs mer

Manual till publiceringsverktyg

Manual till publiceringsverktyg Manual till publiceringsverktyg Allmänt När man har loggat in hamnar man direkt på översikten över hela webbplatsen. Överst hittar man en meny som alltid ligger med i verktyget. Denna meny innehåller översikten

Läs mer

KOM I GÅNG MED DIN HANDBOK STANDARD FRÅN THOLIN & LARSSON

KOM I GÅNG MED DIN HANDBOK STANDARD FRÅN THOLIN & LARSSON KOM I GÅNG MED DIN HANDBOK STANDARD FRÅN THOLIN & LARSSON Kom i gång med din handbok Standard Innehåll 1 Börja redigera 2 Arbetsbordet 3 Redaktörsfliken 3.1 Uppstart: Att-göra-listor 4 Redigera innehåll

Läs mer

Din guide till. Digitala assistenten

Din guide till. Digitala assistenten Din guide till Digitala assistenten Dec 2012 Innehåll SÅ HÄR SÄTTER DU DIGITALA ASSISTENTEN I ARBETE... 3 Steg 1 Skapa en ny kalenderhändelse... 3 Steg 2 Välj vad du vill att Digitala assistenten ska göra...

Läs mer

Infobank kvickguide. Kom i gång med Infobank. Logga in till Infobank. Installationsguiden

Infobank kvickguide. Kom i gång med Infobank. Logga in till Infobank. Installationsguiden Infobank kvickguide Kom i gång med Infobank Välkommen till SKL Kommentus webbaserad tjänst Infobank Arbetsrätten. Denna snabbguide ger dig en kort introduktion som användare av Infobank, så att du snabbt

Läs mer

Innehåll. 1 Inledning 5. 2 Förinställning 6. 3 Anpassa användargränssnittet 7. 4 Anpassa interna inställningar 9. 5 Förbereda att bränna en skiva 10

Innehåll. 1 Inledning 5. 2 Förinställning 6. 3 Anpassa användargränssnittet 7. 4 Anpassa interna inställningar 9. 5 Förbereda att bränna en skiva 10 Det här dokumentet är konverterat från KDE:s användarbas K3b-sida 2011-01-20. Uppdatering till 2.0 av KDE:s dokumentationsgrupp Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Förinställning 6

Läs mer

SLUNIK manual. SLUNIK version 2 2010-08-03

SLUNIK manual. SLUNIK version 2 2010-08-03 SLUNIK manual SLUNIK version 2 2010-08-03 Innehåll SLUNIK...1 Kursledare... 1 Lärare... 1 LOGGA IN... 1 Hjälp, inloggning... 2 Välj kurs att administrera... 2 Om du inte ser din kurs i listan... 3 Filtrera

Läs mer

Guide till att använda Audacity för uttalsövningar

Guide till att använda Audacity för uttalsövningar Guide till att använda Audacity för uttalsövningar Victoria Johansson Humlabbet, SOL-center, Lund IT-pedagog@sol.lu.se 28 mars 2006 1 Inledning Audacity är ett program som kan användas för att spela in

Läs mer

Kortfattad instruktion för Crystal Reports. Kom i gång med Crystal Reports. Instruktion Crystal Reports 2014

Kortfattad instruktion för Crystal Reports. Kom i gång med Crystal Reports. Instruktion Crystal Reports 2014 Kortfattad instruktion för Crystal Reports Kom i gång med Crystal Reports När du ska logga in i Crystal Reports ska inloggning alltid ske via sidan om Crystal Reports på vårdgivarwebben. Det är viktigt

Läs mer

Kommunala Mediacentralen våren 2006. Lathund. för beställning av läromedel. via Svenska Läromedel på Internet (SLI) Läromedel Böcker

Kommunala Mediacentralen våren 2006. Lathund. för beställning av läromedel. via Svenska Läromedel på Internet (SLI) Läromedel Böcker Lathund för beställning av läromedel via Svenska Läromedel på Internet (SLI) Läromedel Böcker Kommunala Mediacentralen KMC Hur hittar jag till Läromedel via SLI: Gå till KMC:s hemsida www.kmc.sodertalje.se.

Läs mer

Öppna EndNote varje gång när du vill samla referenser till ditt bibliotek.

Öppna EndNote varje gång när du vill samla referenser till ditt bibliotek. 1. Skapa ett EndNote-bibliotek Börja med att öppna EndNote och skapa ett bibliotek (Reference Library). Det gör du under File / New. Namnge ditt bibliotek och välj var på datorn du vill spara det. Nu kan

Läs mer

Manual för webbpublicering. Enköpings kommun

Manual för webbpublicering. Enköpings kommun Manual för webbpublicering Enköpings kommun Innehåll ATT LOGGA IN I SWWWING 3 Inloggningsrutan 3 GRÄNSSNITTET 4 Filhanteraren 4 Content Management 4 Verktyget Notify - Dags att uppdatera 4 SKAPA OCH REDIGERA

Läs mer

Välj bort om du vill. 96 Internet och e-post. 2. Mail-programmet finns i datorn. 1. Skriv mail i sökrutan. Windows Live Mail i Aktivitetsfältet.

Välj bort om du vill. 96 Internet och e-post. 2. Mail-programmet finns i datorn. 1. Skriv mail i sökrutan. Windows Live Mail i Aktivitetsfältet. Välj bort om du vill Om du är nöjd med att ha din e-post på nätet, kan du lugnt hoppa över detta avsnitt. Har du tid och tycker att det är roligt, kan du testa att använda e-postprogrammet Windows Live

Läs mer

ANVÄNDARMANUAL, INTERAXO

ANVÄNDARMANUAL, INTERAXO ANVÄNDARMANUAL, INTERAXO 1 VARFÖR ÄR DET OLIKA FÄRG OCH UTSEENDE PÅ MAPPARNA? Gula mappar Blå mappar Blårandiga mappar Enkla mappar som man känner igen från Utforskaren. En gul mapp kan innehålla undermappar

Läs mer

Snabbstartsguide. Visa eller växla mellan onlinekonton Klicka på ditt konto-id för att ändra inställningar eller växla mellan konton.

Snabbstartsguide. Visa eller växla mellan onlinekonton Klicka på ditt konto-id för att ändra inställningar eller växla mellan konton. Snabbstartsguide Microsoft OneNote 2013 ser annorlunda ut jämfört med tidigare versioner, så vi har skapat den här guiden för att hjälpa dig minimera din inlärningskurva. Växla mellan pekskärm och mus

Läs mer

Manual för lokalredaktörer villaagarna.se

Manual för lokalredaktörer villaagarna.se Manual för lokalredaktörer villaagarna.se Version 1 Villaägarnas Riksförbund Sollentuna 2011 Postadress Besöksdress Telefon Fax E-post Hemsida Box 7118, 192 07 Sollentuna Johan Berndes väg 8-10 010-750

Läs mer

Användarutbildning i SiteVision

Användarutbildning i SiteVision Användarutbildning i SiteVision Senselogic AB Version 2.4 Innehållsförteckning 1 Komma igång med SiteVision...1 1.1 Starta SiteVision... 1 1.2 Redigeringsläget i SiteVision... 2 1.2.1 Verktygsfält...2

Läs mer

Om Mappar... 2. Uppgift 1: Skapa en mapp på Skrivbordet... 2 Om enheter... 3 Uppgift 2: Byt namn på din nya Höst -mapp till Vår...

Om Mappar... 2. Uppgift 1: Skapa en mapp på Skrivbordet... 2 Om enheter... 3 Uppgift 2: Byt namn på din nya Höst -mapp till Vår... RIGMOR SANDER WINDOWS-ÖVN Sid 1 (9) Om Mappar... 2 Om mappars namn... 2 Uppgift 1: Skapa en mapp på Skrivbordet... 2 Om enheter... 3 Uppgift 2: Byt namn på din nya Höst -mapp till Vår... 3 Öva mer på att

Läs mer

Beställning till Husfoto. Handledning

Beställning till Husfoto. Handledning Beställning till Husfoto Handledning Datum: 13 mars 2012 Innehåll Inställningar... 2 Så här gör du en beställning... 4 Så här hämtar du materialet... 7 Hur sparas filerna?... 8 Support...11 Kortkommandon

Läs mer

Lathund för fakturaspecifikation med rapportverktyget BusinessObjects, version 4.0. Version 1.0, 2013-06-14

Lathund för fakturaspecifikation med rapportverktyget BusinessObjects, version 4.0. Version 1.0, 2013-06-14 Lathund för fakturaspecifikation med rapportverktyget BusinessObjects, version 4.0 Version 1.0, 2013-06-14 Utgivare: Trafikverket Kontakt: fakturering.jarnvag@trafikverket.se Distributör: Trafikverket,

Läs mer

IMPORTERA POSTER TILL DIVA Anvisning för export av poster från andra databassystem för import till DiVA

IMPORTERA POSTER TILL DIVA Anvisning för export av poster från andra databassystem för import till DiVA IMPORTERA POSTER TILL DIVA Anvisning för export av poster från andra databassystem för import till DiVA Universitetsbiblioteket Senast ändrad: 2016-12-12 2 Innehållsförteckning Linköpings universitetsbibliotek

Läs mer

5HVLVWHQVWDEHOO 'DWD3DUWQHU. Er partner inom data

5HVLVWHQVWDEHOO 'DWD3DUWQHU. Er partner inom data 5HVLVWHQVWDEHOO Tack för att du valde programmet 5HVLVWHQVWDEHOO! Vi hoppas att programmet ska vara till stor hjälp i ditt arbete. Har du synpunkter på programmet är du mycket välkommen att höra av dig

Läs mer

LÄR DIG ANVÄNDA DIN MAC. från grunden! Nu med Mac OS X Leopard! Harry Peronius

LÄR DIG ANVÄNDA DIN MAC. från grunden! Nu med Mac OS X Leopard! Harry Peronius Harry Peronius LÄR DIG ANVÄNDA Nu med Mac OS X Leopard! DIN MAC från grunden! Del 1 GRUNDFUNKTIONER 4. Finder... 6 5. Dock... 34 6. Hjälp... 36 7. Mappar och filer... 38 8. Time Machine... 4 9. Systeminställningar...

Läs mer

Ja, men resultatet blir inte lika bra. Det är att skapa genvägsikoner. Se anvisningar nedan:

Ja, men resultatet blir inte lika bra. Det är att skapa genvägsikoner. Se anvisningar nedan: Du måste ha WinZip installerat, eller ett annat program som kan hantera filer med filtillägget zip! Du måste packa upp filen innan du kan använda ikonerna eller bilderna här. Vad är WinZip? WinZip är ett

Läs mer

Lathund. Joint Collaboration AB Korta Gatan 7 171 54 Stockholm Tel. 08 28 20 30. www.interaxo.se interaxo@joint.se. Org.nr.

Lathund. Joint Collaboration AB Korta Gatan 7 171 54 Stockholm Tel. 08 28 20 30. www.interaxo.se interaxo@joint.se. Org.nr. Lathund Joint Collaboration AB Korta Gatan 7 171 54 Stockholm Tel. 08 28 20 30 www.interaxo.se interaxo@joint.se Org.nr. 556565-2590 SE INNEHÅLL LATHUND, INTERAXO... 2 1 Varför är det olika färg och utseende

Läs mer

Handbok Nepomuk-WebMiner. Jörg Ehrichs Översättare: Stefan Asserhäll

Handbok Nepomuk-WebMiner. Jörg Ehrichs Översättare: Stefan Asserhäll Jörg Ehrichs Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Integrering med Dolphin 6 3 Dialogruta för extrahering 7 4 Tjänst 8 5 Inställningar 9 5.1 Hämtare...........................................

Läs mer

Administration av lagets arbetsrum. Lathund

Administration av lagets arbetsrum. Lathund Administration av lagets arbetsrum Lathund Innehåll 1 Logga in... 2 2 Koppla serier till ditt lag... 3 3 Koppla serier och matcher till lagets kalender... 4 4 Konfigurera välkomsttext... 5 5 Konfigurera

Läs mer

Del 2 HANTERA MUSIKFILER. 5. Importera filer... 34 6. Skapa ordning i din musiksamling... 38 7. Skapa spellistor... 46 8. Bränna cd-skivor...

Del 2 HANTERA MUSIKFILER. 5. Importera filer... 34 6. Skapa ordning i din musiksamling... 38 7. Skapa spellistor... 46 8. Bränna cd-skivor... Del HANTERA MUSIKFILER. Importera filer... 6. Skapa ordning i din musiksamling... 8 7. Skapa spellistor... 6 8. Bränna cd-skivor... . IMPORTERA FILER När du använder samma ljudformat för alla dina musikfiler,

Läs mer

Användarutbildning i SiteVision

Användarutbildning i SiteVision Användarutbildning i SiteVision SiteVision AB Version 3 Innehållsförteckning 1 Komma igång med SiteVision...1 1.1 Starta SiteVision... 1 1.2 Redigeringsläget i SiteVision... 2 1.2.1 Verktygslisten...2

Läs mer

Handbok för Klipper. Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll

Handbok för Klipper. Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Att använda Klipper 6 2.1 Grundläggande användning................................ 6 2.1.1 Klippers grafiska komponent...........................

Läs mer

KARLSTADS UNIVERSITETSBIBLIOTEK

KARLSTADS UNIVERSITETSBIBLIOTEK 1 (7) Guide till Zotero Med referenshanteringsprogrammet Zotero kan du enkelt samla dina referenser till böcker, artiklar m.m. och infoga källhänvisningar samt skapa litteraturlistor i MS Word, OpenOffice

Läs mer

Hämta projektkonfiguration från SharePoint till ett lokalt projekt

Hämta projektkonfiguration från SharePoint till ett lokalt projekt Hämta projektkonfiguration från SharePoint till ett lokalt projekt Du kan använda synkroniseringsfunktionen för att hämta projektkonfiguration från ett SharePoint-bibliotek till ett tomt lokalt projekt.

Läs mer

Mobilus får inte användas under tiden uppdateringen genomförs.

Mobilus får inte användas under tiden uppdateringen genomförs. Uppdatera Mobilus Professional till version 1.0.6 Mobilus får inte användas under tiden uppdateringen genomförs. OBS! Innan du påbörjar uppdateringen till version 1.0.6 måste du ladda ner och installera

Läs mer

Uppdatering till Windows 8.1 steg för steg-guide

Uppdatering till Windows 8.1 steg för steg-guide Uppdatering till Windows 8.1 steg för steg-guide Installera och uppdatera Windows 8.1 Uppdatera BIOS, program, drivrutiner och kör Windows Update Välj en av installationstyperna Installera Windows 8.1

Läs mer

http://office.microsoft.com/sv-se/word/ha100444731053.aspx

http://office.microsoft.com/sv-se/word/ha100444731053.aspx 1. Öppna Word 2007 i 97-2003 2. Vilken Explorer har jag 3. Inloggning med Explorer 8 4. Sökväg till sidan 5. Ha två fönster öppna 6. Stilar 7. Storleksändra 8. Inklistring av text 9. Bilder till startsidan

Läs mer

Hur man lägger upp och redigerar dokument i Typo3.

Hur man lägger upp och redigerar dokument i Typo3. Hur man lägger upp och redigerar dokument i Typo3. Typo3 är ett så kallat CMS, Content Management System där du enkelt och smidigt kan lägga ut kursinformation och bilder. Detta verktyg är webbaserat vilket

Läs mer

IBM SmartCloud for Social Business. IBM SmartCloud Engage och IBM SmartCloud Connections Användarhandbok

IBM SmartCloud for Social Business. IBM SmartCloud Engage och IBM SmartCloud Connections Användarhandbok IBM SmartCloud for Social Business IBM SmartCloud Engage och IBM SmartCloud Connections Användarhandbok IBM SmartCloud for Social Business IBM SmartCloud Engage och IBM SmartCloud Connections Användarhandbok

Läs mer

Snabbstartsguide. Verktygsfältet Snabbåtkomst Kommandona här är alltid synliga. Högerklicka på ett kommando om du vill lägga till det här.

Snabbstartsguide. Verktygsfältet Snabbåtkomst Kommandona här är alltid synliga. Högerklicka på ett kommando om du vill lägga till det här. Snabbstartsguide Microsoft Word 2013 ser annorlunda ut jämfört med tidigare versioner, så vi har skapat den här guiden så att du så snabbt som möjligt ska komma igång. Verktygsfältet Snabbåtkomst Kommandona

Läs mer

Word-guide Introduktion

Word-guide Introduktion Word-guide Introduktion På det kognitionsvetenskapliga programmet kommer du läsa kurser inom flera olika vetenskapsområden och för varje vetenskapsområde finns ett speciellt sätt att utforma rapporter.

Läs mer

Skoladmin kom igång! Innehåll

Skoladmin kom igång! Innehåll Skoladmin kom igång! Välkommen till nya Skoladmin! Det har skett lite förändringar i själva verktyget där du skapar nya kurser och lägger upp nyheter. Du kommer att känna igen all information som läggs

Läs mer

Tips och idéer för Chrome OS och Google Dokument

Tips och idéer för Chrome OS och Google Dokument Tips och idéer för Chrome OS och Google Dokument Läs mer om it i lärandet på webben: www.spsm.se/itilarandet Tips och idéer för Chrome OS och Google Dokument Skriften är utgiven av Specialpedagogiska skolmyndigheten

Läs mer

DynaPahlm är användbart på många olika typer av webbplatser. Denna handbok ger dig tips och vägledning till hur du bäst använder DynaPahlm

DynaPahlm är användbart på många olika typer av webbplatser. Denna handbok ger dig tips och vägledning till hur du bäst använder DynaPahlm Användarhandbok (testsite http://www.pahlm.com/dynapahlm/ Förord DynaPahlm är levererat tillsammans med din webbplats från KM-Företagsutveckling. DynaPahlm är ett Content Management System (CMS), fritt

Läs mer

Revu handledning: Spara markeringsverktyg i Verktygslådan

Revu handledning: Spara markeringsverktyg i Verktygslådan Revu handledning: Spara markeringsverktyg i Verktygslådan Verktygslådan i Revu låter dig lägga till markeringar i dina PDF-filer på ett effektivt sätt. Verktygslådan sparar de verktyg du använder oftast

Läs mer

Filhantering utforskaren avslöjar

Filhantering utforskaren avslöjar Filhantering utforskaren avslöjar 1 hur information lagras När man skriver ett brev eller ritar en bild skapas ett do kument. Detta måste sparas någonstans för att inte försvinna när datorn slås av. I

Läs mer

Del 2 ARBETA MED DATORN

Del 2 ARBETA MED DATORN NY upplaga! Harry Peronius LÄR DIG ANVÄNDA DIN MACINTOSH Del ARBETA MED DATORN. Adressbok... 56 5. ical... 59 6. Dashboard... 65 7. Dvd-spelare... 69 8. itunes... 7 9. iweb... 8 0. Automator... 9. Kompatibilitet

Läs mer

Uppdatering till Windows 8.1 steg för steg-guide

Uppdatering till Windows 8.1 steg för steg-guide Uppdatering till Windows 8.1 steg för steg-guide Installera och uppdatera Windows 8.1 Uppdatera BIOS, program, drivrutiner och kör Windows Update Välj en av installationstyperna Installera Windows 8.1

Läs mer

Så här använder du Legimus app för Iphone och Ipad

Så här använder du Legimus app för Iphone och Ipad Så här använder du Legimus app för Iphone och Ipad Innehåll Vad är Legimus?... 3 Legimus webb... 3 Kom igång med appen Legimus... 4 Logga in... 4 Bokhyllan... 5 Så här söker du en talbok... 5 Ladda ner

Läs mer

Filhantering utforskaren avslöjar hur information lagras

Filhantering utforskaren avslöjar hur information lagras Filhantering utforskaren avslöjar hur information lagras 44 När man skriver ett brev eller ritar en bild skapas ett do kument, som måste sparas någonstans för att inte försvinna när datorn slås av. I datorn

Läs mer

KOM-IGÅNG-GUIDE. Kom igång och redigera din hemsida! SmelinkWeb4 editor 2

KOM-IGÅNG-GUIDE. Kom igång och redigera din hemsida! SmelinkWeb4 editor 2 KOM-IGÅNG-GUIDE Kom igång och redigera din hemsida! SmelinkWeb4 editor 2 Smelink.se l Storgatan 14 l 352 31 Växjö l support@smelink.se l www.smelink.se Uppdaterad: 121019 Del 1 Logga in Välkommen att ta

Läs mer

Software Translator 6.1 Manual

Software Translator 6.1 Manual Software Translator 6.1 Manual 1 Innehåll Sidan Inledning 3 Installation 4 Auktorisation 4 Översikt Programfönster 5 Menyer Arkiv 5 Visa 6 Språk 6 Verktyg 7 Hjälp 7 Handhavande Att lägga till ett program

Läs mer

Steg 1 Minnen, mappar, filer Windows 7

Steg 1 Minnen, mappar, filer Windows 7 Steg 1 Minnen, mappar, filer Windows 7 Maj -13 Liljedalsdata.se Liljedalsdata Steg 1 Sida 1 Inledning Välkommen till denna kurs. Att jobba med datorer är ofta som att jobba med matematik. Det nya bygger

Läs mer

Använd WordFinder Pro för Mac optimalt! Snabbguide med nyttiga tips och trix.

Använd WordFinder Pro för Mac optimalt! Snabbguide med nyttiga tips och trix. Använd WordFinder Pro för Mac optimalt! Snabbguide med nyttiga tips och trix. Dokumentversion 2014-1 Tekniska förutsättningar För WordFinder 11 Pro för Mac krävs följande: Processor: Intel Mac OS X 10.8

Läs mer

Vilken version av Dreamweaver använder du?

Vilken version av Dreamweaver använder du? Sida 1 av 7 Lektion 1: sida 1 av 4 Till kursens framsida Sida 2 av 4» Lektion 1 Då ska vi sätta igång med den här kursens första lektion! Här kommer du att få lära dig hur man skapar och förbereder webbplatser

Läs mer

2. Dels går det att klicka sig fram via appsamlingen (2a) (som liknar en rutig kvadrat). Klicka på E-post (2b). 2b.

2. Dels går det att klicka sig fram via appsamlingen (2a) (som liknar en rutig kvadrat). Klicka på E-post (2b). 2b. Google E-post I Google Apps for Education (GAFE) ingår motsvarande Googles G-mail som e-postprogram. Eftersom det är skolan som administrerar våra GAFE-konton samt att vi behåller vår gamla domän zonline.se

Läs mer

Visma Proceedo. Att logga in - Manual. Version 1.3 / 140414 1

Visma Proceedo. Att logga in - Manual. Version 1.3 / 140414 1 Visma Proceedo Att logga in - Manual Version 1.3 / 140414 1 Innehållsförteckning 1) INLOGGNING VIA VERKTYG OCH SYSTEM... 3 2) INTERNET EXPLORER... 6 2.1 Java... 6 2.2 Popup-fönster... 8 2.3 Browser, 32-

Läs mer

Användarguide. Bildslinga internet

Användarguide. Bildslinga internet Användarguide Bildslinga internet Capitex AB Bildslinga internet Inledning Bildslingan låter dig exponera dina objekt i helskärmsläge, exempelvis för skyltfönstret. Text och bild hämtas från de objekt

Läs mer

Använd WordFinder från Mac App Store optimalt! Snabbguide med nyttiga tips och trix.

Använd WordFinder från Mac App Store optimalt! Snabbguide med nyttiga tips och trix. Använd WordFinder från Mac App Store optimalt! Snabbguide med nyttiga tips och trix. Tekniska förutsättningar För WordFinder från Mac App Store krävs följande: Processor: Intel Mac OS X 10.6.6 eller senare.

Läs mer

PHOCA GALLERY (v 3.2.3)

PHOCA GALLERY (v 3.2.3) Joomla Guide 2.5.11 PHOCA GALLERY Sida 1 av 37 PHOCA GALLERY (v 3.2.3) I denna guide får du veta mer om: Inledningen till PHOCA GALLERY: Vad är ett Phoca Gallery Phoca Gallery Kontrollpanelen Stegen i

Läs mer

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen.

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen. Fiskar Arbetsbeskrivning knappmeny (Mediator 8) I detta exempel kommer du att lära dig Att göra en mastersida med knappar Att använda en mastersida på andra sidor Att använd funktionen Alignment Arbetsgång

Läs mer