Документація з програмного інтерфейсу засобів редагування електронних книг

Засоби редагування електронних книг складаються з об’єкта 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, opfpath, log, clone_data=None)[source]

Контейнер складається з Open EBook, як каталогу з файлми, і одного файла opf. Передбачено два важливих поняття:

  • Кореневий каталог. Це основа електронної книги. Усі файли електронної книги зберігаються у цьому каталозі і його підкаталогах.
  • Назви: це шляхи до файлів книги відносно кореневого каталогу. У них завжди містяться роздільники POSIX і не міститься лапок. Їх можна вважати канонічними ідентифікаторами файлів у книзі. Більшість методів для об’єктів-контейнерів працюють з назвами. Назви завжди записуються у нормальній формі NFC unicode.
  • Клони: для об’єкти-контейнерів передбачено підтримку ефективного клонування на диску. Таке клонування використовується для реалізації контрольних точок у редакторі електронних книг. Для того, щоб це спрацювало, вам ніколи не слід отримувати доступ до файлів у файловій системі безпосередньо. Замість цього, використовуйте raw_data() або open() для читання або запису файлів-компонентів електронної книги.

Для перетворення між гіперпосиланнями і назвами використовуйте методи з цього класу, усі гіперпосилання у цих методах вважаються вказаними у лапках.

abspath_to_name(fullpath, root=None)[source]

Перетворити абсолютний шлях на канонічну назву відносно root

Параметри:root – Базовий каталог. Типово, кореневий каталог об’єкта-контейнера.
add_file(name, data, media_type=None, spine_index=None, modify_name_if_needed=False, process_manifest_item=None)[source]

Додати файл до цього контейнера. Записи для файла автоматично створюються у маніфесті OPF і вмісті (якщо файл є текстовим документом)

add_name_to_manifest(name, process_manifest_item=None)[source]

Додати запис щодо файла з вказаною назвою до маніфесту. Повертає ідентифікатор маніфесту.

add_properties(name, *properties)[source]

Додати вказані властивості до запису маніфесту, вказаного за назвою.

apply_unique_properties(name, *properties)[source]

Переконайтеся, що вказані властивості встановлено лише для запису маніфесту, ідентифікованого за назвою. Ви можете передати None як назву для вилучення властивості з усіх записів.

book_type = u'oeb'

Тип книги (epub для файлів EPUB і azw3 для файлів AZW3)

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

Зберегти усі змінені оброблені об’єкти до файлової системи і записати файл електронної книги до outpath.

Параметри:
  • output – Каталог, до якого слід записати збережений файл електронної книги. Якщо має значення None, буде використано каталог, у якому зберігалася початкова книга.
  • keep_parsed – Якщо має значення True, оброблене представлення збережених записів зберігатиметься у кеші.
commit_item(name, keep_parsed=False)[source]

Зберегти оброблений об’єкт на диск (його буде перетворено на послідовну форму і записано до підлеглого файла). Якщо keep_parsed має значення True, оброблене представлення буде збережено у кеші. Див. також parsed()

dirty(name)[source]

Позначити оброблюваний об’єкт, що відповідає назві, як недооброблений. Див. також: parsed().

exists(name)[source]

Має значення True тоді і лише тоді, коли файл або каталог, що відповідає канонічній назві, існує. Зауважте, що дію цієї функції обмежено можливостями файлової системи відповідної операційної системи, зокрема тим, чи розрізняються у цій файловій системі назви за регістром символів. Отже, якщо у файловій системі не розрізняється регістр символів, функція поверне True, навіть якщо назва відрізняється за регістром символів від назви файла у файловій системі. Див. також has_name()

filesize(name)[source]

Повернути розмір у байтах для файла, вказаного канонічною назвою. Автоматично обробляє позначені під час обробки необроблені об’єкти. Див. також: parsed()

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

Додати запис до маніфесту із гіперпосиланням, яке отримано з вказаної назви. Автоматично забезпечує унікальність гіперпосилання і ідентифікатора. Повертає створений запис.

get_file_path_for_processing(name, allow_modification=True)[source]

Подібний до open(), але повертає шлях до файла, а не відкритий об’єкт файла.

guide_type_map

Прив’язка напрямного типу до канонічної назви

has_name(name)[source]

Повертає True, якщо і лише якщо існує файл із такою самою назвою, яка вказана. На відміну від exists(), цей метод завжди враховує регістр символів.

