API 參考

注意事項

進入 API 的主要管道是透過外掛程式接收的 事件。這些事件的說明會連結回此頁面。

mkdocs.structure.files.Files

檔案物件的集合。

src_paths: dict[str, File] 屬性

逐漸停止使用,建議採用 src_uris

src_uris: Mapping[str, File] 屬性

包含所有檔案的對應,其鍵為 src_uri

__iter__() -> Iterator[File]

迭代其中的檔案。

__len__() -> int

裡面的檔案數。

__contains__(path: str) -> bool

逐漸停止使用,建議採用 get_file_from_path(path) is not None

get_file_from_path(path: str) -> File | None

傳回檔案 URI 等於 path 的檔案實體。

append(file: File) -> None

將檔案加入檔案集合中。

remove(file: File) -> None

從檔案集合中移除檔案。

copy_static_files(dirty: bool = False, *, inclusion: Callable[[InclusionLevel], bool] = InclusionLevel.is_included) -> None

將靜態檔案從來源複製到目的地。

documentation_pages(*, inclusion: Callable[[InclusionLevel], bool] = InclusionLevel.is_included) -> Sequence[File]

傳回所有 Markdown 頁面檔案物件的 iterable。

static_pages() -> Sequence[File]

傳回所有靜態頁面檔案物件的 iterable。

media_files() -> Sequence[File]

傳回所有不是文件或靜態頁面的檔案物件的 iterable。

javascript_files() -> Sequence[File]

傳回所有 javascript 檔案物件的 iterable。

css_files() -> 序列[檔案]

傳回所有 CSS 檔案物件的可迭代物件。

add_files_from_theme(env: jinja2.Environment, config: MkDocsConfig) -> 無

從 Jinja 環境中擷取靜態檔案並新增至集合。

mkdocs.structure.files.File

MkDocs 檔案物件。

它表述一個檔案的內容應該如何填入目標網站。

檔案總是有其 abs_dest_path(透過合併 dest_dirdest_path 取得),其中 dest_dir 被理解為 *站台* 目錄。

content_bytes/content_string(在 MkDocs 1.6 中的新功能)總是可以被用於取得檔案的內容。但它可能會受兩個來源之一的支援

  • 位於 abs_src_path 的實體來源檔案(預設透過合併 src_dirsrc_uri 取得)。src_dir 被理解為 *文件* 目錄。

    接著 content_bytes/content_string 將讀取位於 abs_src_path 的檔案。

    對於實際檔案,應該 填入 src_dir,而對於產生的檔案,則留空(None)。

  • 自 MkDocs 1.6 開始,檔案也可以選擇儲存在記憶體中 - content_string/content_bytes

    因此 src_dirabs_src_path 將維持為 None。透過建構函式中的 content 參數,需要寫入或填入 content_bytes/content_string

    但是對於這些檔案,src_uri 仍然被填入!這個虛擬檔案假裝它起源於 document 目錄中的路徑,而其他值則依據 use_directory_urls 衍生。

對於靜態檔案,檔案只要複製到目標,而 dest_uri 等於 src_uri

對於 Markdown 檔案(由 src_uri 中的副檔名判斷),目標內容將是顯示的內容,而 dest_uri 將擁有 .html 副檔名以及某些額外的路徑轉換,依據 use_directory_urls

src_uri: str 實例屬性

來源檔案相對於來源目錄的純路徑(總是分隔符號為「/」)。

generated_by: str | None = None 類別屬性 實例屬性

如果非 None,表示外掛程式在空中產生此檔案。

該值是外掛程式的進入點名稱,可用來透過 PluginCollection 中的 key 找到該外掛程式。

dest_path: str 屬性 可寫入

dest_uri 相同(並與其同步),但 Windows 會使用反斜線。不鼓勵這樣做。

src_path: str = path 實例屬性 屬性 可寫入

src_uri 相同(並與其同步),但 Windows 會使用反斜線。不鼓勵這樣做。

src_dir: str | None = src_dir 實例屬性

原始檔案產生的頂層目錄之作業系統路徑。

假設為docs_dir;不會對產生的檔案設定。

dest_dir: str = dest_dir instance-attribute

檔案應該複製到的目的目錄(頂層 site_dir)的作業系統路徑。

use_directory_urls: bool = use_directory_urls instance-attribute

是否應該使用目錄 URL「foo/」或「foo.html」為準。

