Cấu hình
Hướng dẫn tất cả các thiết lập cấu hình có sẵn.
Giới thiệu
Cài đặt dự án được cấu hình theo mặc định bằng cách sử dụng tệp cấu hình YAML trong thư mục dự án có tên mkdocs.yml. Bạn có thể chỉ định đường dẫn khác cho nó bằng cách sử dụng tùy chọn -f/ --config-file(xem mkdocs build --help).
Ít nhất, tệp cấu hình này phải chứa site_name. Tất cả các thiết lập khác là tùy chọn.
Thông tin dự án
tên_trang_web
Đây là thiết lập bắt buộc và phải là chuỗi được sử dụng làm tiêu đề chính cho tài liệu dự án. Ví dụ:
site_name: Marshmallow Generator
Khi hiển thị chủ đề, thiết lập này sẽ được truyền dưới dạng site_namebiến ngữ cảnh.
URL trang web
Đặt URL chuẩn của trang web. Điều này sẽ thêm một linkthẻ có canonicalURL vào headphần của mỗi trang HTML. Nếu 'gốc' của trang web MkDocs sẽ nằm trong một thư mục con của một tên miền, hãy đảm bảo đưa thư mục con đó vào cài đặt ( https://example.com/foo/).
Thiết lập này cũng được sử dụng cho mkdocs serve: máy chủ sẽ được gắn vào đường dẫn lấy từ thành phần đường dẫn của URL, ví dụ some/page.mdsẽ được phục vụ từ http://127.0.0.1:8000/foo/some/page/để mô ph ỏng bố cục từ xa dự kiến.
mặc định :null
url_kho_hàng
Khi được thiết lập, sẽ cung cấp liên kết đến kho lưu trữ của bạn (GitHub, Bitbucket, GitLab, ...) trên mỗi trang.
repo_url: https://github.com/example/repository/
mặc định :null
tên kho lưu trữ
Khi được thiết lập, cung cấp tên cho liên kết đến kho lưu trữ của bạn trên mỗi trang.
mặc định : 'GitHub'hoặc nếu khớp với các miền đó, nếu không thì tên máy 'Bitbucket'chủ từ .'GitLab'``repo_url``repo_url
chỉnh sửa_uri
Đường dẫn từ cơ sở repo_urlđến thư mục docs khi xem trực tiếp một trang, tính đến các thông số cụ thể của máy chủ lưu trữ (ví dụ GitHub, Bitbucket, v.v.), nhánh và chính thư mục docs. MkDocs nối repo_url và edit_uri, và thêm đường dẫn đầu vào của trang.
Khi được thiết lập và nếu chủ đề của bạn hỗ trợ, sẽ cung cấp liên kết trực tiếp đến trang trong kho lưu trữ nguồn của bạn. Điều này giúp bạn dễ dàng tìm và chỉnh sửa nguồn cho trang. Nếu repo_urlkhông được thiết lập, tùy chọn này sẽ bị bỏ qua. Trên một số chủ đề, việc thiết lập tùy chọn này có thể khiến liên kết chỉnh sửa được sử dụng thay cho liên kết kho lưu trữ. Các chủ đề khác có thể hiển thị cả hai liên kết.
Hỗ trợ các edit_uriký tự truy vấn ('?') và phân đoạn ('#'). Đối với các máy chủ lưu trữ sử dụng truy vấn hoặc phân đoạn để truy cập các tệp, edit_uricó thể được đặt như sau. (Lưu ý ?và #trong URI...)
# Query string example edit_uri: '?query=root/path/docs/'
# Hash fragment example edit_uri: '#root/path/docs/'
Đối với các máy chủ lưu trữ khác, chỉ cần chỉ định đường dẫn tương đối đến thư mục docs.
# Query string example edit_uri: root/path/docs/
Ví dụ, có cấu hình này:
repo_url: https://example.com/project/repo edit_uri: blob/main/docs/
có nghĩa là một trang có tên 'foo/bar.md' sẽ có liên kết chỉnh sửa dẫn đến:
https://example.com/project/repo/blob/main/docs/foo/bar.md
edit_urithực tế có thể chỉ là một URL tuyệt đối, không nhất thiết phải tương đối với repo_url, do đó điều này có thể đạt được kết quả tương tự:
edit_uri: https://example.com/project/repo/blob/main/docs/
Để linh hoạt hơn, hãy xem edit_uri_template bên dưới.
Ghi chú
Trên một số máy chủ đã biết (cụ thể là GitHub, Bitbucket và GitLab), the edit_uriđược lấy từ 'repo_url' và không cần phải thiết lập thủ công. Chỉ cần xác định a repo_urlsẽ tự động điền vào edit_uricài đặt cấu hình.
Ví dụ, đối với kho lưu trữ được lưu trữ trên GitHub hoặc GitLab, edit_uri sẽ tự động được đặt thành edit/master/docs/(Lưu ý editđường dẫn và masternhánh).
Đối với kho lưu trữ do Bitbucket lưu trữ, giá trị tương đương edit_urisẽ tự động được đặt thành src/default/docs/(lưu ý srcđường dẫn và default nhánh).
Để sử dụng URI khác với URI mặc định (ví dụ: nhánh khác), chỉ cần đặt edit_urithành chuỗi mong muốn của bạn. Nếu bạn không muốn bất kỳ "liên kết chỉnh sửa URL" nào được hiển thị trên các trang của mình, hãy đặt edit_urithành chuỗi trống để tắt cài đặt tự động.
Cảnh báo
Trên GitHub và GitLab, đường dẫn "edit" mặc định ( edit/master/docs/) mở trang trong trình chỉnh sửa trực tuyến. Chức năng này yêu cầu người dùng phải có và đã đăng nhập vào tài khoản GitHub/GitLab. Nếu không, người dùng sẽ được chuyển hướng đến trang đăng nhập/đăng ký. Ngoài ra, hãy sử dụng đường dẫn "blob" ( blob/master/docs/) để mở chế độ xem chỉ đọc, hỗ trợ truy cập ẩn danh.
mặc định : edit/master/docs/cho kho lưu trữ GitHub và GitLab hoặc src/default/docs/cho kho lưu trữ Bitbucket, nếu repo_urlkhớp với các tên miền đó, nếu khôngnull
sửa_mẫu_uri
Biến thể linh hoạt hơn của edit_uri . Hai biến thể này tương đương nhau:
edit_uri: 'blob/main/docs/' edit_uri_template: 'blob/main/docs/{path}'
(chúng cũng loại trừ lẫn nhau -- đừng chỉ rõ cả hai).
Bắt đầu từ đây, bạn có thể thay đổi vị trí hoặc định dạng của đường dẫn, trong trường hợp cách thêm đường dẫn mặc định không đủ.
Nội dung của edit_uri_templatelà các chuỗi định dạng Python thông thường , chỉ có các trường sau đây khả dụng:
{path}, ví dụfoo/bar.md{path_noext}, ví dụfoo/bar
Và cờ chuyển đổi !qcó sẵn để mã hóa phần trăm trường:
{path!q}, ví dụfoo%2Fbar.md
Cấu hình hữu ích được đề xuất:
-
GitHub Wiki:
(ví dụhttps://github.com/project/repo/wiki/foo/bar/_edit)repo_url: 'https://github.com/project/repo/wiki' edit_uri_template: '{path_noext}/_edit' -
Trình soạn thảo BitBucket:
(ví dụhttps://bitbucket.org/project/repo/src/master/docs/foo/bar.md?mode=edit)repo_url: 'https://bitbucket.org/project/repo/' edit_uri_template: 'src/master/docs/{path}?mode=edit' -
Trình chỉnh sửa trang web tĩnh GitLab:
(ví dụhttps://gitlab.com/project/repo/-/sse/master/docs%2Ffoo%2bar.md)repo_url: 'https://gitlab.com/project/repo' edit_uri_template: '-/sse/master/docs%2F{path!q}' -
GitLab Web IDE:
(ví dụhttps://gitlab.com/-/ide/project/repo/edit/master/-/docs/foo/bar.md)edit_uri_template: 'https://gitlab.com/-/ide/project/repo/edit/master/-/docs/{path}'
mặc định :null
mô tả trang web
Đặt mô tả trang web. Thao tác này sẽ thêm thẻ meta vào tiêu đề HTML đã tạo.
mặc định :null
Đặt tên tác giả. Thao tác này sẽ thêm thẻ meta vào tiêu đề HTML đã tạo.
mặc định :null
bản quyền
Thiết lập thông tin bản quyền sẽ được đưa vào tài liệu theo chủ đề.
mặc định :null
nhánh_từ_xa
Đặt nhánh từ xa để cam kết khi sử dụng gh-deployđể triển khai tới GitHub Pages. Tùy chọn này có thể được ghi đè bằng tùy chọn dòng lệnh trong gh-deploy.
mặc định :gh-pages
tên_từ_xa
Đặt tên từ xa để đẩy tới khi sử dụng gh-deployđể triển khai tới GitHub Pages. Tùy chọn này có thể được ghi đè bằng tùy chọn dòng lệnh trong gh-deploy.
mặc định :origin
Bố cục tài liệu
dẫn đường
Thiết lập này được sử dụng để xác định định dạng và bố cục của điều hướng toàn cầu cho trang web. Cấu hình điều hướng tối thiểu có thể trông như thế này:
nav: - 'index.md' - 'about.md'
Tất cả các đường dẫn trong cấu hình điều hướng phải liên quan đến docs_dirtùy chọn cấu hình. Xem phần về cấu hình trang và điều hướng để biết thông tin chi tiết hơn, bao gồm cách tạo các phần phụ.
Các mục điều hướng cũng có thể bao gồm các liên kết đến các trang web bên ngoài. Trong khi tiêu đề là tùy chọn cho các liên kết nội bộ, chúng là bắt buộc đối với các liên kết bên ngoài. Một liên kết bên ngoài có thể là một URL đầy đủ hoặc một URL tương đối. Bất kỳ đường dẫn nào không tìm thấy trong các tệp đều được coi là một liên kết bên ngoài. Xem phần về Siêu dữ liệu về cách MkDocs xác định tiêu đề trang của một tài liệu.
nav: - Introduction: 'index.md' - 'about.md' - 'Issue Tracker': 'https://example.com/'
Trong ví dụ trên, hai mục đầu tiên trỏ đến các tệp cục bộ trong khi mục thứ ba trỏ đến một trang web bên ngoài.
Tuy nhiên, đôi khi trang web MkDocs được lưu trữ trong một thư mục con của trang web dự án và bạn có thể muốn liên kết đến các phần khác của cùng một trang web mà không bao gồm tên miền đầy đủ. Trong trường hợp đó, bạn có thể sử dụng URL tương đối phù hợp.
site_url: https://example.com/foo/ nav: - Home: '../' - 'User Guide': 'user-guide.md' - 'Bug Tracker': '/bugs/'
Trong ví dụ trên, hai kiểu liên kết ngoài khác nhau được sử dụng. Đầu tiên, lưu ý rằng the site_urlchỉ ra rằng trang web MkDocs được lưu trữ trong /foo/ thư mục con của tên miền. Do đó, Homemục điều hướng là một liên kết tương đối bước lên một cấp đến gốc máy chủ và thực sự trỏ đến https://example.com/. Bug TrackerMục này sử dụng đường dẫn tuyệt đối từ gốc máy chủ và thực sự trỏ đến https://example.com/bugs/. Tất nhiên, the User Guidetrỏ đến một trang MkDocs cục bộ.
mặc định : Theo mặc định navsẽ chứa danh sách lồng nhau được sắp xếp theo thứ tự chữ và số của tất cả các tệp Markdown được tìm thấy trong docs_dirvà các thư mục con của nó. Các tệp chỉ mục sẽ luôn được liệt kê đầu tiên trong một phần phụ.
loại trừ_tài_liệu
Mới trong phiên bản 1.5
Đã thay đổi trong phiên bản 1.6:
Cấu hình này không còn áp dụng chức năng "bản nháp" cho mkdocs serve. Nếu bạn có tài liệu bản nháp mà bạn muốn có trong "serve" chứ không phải "build", hãy thay thế exclude_docsbằng draft_docstùy chọn cấu hình mới.
Cấu hình này xác định các mẫu tệp (bên dưới docs_dir) sẽ không được đưa vào trang web đã xây dựng.
Ví dụ:
exclude_docs: | api-config.json # A file with this name anywhere. /requirements.txt # Top-level "docs/requirements.txt". *.py # Any file with this extension anywhere. !/foo/example.py # But keep this particular file.
Điều này tuân theo định dạng mẫu .gitignore .
Các giá trị mặc định sau đây luôn được thêm ngầm định vào trước - để loại trừ các tệp chấm (và thư mục) cũng như templatesthư mục cấp cao nhất:
exclude_docs: | .* /templates/
Vì vậy, để thực sự bắt đầu cấu hình này một cách mới mẻ, trước tiên bạn cần phải chỉ định phiên bản phủ định của các mục nhập này.
Nếu không, bạn có thể chỉ chọn một số tệp dấu chấm nhất định trở lại trang web:
exclude_docs: | !.assets # Don't exclude '.assets' although all other '.*' are excluded
bản nháp_tài_liệu
Mới trong phiên bản 1.6
Cấu hình này định nghĩa các mẫu tệp (bên dưới docs_dir) được coi là bản nháp. Các tệp nháp có sẵn trong quá trình này mkdocs servevà bao gồm dấu "DRAFT" nhưng sẽ không được bao gồm trong bản dựng. Để ngăn chặn hiệu ứng này và làm cho "serve" hoạt động giống như "build", bạn có thể chạy mkdocs serve --clean.
Ví dụ:
draft_docs: | drafts/ # A "drafts" directory anywhere. _unpublished.md # A md file ending in _unpublished.md !/foo_unpublished.md # But keep this particular file.
Điều này tuân theo định dạng mẫu .gitignore .
không_trong_điều_hướng
Mới trong phiên bản 1.5
Mới trong phiên bản 1.6:
Nếu navcấu hình không được chỉ định, các trang được chỉ định trong cấu hình này sẽ bị loại khỏi điều hướng suy ra.
Nếu bạn muốn đưa một số tài liệu vào trang web nhưng cố tình loại trừ chúng khỏi phần điều hướng, thông thường MkDocs sẽ cảnh báo về điều này.
Việc thêm các mẫu tệp như vậy (liên quan đến docs_dir) vào not_in_navcấu hình sẽ ngăn chặn các cảnh báo như vậy.
Ví dụ:
nav: - Foo: foo.md - Bar: bar.md not_in_nav: | /private.md
Giống như tùy chọn trước, tùy chọn này tuân theo định dạng mẫu .gitignore.
Ghi chú
Việc thêm một tập tin nhất định vào exclude_docssẽ có mức độ ưu tiên hơn và ngụ ý not_in_nav.
xác thực
Mới trong phiên bản 1.5
Cấu hình mức độ nghiêm ngặt của thông báo chẩn đoán của MkDocs khi xác thực liên kết tới tài liệu.
Đây là một cây cấu hình, và đối với mỗi cấu hình, giá trị có thể là một trong ba giá trị sau: warn, info, ignore. Điều này khiến thông báo ghi nhật ký có mức độ nghiêm trọng tương ứng được tạo ra. warnTất nhiên, mức này được dùng để sử dụng với mkdocs build --strict(nơi nó trở thành lỗi), mà bạn có thể sử dụng trong quá trình thử nghiệm liên tục.
Cấu hình này validation.links.absolute_linkscũng có giá trị đặc biệt relative_to_docsđể xác thực các liên kết tuyệt đối .
Mặc định của cấu hình này kể từ MkDocs 1.6:
validation: nav: omitted_files: info not_found: warn absolute_links: info links: not_found: warn anchors: info absolute_links: info unrecognized_links: info
(Lưu ý: bạn không nên sao chép toàn bộ ví dụ này vì nó chỉ sao chép các giá trị mặc định. Chỉ nên thiết lập các mục riêng lẻ có sự khác biệt.)
Mặc định của một số hành vi đã khác so với MkDocs 1.4 trở về trước - chúng đã bị bỏ qua trước đó.
Cấu hình MkDocs 1.6 để hoạt động giống như MkDocs 1.4 trở về trước (giảm tính nghiêm ngặt):
validation: absolute_links: ignore unrecognized_links: ignore anchors: ignore
Cài đặt được đề xuất cho hầu hết các trang web (mức độ nghiêm ngặt tối đa):
validation: omitted_files: warn absolute_links: warn # Or 'relative_to_docs' - new in MkDocs 1.6 unrecognized_links: warn anchors: warn # New in MkDocs 1.6
Lưu ý cách chúng ta bỏ qua các phím 'nav' và 'links' trong các ví dụ trên. Ở đây absolute_links:có nghĩa là thiết lập cả hai nav: absolute_links:và links: absolute_links:.
Danh sách đầy đủ các giá trị và ví dụ về thông báo nhật ký mà họ có thể ẩn hoặc làm nổi bật hơn:
-
validation.nav.omitted_files-
Các trang sau đây có trong thư mục docs nhưng không được bao gồm trong cấu hình "nav": ...
-
-
validation.nav.not_found-
Tham chiếu đến 'foo/bar.md' được bao gồm trong cấu hình 'nav', không có trong các tệp tài liệu.
-
Tham chiếu đến 'foo/bar.md' được bao gồm trong cấu hình 'nav', nhưng tệp này bị loại trừ khỏi trang web đã xây dựng.
-
-
validation.nav.absolute_links-
Đường dẫn tuyệt đối tới '/foo/bar.html' được bao gồm trong cấu hình 'nav', có lẽ trỏ tới một tài nguyên bên ngoài.
-
-
validation.links.not_found-
Tệp tài liệu 'example.md' chứa liên kết '../foo/bar.md', nhưng không tìm thấy mục tiêu trong số các tệp tài liệu.
-
Tệp tài liệu 'example.md' chứa liên kết đến 'foo/bar.md' bị loại trừ khỏi trang web đã xây dựng.
-
-
validation.links.anchors-
Tệp tài liệu 'example.md' chứa liên kết '../foo/bar.md#some-heading', nhưng tài liệu 'foo/bar.md' không chứa liên kết '#some-heading'.
-
Tệp tài liệu 'example.md' chứa liên kết '#some-heading', nhưng không có liên kết nào như vậy trên trang này.
-
-
validation.links.absolute_links-
Tệp tài liệu 'example.md' chứa liên kết tuyệt đối '/foo/bar.html', nó được giữ nguyên. Ý bạn là 'foo/bar.md' phải không?
-
-
validation.links.unrecognized_links-
Tệp tài liệu 'example.md' chứa liên kết tương đối không xác định '../foo/bar/', nó được giữ nguyên. Ý bạn là 'foo/bar.md' phải không?
-
Tệp tài liệu 'example.md' chứa liên kết tương đối không xác định 'mail@example.com', nó được giữ nguyên. Ý bạn là 'mailto:mail@example.com' phải không?
-
Xác thực các liên kết tuyệt đối
Mới trong phiên bản 1.6
Theo truyền thống, trong Markdown, MkDocs chỉ nhận dạng các liên kết tương đối dẫn đến một
*.mdtài liệu vật lý khác (hoặc tệp phương tiện). Đây là một quy ước tốt để tuân theo vì sau đó các trang nguồn cũng có thể duyệt t ự do mà không cần MkDocs, ví dụ như trên GitHub. Trong khi các liên kết tuyệt đối không được sửa đổi (khiến chúng thường không hoạt động như mong đợi) hoặc gần đây hơn là được cảnh báo. Nếu bạn không thích phải luôn sử dụng các liên kết tương đối, giờ đây bạn có thể chọn liên kết tuyệt đối và để chúng hoạt động chính xác.
Nếu bạn đặt cài đặt validation.links.absolute_linksthành giá trị mới relative_to_docs, tất cả các liên kết Markdown bắt đầu bằng /sẽ được hiểu là tương đối với docs_dirgốc. Sau đó, các liên kết sẽ được xác thực về tính chính xác theo tất cả các quy tắc khác đã hoạt động đối với các liên kết tương đối trong các phiên bản trước của MkDocs. Đối với đầu ra HTML, các liên kết này vẫn sẽ được chuyển thành tương đối để trang web vẫn hoạt động đáng tin cậy.
Vì vậy, bây giờ bất kỳ tài liệu nào (ví dụ "dir1/foo.md") đều có thể liên kết đến tài liệu "dir2/bar.md" dưới dạng [link](/dir2/bar.md), ngoài cách duy nhất đúng trước đây [link](../dir2/bar.md).
Tuy nhiên, bạn phải bật cài đặt. Mặc định vẫn là bỏ qua liên kết.
Cài đặt để nhận dạng liên kết tuyệt đối và xác thực chúng:
validation: links: absolute_links: relative_to_docs anchors: warn unrecognized_links: warn