توثيق واجهة برمجة التطبيقات لأدوات تحرير الكتب الإلكترونية

تتكون أدوات تحرير الكتب الإلكترونية من كائن calibre.ebooks.oeb.polish.container.Container الذي يمثل كتابًا كمجموعة من ملفات HTML + ملفات الموارد، وأدوات متنوعة يمكن استخدامها لإجراء عمليات على الحاوية. جميع الأدوات هي على شكل دوال على مستوى الوحدة في وحدات calibre.ebooks.oeb.polish.* المختلفة.

يمكنك الحصول على كائن حاوية لكتاب في مسار مثل هذا:

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

إذا كنت تكتب إضافة لمحرر الكتب الإلكترونية، يمكنك الحصول على الحاوية الحالية للكتاب الذي يتم تحريره كالتالي:

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

كائن الحاوية

class calibre.ebooks.oeb.polish.container.Container(rootpath=None, opfpath=None, log=<calibre.utils.logging.Log object>, clone_data=None)[المصدر]

تمثل الحاوية كتابًا إلكترونيًا مفتوحًا كمجلد مليء بالملفات وملف OPF. هناك مفهومان مهمان:

  • المجلد الجذر. هذا هو أساس الكتاب الإلكتروني. جميع ملفات الكتب الإلكترونية موجودة داخل هذا المجلد أو في مجلداته الفرعية.

  • الأسماء: هذه هي مسارات لملفات الكتب بالنسبة للمجلد الجذر. تحتوي دائمًا على فواصل POSIX وغير مقتبسة. يمكن اعتبارها معرفات قانونية للملفات في الكتاب. معظم الطرق على كائن الحاوية تعمل مع الأسماء. الأسماء دائمًا في شكل NFC Unicode العادي.

  • النسخ: يدعم كائن الحاوية النسخ الفعال على القرص، والذي يستخدم لتنفيذ نقاط التفتيش في محرر الكتب الإلكترونية. لكي يعمل هذا، يجب ألا تصل إلى الملفات على نظام الملفات مباشرةً. بدلاً من ذلك، استخدم raw_data() أو open() للقراءة/الكتابة إلى ملفات المكونات في الكتاب.

عند التحويل بين hrefs والأسماء، استخدم الطرق التي توفرها هذه الفئة، فهي تفترض أن جميع hrefs مقتبسة.

abspath_to_name(fullpath, root=None)[المصدر]

تحويل مسار مطلق إلى اسم قانوني بالنسبة إلى root

المعلمات:

root -- المجلد الأساسي. افتراضيًا، يتم استخدام الجذر لكائن الحاوية هذا.

add_file(name, data=b'', media_type=None, spine_index=None, modify_name_if_needed=False, process_manifest_item=None, suggested_id='')[المصدر]

أضف ملفًا إلى هذه الحاوية. يتم إنشاء إدخالات للملف تلقائيًا في بيان OPF والعمود الفقري (إذا كان الملف مستندًا نصيًا)

add_name_to_manifest(name, process_manifest_item=None, suggested_id='')[المصدر]

أضف إدخالاً إلى البيان لملف بالاسم المحدد. يُرجع معرف البيان.

add_properties(name, *properties)[المصدر]

أضف الخصائص المحددة إلى عنصر البيان المحدد بالاسم.

apply_unique_properties(name, *properties)[المصدر]

تأكد من تعيين الخصائص المحددة على عنصر البيان المحدد بالاسم فقط. يمكنك تمرير None كاسم لإزالة الخاصية من جميع العناصر.

book_type = 'oeb'

نوع الكتاب (epub لملفات EPUB و azw3 لملفات AZW3)

commit(outpath=None, keep_parsed=False)[المصدر]

تثبيت جميع الكائنات المحللة المتسخة إلى نظام الملفات وكتابة ملف الكتاب الإلكتروني في outpath.

