不會前端也能產出技術文稿?Quarto 1.11 把程式碼、圖表與版面接成一條線

摘要

一份純文字原稿,同時輸出網頁、PDF、Word、投影片與電子書。Quarto 1.11 把程式碼、圖表與版面收在同一條線上,這次更新還補掉一條憑證鏈風險。

推薦
軟體名稱
Quarto
版本
1.11
收費
免費
開源
開源
作業系統
WindowsmacOSLinux
更新時間
2026-11-06 23:00

把文字與程式碼放進同一個原稿

寫一份帶資料的技術文稿,常見的流程是這樣:在筆記本裡跑出圖表,匯出成圖片,再拖進 Word 排版,資料一改就得全部重來。Quarto 想拆掉的就是這段來回搬運。它由 Posit 維護,站在 Pandoc 之上,定位是一套開源的科學與技術出版系統;作者只要維護一個後綴為 qmd 的純文字原稿,敘述文字與可執行的程式碼區塊寫在同一個原稿裡,渲染時程式碼先跑,圖表與數值原地填進去,最後交給 Pandoc 轉成成品。

這件事的價值不在於少點幾次滑鼠,而在於結果的來源始終可追。文稿裡的每一個數字、每一張圖都對應著原稿裡的一段程式碼,資料更新之後重新渲染即可,不會出現正文寫著三月的結論、配圖還是二月版本的情況。對需要長期維護的報告與技術文稿來說,這比版面漂亮更實用。

一份原稿,幾種成品

Quarto 的輸出格式涵蓋得很寬:HTML 網頁、PDF、Word 文稿、ePub 電子書,以及 revealjs 投影片,還能把多篇文稿組織成網站、部落格與書籍。同一份原稿可以同時指定多個目標格式,不必為投影版本和列印版本各維護一套稿子。寫作時用的是 Pandoc 的 Markdown 方言,數學公式、文獻引用、交互參照、圖表面板、標註框與進階版面都在語法層面支援,圖表編號會隨著內容增刪自動重排,長文稿裡最容易出錯的手工編號被省掉了。

程式碼執行不綁語言。Python、R、Julia 與 Observable JavaScript 都能直接寫進程式碼區塊,引擎會在渲染時按需選擇,Jupyter 筆記本也可以原樣渲染。編輯器方面沒有強制要求,VS Code、Positron、RStudio、JupyterLab 都能用,也提供視覺化的 Markdown 編輯器,習慣純文字的人用任意文字編輯器加命令列同樣順暢。

Quarto 渲染出來的技術文稿,圖表就嵌在正文之中
Quarto 渲染出來的技術文稿,圖表就嵌在正文之中

1.11 版本修的是底子

Quarto 1.11 在 2026 年 11 月 2 日發佈,這個版本比慣例提前,原因是一個安全更新。它把內建的 Deno 執行環境從 2.7.14 提到 2.9.8,新版本會拒收夾帶已被攻破的 eMudhra 與 emSign 憑證鏈的憑證。這件事影響的是發佈與抓取環節:quarto publish、quarto add、quarto use template 這些指令,以及 Quarto 執行的 TypeScript 腳本,都要走 HTTPS 請求,舊版本信任這些憑證,等於給同一網路裡的攻擊者留下冒充網站的機會。官方明確這次修復不回推到 1.10 系列,也就是說想拿到修復只能升到 1.11。

代價是系統門檻抬高了一點。內建 Deno 2.9.8 在 macOS 上要求 12 或更高版本,還在更舊系統上的機器需要先升級,否則渲染引擎與相關格式可能跑不起來。

在命令列裡渲染與預覽一份 Quarto 專案
在命令列裡渲染與預覽一份 Quarto 專案

無障礙這塊補得比較紮實

1.11 的另一半改動落在無障礙上,而且改的都是真的會被用到的位置。使用 Bootstrap 主題的 HTML 文稿、網站、書籍與儀表板加入了跳至正文的連結,用鍵盤操作時不用再一路 Tab 過整個導覽;網站側邊欄的分區改成可以用鍵盤操作的按鈕;可捲動的程式碼區塊與輸出區域在 Safari 裡能取得焦點並捲動;引文、腳註、交互參照與程式碼註解的彈層支援 Esc 關閉。視覺上新增了雙色鍵盤焦點環,即使在強制高對比度模式下也能看清焦點落在哪裡。

圖表與投影片也照顧到了。Mermaid 與 Graphviz 產生的圖表現在會採用 fig-alt 指定的替代文字,輸出到 HTML、revealjs、Word 與 Typst 都生效,替代文字與讀者看到的圖註保持分離,不會互相蓋掉。投影片在普通播放檢視下把鍵盤焦點留在當前頁,螢幕閱讀器不會提前播報還沒顯示的分步內容,切回瀏覽器分頁時焦點也不會丟。

Quarto 書籍專案的目錄,旁邊是渲染結果
Quarto 書籍專案的目錄,旁邊是渲染結果

Typst 與 Julia 兩條線順手加料

對用 Typst 排版的人來說,這次可以用 lof 和 lot 兩個選項產生圖表清單,清單標題跟隨文稿語言,也能透過 crossref 自訂。proof、remark、solution 這三類區塊從純文字升級為定理樣式,帶標籤的區塊支援交互參照。定義清單的寫法也定下來了,用帶巢狀項目符號清單的 definition-list 容器,這是下一個大版本要沿用的語法。

Julia 引擎增加了 keep-ipynb 選項,執行完的筆記本可以和原稿一起保存下來,同時修了筆記本執行卡住、以及中繼資料變動沒有讓快取儲存格結果失效的問題。共享中繼資料現在會以合併後的值傳給 Pandoc 模板與 Lua 過濾器,像 keywords 這種繼承來的清單會和文稿自身的值合併,而不是被文稿裡的清單整個替換掉。

Quarto 文稿裡的 Julia 程式碼與圖表輸出
Quarto 文稿裡的 Julia 程式碼與圖表輸出

適合誰,不適合誰

Quarto 的舒適區很明確:需要把程式碼、結果與解釋寫在一起的人。資料分析報告、實驗紀錄、課程講義、技術手冊、需要長期維護的書籍,這些場景裡「結果必須能追溯到計算過程」是硬需求,Quarto 的單一原稿模型正好對上。團隊已經在用 RStudio 或 Jupyter 的話,搬移成本主要花在熟悉 YAML 選項上,語法本身並不難。

如果只是想要一個乾淨的文稿站,頁面裡沒有任何需要執行的程式碼,那 Quarto 帶來的設定負擔會顯得冗餘,更輕的靜態網站方案就夠了。另外 PDF 這條路徑仍然依賴 LaTeX 環境,錯誤訊息對新手不算友善,改用 Typst 格式可以繞開這一層,但 Typst 生態相對年輕。渲染耗時也是要考慮的,計算量大的專案需要設定凍結與快取,否則每次重建都要重跑一遍。

從 1.11 這次更新看,Quarto 的迭代重心已經從堆功能轉向打磨可靠性:憑證鏈、無障礙、跨語言引擎的快取問題,都是長期使用者才會碰到的痛點。對已經在用的人來說,這次升級的理由是安全修復;對還在觀望的人來說,值得先拿一份自己常寫的報告試渲染一次,看看這份原稿能不能取代現在那套拼湊的流程。

Quarto下載地址
支援的作業系統: Windows macOS Linux