← 返回部落格
教學

如何將 Markdown 匯出為精美 HTML(零依賴,內建暗色模式)

用設計 Token 驅動的主題系統,將 Markdown 文件匯出為單一檔案 HTML——自帶暗色模式、主題化程式碼區塊,零外部依賴,可直接分享或託管。


為什麼 Markdown 匯出 HTML 很難做好?

Markdown 是寫作的理想格式——純文字、版本友好、專注內容。但當你需要分享文章時,問題來了:直接發 .md 檔案,對方需要安裝 Markdown 檢視器;轉成 PDF,印刷感太重,在手機上閱讀體驗糟糕;複製到富文字編輯器,格式又往往亂掉。

匯出 HTML 是最自然的選擇——瀏覽器原生支援,任何裝置都能開啟。但「能開啟」和「好看」之間差著很遠:裸 HTML 沒有樣式,程式碼區塊黑白一片,暗色模式要么完全缺失,要么需要手動維護一份 CSS。

什麼是「精美 HTML」?

一份高品質的 Markdown → HTML 匯出,應當滿足以下標準:

  • 單一檔案——所有樣式內聯,不依賴外部 CSS/JS/字型,可以直接發給別人或託管到任意靜態伺服器
  • 內建暗色模式——透過 @media (prefers-color-scheme: dark) 自動跟隨系統,無需 JS
  • 主題化程式碼區塊——語法高亮顏色與整體配色協調,而不是用一套通用的黑色背景
  • 排版精良——合適的行距、字號、字型堆疊、段落間距;表格、引用區塊、數學公式都有對應樣式
  • 內容寬度可控——不鋪滿整個瀏覽器寬度,保持舒適的閱讀列寬(通常 65–80 字元)

Design Token 驅動的主題系統

Mark.build 使用 Design Token 作為主題的核心架構。所有視覺屬性——文字顏色、背景色、程式碼區塊背景、強調色、圓角、字型——都透過 Token 統一管理,而不是散落在各處的硬編碼值。

Token 分三層:

  • Primitive(原始值)——顏色色階(blue.600gray.100)、字型名稱、字號
  • Semantic(語義化)——text-primarybg-surfaceaccent,同時定義亮色和暗色兩套值
  • Component(元件級)——code-block.bgtable.header-bg,從 Semantic 自動派生

當你切換主題時,所有元素——標題、段落、程式碼區塊、Mermaid 圖表、KaTeX 公式、表格——都從同一套 Token 獲取樣式,瞬間同步更新。

用 Mark.build 匯出 HTML:分步指南

第一步:開啟編輯器

造訪 mark.build/editor。編輯器基於 CodeMirror 6,支援語法高亮、快捷鍵(⌘B 加粗、⌘I 斜體、⌘K 連結)和捲動同步預覽。所有文件儲存在瀏覽器本地,不上傳伺服器。

第二步:選擇主題

點擊工具列中的主題選擇器,從內建主題中選擇:

  • Default——乾淨的藍色強調色,適合技術文件
  • Tech Blog——紫色強調色 + 深色程式碼區塊,Dracula 風格
  • Academic——襯線標題字型,適合論文和長文
  • Minimal——極簡灰色系,減少視覺干擾
  • Magazine——紅色強調色 + Playfair Display 標題,雜誌風格

用工具列的日/月圖示切換亮色和暗色模式,預覽效果。

第三步:匯出 HTML

點擊右上角的「匯出」按鈕,選擇「匯出 HTML」。匯出的檔案是一個完全自包含的 .html 檔案:

  • 所有 CSS 內聯在 <style> 標籤中
  • 亮色和暗色兩套 CSS 變數都寫入檔案,透過 @media (prefers-color-scheme: dark) 自動切換
  • Mermaid 圖表匯出為內聯 SVG,不依賴外部執行時

匯出其他格式

除了 HTML,Mark.build 還支援:

  • PDF——調用瀏覽器列印對話框,僅亮色模式,適合乾淨可列印的文件
  • PNG——以 2 倍像素比截取預覽區,適合社群媒體分享
  • 富文字複製——將帶樣式的 HTML 複製到剪貼簿,可直接貼上到微信公眾號、Notion、郵件客戶端

HTML 匯出的典型使用場景

  • 技術文件發布到個人網站或公司內網,不需要搭建 CMS
  • 發給客戶或同事的技術報告,一個檔案搞定,無需任何軟體
  • 在郵件中附上 HTML 檔案,對方直接用瀏覽器開啟
  • 上傳到 GitHub Pages 或 Cloudflare Pages,幾秒內變成可存取的網頁
  • 作為履歷或作品集的單頁展示,樣式精美,暗色模式自動適配

小結

Markdown 寫作的終點不應該是一個樣式混亂的 HTML 檔案。Design Token 驅動的主題系統讓每一個匯出的檔案都具備完整的排版體系。

Mark.build 的目標是讓這個過程盡可能簡單:寫 Markdown,選主題,點匯出。剩下的事情,交給工具。


立即體驗: 開啟編輯器 →