المعلمات:
  • output -- المسار لكتابة ملف الكتاب الإلكتروني المحفوظ إليه. إذا كان None، يتم استخدام مسار ملف الكتاب الأصلي.

  • keep_parsed -- إذا كان True، يتم الاحتفاظ بالتمثيلات المحللة للعناصر المثبتة في الذاكرة المؤقتة.

commit_item(name, keep_parsed=False)[المصدر]

تثبيت كائن محلل على القرص (يتم تسلسله وكتابته إلى الملف الأساسي). إذا كان keep_parsed صحيحًا، يتم الاحتفاظ بالتمثيل المحلل في الذاكرة المؤقتة. انظر أيضًا: parsed()

dirty(name)[المصدر]

وضع علامة على الكائن المحلل المقابل للاسم كـ 'متسخ'. انظر أيضاً: parsed().

exists(name)[المصدر]

صحيح إذا كان ملف/مجلد يتوافق مع الاسم القانوني موجودًا. لاحظ أن هذه الدالة تعاني من قيود نظام الملفات الأساسي لنظام التشغيل، خاصة حساسية (عدم حساسية) حالة الأحرف. لذا على نظام ملفات غير حساس لحالة الأحرف ستعيد هذه الدالة True حتى لو كانت حالة الاسم مختلفة عن حالة ملف نظام الملفات الأساسي. انظر أيضًا has_name()

filesize(name)[المصدر]

إرجاع حجم الملف بالبايت الذي يمثله الاسم القانوني المحدد. يتعامل تلقائيًا مع الكائنات المحللة المتسخة. انظر أيضًا: parsed()

generate_item(name, id_prefix=None, media_type=None, unique_href=True)[المصدر]

أضف عنصرًا إلى البيان مع href مشتق من الاسم المعطى. يضمن تفرد href و id تلقائيًا. يُرجع العنصر الذي تم إنشاؤه.

get_file_path_for_processing(name, allow_modification=True)[المصدر]

مشابه لـ open() باستثناء أنه يعيد مسار ملف، بدلاً من كائن ملف مفتوح.

property guide_type_map

تعيين نوع الدليل إلى الاسم القانوني

has_name(name)[المصدر]

إرجاع صحيح إذا كان ملف بالاسم القانوني المحدد موجودًا. على عكس exists()، هذه الطريقة حساسة لحالة الأحرف دائمًا.

href_to_name(href, base=None)[المصدر]

تحويل href (بالنسبة إلى الأساس) إلى اسم. يجب أن يكون الأساس اسمًا أو None، وفي هذه الحالة يتم استخدام self.root.

insert_into_xml(parent, item, index=None)[المصدر]

إدراج عنصر في الأصل (أو إلحاق إذا كان الفهرس None)، مع إصلاح المسافة البادئة. يعمل فقط مع العناصر ذاتية الإغلاق.

is_dir = False

إذا كانت هذه الحاوية تمثل كتابًا غير مضغوط (دليل)

تكرار جميع الروابط في الاسم. إذا كانت get_line_numbers صحيحة، فإنها تعطي نتائج على شكل (رابط، رقم_السطر، إزاحة). حيث رقم_السطر هو رقم السطر الذي يظهر فيه الرابط والإزاحة هي عدد الأحرف من بداية السطر. لاحظ أن الإزاحة يمكن أن تشمل بالفعل عدة أسطر إذا لم تكن صفرًا.

make_name_unique(name)[المصدر]

تأكد من أن name غير موجود بالفعل في هذا الكتاب. إذا كان موجودًا، فأرجع نسخة معدلة غير موجودة.

manifest_has_name(name)[المصدر]

إرجاع True إذا كان البيان يحتوي على إدخال يتوافق مع الاسم

property manifest_id_map

تعيين معرف البيان إلى الأسماء القانونية

manifest_items_of_type(predicate)[المصدر]

أسماء جميع عناصر البيان التي يتطابق نوع الوسائط فيها مع المسند. يمكن أن يكون المسند مجموعة، قائمة، سلسلة، أو دالة تأخذ وسيطة واحدة، والتي سيتم استدعاؤها بنوع الوسائط.