href_to_name(href, base=None)[source]

Перетворює гіперпосилання (відносно base) на назву. base має бути назвою або None (у цьому випадку буде використано self.root).

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

Вставити запис до батьківського запису (або дописати запис, якщо index дорівнює None), виправити відступи. Працює лише із самозакривними записами.

is_dir = False

Якщо цей контейнер відповідає розпакованій книзі (каталогу)

Ітеративно обробити усі посилання у name. Якщо get_line_numbers має значення True, видає результати у формі (посилання, номер_рядка, відступ), де номер_рядка є номером рядка, у якому виявлено посилання, а відступ є кількістю символів від початку цього рядка до посилання. Зауважте, що відступ може включати декілька порожніх рядків, якщо є ненульовим.

make_name_unique(name)[source]

Забезпечує те, що запис name ще не існує у цій книзі. Якщо такий запис існує, повертає змінену версію запису, якої ще не існує.

manifest_has_name(name)[source]

Повертає True, якщо у маніфесті є запис, що відповідає назві

manifest_id_map

Прив’язка ідентифікаторів маніфесту до канонічних назв

manifest_items_of_type(predicate)[source]

Назви усіх записів маніфесту, чий тип даних відповідає predicate. Значенням predicate може бути множина, список, рядок або функція, яка приймає один аргумент — назву типу даних.

manifest_items_with_property(property_name)[source]

Усі записи маніфесту, які мають вказану властивість

manifest_type_map

Прив’язка media-type маніфесту до списку канонічних назв цього media-type

mi

Метадані цієї книги у формі об’єкта Metadata. Зауважте, що цей об’єкт будується «на льоту» кожного разу, коли надсилається запит щодо цієї властивості, тому не варто зловживати її використанням.

name_to_abspath(name)[source]

Перетворити канонічну назву на абсолютний шлях у форматі операційної системи

name_to_href(name, base=None)[source]

Перетворює назву на гіперпосилання відносно base, яким має бути назвою або None (якщо основною є self.root)

names_that_must_not_be_changed

Набір назв, які заборонено перейменовувати. Залежить від формату файла електронної книги.

names_that_must_not_be_removed

Набір назв, які заборонено вилучати з контейнера. Залежить від формату файла електронної книги.

names_that_need_not_be_manifested

Набір назв, які можна не згадувати у маніфесті. Залежить від формату файла електронної книги.

open(name, mode=u'rb')[source]

Відкрити файл, вказаний за назвою для безпосереднього читання або запису. Зауважте, що у процесі виконання файл буде записано, якщо його було змінено, і вилучено із кешу обробки. Слід завершувати роботу з файлом, перш ніж отримувати доступ до його обробленої версії знову, інакше можуть статися прикрі помилки.

opf

Оброблений файл OPF

opf_get_or_create(name)[source]

Зручний метод для або повернення першого елемента XML із вказаною назвою, або створення його у елементі opf:package з наступним його поверненням, якщо елемента ще не існувало.

opf_version

Версія, встановлена на елементі <package> OPF

opf_version_parsed

Версія, встановлена на елементі <package> OPF, у форматі кортежу цілих чисел

opf_xpath(expr)[source]

Зручний метод для застосування виразу XPath до файла OPF, містить попередньо визначення префікси просторів назв «opf:» та «dc:».

parsed(name)[source]

Повертає оброблене представлення файла, який вказано за назвою (name). Для файлів HTML і XML буде повернуто дерево lxml. Для файлів CSS буде повернуто таблицю стилів css_parser. Зауважте, що оброблені об’єкти кешуються для підвищення швидкодії. Якщо ви вносите будь-які зміни до обробленого об’єкта, вам слід викликати dirty(), щоб повідомити контейнеру, що слід оновити кеш. Див. також replace().

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

Повертає необроблені дані, що відповідають файлу, вказаному за назвою

Параметри:
  • decode – Якщо має значення True і файл належить до текстового типу MIME, декодувати його і повернути об’єкт unicode замість необробленого набору байтів.
  • normalize_to_nfc – Якщо True, повернутий об’єкт unicode нормалізується до нормальної форми NFC, як це вимагається форматами файлів EPUB і AZW3.
relpath(path, base=None)[source]

Перетворити абсолютний шлях (із роздільниками операційної системи) на шлях відносно параметра base (типове значення — self.root). Відносний шлях не є назвою. Для отримання назви скористайтеся abspath_to_name().

