E-kitap düzenleme araçları için API belgeleri

E-kitap düzenleme araçları, bir kitabı HTML + kaynak dosyalarının bir koleksiyonu olarak temsil eden bir calibre.ebooks.oeb.polish.container.Container nesnesinden ve üzerinde işlemler gerçekleştirmek için kullanılabilecek çeşitli araçlardan oluşur. konteyner. Tüm araçlar, çeşitli calibre.ebooks.oeb.polish.* modüllerindeki modül düzeyindeki işlevler biçimindedir.

Bir kitap için sahip olduğunuz bir kapsayıcı nesnenin yolu bunun gibidir:

from calibre.ebooks.oeb.polish.container import get_container
container = get_container('Path to book file', tweak_mode=True)

E-kitap editörü için bir eklenti yazıyorsanız, düzenlenen kitap için geçerli kapsayıcıyı şu şekilde alırsınız:

from calibre.gui2.tweak_book import current_container
container = current_container()
if container is None:
    report_error # No book has been opened yet

Kapsayıcı nesne

class calibre.ebooks.oeb.polish.container.Container(rootpath, opfpath, log, clone_data=None)[kaynak]

Bir kap, açık bir e-kitabı, dosyalar ve bir OPF dosyasıyla dolu bir klasör olarak temsil eder. İki önemli kavram var:

  • Kök klasör. Bu e-kitabın temelidir. Tüm e-kitap dosyaları bu klasörün içinde veya alt klasörlerinde bulunur.

  • Adlar: Bunlar kitapların dosyalarının kök klasöre göre yollarıdır. Her zaman POSIX ayırıcıları içerirler ve alıntı yapılmazlar. Kitaptaki dosyalar için kurallı tanımlayıcılar olarak düşünülebilirler. Kapsayıcı nesnedeki yöntemlerin çoğu adlarla çalışır. Adlar her zaman NFC Unicode normal biçimindedir.

  • Klonlar: konteyner nesnesi, e-kitap düzenleyicide kontrol noktalarını uygulamak için kullanılan verimli disk üzerinde klonlamayı destekler. Bunun işe yaraması için dosya sistemindeki dosyalara asla doğrudan erişmemelisiniz. Bunun yerine, kitaptaki bileşen dosyalarını okumak/yazmak için raw_data() veya open() kullanın.

Href ve isimler arasında dönüştürme yaparken bu sınıf tarafından sağlanan yöntemleri kullanın, bunlar tüm href’lerin tırnağa alındığını varsayar.

abspath_to_name(fullpath, root=None)[kaynak]

Bir mutlak yolu :attr:`root`a göre kurallanan bir isme dönüştür

Parametreler:

root – Temel klasör. Varsayılan olarak bu kapsayıcı nesnenin kökü kullanılır.

add_file(name, data, media_type=None, spine_index=None, modify_name_if_needed=False, process_manifest_item=None)[kaynak]

Bu kapsayıcıya bir dosya ekle. Dosya için girdiler otomatik olarak OPF manifestosu ve omurgaya eklenir (dosya bir metin belgeyse)

add_name_to_manifest(name, process_manifest_item=None)[kaynak]

Manifestoya belirtilen isme sahip bir dosya için girdi ekle. Manifesto kimliğini döndürür.

add_properties(name, *properties)[kaynak]

Belirtilen özellikleri ada göre tanımlanan bildirim öğesine ekleyin.

apply_unique_properties(name, *properties)[kaynak]

Belirtilen özelliklerin yalnızca ada göre tanımlanan bildirim öğesi üzerinde ayarlandığından emin olun. Özelliği tüm öğelerden kaldırmak için ad olarak Yok’u iletebilirsiniz.

book_type = 'oeb'

Kitabın türü (EPUB dosyalar için epub ve AZW3 dosyalar için azw3)

commit(outpath=None, keep_parsed=False)[kaynak]

