Builder API

class sphinx.builders.Builder[ソース]

これはすべてのビルダーの基本クラスです。

これは以下の基本的なワークフローに従います

// UML for the standard Sphinx build workflow

digraph build {
    graph [
        rankdir=LR
    ];
    node [
        shape=rect
        style=rounded
    ];

    "Sphinx" [
        shape=record
        label = "Sphinx | <init> __init__ | <build> build"
    ];
    "Sphinx":init -> "Builder.init";
    "Sphinx":build -> "Builder.build_all";
    "Sphinx":build -> "Builder.build_specific";
    "Builder.build_update" [
        shape=record
        label = "<p1> Builder.build_update | Builder.get_outdated_docs"
    ];
    "Sphinx":build -> "Builder.build_update":p1 ;

    "Builder.build_all" -> "Builder.build";
    "Builder.build_specific" -> "Builder.build";
    "Builder.build_update":p1 -> "Builder.build";

    "Builder.build" -> "Builder.read";
    "Builder.write" [
        shape=record
        label = "<p1> Builder.write | Builder._write_serial | Builder._write_parallel"
    ];
    "Builder.build" -> "Builder.write";
    "Builder.build" -> "Builder.finish";

    "Builder.read" -> "Builder.read_doc";
    "Builder.read_doc" -> "Builder.write_doctree";

    "Builder.write":p1 -> "Builder.prepare_writing";
    "Builder.write":p1 -> "Builder.copy_assets";
    "Builder.write":p1 -> "Builder.write_doc";

    "Builder.write_doc" -> "Builder.get_relative_uri";

    "Builder.get_relative_uri" -> "Builder.get_target_uri";
}

標準の Sphinx ビルドワークフローの UML

オーバーライド可能な属性

これらの属性は、ビルダーサブクラスで設定する必要があります

name = ''

-b コマンドラインオプション用のビルダーの名前。

format = ''

ビルダーの出力形式。ドキュメント出力が生成されない場合は ''。

epilog = ''

ビルドの完了時に出力されるメッセージ。これは、次のキーを持つ printf スタイルのテンプレート文字列です: outdir, project

allow_parallel = False

write_doc() 呼び出しの並列化を許可します

supported_image_types: list[str] = []

ビルダーがサポートする画像形式の MIME タイプのリスト。画像ファイルは、ここに表示される順序で検索されます。

supported_remote_images = False

ビルダーは、開いたときに外部画像をフェッチする可能性のある出力ドキュメントを生成できます。

supported_data_uri_images = False

ビルダーによって生成されるファイル形式では、data-URI を使用して画像を埋め込むことができます。

default_translator_class: type[nodes.NodeVisitor]

ビルダーのデフォルトのトランスレータクラス。これは set_translator() でオーバーライドできます。

コアメソッド

これらのメソッドは事前定義されており、通常はビルドプロセスのコアを形成するため、オーバーライドしないでください

final build_all() None[ソース]

すべてのソースファイルをビルドします。

final build_specific(filenames: list[str]) None[ソース]

filenames の変更に必要な分だけを再構築します。

final build_update() None[ソース]

前回のビルド以降に変更または追加されたものだけを再構築します。

final build(docnames: Iterable[str] | None, summary: str | None = None, method: Literal['all', 'specific', 'update'] = 'update') None[ソース]

メインのビルドメソッド。通常は、特定の build_* メソッドによって呼び出されます。

最初に環境を更新し、次に write() を呼び出します。

final read() list[str][ソース]

前回の更新以降に新規または変更されたすべてのファイルを(再)読み込みます。

すべての環境ドキュメント名を正規形式で格納します(つまり、os.path.sep の代わりに SEP を区切り文字として使用します)。

final read_doc(docname: str, *, _cache: bool = True) None[ソース]

ファイルをパースし、ドキュメントツリーのインベントリエントリを追加/更新します。

final write_doctree(docname: str, doctree: document, *, _cache: bool = True) None[ソース]

ドキュメントツリーをファイルに書き込み、再ビルド時のキャッシュとして使用します。

オーバーライド可能なメソッド

これらはビルダーのサブクラスで実装する必要があります

get_outdated_docs() str | Iterable[str][ソース]

古くなっている出力ファイルのイテラブル、または更新ビルドがビルドするものを記述する文字列を返します。

ビルダーがソースファイルに対応する個々のファイルを出力しない場合は、ここに文字列を返します。出力する場合は、書き込む必要のあるそれらのファイルのイテラブルを返します。

prepare_writing(docnames: set[str]) None[ソース]

write_doc() が実行される前にロジックを追加できる場所

write_doc(docname: str, doctree: document) None[ソース]

実際にファイルシステムに何かを書き込む場所。

get_target_uri(docname: str, typ: str | None = None) str[ソース]

ドキュメント名のターゲットURIを返します。

typ は、個々のビルダーのリンク特性を修飾するために使用できます。

これらのメソッドはビルダーのサブクラスでオーバーライドできます

init() None[ソース]

必要なテンプレートをロードし、初期化を実行します。デフォルトの実装では何も行いません。

write(build_docnames: Iterable[str] | None, updated_docnames: Sequence[str], method: Literal['all', 'specific', 'update'] = 'update') None[ソース]

ビルダー固有の出力ファイルを書き込みます。

copy_assets() None[ソース]

アセット(画像、静的ファイルなど)が書き込み前にコピーされる場所

get_relative_uri(from_: str, to: str, typ: str | None = None) str[ソース]

2つのソースファイル名間の相対URIを返します。

適切なURIを返す方法がない場合、environment.NoUri を発生させる可能性があります。

finish() None[ソース]

ビルドプロセスを終了します。

デフォルトの実装では何も行いません。

属性

ビルダーインスタンスから呼び出し可能な属性

events

EventManagerオブジェクト。