remove_from_spine(spine_items, remove_if_no_longer_in_spine=True)[source]

Вилучити вказані записи (за канонічними назвами) із вмісту. Якщо remove_if_no_longer_in_spine має значення True, записи також буде вилучено із книги, не лише із її вмісту.

remove_from_xml(item)[source]

Вилучає запис з батьківського запису, виправляє відступи (працює лише із самозакривними записами)

remove_item(name, remove_from_guide=True)[source]

Вилучити запис, вказаний за назвою, з цього контейнера. Вилучає усі посилання на запис у маніфесті OPF, покажчику та вмісті, а також з усіх кешів внутрішнього використання.

rename(current_name, new_name)[source]

Перейменовує файл з current_name на new_name. Автоматично оновлює усі посилання у файлі, якщо змінюється каталог, у якому зберігається файл. Зауважте, що посилання у інших файлах, які можуть посилатися на цей, не оновлюються. Так зроблено з міркувань підвищення швидкодії, оскільки оновлення в усіх файлах варто виконувати один раз у пакетному режимі.

replace(name, obj)[source]

Замінити оброблений об’єкт, що відповідає параметру «name», об’єктом «obj», який має бути подібним об’єктом, тобто деревом lxml для HTML/XML або таблицею стилів css_parser для файлів CSS.

Замінити усі посилання у name за допомогою функції replace_func, яка має приймати адресу і повертати замінену адресу. Вона також повинна мати атрибут replaced, який встановлюється у значення True, якщо було виконано хоч одну заміну. Зручним способом створення таких функцій є використання класів LinkReplacer та LinkRebaser.

serialize_item(name)[source]

Перетворює оброблений об’єкт (ідентифікований за канонічною назвою) на рядок байтів. Див. parsed().

set_spine(spine_items)[source]

Встановити для вмісту значення «spine_items», де «spine_items» є ітерованою множиною у форматі (назва, лінійність). Видасть повідомлення про помилку, якщо однієї або декількох назв не буде у маніфесті.

spine_items

Ітератор, який дає шлях для кожного запису у вмісті книги. Див. також spine_iter і spine_items.

spine_iter

Ітератор, який видає (запис, назву, is_linear) для усіх записів у вмісті книги. запис є елементом lxml, назва є канонічною назвою файла, а is_linear має значення True, якщо запис є лінійним. Див. також spine_names та spine_items.

spine_names

Ітератор, який дає назву і is_linear для кожного запису у вмісті книги. Див. також spine_iter і spine_items.

Керування файлами компонентів у контейнері

Замінює посилання на файли у контейнері. Виконує ітеративну обробку усіх файлів у контейнері і змінює у них вказані посилання.

Параметри:
  • link_map – Прив’язка старої канонічної назви до нової канонічної назви. Приклад: {'images/old.png': 'images/new.png'}
  • frag_map – Функція, яка приймає два аргументи, (назва, прив’язка), і повертає нову прив’язку. Корисно, якщо вам потрібно змінити прив’язки у файлах HTML. Типово не виконує ніяких дій.
  • replace_in_opf – Якщо False, посилання у файлі OPF не замінюються.
calibre.ebooks.oeb.polish.replace.rename_files(container, file_map)[source]

Перейменовує файли у контейнері, автоматично оновлюючи усі посилання у них.

Параметри:file_map – Прив’язка старої канонічної назви до нової канонічної назви. Приклад: {'text/chapter1.html': 'chapter1.html'}.

Повертає теки, які рекомендовано використовувати для вказаних назв файлів. Рекомендація засновується на тому, де зберігається більшість файлів такого типу у контейнері. Якщо файлів певного типу немає, рекомендованою буде тека, у якій зберігається файл OPF.

Структурований друк і автовиправлення помилок обробки

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

Виправити усі помилки обробки у HTML, який представлено як рядок у параметрі «raw». Виправлення виконується на основі алгоритму обробки HTML5.

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

Виправити усі помилки обробки в усіх файлах HTML у контейнері «container». Виправлення виконується на основі алгоритму обробки HTML5.

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

Структурований друк HTML, представленого як рядок у raw

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

Структурований друк CSS, представленого як рядок у raw

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

Структурований друк XMLS, представленого як рядок у «raw». Якщо name є назвою OPF, буде виконано додаткову обробку друкованих даних, специфічну для OPF.

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