Tüm kirli ayrıştırılmış nesneleri dosya sistemine kaydedin ve e-kitap dosyasını outpath’e yazın.

Parametreler:
  • output – Kaydedilen e-kitap dosyasının yazılacağı yol. Hiçbiri yoksa orijinal kitap dosyasının yolu kullanılır.

  • keep_parsed – Doğruysa, taahhüt edilen öğelerin ayrıştırılmış temsilleri önbellekte tutulur.

commit_item(name, keep_parsed=False)[kaynak]

Ayrıştırılmış bir nesneyi diske gönder (serileştirilir ve altında yatan dosyaya yazılır). Eğer keep_parsed Doğru ise, ayrıştırılmış temsil zulada tutulur. Ayrıca bknz: parsed()

dirty(name)[kaynak]

İsme karşılık gelen ayrıştırılmış nesneyi kirli olarak işaretle. Ayrıca bknz: parsed().

exists(name)[kaynak]

Kurallı ada karşılık gelen bir dosya/klasör mevcutsa doğrudur. Bu işlevin, temel işletim sistemi dosya sisteminin sınırlamalarından, özellikle de büyük/küçük harf duyarlılığından muzdarip olduğunu unutmayın. Bu nedenle, büyük/küçük harfe duyarlı olmayan bir dosya sisteminde, adın büyük/küçük harf durumu, temeldeki dosya sistemi dosyasının durumundan farklı olsa bile bu, True değerini döndürür. Ayrıca bakınız has_name()

filesize(name)[kaynak]

Belirtilen kuralsal isimle temsil edilen dosyanın boyutunu bayt cinsinden döndür. Kirli ayrıştırılmış nesneleri otomatik olarak halleder. Ayrıca bknz: parsed()

generate_item(name, id_prefix=None, media_type=None, unique_href=True)[kaynak]

Bir öğeyi manifestoya, verilen isimden türetilen href ile ekle. Href ve kimliğin benzersiz olduğunu otomatik olarak garantiler. Üretilen öğeyi döndürür.

get_file_path_for_processing(name, allow_modification=True)[kaynak]

Açık dosya nesnesi yerine bir dosya yolu döndürmesi dışında open()’a benzer.

property guide_type_map

Kılavuz türden kuralsal isme harita

has_name(name)[kaynak]

Belirtilen ile aynı kuralsal isme sahip bir dosya mevcutsa Doğru döndür. :meth:`exists`in aksine, bu yöntem her zaman büyük küçük harf duyarlıdır.

href_to_name(href, base=None)[kaynak]

Bir href’i (tabana göre) isme dönüştür. taban bir isim veya None olmalıdır, ki bu durumda self.root kullanılır.

insert_into_xml(parent, item, index=None)[kaynak]

Öğeyi girintilemeyi düzelterek üst öğeye ekle (ya da indis None ise ekle). Yalnızca kendine kapanan öğeler ile çalışır.

is_dir = False

Eğer kapsayıcı ziplenmemiş kitabı betimliyorsa(bir dizin)

İsimdeki tüm bağlantılar üzerinde dön. Eğer get_line_numbers Doğru ise (bağlantı, satır_numarası, uzaklık) biçiminde sonuçlar üretir. Burda satır numarası bağlantının bulunduğu satır, uzaklık ise satır başından kaç karakter uzakta olduğudur. Uzaklığın, uzaklık sıfır değilse bir çok satırı kapsayabileceğini unutmayın.

make_name_unique(name)[kaynak]

Bu kitapta ‘ad’ın mevcut olmadığından emin olun. Eğer öyleyse, mevcut olmayan, değiştirilmiş bir sürümü döndürün.

manifest_has_name(name)[kaynak]

Manifestonun isme karşılık gelen bir girdisi varsa Doğru döndürür

property manifest_id_map

Manifesto kimliğinin kuralsal isimlere haritası

manifest_items_of_type(predicate)[kaynak]

