電子書籍編集ツール API 説明書

電子書籍編集ツールは、HTML +リソースファイルのコレクションとして書籍を表す calibre.ebooks.oeb.polish.container.Container オブジェクトと、コンテナで操作を実行するために使用できるさまざまなツールで構成されています。すべてのツールは、さまざまな``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

Container オブジェクト

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

コンテナは開いている電子書籍を、OPF ファイルおよびファイルでいっぱいのフォルダとして表します。 2 つの重要な概念があります:

  • ルートフォルダ。これが電子書籍のベースです。すべての電子書籍ファイルは、このフォルダまたはそのサブフォルダ内にあります。

  • 名前: ルートフォルダを基準にした書籍のファイルへのパスです。それらは常に POSIX 区切り文字を含み、引用符で囲まれていません。本のファイルの正規の識別子と考えることができます。コンテナオブジェクトのほとんどのメソッドは名前で機能します。名前は常にNFC Unicode の通常の形式です。

  • クローン: コンテナオブジェクトは、電子書籍エディタでチェックポイントを実装するために使用される効率的なディスク上のクローンをサポートします。これを機能させるために、ファイルシステム上のファイルには直接アクセスしないでください。代わりに、raw_data() または open() を使用して、本の中のコンポーネントファイルの読み取り/書き込みを行ってください。

href と名前を変換するときに、このクラスが提供するメソッドを使用します。このときすべての href が引用符で囲まれていると想定します。

abspath_to_name(fullpath, root=None)[ソース]

絶対パスを ルート を基準とした正規名に変換します

パラメータ:

root -- ベースフォルダ。デフォルトでは、このコンテナオブジェクトのルートが使用されます。

add_file(name, data, media_type=None, spine_index=None, modify_name_if_needed=False, process_manifest_item=None)[ソース]

このコンテナにファイルを追加します。ファイルのエントリは、OPF マニフェストとスパインに自動的に作成されます (ファイルがテキストドキュメントの場合)

add_name_to_manifest(name, process_manifest_item=None)[ソース]

指定した名前のファイルのマニフェストにエントリを追加します。マニフェスト ID を返します。

add_properties(name, *properties)[ソース]

名前で識別されるマニフェスト項目に、指定したプロパティを追加します。

apply_unique_properties(name, *properties)[ソース]

指定したプロパティを設定するのは、名前で識別されるマニフェスト項目だけにしてください。名前として None を渡すと、すべての項目からプロパティを削除できます。

book_type = 'oeb'

本のタイプ (EPUB ファイルの場合は epub、AZW3 ファイルの場合は azw3)

commit(outpath=None, keep_parsed=False)[ソース]

汚くなった解析済みオブジェクトをすべてファイルシステムにコミットし、電子書籍ファイルをアウトパスに書き込みます。

パラメータ:
  • output -- 保存した電子書籍ファイルを書き込むパス。 None であれば、元の本ファイルのパスが使用されます。

  • keep_parsed -- True のとき、コミットされた項目の解析された表現はキャッシュに保持されます。

commit_item(name, keep_parsed=False)[ソース]

解析されたオブジェクトをディスクにコミットします (シリアル化され、基になるファイルに書き込まれます)。 keep_parsed が True なら、解析された表現はキャッシュに保持されます。parsed() も参照のこと。

dirty(name)[ソース]

name に対応する解析済みオブジェクトを汚いとマークします。parsed() も参照のこと。

exists(name)[ソース]

正規名に対応するファイル/フォルダーが存在すれば True。ただしこの関数は、基盤となる OS ファイルシステムの制限、特に (非) 感度の問題があります。したがって、大文字と小文字を区別しないファイルシステムでは、名前と基になるファイルシステムファイルで大文字と小文字が異なっていても、これは 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)[ソース]

指定されたものと同じ正規名のファイルが存在する場合は True を返します。 exists() とは異なり、このメソッドでは常に大文字と小文字が区別されます。

href_to_name(href, base=None)[ソース]

(ベースに対して) href を名前に変換します。 base は name または None である必要があり、その場合には self.root が使用されます。

insert_into_xml(parent, item, index=None)[ソース]

item を親に挿入し (インデックスが None であれば追加し)、インデントを修正します。自己終了する item でのみ機能します。

is_dir = False

このコンテナが解凍された本 (ディレクトリ) を表すかどうか

名前のすべてのリンクを繰り返します。get_line_numbers が True のとき、結果は (link, line_number, offset) の形式で得られます。line_number はリンクが発生するline_number、offset は行の先頭からの文字数です。ただし offset は、ゼロでない場合でも実際には複数の線を含む可能性があります。