Структурований друк усіх файлів HTML/CSS/XML у контейнері

Керування обгортками книг

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

Вилучити наявну обгортку, якщо така існує. Повертає False, якщо обгортку не знайдено.

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

Або створити нову обгортку на основі метаданих книги або замінити наявну обгортку. Повертає True, якщо було замінено наявну обгортку.

Поділ і об’єднання файлів

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

Розділити файл, вказаний за допомогою параметра name, на позиції, вказаній за допомогою 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)[source]

Поділити вказаний файл у декількох місцях (усіх теґах, які відповідають вказаному виразу XPath). Див. також split(). Під час поділу усі посилання та прив’язки буде перенесено до розділених файлів.

Параметри:before – Якщо True, поділ відбувається до ідентифікованого елемента, якщо ні, після нього.
calibre.ebooks.oeb.polish.split.merge(container, category, names, master)[source]

Об’єднати вказані файли у єдиний файл, автоматично перенести усі посилання та прив’язки у відповідних файлах. Усі файли мають бути або файлами HTML, або файлами CSS.

Параметри:
  • category – Має бути або 'text' для файлів HTML, або 'styles' для файлів CSS
  • names – Список файлів, які слід об’єднати
  • master – Визначає, який з об’єднаних файлів буде основним, тобто те, який з файлів залишиться після об’єднання.

Керування обкладинками

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

Встановити для обкладинки книги зображення, на яке вказує 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)[source]

Позначити вказане зображення як зображення обкладинки.

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

Позначити вказаний файл HTML як файл титульної сторінки EPUB.

Параметри:move_to_start – Якщо True, файл HTML пересувається на початок комплекту

Робота з CSS

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

Змінити гарнітуру шрифту з 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)[source]

Вилучає усі невикористані у книзі правила CSS. Невикористаним вважається правило CSS, яке не стосується жодного фрагмента даних у книзі.

Параметри:
  • report – Необов’язкова функція для виклику, яка приймає один аргумент. Її буде викликано із даними щодо дій, які виконуються.
  • remove_unused_classes – Якщо має значення True, атрибути класу у HTML, які не відповідають жодному з правил CSS, також буде вилучено.
  • merge_rules – Якщо True, правила із ідентичними селекторами об’єднуються.
calibre.ebooks.oeb.polish.css.filter_css(container, properties, names=())[source]

Вилучити вказані властивості CSS з усіх правил CSS.

Параметри:
  • properties – Встановити властивості для вилучення. Приклад: {'font-family', 'color'}.
  • names – Файли, з яких слід вилучити властивості. Типово, усі файли HTML і CSS у книзі.

Робота зі змістом

calibre.ebooks.oeb.polish.toc.from_xpaths(container, xpaths)[source]

Створює таблицю змісту на основі списку виразів XPath. Кожен вираз у списку відповідає рівню створення записів змісту. Приклад: за списком ['//h:h1', '//h:h2', '//h:h3'] бдуе створено трирівневу таблицю змісту на основі вмісту теґів <h1>, <h2> і <h3>.

Створити зміст на основі посилань у книзі.

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

Створити зміст на основі файлів книги.

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

Створює вбудовану таблицю змісту (у форматі HTML) на основі наявної таблиці змісту NCX.

Параметри:title – Заголовок цієї таблиці змісту.

Засіб редагування книг

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

Основа: object

Базовий клас для окремих інструментів у додатку редагування книг. Серед його корисних учасників:

  • self.plugin: посилання на об’єкт calibre.customize.Plugin, до якого належить цей інструмент.
  • self. boss
  • self. gui

Методи, які слід перевизначити у підкласах:

name = None

Встановіть унікальне значення, яке буде використано як ключ

allowed_in_toolbar = True

Якщо має значення True, користувач зможе вибирати місце для цього інструмента на панелі інструментів додатків.

allowed_in_menu = True

Якщо має значення True, користувач зможе вибирати місце для пункту цього інструмента у меню додатків.

toolbar_button_popup_mode = u'delayed'

Режим контекстного меню для меню (якщо таке передбачено) кнопки панелі інструментів. Можливі значення: „delayed“, „instant“, „button“.

boss

Об’єкт calibre.gui2.tweak_book.boss.Boss. Використовується для керування інтерфейсом користувача.

gui

Головне вікно інтерфейсу користувача

current_container