Medya türü yüklemle eşleşen tüm bildirim öğelerinin adları. ‘yüklem’ medya türüyle çağrılacak olan bir küme, bir liste, bir dize veya tek bir argüman alan bir işlev olabilir.

manifest_items_with_property(property_name)[kaynak]

Belirtilen özelliğe sahip tüm bildirim öğeleri

property manifest_type_map

Manifesto ortam türünün bu ortam türünde kuralsal isimlerin listesine haritası

property mi

Bu kitabın metadata’sının Metadata nesnesi. Bu nesnenin bu özellik her istendiğinde oluşturulduğunu unutmayın, tutumlu kullanın.

name_to_abspath(name)[kaynak]

Kurallı bir adı mutlak işletim sistemine bağlı bir yola dönüştürme

name_to_href(name, base=None)[kaynak]

Bir ismi tabana göre yapılmış bir href’e çevir, base bir isim veya None olabilir ki bu durumda self.root kullanılır

property names_that_must_not_be_changed

Asla yeniden adlandırılmaması gereken adlar kümesi. E-kitap dosya biçimine bağlıdır.

property names_that_must_not_be_removed

Kaptan asla silinmemesi gereken adlar kümesi. E-kitap dosya biçimine bağlıdır.

property names_that_need_not_be_manifested

Bildiride eksik olmasına izin verilen adlar kümesi. E-kitap dosya biçimine bağlıdır.

open(name, mode='rb')[kaynak]

İsmin gösterdiği dosyayı doğrudan okuma/yazma için aç. Bunun dosyayı kirli ise göndereceğini, ve ayrıştırma zulasından sileceğini unutmayın. Ayrıştırılmış sürümüne tekrar erişmeden önce bu dosyayla işinizi bitirmelisiniz, yoksa kötü şeyler olur.

property opf

Ayrıştırılmış OPF dosyası

opf_get_or_create(name)[kaynak]

Belirtilen isme sahip ilk XML öğesini döndüren veya mevcut değilse opf:package öğesi altında oluşturarak döndüren kolaylaştırıcı yöntem.

property opf_version

OPF’nin <package> öğesinde ayarlanmış sürüm

property opf_version_parsed

OPF’nin <package>öğesinde bir tamsayı dizisi olarak ayarlanan sürüm

opf_xpath(expr)[kaynak]

XPath ifadesini OPF dosyasında değerlendiren kolaylık sağlayıcı yöntem, opf: ve dc: isim uzayı ön ekleri önceden tanımlanmıştır.

parsed(name)[kaynak]

Ada göre belirtilen dosyanın ayrıştırılmış bir temsilini döndürür. HTML ve XML dosyaları için bir lxml ağacı döndürülür. CSS dosyaları için bir css_parser stil sayfası döndürülür. Ayrıştırılan nesnelerin performans amacıyla önbelleğe alındığını unutmayın. Ayrıştırılan nesnede herhangi bir değişiklik yaparsanız kabın önbelleği güncellemesini bilmesi için dirty() çağrısını yapmalısınız. Ayrıca bakınız değiştir().

raw_data(name, decode=True, normalize_to_nfc=True)[kaynak]

İsimle belirtilen dosyayla ilişkili ham veriyi döndürür

Parametreler:
  • decode – True ise ve dosya metin tabanlı bir MIME türüne sahipse, kodunu çözün ve ham baytlar yerine unicode bir nesne döndürün.

  • normalize_to_nfc – True ise döndürülen evrensel kodda nesne EPUB ve AZW3 dosya biçimlerinin gerektirdiği şekilde NFC normal biçimine normelleştirilir.

relpath(path, base=None)[kaynak]

Bir mutlak yolu (işletim sistemi ayraçlarıyla) tabana göre bir yola dönüştür (varsayılan self.root).Göreceli yol bir isim değildir. Bunun için abspath_to_name() kullanın.

remove_from_spine(spine_items, remove_if_no_longer_in_spine=True)[kaynak]