make_name_unique(name)[ソース]

name には必ずこの本に存在していないものを指定してください。すでに存在する場合は、変更された存在しないバージョンを返します。

manifest_has_name(name)[ソース]

マニフェストに名前に対応するエントリがあれば True を返します

property manifest_id_map

マニフェストIDの正規名へのマッピング

manifest_items_of_type(predicate)[ソース]

メディアタイプが predicate とマッチするすべてのマニフェスト項目の名前。predicate は、セット、リスト、文字列、または単一の引数を取る関数であり、メディアタイプで呼び出されます。

manifest_items_with_property(property_name)[ソース]

指定したプロパティを持つすべてのマニフェスト項目

property manifest_type_map

マニフェストメディアタイプの、そのメディアタイプの正規名のリストへのマッピング

property mi

Metadata オブジェクトとしてこの本の書誌。ただしこのオブジェクトは、このプロパティが要求されるたびにオンザフライで構築されるため、慎重に使用してください。

name_to_abspath(name)[ソース]

正規名を OS に依存する絶対パスに変換します

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')[ソース]

直接読み取り/書き込み用に name で指定されたファイルを開きます。ただしファイルが汚いときには、ファイルがコミットされて解析キャッシュから削除されます。このファイルは、解析されたバージョンのファイルに再度アクセスする前に終了する必要があります。そうしないと、問題が発生します。

property opf

解析された OPF ファイル

opf_get_or_create(name)[ソース]

指定した name の最初の XML 要素を返すか、まだ存在しなければ opf:package 要素の下に作成して、それを返す便利なメソッド。

property opf_version

OPF の <package> 要素に設定されているバージョン

property opf_version_parsed

OPF の <package> 要素に整数のタプルとして設定されたバージョン

opf_xpath(expr)[ソース]

OPF ファイルで XPath 式を評価するための便利なメソッドで、opf: および dc: 名前空間プレフィックスが事前定義されています。

parsed(name)[ソース]

name で指定されたファイルの解析済み表現を返します。HTML および XML ファイルの場合、lxml ツリーが返されます。CSS ファイルの場合、css_parser スタイルシートが返されます。ただし解析されたオブジェクトは、性能上の理由からキャッシュされます。解析されたオブジェクトに変更を加える場合は、dirty() を呼び出して、コンテナがキャッシュを更新することを認識できるようにする必要があります。replace() も参照のこと。

raw_data(name, decode=True, normalize_to_nfc=True)[ソース]

name で指定したファイルに対応する生データを返します

パラメータ:
  • decode -- True かつ、ファイルにテキストベースの MIME タイプがあるときは、それをデコードして、raw バイトの代わりに Unicode オブジェクトを返します。

  • normalize_to_nfc -- True のとき、返される Unicode オブジェクトは、EPUB および AZW3 ファイル形式で必要とされる NFC 正規形に規格化されます。

relpath(path, base=None)[ソース]

絶対パス (os 区切り文字付き) をベースを基準にした相対パス (デフォルトはself.root) に変換します。相対パスは名前では*ありません*。名前には abspath_to_name() を使用してください。

remove_from_spine(spine_items, remove_if_no_longer_in_spine=True)[ソース]