manifest_items_with_property(property_name)[المصدر]

جميع عناصر البيان التي تحتوي على الخاصية المحددة

property manifest_type_map

تعيين نوع وسائط البيان إلى قائمة الأسماء القانونية لذلك النوع من الوسائط

property mi

البيانات الوصفية لهذا الكتاب ككائن Metadata. لاحظ أن هذا الكائن يتم إنشاؤه ديناميكيًا في كل مرة يتم طلب هذه الخاصية، لذا استخدمه باعتدال.

name_to_abspath(name)[المصدر]

تحويل اسم قانوني إلى مسار مطلق يعتمد على نظام التشغيل

name_to_href(name, base=None)[المصدر]

تحويل اسم إلى href بالنسبة إلى الأساس، والذي يجب أن يكون اسمًا أو None وفي هذه الحالة يتم استخدام self.root كأساس

property names_that_must_not_be_changed

مجموعة من الأسماء التي يجب عدم إعادة تسميتها أبدًا. تعتمد على تنسيق ملف الكتاب الإلكتروني.

property names_that_must_not_be_removed

مجموعة من الأسماء التي يجب عدم حذفها أبدًا من الحاوية. تعتمد على تنسيق ملف الكتاب الإلكتروني.

property names_that_need_not_be_manifested

مجموعة من الأسماء المسموح بغيابها من البيان. تعتمد على تنسيق ملف الكتاب الإلكتروني.

open(name, mode='rb')[المصدر]

افتح الملف المشار إليه بالاسم للقراءة/الكتابة المباشرة. لاحظ أن هذا سيؤدي إلى تثبيت الملف إذا تم تعديله وإزالته من ذاكرة التخزين المؤقت للتحليل. يجب عليك الانتهاء من هذا الملف قبل الوصول إلى نسخته المحللة مرة أخرى، وإلا ستحدث أشياء سيئة.

property opf

ملف OPF المحلل

opf_get_or_create(name)[المصدر]

طريقة ملائمة لإرجاع أول عنصر XML بالاسم المحدد أو إنشائه تحت عنصر opf:package ثم إرجاعه، إذا لم يكن موجودًا بالفعل.

property opf_version

الإصدار المحدد على عنصر <package> في OPF

property opf_version_parsed

الإصدار المحدد على عنصر <package> في OPF كزوج من الأعداد الصحيحة

opf_xpath(expr)[المصدر]

طريقة ملائمة لتقييم تعبير XPath على ملف OPF، تحتوي على بادئات مساحة الاسم opf: و dc: معرفة مسبقًا.

parsed(name)[المصدر]

إرجاع تمثيل محلل للملف المحدد بالاسم. لملفات HTML و XML، يتم إرجاع شجرة lxml. لملفات CSS، يتم إرجاع ورقة أنماط css_parser. لاحظ أن الكائنات المحللة يتم تخزينها مؤقتًا للأداء. إذا قمت بإجراء أي تغييرات على الكائن المحلل، يجب عليك استدعاء dirty() حتى تدرك الحاوية تحديث ذاكرة التخزين المؤقت. انظر أيضًا replace().

raw_data(name, decode=True, normalize_to_nfc=True)[المصدر]

إرجاع البيانات الخام المقابلة للملف المحدد بالاسم

المعلمات:
  • decode -- إذا كان True وكان للملف نوع MIME نصي، فقم بفك تشفيره وإرجاع كائن يونيكود بدلاً من البايتات الخام.

  • normalize_to_nfc -- إذا كان True، يتم تطبيع كائن يونيكود المُعاد إلى شكل NFC العادي كما هو مطلوب لتنسيقات ملفات EPUB و AZW3.

relpath(path, base=None)[المصدر]

تحويل مسار مطلق (مع فواصل نظام التشغيل) إلى مسار نسبي للأساس (الافتراضي هو self.root). المسار النسبي ليس اسمًا. استخدم abspath_to_name() لذلك.