Belirtilen öğeleri (kuralsal isme göre) omurgadan çıkar. Eğer remove_if_no_longer_in_spine True ise, öğeler kitaptan da silinir, sadece omurgadan değil.

remove_from_xml(item)[kaynak]

Öğeyi üstünden ayırır, girintiyi düzeltir (yalnızca kendi kendine kapanan öğelerde çalışır)

remove_item(name, remove_from_guide=True)[kaynak]

İsimle belirtilen öğeyi bu kapsayıcıdan çıkar. Bu, öğeye tüm başvuruları OPF manifestosundan, kılavuzdan ve omurgadan, ayrıca dahili zulalardan çıkarır.

rename(current_name, new_name)[kaynak]

Bir dosyayı geçerli_ad’dan yeni_ad’a yeniden adlandırır. Dosyanın bulunduğu klasör değişirse, dosya içindeki tüm bağlantıları otomatik olarak yeniden temellendirir. Ancak bu dosyaya referans verebilecek diğer dosyalardaki bağlantıların güncellenmediğini unutmayın. Bu performans içindir, bu tür güncellemelerin toplu olarak bir kez yapılması gerekir.

replace(name, obj)[kaynak]

Replace the parsed object corresponding to name with obj, which must be a similar object, i.e. an lxml tree for HTML/XML or a css_parser stylesheet for a CSS file.

İsimdeki tüm bağlantıları replace_func kullanarak, ki bu URL alan ve değiştirilen URL’yi döndüren bir çağrılabilir olmalıdır, değiştir. Ayrıca gerçekten değişiklik yapıldıysa True olarak ayarlanacak bir ‘replace’ özniteliği olmalıdır. Bu gibi çağrılabilirler oluşturmanın uygun yolu LinkReplacer ve LinkRebaser sınıflarını kullanmaktır.

serialize_item(name)[kaynak]

Ayrıştırılmış bir nesneyi (kuralsal isimle tanımlanan) bayt karakter dizisine çevir. Bknz parsed().

set_spine(spine_items)[kaynak]

Omurgayı spine_items olacak şekilde ayarla, öyle ki spine_items (isim, doğrusal) biçiminde bir yinelenebilir olsun. İsimlerden biri manifestoda yoksa hata yükseltir.

property spine_items

Kitapların omurgasındaki her öğenin yolunu gösteren bir yineleyici. Ayrıca bakınız: spine_iter ve spine_items.

property spine_iter

Kitabın omurgasındaki her öğe için item, name is_linear döndüren bir yinelenebilir. item lxml öğesidir, name kuralsal dosya ismidir ve is_linear öğe doğrusalsa True’dir. Ayrıca bknz: spine_names ve spine_items.

property spine_names

name döndüren bir yinelenebilir ve kitap omurgasındaki her öğe için is_linear. Ayrıca bknz: spine_iter ve spine_items.

Bir kapsayıcıdaki bileşen dosyalarının yönetimi

Bağlantıları kapsayıcıda dosyalarla değiştir. Kapsayıcıdaki tüm dosyaların üzerinden geçerek içlerinde belirtilen bağlantıları değiştirir.

Parametreler:
  • link_map – Eski kuralsal isimden yeni kuralsal isme harita. Örneğin:{'images/old.png': 'images/new.png'}

  • frag_map – İki bağımsız değişken (isim, çapa) alan ve yeni bir çapa döndüren bir çağrılabilir. HTML dosyalarındaki çapaları değiştirme ihtiyacınız varsa faydalıdır. Öntanımlı olarak, hiçbir şey yapmaz.

  • replace_in_opf – False ise, OPF dosyasında bağlantılar değiştirilmez.

calibre.ebooks.oeb.polish.replace.rename_files(container, file_map)[kaynak]

Kapsayıcı içindeki dosyaları yeniden adlandır, onlara olan tüm bağlantıları da güncelle.

Parametreler:

file_map – Eski kuralsal isimden yeni kuralsal isme harita, örneğin:{'text/chapter1.html': 'chapter1.html'}.

