跳到內容

HTML / TXT / EPUB / DOCX / PDF 輸出

先備知識:轉譯模型與 Chromium/PDF 邊界

下列每個輸出都是同一份 MDI document IR 的轉換,見 Document IR;它們都不是第二層 syntax,也不重新決定 source text 的含義。本頁從 package boundary 檢視,renderer internals 請見轉譯模型

FormatPackage實際內容
HTML@illusions-lab/mdirenderHtmlstandalone HTML document 加 embedded .mdi-* stylesheet
TXT(5 flavors)@illusions-lab/mdirenderTextFormat)/ CLIplain、保留 ruby 或特定日文出版平台的 plain-text convention;見TXT export flavors
EPUB@illusions-lab/mdirenderEpub真正 EPUB 3 archive:reflowable XHTML chapters + nav.xhtml + CSS + OPF package,由 Rust zip
DOCX@illusions-lab/mdirenderDocx真正 OOXML(WordprocessingML)文件,由 Rust zip
PDF@illusions-lab/mdi-to-pdfRust-rendered HTML/print CSS,由本機 Chromium-family browser layout/rasterize

五種中四種完全在 Rust 內產生:CLI 與 JavaScript package 直接呼叫 mdi-core renderer,沒有中間 JavaScript render step。PDF 是例外,只因它需 launch OS process;native host 的 Rust core 用 render_pdf/find_chromium,Node CLI 則經由 @illusions-lab/mdi-to-pdf

@illusions-lab/mdi-to-hastmdi-to-htmlmdi-to-epubmdi-to-docx 仍存在並發布。它們早於 Rust-native renderer,操作 mdast/HAST tree 而不直接呼叫 Rust render functions,對已有 mdast(經由remark adapter)的 unified consumer 仍有用。CLI 已不再使用它們。重要差異是 mdi-to-hast stylesheet 比 Rust render_html embedded CSS 更接近 SYNTAX.md,見stylesheet parity

EPUB/DOCX 尚未接上 export profile 的 cover image、configurable chapter-split level、完整 page-geometry/font control;目前只讀 front matter 的 title/author/lang/writing-mode。這在 Rust Core API 明確列為 pending,而非靜默缺失。