remove_from_spine(spine_items, remove_if_no_longer_in_spine=True)[المصدر]

إزالة العناصر المحددة (بالاسم القانوني) من العمود الفقري. إذا كان remove_if_no_longer_in_spine صحيحًا، يتم حذف العناصر أيضًا من الكتاب، وليس فقط من العمود الفقري.

remove_from_xml(item)[المصدر]

يزيل العنصر من الأصل، مع إصلاح المسافة البادئة (يعمل فقط مع العناصر ذاتية الإغلاق)

remove_item(name, remove_from_guide=True)[المصدر]

إزالة العنصر المحدد بالاسم من هذه الحاوية. يؤدي هذا إلى إزالة جميع المراجع إلى العنصر في بيان OPF، والدليل، والعمود الفقري، بالإضافة إلى أي ذاكرات تخزين مؤقت داخلية.

rename(current_name, new_name)[المصدر]

إعادة تسمية ملف من current_name إلى new_name. يقوم تلقائيًا بإعادة بناء جميع الروابط داخل الملف إذا تغير المجلد الذي يوجد فيه الملف. لاحظ مع ذلك، أن الروابط لا يتم تحديثها في الملفات الأخرى التي قد تشير إلى هذا الملف. هذا من أجل الأداء، يجب أن تتم هذه التحديثات مرة واحدة، بشكل مجمع.

replace(name, obj)[المصدر]

استبدل الكائن المحلل المقابل للاسم بـ obj، والذي يجب أن يكون كائنًا مشابهًا، أي شجرة lxml لملفات HTML/XML أو ورقة أنماط css_parser لملف CSS.

استبدال جميع الروابط في الاسم باستخدام replace_func، والتي يجب أن تكون قابلة للاستدعاء تقبل عنوان URL وتعيد عنوان URL المستبدل. يجب أن تحتوي أيضًا على سمة 'replaced' يتم تعيينها إلى True إذا تم أي استبدال فعلي. الطرق الملائمة لإنشاء مثل هذه الدوال القابلة للاستدعاء هي استخدام فئتي LinkReplacer و LinkRebaser.

serialize_item(name)[المصدر]

تحويل كائن محلل (محدد بالاسم القانوني) إلى سلسلة بايتية. انظر parsed().

set_spine(spine_items)[المصدر]

عيّن العمود الفقري ليكون spine_items حيث spine_items هو قابل للتكرار على شكل (الاسم، خطي). سيثير خطأ إذا لم يكن أحد الأسماء موجودًا في البيان.

property spine_items

مكرر يعطي المسار لكل عنصر في العمود الفقري للكتب. انظر أيضًا: spine_iter و spine_items.

property spine_iter

مكرر يعطي العنصر، الاسم is_linear لكل عنصر في العمود الفقري للكتب. العنصر هو عنصر lxml، الاسم هو اسم الملف القانوني وis_linear صحيح إذا كان العنصر خطيًا. انظر أيضًا: spine_names و:attr:spine_items.

property spine_names

مكرر يعطي الاسم و is_linear لكل عنصر في العمود الفقري للكتب. انظر أيضًا: spine_iter و spine_items.

إدارة ملفات المكونات في حاوية

استبدال الروابط إلى الملفات في الحاوية. سيتكرر على جميع الملفات في الحاوية ويغير الروابط المحددة فيها.

المعلمات:
  • link_map -- تعيين اسم قانوني قديم إلى اسم قانوني جديد. على سبيل المثال: {'images/old.png': 'images/new.png'}

  • frag_map -- دالة قابلة للاستدعاء تأخذ وسيطتين (name, anchor) وتعيد مرساة جديدة. هذا مفيد إذا كنت بحاجة إلى تغيير المراسي في ملفات HTML. افتراضيًا، لا تفعل شيئًا.

  • replace_in_opf -- إذا كانت False، لا يتم استبدال الروابط في ملف OPF.