如果為 False,會將一個 Markdown 檔案對應到同名的 HTML 檔案(檔案副檔名會變更為 .html)。如果為 True,會將一個 Markdown 檔案對應到一個 HTML 目錄檔案(index.html),並在 path 中使用檔案的「名稱」對該目錄層層嵌套。非 Markdown 檔案會保留其原始路徑。

inclusion: InclusionLevel = inclusion class-attribute instance-attribute

檔案是否會從建置好的網站中排除。

name = cached_property(_get_stem) class-attribute instance-attribute

傳回沒有副檔名的檔案名稱。

dest_uri = cached_property(_get_dest_path) class-attribute instance-attribute

目的檔案相對應目的目錄的純粹路徑(永遠以 '/' 分隔)。

url = cached_property(_get_url) class-attribute instance-attribute

目的檔案相對於目的目錄的 URI,以字串表示。

abs_src_path: str | None cached property

原始檔案的絕對具體路徑。將在 Windows 上使用反斜線。

注意:不要使用此路徑來讀取檔案,優先採用 content_bytes/content_string

abs_dest_path: str cached property

目的檔案的絕對具體路徑。將在 Windows 上使用反斜線。

content_bytes: bytes property writable

以位元組字串取得此檔案的內容。

如果無法讀取由真實檔案(abs_src_path)支援的檔案,可能會引發錯誤。

作為設定項時,它定義了檔案的內容,而 abs_src_path 會變成未設定。

content_string: str 屬性 可寫

以字串形式取得這個檔案的內容。假設 UTF-8 編碼,可能會引發例外。

如果由實際檔案 (abs_src_path) 所支援,而無法讀取時,也可能引發例外。

作為設定項時,它定義了檔案的內容,而 abs_src_path 會變成未設定。

generated(config: MkDocsConfig, src_uri: str, *, content: str | bytes | None = None, abs_src_path: str | None = None, inclusion: InclusionLevel = InclusionLevel.UNDEFINED) -> File 類別方法

建立一個虛擬檔案,由 in-memory content 或位於 abs_src_path 的檔案所支援。

它會假裝在 src_uri 的文件目錄中。

edit_uri() -> str | None

用於「編輯」按鈕的相對於原始存放庫的路徑。

預設為 src_uri,可以改寫。對於產生檔案,應該將其設定為 None

url_relative_to(other: File | str) -> str

傳回相對於其他檔案的檔案網址。

copy_file(dirty: bool = False) -> None

將來源檔案複製到目的地,確保父目錄存在。

is_documentation_page() -> bool

如果檔案是 Markdown 頁面,傳回 True。

is_static_page() -> bool

如果檔案是靜態頁面 (HTML、XML、JSON),傳回 True。

is_media_file() -> bool

如果檔案不是文件或靜態頁面,傳回 True。

is_javascript() -> bool

如果檔案是 JavaScript 檔案,傳回 True。

is_css() -> bool

如果檔案是 CSS 檔案,傳回 True。

mkdocs.config.base.Config

基底:UserDict

MkDocs 設定檔、外掛程式設定檔 (和子設定檔) 物件的基底類別。

它應該被子類化,並將 ConfigOption 定義為屬性。例如,請參閱 mkdocs/contrib/search/init.py 和 mkdocs/config/defaults.py。

MkDocs 1.4 以前的行為現在由 LegacyConfig 處理。

__new__(*args, **kwargs) -> Config

相容性:允許將 LegacyConfig(...) 建構函式參照為 Config(...)

set_defaults() -> None

透過每個驗證單元並取得預設值(如果有的話)來設定基本組態。

load_dict(patch: dict) -> None

從字典載入組態選項。

load_file(config_file: IO) -> None

從 YAML 檔案的開啟檔案描述詞中載入組態選項。

mkdocs.utils.templates.TemplateContext

基礎:TypedDict

nav: Navigation 實例屬性

pages: Sequence[File] 實例屬性

base_url: str 實例屬性

extra_css: Sequence[str] 實例屬性

extra_javascript: Sequence[str] 實例屬性

mkdocs_version: str 實例屬性

build_date_utc: datetime.datetime 實例屬性

config: MkDocsConfig 實例屬性

page: Page | None 實例屬性

mkdocs.livereload.LiveReloadServer

基礎:ThreadingMixInWSGIServer

watch(path: str, func: None = None, *, recursive: bool = True) -> None

將「路徑」新增到所監控的路徑,呼叫函數,當其下的任何檔案變更時,重新載入。

unwatch(path: str) -> None

停止監控路徑的檔案變更。如果沒有對應的 watch 呼叫,則會引發異常。