API 參考
注意事項
進入 API 的主要管道是透過外掛程式接收的 事件。這些事件的說明會連結回此頁面。
mkdocs.structure.files.Files
檔案物件的集合。
src_paths: dict[str, File]
屬性
逐漸停止使用,建議採用 src_uris
。
__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_dir
和 dest_path
取得),其中 dest_dir
被理解為 *站台* 目錄。
content_bytes
/content_string
(在 MkDocs 1.6 中的新功能)總是可以被用於取得檔案的內容。但它可能會受兩個來源之一的支援
-
位於
abs_src_path
的實體來源檔案(預設透過合併src_dir
和src_uri
取得)。src_dir
被理解為 *文件* 目錄。接著
content_bytes
/content_string
將讀取位於abs_src_path
的檔案。對於實際檔案,應該 填入
src_dir
,而對於產生的檔案,則留空(None
)。 -
自 MkDocs 1.6 開始,檔案也可以選擇儲存在記憶體中 -
content_string
/content_bytes
。因此
src_dir
和abs_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 處理。