calibre.ebooks.oeb.polish.replace.rename_files(container, file_map)[المصدر]

إعادة تسمية الملفات في الحاوية، مع تحديث جميع الروابط إليها تلقائيًا.

المعلمات:

file_map -- تعيين اسم قانوني قديم إلى اسم قانوني جديد، على سبيل المثال: {'text/chapter1.html': 'chapter1.html'}.

إرجاع المجلدات الموصى بها لأسماء الملفات المعطاة. تستند التوصية إلى مكان وجود غالبية الملفات من نفس النوع في الحاوية. إذا لم تكن هناك ملفات من نوع معين، فإن المجلد الموصى به هو المجلد الذي يحتوي على ملف OPF.

الطباعة الجميلة والتصحيح التلقائي لأخطاء التحليل

calibre.ebooks.oeb.polish.pretty.fix_html(container, raw)[المصدر]

إصلاح أي أخطاء تحليل في HTML الممثل كسلسلة في raw. يتم الإصلاح باستخدام خوارزمية تحليل HTML5.

calibre.ebooks.oeb.polish.pretty.fix_all_html(container)[المصدر]

إصلاح أي أخطاء تحليل في جميع ملفات HTML في الحاوية. يتم الإصلاح باستخدام خوارزمية تحليل HTML5.

calibre.ebooks.oeb.polish.pretty.pretty_html(container, name, raw)[المصدر]

طباعة HTML الممثل كسلسلة في raw بشكل جميل

calibre.ebooks.oeb.polish.pretty.pretty_css(container, name, raw)[المصدر]

طباعة CSS الممثل كسلسلة في raw بشكل جميل

calibre.ebooks.oeb.polish.pretty.pretty_xml(container, name, raw)[المصدر]

طباعة XML الممثل كسلسلة في raw بشكل جميل. إذا كان name هو اسم OPF، يتم إجراء تنسيق إضافي خاص بـ OPF.

calibre.ebooks.oeb.polish.pretty.pretty_all(container)[المصدر]

طباعة جميع ملفات HTML/CSS/XML في الحاوية بشكل جميل

إدارة أغلفة الكتب

calibre.ebooks.oeb.polish.jacket.remove_jacket(container)[المصدر]

إزالة غلاف موجود، إن وجد. يُرجع False إذا لم يتم العثور على غلاف موجود.

calibre.ebooks.oeb.polish.jacket.add_or_replace_jacket(container)[المصدر]

إما إنشاء غلاف جديد من البيانات الوصفية للكتاب أو استبدال غلاف موجود. يُرجع True إذا تم استبدال غلاف موجود.

تقسيم ودمج الملفات

calibre.ebooks.oeb.polish.split.split(container, name, loc_or_xpath, before=True, totals=None)[المصدر]

تقسيم الملف المحدد بالاسم عند الموضع المحدد بواسطة loc_or_xpath. يؤدي التقسيم تلقائيًا إلى ترحيل جميع الروابط والمراجع إلى الملفات المتأثرة.

المعلمات:
  • loc_or_xpath -- يجب أن يكون تعبير XPath مثل //h:div[@id="split_here"]. يمكن أن يكون أيضًا loc الذي يستخدم داخليًا لتنفيذ التقسيم في لوحة المعاينة.

  • before -- إذا كان True، يحدث التقسيم قبل العنصر المحدد وإلا بعده.

  • totals -- يستخدم داخلياً

calibre.ebooks.oeb.polish.split.multisplit(container, name, xpath, before=True)[المصدر]

تقسيم الملف المحدد في مواقع متعددة (جميع العلامات التي تتطابق مع تعبير XPath المحدد). انظر أيضًا: split(). يؤدي التقسيم تلقائيًا إلى ترحيل جميع الروابط والمراجع إلى الملفات المتأثرة.

المعلمات:

before -- إذا كان True، تحدث التقسيمات قبل العنصر المحدد وإلا بعده.

