pyssg đang trong giai đoạn phát triển (chưa 1.0) - API, cấu hình và theme có thể thay đổi.
Sinh API reference

2 phút đọc

Sinh API reference

Mục tiêu: xuất bản một mục References được dựng tự động từ docstring của một gói Python - chính là mục bạn thấy trong thanh bên của trang này.

Việc này được làm bằng plugin contrib apidoc (pyssg.contrib.apidoc). Các plugin contrib không được tự động re-export vào pyssg.plugins; hãy import chúng từ module của chúng.

Cách hoạt động

apidoc đọc gói của bạn tĩnh bằng module ast - mã của bạn không bao giờ bị import hay thực thi. Với mỗi module, nó biến docstring thành một tài liệu Markdown ảo và đưa qua pipeline thông thường (markdown -> permalink -> nav -> render). Vì các trang được sinh có chung tiền tố URL (mặc định /references/), plugin nav tự động gom chúng vào một mục References duy nhất.

Docstring viết theo phong cách Google, NumPy hoặc reStructuredText được phân tích thành các bảng tham số / giá trị trả về / ngoại lệ có cấu trúc; mọi đoạn văn khác được giữ nguyên văn. Không có gì bị ghi ngược lại vào thư mục content/.

1. Thêm plugin

from __future__ import annotations

from pyssg.contrib.apidoc import apidoc
from pyssg.presets import docs

config = docs(
    site={"title": "My Docs"},
    base_url="https://example.com",
    extra_plugins=[
        apidoc(package="../mypackage", route="/references/"),
    ],
)

package được phân giải so với thư mục trang: nếu trang của bạn nằm ở docs/ và gói ở mypackage/ tại gốc kho mã, hãy dùng "../mypackage". Đường dẫn tuyệt đối cũng được. Bạn cũng có thể trỏ tới một file .py đơn lẻ.

2. Tùy chọn

Tùy chọn Mặc định Ý nghĩa
package (bắt buộc) Thư mục gói hoặc file module đơn lẻ (tương đối so với gốc trang, hoặc tuyệt đối).
route "/references/" Tiền tố URL cho các trang được sinh.
include_private False Bao gồm các thành viên và module dạng _name.
include_dunder False Bao gồm các thành viên __dunder__ (__init__ luôn được hiển thị).

3. Build

pyssg --site docs build

Các trang reference xuất hiện dưới route bạn chọn, mỗi module một trang, sắp theo tên dotted, và được gom vào mục References của thanh bên.

Lưu ý về build tăng tiến

Các tài liệu ảo được tạo một lần mỗi phiên build (trong hook make). Một lần build đầy đủ - và mỗi lần khởi động serve - phản ánh trạng thái hiện tại của các file .py. Việc hot-reload trực tiếp khi một file .py thay đổi giữa lúc serve được cố ý để ngoài phạm vi: hãy khởi động lại serve hoặc chạy build để cập nhật thay đổi trong mã.

Chính trang này

Trang bạn đang đọc được sinh đúng bằng thiết lập này. Xem docs/pyssg.config.py - nó thêm apidoc(package="../pyssg", route="/references/") lên trên preset docs, và đó chính là thứ tạo ra mục References trong thanh bên.