指定された項目 (正規名) をスパインから削除します。remove_if_no_longer_in_spine` が True のとき、スパインからだけでなく、本からも項目が削除されます。

remove_from_xml(item)[ソース]

親から item を削除し、インデントを修正します (自己終了する item でのみ機能します)

remove_item(name, remove_from_guide=True)[ソース]

このコンテナから name で識別される項目を削除します。これにより、OPF マニフェスト、ガイド、スパイン、および内部キャッシュ内の項目へのすべての参照が削除されます。

rename(current_name, new_name)[ソース]

ファイル名を current_name から new_name に変更します。ファイルが含まれているフォルダが変更された場合、ファイル内のすべてのリンクが自動的にリベースされます。ただし、このファイルを参照する可能性のある他のファイルでは、リンクは更新されません。性能上の理由から、このような更新は一括して実行する必要があります。

replace(name, obj)[ソース]

name に対応する解析済みオブジェクトを obj に置き換えます。これは類似したオブジェクト、つまりHTML / XML ならば lxml ツリー、CSSファイルならば css_parser スタイルシートである必要があります

replace_func を使用して、name のすべてのリンクを置き換えます。replace_func は URL を受け入れ、置き換えられた URL を返す呼び出し可能である必要があります。また、実際の置換が行われた場合に True に設定される 'replaced' 属性が必要です。このような呼び出し可能オブジェクトは作成するには、LinkReplacer および LinkRebaser classes を使用すると便利です。

serialize_item(name)[ソース]

解析されたオブジェクト (正規名で識別される) をバイト文字列に変換します。parsed() も参照のこと。

set_spine(spine_items)[ソース]

スパインを spine_items に設定します。ここで、spine_itemsは (name, linear) の形式のイテラブルです。名前の中にマニフェストに存在しないものがあれば、エラーが発生します。

property spine_items

本のスパインのすべての項目のパスを生成するイテレータ。spine_iter および spine_items も参照のこと。

property spine_iter

本の背表紙のすべての項目に対してitem, name, is_linear をもたらすイテレータ。 item は lxml 要素、name は正規ファイル名、is_linear は項目が線形の場合は True です。spine_names および spine_items も参照のこと。

property spine_names

本の背表紙のすべての item に name と is_linear を生成するイテレータ。spine_iter および spine_items も参照のこと。

コンテナ内のコンポーネントファイルの管理

コンテナ内のファイルへのリンクを置き換えます。コンテナ内のすべてのファイルを反復処理し、それらの中で指定されたリンクを変更します。

パラメータ:
  • link_map -- 古い正規名から新しい正規名へのマッピング。例: {'images/old.png': 'images/new.png'}

  • frag_map -- 2 つの引数 (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 ファイルの解析エラーを修正します。修正は、HTML5 解析アルゴリズムを使用して行われます。

calibre.ebooks.oeb.polish.pretty.fix_all_html(container)[ソース]

raw で文字列として表される HTML の解析エラーを修正します。修正は、HTML5 解析アルゴリズムを使用して行われます。

calibre.ebooks.oeb.polish.pretty.pretty_html(container, name, raw)[ソース]

raw に文字列として表された HTML をきれいに印刷します

calibre.ebooks.oeb.polish.pretty.pretty_css(container, name, raw)[ソース]

raw に文字列として表された CSS をきれいに印刷します

calibre.ebooks.oeb.polish.pretty.pretty_xml(container, name, raw)[ソース]

raw に文字列として表されたXMLをきれいに印刷します。name が OPF の名前のとき、追加の OPF 固有の美化が実行されます。

calibre.ebooks.oeb.polish.pretty.pretty_all(container)[ソース]

raw に文字列として表された 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 -- //h:div[@id="split_here"] などの XPath 式である必要があります。プレビューパネルで分割を実装するために内部的に使用される 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 -- HTML ファイルなら 'text'、CSS ファイルなら 'styles' のいずれか。

  • 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 (EPUB タイトルページで SVG 表紙ラッパーを使用)

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 の場合、CSS 規則に一致しない HTML のクラス属性も削除されます。

  • 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> タグから 3 階層の目次を作成します。

本の中にあるリンクから目次を生成します。

calibre.ebooks.oeb.polish.toc.from_files(container)[ソース]

本の中にあるファイルから目次を生成します。

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

既存の NCX 目次からインライン (HTML) 目次を作成します。

パラメータ:

title -- この目次のタイトル。

書籍編集ツール

class calibre.gui2.tweak_book.plugin.Tool[ソース]

ベースクラス: object

EditBook プラグインの個々のツールの基本クラス。便利なメンバーには次のものがあります:

サブクラスでオーバーライドする必要があるメソッド:

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)[ソース]

for_toolbar に応じて、プラグインツールバーまたはプラグインメニューのいずれかに追加される QAction を作成します。例:

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 -- Trueのとき、本は変更済みとしてマークされるため、ユーザは終了時に本を保存するように求められます。

close_editor(name)[ソース]

name で指定されたファイルを編集しているエディタを閉じます

commit_all_editors_to_container()[ソース]

ユーザがエディタで開いているファイルに加えた変更をコンテナにコミットします。現在のコンテナでアクションを実行する前に、このメソッドを呼び出す必要があります

property currently_editing

現在編集中のファイルの名前を返します。編集中のファイルがない場合は None を返します。

edit_file(name, syntax=None, use_template=None)[ソース]

name で指定したファイルをエディタで開きます

パラメータ:
  • 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 のとき、diff ダイアログには、ユーザがすべての変更を元に戻すことができるボタンがつきます。

  • to_container -- 現在のコンテナを比較するコンテナオブジェクト。 None のとき、以前にチェックポイントされたコンテナが使用されます

show_editor(name)[ソース]

name で指定されたファイルを編集しているエディターを表示します

sync_preview_to_editor()[ソース]

プレビューパネルの位置を現在のエディタの現在のカーソル位置に同期します