calibre.ebooks.oeb.polish.split.merge(container, category, names, master)[المصدر]

دمج الملفات المحددة في ملف واحد، مع ترحيل جميع الروابط والمراجع تلقائيًا إلى الملفات المتأثرة. يجب أن تكون جميع الملفات إما HTML أو ملفات CSS.

المعلمات:
  • category -- يجب أن يكون إما 'text' لملفات HTML أو 'styles' لملفات CSS

  • names -- قائمة الملفات المراد دمجها

  • master -- أي من الملفات المدمجة هو الملف الرئيسي، أي الملف الذي سيبقى بعد الدمج.

إدارة الأغلفة

calibre.ebooks.oeb.polish.cover.set_cover(container, cover_path, report=None, options=None)[المصدر]

عيّن غلاف الكتاب ليكون الصورة التي يشير إليها cover_path.

المعلمات:
  • cover_path -- إما المسار المطلق لملف صورة أو الاسم القانوني لصورة في الكتاب. عند استخدام صورة في الكتاب، يجب عليك أيضًا تعيين الخيارات، انظر أدناه.

  • report -- دالة اختيارية قابلة للاستدعاء تأخذ وسيطة واحدة. سيتم استدعاؤها مع معلومات حول المهام التي تتم معالجتها.

  • options -- None أو قاموس يتحكم في كيفية تعيين الغلاف. يمكن أن يحتوي القاموس على إدخالات: keep_aspect: True أو False (الحفاظ على نسبة العرض إلى الارتفاع للأغلفة في EPUB) no_svg: True أو False (استخدام غلاف SVG في صفحة عنوان EPUB) existing: True أو False (يشير cover_path إلى صورة موجودة في الكتاب)

calibre.ebooks.oeb.polish.cover.mark_as_cover(container, name)[المصدر]

وضع علامة على الصورة المحددة كصورة الغلاف.

calibre.ebooks.oeb.polish.cover.mark_as_titlepage(container, name, move_to_start=True)[المصدر]

وضع علامة على ملف HTML المحدد كصفحة عنوان EPUB.

المعلمات:

move_to_start -- إذا كانت True، يتم نقل ملف HTML إلى بداية العمود الفقري

العمل مع CSS

calibre.ebooks.oeb.polish.fonts.change_font(container, old_name, new_name=None)[المصدر]

تغيير عائلة خط من old_name إلى new_name. يغير جميع تكرارات عائلة الخط في أوراق الأنماط وعلامات الأنماط وسمات الأنماط. إذا كان old_name يشير إلى خط مضمن، فسيتم إزالته. يمكنك تعيين new_name إلى None لإزالة عائلة الخط بدلاً من تغييرها.

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)[المصدر]

إزالة جميع قواعد CSS غير المستخدمة من الكتاب. قاعدة CSS غير مستخدمة هي تلك التي لا تتطابق مع أي محتوى فعلي.

المعلمات:
  • report -- دالة اختيارية قابلة للاستدعاء تأخذ وسيطة واحدة. يتم استدعاؤها مع معلومات حول العمليات التي يتم تنفيذها.

  • remove_unused_classes -- إذا كان True، فسيتم أيضًا إزالة سمات الفئة في HTML التي لا تتطابق مع أي قواعد CSS.

  • merge_rules -- إذا كانت True، يتم دمج القواعد ذات المحددات المتطابقة.

  • merge_rules_with_identical_properties -- إذا كانت True، يتم دمج القواعد ذات الخصائص المتطابقة.

  • remove_unreferenced_sheets -- إذا كانت True، يتم إزالة أوراق الأنماط التي لا يشير إليها أي محتوى

calibre.ebooks.oeb.polish.css.filter_css(container, properties, names=())[المصدر]

إزالة خصائص CSS المحددة من جميع قواعد CSS في الكتاب.

