Cách chạy Knowledge Publisher — công cụ biến tài liệu Markdown canonical thành trang Academy có thể xuất bản.
Thực thi KNOWLEDGE-PUBLISHING-SPEC.md v1.0. Chỉ là công cụ xuất bản — không phải Academy, không backend, không UI, không CMS.
Phiên bản: 1.0.0 · Ngày: 2026-07-06.
scripts/publish-knowledge.mjs đọc một tài liệu Markdown canonical và sinh ra:
## → một card (một tài liệu ⇒ nhiều lesson).~/bng-booking-demo).# Mặc định (không cần chỉnh sửa gì) — xuất ra examples/published/<slug>/
node scripts/publish-knowledge.mjs docs/commercial/WHITE-LABEL-COMMERCIAL-PACKAGE.md
# Tuỳ chọn ghi đè metadata + thư mục ra:
node scripts/publish-knowledge.mjs docs/commercial/PILOT-PACKAGE.md \
--audience Customer --status Approved --out examples/published
Xuất bản cả bộ Commercial Release v1.0:
for f in docs/commercial/WHITE-LABEL-COMMERCIAL-PACKAGE.md \
docs/commercial/PRICING-STRATEGY.md \
docs/commercial/DISCOVERY-PLAYBOOK.md \
docs/commercial/PILOT-PACKAGE.md \
docs/commercial/COMMERCIAL-PROPOSAL.md; do
node scripts/publish-knowledge.mjs "$f"
done
Mỗi lần chạy tạo examples/published/<slug>/:
| Tệp | Nội dung |
|---|---|
<slug>.html | Trang HTML (breadcrumb + panel metadata + nội dung render + footer nguồn) |
<slug>.meta.json | lesson (metadata) + breadcrumb + navigation + cards[] |
Panel metadata + thẻ <meta name="knowledge:*"> trên mỗi trang gồm 6 trường:
| Trường | Nguồn giá trị |
|---|---|
| Source version | Trích từ tài liệu (Phiên bản: X.Y.Z); fallback dòng Change Log mới nhất |
| Owner | Suy theo thư mục (khớp knowledge-index/05-DOCUMENT-OWNERS); ghi đè --owner |
| Audience | Suy dẫn theo thứ tự: --audience (ghi đè) → token Audience: khai trong doc (nếu có) → cấu hình xuất bản theo path (doc hướng-khách-hàng = Customer) → mặc định an toàn Internal |
| Status | Mặc định Approved (theo 06-KNOWLEDGE-LIFECYCLE); ghi đè --status |
| source_hash | SHA-256 (rút gọn) nội dung nguồn — dùng cho đồng bộ phiên bản |
--out (mặc định examples/published/).source_version + source_hash lúc sinh. Khi tài liệu nguồn đổi (băm khác), chạy lại publisher → source_hash mới; so sánh với bản đã xuất bản cho biết trang nào cần tái sinh (stale).current lúc tạo; việc so khớp tự động (đánh dấu stale/orphaned) là bước kế tiếp của cơ chế sync, không thuộc phạm vi công cụ v1.---). Cú pháp ngoài phạm vi này chưa xử lý.learning_objectives là scaffolding suy từ tiêu đề section — không thêm tri thức nghiệp vụ mới.| Phiên bản | Ngày | Thay đổi |
|---|---|---|
| 1.0.0 | 2026-07-06 | Publisher v1: canonical Markdown → HTML + Knowledge Card + navigation/breadcrumb/lesson metadata, chỉ-đọc nguồn, 6 trường bắt buộc mỗi trang. |