算繪能力
Markdown 語法
在 CommonMark 與 GitHub Flavored Markdown 的基礎上,額外支援:
| 語法 | 寫法 | 說明 |
|---|---|---|
| 表格 | | a | b | |
支援三種對齊,標題列可排序 |
| 待辦清單 | - [x] 完成 |
已完成項自動加刪除線 |
| 刪除線 | ~~文字~~ |
GFM |
| 標示 | ==文字== |
黃色螢光筆效果 |
| 插入 | ++文字++ |
底線 |
| 下標 | H~2~O |
|
| 上標 | x^2^ |
|
| 註腳 | 文字[^1] |
雙向跳轉 |
| 定義清單 | 術語 換行 : 解釋 |
|
| 縮寫 | *[HTML]: HyperText... |
停留時顯示全稱 |
| 表情符號 | :rocket: |
名稱轉 Emoji |
| 自動連結 | <https://…> |
裸 URL 也會辨識 |
數學公式
由 KaTeX 算繪,速度遠快於 MathJax。
- 行內:
$E = mc^2$或\(E = mc^2\) - 區塊:
$$…$$或\[…\] - 支援矩陣、
aligned多行對齊、cases分段函數、級數積分、希臘字母與常用巨集套件符號
閱讀器對 $ 做了保護性判斷:$100 和 $5 - $10 這類價格寫法不會被誤判成公式。
圖表
由 Mermaid
算繪,寫在 ```mermaid 程式碼區塊裡即可。支援流程圖、時序圖、類別圖、狀態圖、ER 圖、甘特圖、圓餅圖、使用者旅程圖、心智圖、Git 分支圖、象限圖、時間軸等。
圖表主題綁定網站主題變數,切換深色模式時會自動重新算繪換色。滑鼠停在圖表上,右上角可複製原始碼或下載 SVG。
語法標示
- 伺服器端由 Chroma 上色(文件頁),用戶端由 highlight.js 上色(閱讀器),兩者共用同一套配色變數,視覺一致
- 每個程式碼區塊提供:語言標籤、複製按鈕、行號開關、自動換行開關
- 超過 24 行自動摺疊,點擊展開
- 支援用
title標註檔名:
|
|
警示區塊
兩種寫法都支援。GitHub 風格(文件站與閱讀器都可用):
|
|
容器風格(僅閱讀器可用,文件頁不解析):
|
|
六種類型:NOTE TIP IMPORTANT WARNING CAUTION DANGER。
Front Matter
YAML(---)、TOML(+++)、JSON({})三種格式都能辨識。title、description、date、author、tags、categories 會擷取到文件頂部顯示,其餘欄位摺疊在「Front Matter」卡片裡。
閱讀體驗
主題
- 淺色 / 深色 / 跟隨系統三檔,按 D 循環切換
- 首屏算繪前用行內指令碼套用主題,不會閃白
- 深色模式下程式碼配色、圖表配色、公式顏色全部同步調整
排版調整
按 , 開啟設定面板:
| 項目 | 範圍 |
|---|---|
| 內文字級 | 13 – 22 px |
| 行距 | 1.40 – 2.40 |
| 內文寬度 | 窄 / 標準 / 寬 / 滿版 |
| 內文字型 | 無襯線 / 襯線 |
| 程式碼行號 | 顯示 / 隱藏 |
設定存在瀏覽器的 localStorage 裡,跨頁面、跨工作階段保持。
導覽
- 檔案樹:目錄可摺疊,支援依檔名即時篩選
- 大綱:二到四級標題,捲動時用 IntersectionObserver 標示目前章節,大綱本身也會跟著捲動
- 閱讀進度:頂端漸層進度條,捲動超過 600px 出現回到頂端按鈕
- 位置記憶:每篇文件的捲動位置依比例儲存,重新開啟時復原
- 上下篇:J / K 在檔案清單裡前後跳轉
圖片
點擊放大進入燈箱:滾輪縮放、拖曳平移、按兩下切換 1×/2×、+ - 0 鍵盤控制,可直接下載。
搜尋
閱讀器內的跨檔案搜尋
按 / 或 Ctrl+K 開啟。載入資料夾後會在背景讀取所有 Markdown 建立 Fuse.js 模糊索引,權重依次為標題 > 檔名 > 內文 > 路徑。結果顯示檔案路徑與標示命中的上下文片段,方向鍵選擇、Enter 開啟。
文件內尋找
按 F 或 Ctrl+F,在目前文件內逐項標示符合處,Enter 跳下一個、Shift+Enter 跳上一個,並顯示「第幾個 / 共幾個」。
全站搜尋
文件頁面的索引是預先產生的,搜尋框直接在瀏覽器裡查這份索引,純前端、不需要後端。
編輯
按 M 進入編輯模式:左邊寫 Markdown 原始碼,右邊即時預覽(防抖 260 ms),中間的分隔條可拖曳,比例會記進設定。
- 工具列:標題、粗體、斜體、刪除線、行內程式碼、三種清單、引用、連結、圖片、表格、程式碼區塊、公式、Mermaid、提示區塊、分隔線。已套用的格式再點一次即可取消
- 鍵盤:Ctrl+B/I/K 粗體、斜體、連結;Tab 縮排多行選取範圍;清單中按 Enter 自動續行並遞增編號,在空條目上按則結束清單。所有操作都走
execCommand,保留瀏覽器原生的復原堆疊 - 儲存:Ctrl+S 寫回本機原始檔案。第一次儲存時瀏覽器會跳出授權視窗,把先前的唯讀授權升級為讀寫
- 草稿:每 1.2 秒閒置就把內容存進 IndexedDB。切換檔案、關閉工作區、關閉頁面時若有未儲存的修改都會攔一道確認;下次開啟該檔案會提示復原草稿
- Mermaid 快取:預覽會依圖表原始碼快取算繪結果,打字時不會反覆重繪圖表
說明
寫回原始檔案依賴 File System Access API,只有 Chrome / Edge 等瀏覽器支援。Firefox、Safari,以及用拖放方式開啟的工作區,儲存會自動降級為下載 .md 檔案。
匯出
| 方式 | 快速鍵 | 產物 |
|---|---|---|
| 匯出 HTML | E | 單一 .html 檔,CSS 內嵌、圖片轉為 data URI,斷網也能開啟 |
| 匯出 PDF | P | 跳出選項對話方塊後走瀏覽器列印管線,輸出向量文字,可選取可搜尋 |
PDF 匯出可調整:紙張(A4 / Letter / A5)、方向、邊界、內文縮放、標題頁、可點擊的目錄頁、H1 或 H2 是否另起一頁、程式碼是否換行、是否列印外部連結網址。深色主題下會暫時把 Mermaid 圖表切成淺色重繪,避免深底淺字印到白紙上。
重要
最後一步是瀏覽器的列印對話方塊,把「目的地」選成「另存為 PDF」。頁碼與頁首頁尾由該對話方塊的「頁首及頁尾」選項控制——Chrome 不支援 CSS @page 的頁邊區塊,純 CSS 無法自行繪製頁碼。
技術實作
相依套件與體積
| 模組 | 用途 | 體積 | 載入時機 |
|---|---|---|---|
| 主套件 | markdown-it + 外掛、highlight.js、Fuse.js、應用程式碼 | 約 505 KB | 首屏 |
| 文件頁套件 | 加強指令碼 + 搜尋 | 約 60 KB | 首屏 |
| KaTeX | 公式 | 約 261 KB + 660 KB 字型 | 頁面出現公式時 |
| Mermaid | 圖表 | 約 3.3 MB | 頁面出現圖表時 |
所有相依套件都在建置期打包進產物,執行時不請求任何第三方 CDN,可完全離線部署,也不會有外部資源被擋的問題。
隱私
- 閱讀器的檔案讀取與寫回全部在瀏覽器內完成,沒有任何上傳行為
- 不載入第三方指令碼,無埋點、無統計、無 Cookie
- 設定存 localStorage,目錄控制代碼、閱讀位置與編輯草稿存 IndexedDB,都在本機
多語言
介面提供 English、簡體中文、繁體中文、日本語、Español、Français 六種語言。英文在根路徑,其餘語言帶 /zh/、/zh-hant/、/ja/、/es/、/fr/ 前綴,各有獨立可分享的網址。頂欄的地球圖示可隨時切換,會盡量跳到目前頁面的對應譯文。
介面文案集中在 data/i18n/<lang>.toml,範本與瀏覽器端指令碼共用同一份表;頁面只載入目前語言的文案。首次造訪時若瀏覽器語言與目前頁面不一致,底部會出現一次可永久關閉的切換提示。