Verilen dosya isimleri için tavsiye edilen dizinleri döndür. Tavsiye aynı türde dosyaların kapsayıcı içinde nerede olduklarını temel alır. Belirli türde hiç dosya yoksa, tavsiye edilen dizin OPF dosyasını içeren dizin olarak varsayılır.

Güzel yazdırma ve ayrıştırma hatalarının otomatik düzeltilmesi

calibre.ebooks.oeb.polish.pretty.fix_html(container, raw)[kaynak]

Ham karakter dizisi olarak temsil edilen HTML’deki ayrıştırma hatalarını düzelt. Düzeltme HTML5 ayrıştırma algoritması ile yapılır.

calibre.ebooks.oeb.polish.pretty.fix_all_html(container)[kaynak]

Kapsayıcıdaki tüm HTML dosyalarındaki ayrıştırma hatalarını düzelt. Düzeltme HTML5 ayrıştırma algoritmasıyla yapılır.

calibre.ebooks.oeb.polish.pretty.pretty_html(container, name, raw)[kaynak]

Ham karakter dizisi olarak temsil edilen HTML’yi güzel yazdır

calibre.ebooks.oeb.polish.pretty.pretty_css(container, name, raw)[kaynak]

Ham karakter dizisi olarak temsil edilen CSS’yi güzel yazdır

calibre.ebooks.oeb.polish.pretty.pretty_xml(container, name, raw)[kaynak]

Ham olarak temsil edilen karakter dizisinin XML’ini güzel yazdır. name OPF’nin ismiyse, OPF’ye özel ek güzelleştirmeler yapılır.

calibre.ebooks.oeb.polish.pretty.pretty_all(container)[kaynak]

Kapsayıcıdaki tüm HTML/CSS/XML dosyalarını güzel yazdır

Kitap ceketlerinin yönetimi

calibre.ebooks.oeb.polish.jacket.remove_jacket(container)[kaynak]

Varsa, mevcut bir ceketi kaldır. Mevcut ceket yoksa False döndürür.

calibre.ebooks.oeb.polish.jacket.add_or_replace_jacket(container)[kaynak]

Ya kitap metadata’sından yeni bir ceket oluştur, ya da mevcut ceketi değiştir. Mevcut bir ceket değiştirildiyse True döndürür.

Dosyaların ayrılması ve birleştirilmesi

calibre.ebooks.oeb.polish.split.split(container, name, loc_or_xpath, before=True, totals=None)[kaynak]

name ile belirtilen dosyayı loc_ veeya _xpath ile belirtilen konumdan ayır. Ayırma otomatik olarak etkilenen dosyalardaki tüm bağlantı ve başvuruları günceller.

Parametreler:
  • loc_or_xpath – //h:div[@id=”burayı_ayır”] gibi bir XPath ifadesi olmalıdır. Ayrıca önizleme panelinde dahili olarak ayırmayı uygulayan loc da olabilir.

  • before – True ise ayırma tanımlanan öğeden önce olur, aksi halde sonra.

  • totals – Dahili olarak kullanılır

calibre.ebooks.oeb.polish.split.multisplit(container, name, xpath, before=True)[kaynak]

Belirtilen dosyayı birden fazla konuma bölün (belirtilen XPath ifadesiyle eşleşen tüm etiketler). Ayrıca bakınız: split(). Bölme işlemi, etkilenen dosyalara yönelik tüm bağlantıları ve referansları otomatik olarak taşır.

Parametreler:

before – True ise ayırma tanımlanan öğeden önce yapılır, aksi halde sonra.

calibre.ebooks.oeb.polish.split.merge(container, category, names, master)[kaynak]

Belirtilen dosyaları tek bir dosya olarak birleştir, etkilenen dosyalardaki tüm bağlantı ve başvuruları otomatik olarak güncelle. Dosyalar ya tamamen HTML ya da CSS olmalıdır.