المعلمات:
  • properties -- مجموعة من الخصائص لإزالتها. على سبيل المثال: {'font-family', 'color'}.

  • names -- الملفات التي سيتم إزالة الخصائص منها. الافتراضي هو جميع ملفات HTML و CSS في الكتاب.

العمل مع جدول المحتويات

calibre.ebooks.oeb.polish.toc.from_xpaths(container, xpaths, prefer_title=False)[المصدر]

إنشاء جدول محتويات من قائمة تعبيرات XPath. كل تعبير في القائمة يتوافق مع مستوى من جدول المحتويات الذي تم إنشاؤه. على سبيل المثال: ['//h:h1', '//h:h2', '//h:h3'] سينشئ جدول محتويات من ثلاثة مستويات من علامات <h1> و <h2> و <h3>.

إنشاء جدول محتويات من الروابط في الكتاب.

calibre.ebooks.oeb.polish.toc.from_files(container)[المصدر]

إنشاء جدول محتويات من الملفات في الكتاب.

calibre.ebooks.oeb.polish.toc.create_inline_toc(container, title=None)[المصدر]

إنشاء جدول محتويات مضمن (HTML) من جدول محتويات NCX موجود.

المعلمات:

title -- عنوان جدول المحتويات هذا.

أداة تحرير الكتب

class calibre.gui2.tweak_book.plugin.Tool[المصدر]

الأساس: object

الفئة الأساسية للأدوات الفردية في إضافة تحرير الكتب. تتضمن الأعضاء المفيدة:

الطرق التي يجب تجاوزها في الفئات الفرعية:

name = None

عيّن هذا إلى اسم فريد وسيتم استخدامه كمفتاح

allowed_in_toolbar = True

إذا كان True، يمكن للمستخدم اختيار وضع هذه الأداة في شريط أدوات الإضافات

allowed_in_menu = True

إذا كان True، يمكن للمستخدم اختيار وضع هذه الأداة في قائمة الإضافات

toolbar_button_popup_mode = 'delayed'

وضع القائمة المنبثقة (إن وجدت) لزر شريط الأدوات. القيم المحتملة هي 'delayed' (متأخر)، 'instant' (فوري)، 'button' (زر)

property boss

كائن calibre.gui2.tweak_book.boss.Boss. يستخدم للتحكم في واجهة المستخدم.

property gui

النافذة الرئيسية لواجهة المستخدم

property current_container

إرجاع كائن calibre.ebooks.oeb.polish.container.Container الحالي الذي يمثل الكتاب الذي يتم تحريره.

register_shortcut(qaction, unique_name, default_keys=(), short_text=None, description=None, **extra_data)[المصدر]

تسجيل اختصار لوحة مفاتيح سيؤدي إلى تشغيل qaction المحدد. سيصبح اختصار لوحة المفاتيح هذا قابلاً للتخصيص تلقائيًا بواسطة المستخدم في قسم اختصارات لوحة المفاتيح في تفضيلات المحرر.

المعلمات:
  • qaction -- كائن QAction، سيتم تشغيله عند الضغط على مجموعة المفاتيح المكونة من قبل المستخدم.

  • unique_name -- اسم فريد لهذا الاختصار/الإجراء. سيتم استخدامه داخليًا، ويجب ألا يتم مشاركته مع أي إجراءات أخرى في هذه الإضافة.

  • default_keys -- قائمة باختصارات لوحة المفاتيح الافتراضية. إذا لم يتم تحديدها، فلن يتم تعيين أي اختصارات افتراضية. إذا تعارضت الاختصارات المحددة هنا مع اختصارات مدمجة أو اختصارات من تكوين المستخدم/إضافات أخرى، فسيتم تجاهلها. في هذه الحالة، سيتعين على المستخدمين تكوين الاختصارات يدويًا عبر التفضيلات. على سبيل المثال: default_keys=('Ctrl+J', 'F9').

  • short_text -- وصف اختياري قصير لهذا الإجراء. إذا لم يتم تحديده، فسيتم استخدام النص من QAction.

  • description -- وصف اختياري أطول لهذا الإجراء، سيتم استخدامه في إدخال التفضيلات لهذا الاختصار.