Повертає поточний об’єкт calibre.ebooks.oeb.polish.container.Container, який відповідає книзі, яка редагується.

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

Реєструє комбінацію клавіш, яка запускатиме вказану дію qaction. Цю комбінацію клавіш автоматично буде додано до таблиці комбінацій клавіш у розділі «Клавіатура» налаштувань редактора із можливістю внесення змін користувачем.

Параметри:
  • qaction – Об’єкт QAction, його буде викликано, якщо користувач натисне налаштовану комбінацію клавіш.
  • unique_name – Унікальна назва цього клавіатурного скорочення або дії. Буде використано на внутрішньому рівні, назва не повинна збігатися із назвою будь-якої іншої дії у цьому додатку.
  • default_keys – Список типових комбінацій клавіш. Якщо не вказано, типових комбінацій клавіш не визначатиметься. Якщо вказані комбінації клавіш конфліктуватимуть із вбудованими комбінаціями клавіш або комбінаціями клавіш, які налаштовано користувачем або іншими додатками, ці комбінації клавіш буде проігноровано. Конфліктні комбінації користувач повинен налаштувати власноруч за допомогою вікна «Налаштування». Приклад: default_keys=('Ctrl+J', 'F9').
  • short_text – Необов’язковий короткий опис цієї дії. Якщо не вказано, буде використано текст для QAction.
  • description – Необов’язковий розширений опис цієї дії, буде використано як запис для цього клавіатурного скорочення у списку налаштування скорочень.
create_action(for_toolbar=True)[source]

Створює 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().

Керування інтерфейсом користувача редактора

Інтерфейс користувача редактора електронних книг керується єдиним загальним об’єктом. Цей об’єкт має багато корисних методів, яким можна скористатися у коді додатка для виконання типових завдань.

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

Створює контрольну точку відновлення із назвою, яку вказано параметром msg.

apply_container_update_to_gui(mark_as_modified=True)[source]

Оновлює усі компоненти інтерфейсу користувача так, щоб вони відповідали найсвіжішим даним у поточному контейнері книги.

Параметри:mark_as_modified – Якщо має значення True, книгу буде позначено як змінену, щоб програма попросила користувача зберегти внесені зміни, коли завершуватиме роботу.
close_editor(name)[source]

Закрити вікно редактора, у якому відбувається редагування файла, вказаного параметром name.

commit_all_editors_to_container()[source]

Записати усі зміни, які внесено користувачем до файлів, які відкрито у вікнах редактора, до контейнера. Вам слід викликати цей метод до виконання будь-яких дій над поточним контейнером.

currently_editing

Повертає назву файла, який зараз редагують, або None, якщо користувач не редагує жодного файла.

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

Відкрити файл, який вказано параметром name, у редакторі.

Параметри:
  • syntax – Тип вмісту файла, наприклад 'text/html'. Якщо не вказано, тип буде визначено за суфіксом назви файла.
  • use_template – Шаблон яким слід ініціалізувати відкритий редактор
open_book(path=None, edit_file=None, clear_notify_data=True, open_folder=False)[source]

Відкрити електронну книгу за шляхом path для редагування. Покаже повідомлення про помилку, якщо дані книги зберігаються у непідтримуваному форматі або до поточної книги було внесено зміни, які згодом не було збережено.

Параметри:edit_file – Назва файла у щойно відкритій для редагування книзі. Може також бути списком назв.
rewind_savepoint()[source]

Скасувати попереднє створення контрольної точки відновлення. Корисно, якщо ви створюєте контрольну точку, а потім перериваєте дію без внесення змін до файлів.

save_book()[source]

Зберегти книгу. Зберігання виконується у фоновому режимі.

set_modified()[source]

Позначити книгу як таку, яку було змінено

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

Показує зміни у книзі з часу створення останньої контрольної точки книги.

Параметри:
  • allow_revert – Якщо має значення True, діалогове вікно різниці міститиме кнопку, яка надаватиме змогу користувачеві скасувати усі внесені зміни.
  • to_container – Об’єкт-контейнер для порівняння з поточним контейнером. Якщо має значення None, буде використано контейнер з попередньої контрольної точки.
show_editor(name)[source]

Показати вікно редактора, у якому відбувається редагування файла, вказаного параметром name.

sync_preview_to_editor()[source]

Синхронізувати позицію на панелі попереднього перегляду зі поточною позицією у вікні редактора.