Parametreler:
  • category – Ya HTML dosyalar için 'text' ya da CSS dosyalar için 'styles' olmalıdır.

  • names – Birleştirilecek dosyaların listesi

  • master – Birleştirilen dosyalardan hangisinin ana dosya olduğu, yani, birleştirme sonrası kalacak olan dosya.

Kapakların yönetimi

calibre.ebooks.oeb.polish.cover.set_cover(container, cover_path, report=None, options=None)[kaynak]

Kitabın kapağını cover_path ile gösterilen resim olarak ayarla.

Parametreler:
  • cover_path – Ya bir resim dosyasına mutlak yol ya da kitap içindeki bir resmin kuralsal ismi. Kitaptaki bir resim kullanılırken, ayrıca seçenekleri de belirtmelisiniz, aşağıya göz atın.

  • report – Tek bir bağımsız değişken alan isteğe bağlı çağrılabilir. İşlenen görevlerle ilgili bilgi ile çağrılacaktır.

  • options – None veya kapağın nasıl ayarlandığını kontrol eden bir sözlük. Sözlüğün girdileri olabilir:keep_aspect: True veya False (EPUB kapaklarının en-boy oranlarını korur) no_svg: True veeya False (EPUB başlık sayfasında bir SVG kapak sargısı kullanır) existing: True veya False (cover_path kitaptaki mevcut bir resmi gösterir)

calibre.ebooks.oeb.polish.cover.mark_as_cover(container, name)[kaynak]

Belirtilen resmi kapak resmi olarak işaretle.

calibre.ebooks.oeb.polish.cover.mark_as_titlepage(container, name, move_to_start=True)[kaynak]

Belirtilen HTML dosyayı EPUB’ın başlık sayfası olarak işaretle.

Parametreler:

move_to_start – True ise HTML dosya omurganın başına taşınır

CSS ile Çalışmak

calibre.ebooks.oeb.polish.fonts.change_font(container, old_name, new_name=None)[kaynak]

Bir yazı tipi ailesini old_name’den new_name’ye değiştir. Yazı tipinin biçim sayfaları, biçim etiketleri ve biçim özniteliklerinde tamamen değişmesini sağlar. old_name gömülü bir yazı tipini gösteriyorsa, kaldırılır. Yazı tipi ailesini değiştirmek yerine kaldırmak için new_name’yi None olarak ayarlayabilirsiniz.

calibre.ebooks.oeb.polish.css.remove_unused_css(container, report=None, remove_unused_classes=False, merge_rules=False, merge_rules_with_identical_properties=False, remove_unreferenced_sheets=False)[kaynak]

Kullanılmayan tüm CSS kurallarını kitaptan çıkar. Kullanılmayan bir CSS kuralı herhangi bir içerikle eşleşmeyen kuraldır.

Parametreler:
  • report – Tek bir bağımsız değişken alan isteğe bağlı çağrılabilir. Gerçekleştirilen işlemler hakkındaki bilgi ile çağrılır.

  • remove_unused_classes – True ise, HTML’deki herhangi bir CSS kuralıyla eşleşmeyen sınıf öznitelikleri de kaldırılır.

  • merge_rules – True ise aynı seçicilere sahip kurallar birleştirilir.

  • merge_rules_with_identical_properties – True ise aynı özelliklere sahip kurallar birleştirilir.

  • remove_unreferenced_sheets – Doğruysa, herhangi bir içerik tarafından başvurulmayan stil sayfaları kaldırılır

calibre.ebooks.oeb.polish.css.filter_css(container, properties, names=())[kaynak]

Belirtilen CSS özelliklerini kitaptaki tüm CSS kurallarından çıkar.

Parametreler:
  • properties – Kaldırılacak özellikler kümesi. Örneğin: {'font-family', 'color'}.

  • names – Özelliklerin çıkarılacağı dosyalar. Öntanımlı olarak kitaptaki tüm HTML ve CSS dosyalardır.

İçindekiler ile Çalışmak