create_action(for_toolbar=True)[المصدر]

إنشاء QAction سيتم إضافته إما إلى شريط أدوات الإضافات أو قائمة الإضافات اعتمادًا على for_toolbar. على سبيل المثال:

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

شاهد أيضا

طريقة register_shortcut().

التحكم في واجهة المستخدم للمحرر

يتم التحكم في واجهة مستخدم محرر الكتب الإلكترونية بواسطة كائن Boss عالمي واحد. يحتوي هذا الكائن على العديد من الطرق المفيدة التي يمكن استخدامها في كود الإضافة لأداء المهام الشائعة.

class calibre.gui2.tweak_book.boss.Boss(parent, notify=None)[المصدر]
add_savepoint(msg)[المصدر]

إنشاء نقطة استعادة باسم محدد كـ msg

apply_container_update_to_gui(mark_as_modified=True)[المصدر]

تحديث جميع مكونات واجهة المستخدم لتعكس أحدث البيانات في حاوية الكتاب الحالية.

المعلمات:

mark_as_modified -- إذا كان صحيحًا، فسيتم وضع علامة على الكتاب كـ 'معدّل'، لذلك سيُطلب من المستخدم حفظه عند الإغلاق.

close_editor(name)[المصدر]

إغلاق المحرر الذي يقوم بتحرير الملف المحدد بواسطة name

commit_all_editors_to_container()[المصدر]

تثبيت أي تغييرات أجراها المستخدم على الملفات المفتوحة في المحررات إلى الحاوية. يجب عليك استدعاء هذه الطريقة قبل تنفيذ أي إجراءات على الحاوية الحالية

property currently_editing

إرجاع اسم الملف الذي يتم تحريره حاليًا أو None إذا لم يتم تحرير أي ملف

edit_file(name, syntax=None, use_template=None)[المصدر]

افتح الملف المحدد بالاسم في محرر

المعلمات:
  • syntax -- نوع وسائط الملف، على سبيل المثال، 'text/html'. إذا لم يتم تحديده، يتم تخمينه من امتداد الملف.

  • use_template -- قالب لتهيئة المحرر المفتوح به

open_book(path=None, edit_file=None, clear_notify_data=True, open_folder=False, search_text=None)[المصدر]

افتح الكتاب الإلكتروني في path للتحرير. سيعرض خطأ إذا لم يكن الكتاب الإلكتروني بتنسيق مدعوم أو إذا كان الكتاب الحالي يحتوي على تغييرات غير محفوظة.

المعلمات:

edit_file -- اسم ملف داخل الكتاب الذي تم فتحه حديثًا لبدء التحرير. يمكن أن يكون أيضًا قائمة أسماء.

rewind_savepoint()[المصدر]

التراجع عن إنشاء نقطة استعادة سابقة، مفيد إذا قمت بإنشاء نقطة استعادة، ثم ألغيت العملية دون أي تغييرات

save_book()[المصدر]

حفظ الكتاب. يتم الحفظ في الخلفية

set_modified()[المصدر]

وضع علامة على الكتاب بأنه تم تعديله

show_current_diff(allow_revert=True, to_container=None)[المصدر]

إظهار التغييرات على الكتاب من آخر حالة تم حفظها

المعلمات:
  • allow_revert -- إذا كان True، فسيحتوي مربع حوار الفروقات على زر يسمح للمستخدم بالتراجع عن جميع التغييرات

  • to_container -- كائن حاوية لمقارنة الحاوية الحالية به. إذا كان None، يتم استخدام الحاوية التي تم حفظها مسبقًا

show_editor(name)[المصدر]

إظهار المحرر الذي يقوم بتحرير الملف المحدد بواسطة name

sync_preview_to_editor()[المصدر]

مزامنة موضع لوحة المعاينة مع موضع المؤشر الحالي في المحرر الحالي