calibre.ebooks.oeb.polish.toc.from_xpaths(container, xpaths, prefer_title=False)[kaynak]

Generate a Table of Contents from a list of XPath expressions. Each expression in the list corresponds to a level of the generate ToC. For example: ['//h:h1', '//h:h2', '//h:h3'] will generate a three level Table of Contents from the <h1>, <h2> and <h3> tags.

Kitaptaki bağlantılardan bir İçindekiler üret.

calibre.ebooks.oeb.polish.toc.from_files(container)[kaynak]

Kitaptaki dosyalardan İçindekiler üret.

calibre.ebooks.oeb.polish.toc.create_inline_toc(container, title=None)[kaynak]

Mevcut bir NCX İçindekiler Tablosundan satır içi (HTML) bir İçindekiler Tablosu oluşturun.

Parametreler:

title – Bu içindekiler için başlık.

Kitap düzenleme aracı

class calibre.gui2.tweak_book.plugin.Tool[kaynak]

Temeller: :py:sınıf:`nesne`

Bir Kitap Düzenle eklentisindeki araçlar için taban sınıf. Kullanışlı üyelerden bazıları:

Alt sınıflarda ezilmesi gereken metodlar:

name = None

Bunu benzersiz bir isim olarak ayarlayın anahtar olarak kullanılacaktır

allowed_in_toolbar = True

True ise kullanıcı bu aracı eklenti araç çubuğuna koymayı seçebilir

allowed_in_menu = True

True ise kullanıcı bu aracı eklenti menüsüne koymayı seçebilir

toolbar_button_popup_mode = 'delayed'

Menü (eğer varsa) için açılır pencere kipi. Muhtemel değerler ‘delayed’, ‘instant’, ‘button’

property boss

calibre.gui2.tweak_book.boss.Boss nesnesi. Kullanıcı arayüzünü kontrol etmek için kullanılır.

property gui

Kullanıcı arayüzünün ana penceresi

property current_container

Düzenlenen kitabı temsil eden calibre.ebooks.oeb.polish.container.Container nesnesini döndür.

register_shortcut(qaction, unique_name, default_keys=(), short_text=None, description=None, **extra_data)[kaynak]

Belirtilen ``qaction``ı tetikleyecek bir klavye kısayolu kaydedin. Bu klavye kısayolu, düzenleyici tercihlerinin Klavye kısayolları bölümünde kullanıcı tarafından otomatik olarak özelleştirilebilir hale gelecektir.

Parametreler:
  • qaction – Bir QAction nesnesi, kullanıcı tarafından ayarlanmış tuş kombinasyonuna basıldığında tetiklenecektir.

  • unique_name – Bu kısayol/eylem için benzersiz bir isim. Dahili olarak kullanılacaktır, bu eklentideki diğer eylemlerde kullanılmamalıdır.

  • default_keys – Öntanımlı klavye kısayollarının listesi. Belirtilmezse öntanımlı kısayol ayarlanmaz. Burada belirtilen kısayollar dahili kısayollarla ya da kullanıcı yapılandırmasıyla/diğer eklentilerle kesişirse, göz ardı edilirler. Bu durumda, kullanıcılar kısayolları elle Tercihler yardımıyla yapılandırmak zorundadırlar. Örneğin: default_keys=('Ctrl+J', 'F9').

  • short_text – Bu eylemin isteğe bağlı kısa bir tanımı. Belirtilmezse QAction’daki metin kullanılır.

  • description – Bu eylem için isteğe bağlı uzun tanım, bu kısayol için tercihler girdisinde kullanılacaktır.

create_action(for_toolbar=True)[kaynak]

``for_toolbar``a bağlı olarak, ya eklenti araç çubuğuna, ya da eklentiler menüsüne eklenecek olan bir QAction oluştur. Örneğin:

def create_action(self, for_toolbar=True):
    ac = QAction(get_icons('myicon.png'), 'Do something')
    if for_toolbar:
        # We want the toolbar button to have a popup menu
        menu = QMenu()
        ac.setMenu(menu)
        menu.addAction('Do something else')
        subaction = menu.addAction('And another')

        # Register a keyboard shortcut for this toolbar action be
        # careful to do this for only one of the toolbar action or
        # the menu action, not both.
        self.register_shortcut(ac, 'some-unique-name', default_keys=('Ctrl+K',))
    return ac

Ayrıca bakınız

Metod register_shortcut().

Düzenleyicinin kullanıcı arayüzünün kontrolü

E-kitap düzenleyicinin kullanıcı arayüzü tek bir global Boss nesnesi tarafından kontrol edilir. Bu, ortak görevleri gerçekleştirmek için eklenti kodunda kullanılabilecek birçok yararlı yönteme sahiptir.

class calibre.gui2.tweak_book.boss.Boss(parent, notify=None)[kaynak]
add_savepoint(msg)[kaynak]

msg ile belirtilen isimle bir geri dönüş kontrol noktası oluştur

apply_container_update_to_gui(mark_as_modified=True)[kaynak]

Mevcut kitap kapsayıcısındaki son veriyi yansıtması için kullanıcı arayüzünün tüm bileşenlerini güncelle.

Parametreler:

mark_as_modified – True ise, kitap değiştirildi olarak işaretlenir, böylece kullanıcıya çıkışta kaydetmek isteyip istemediği sorulur.

close_editor(name)[kaynak]

name ile belirtilen dosyayı düzenleyen düzenleyiciyi kapat

commit_all_editors_to_container()[kaynak]

Kullanıcının düzenleyicilerde açık dosyalarda yaptığı değişiklikleri kapsayıcılara kaydet. Bu metodu mevcut kapsayıcıda herhangi bir eylem gerçekleştirmeden çağırmalısınız

property currently_editing

Şu an düzenlenen dosya ismini veya herhangi bir dosya düzenlenmiyorsa None döndür

edit_file(name, syntax=None, use_template=None)[kaynak]

name ile belirtilen dosyayı bir düzenleyicide aç

Parametreler:
  • syntax – Dosyanın ortam türü, örneğin, 'text/html'. Belirtilmemişse dosya uzantısından tahmin edilir.

  • use_template – Açılan düzenleyiciyi ilklendirmek için bir şablon

open_book(path=None, edit_file=None, clear_notify_data=True, open_folder=False, search_text=None)[kaynak]

Düzenlemek için e-kitabı path konumunda açın. E-kitap desteklenen bir formatta değilse veya mevcut kitapta kaydedilmemiş değişiklikler varsa bir hata gösterecektir.

Parametreler:

edit_file – Düzenlemeye başlamak için yeni açılmış kitap içindeki bir dosyanın ismi. İsim listesi de olabilir.

rewind_savepoint()[kaynak]

Geriye alma kontrol noktasının önceki oluşumundan vazgeç, bir kontrol noktası yarattınız, ama işlemi değişiklik yapmadan iptal ettiyseniz kullanışlıdır

save_book()[kaynak]

Kitabı kaydet. Kaydetme arkaplanda yapılır

set_modified()[kaynak]

Kitabı değiştirildi olarak işaretle

show_current_diff(allow_revert=True, to_container=None)[kaynak]

Kitabın son kontrol noktasındaki durumuyla farkını göster

Parametreler:
  • allow_revert – True ise fark iletişim penceresi kullanıcının tüm değişiklikleri geri almasını sağlayan bir düğme içerir

  • to_container – Mevcut kapsayıcıyı karşılaştıracak bir kapsayıcı nesnesi. None ise, daha önce kontrol noktasına alınan kapsayıcı kullanılır

show_editor(name)[kaynak]

name ile belirtilen dosyayı düzenleyen düzenleyiciyi göster

sync_preview_to_editor()[kaynak]

Önizleme panelinin konumunu mevcut düzenleyicideki imleç konumuyla eşzamanla