MDParser
本頁說明 MDParser 這個不需要編輯器或預覽器介面的 Markdown 轉 HTML 類別。
建構
const parser = new MDParser({ standard: false, text: "# Default" });
| 選項 | 型別 | 預設 | 說明 |
|---|---|---|---|
standard |
boolean |
true |
true 時只處理標準語法;見 標準模式 |
text |
string |
"" |
parse() 未傳參數時使用的預設文字 |
parse()
parser.parse(text?) // => string
| 輸入 | 行為 |
|---|---|
text 為字串 |
轉換該字串 |
text 為 undefined 或 null |
轉換建構時的 text |
| 空字串 | 回傳 "<br>"(不會改用預設文字) |
回傳值是 HTML 字串,前後可能帶有換行。每次呼叫都重新跑完整管線,沒有快取。
與預覽器的差異
| 項目 | MDParser |
MDViewer |
|---|---|---|
| 預設模式 | 標準 | 擴充(不可改) |
| hashtag | 不轉換 | 依 hashtag.path |
| 程式碼高亮、Mermaid | 只輸出 prettyprint class 與 .mermaid 容器,需自行呼叫 PR.prettyPrint()/mermaid.run() |
渲染後自動執行 |
| 複製按鈕 | 輸出 <button class="copy">,未綁定事件 |
自動綁定剪貼簿 |
環境需求
MDParser 不建立 DOM 容器,但仍需瀏覽器環境:
- 轉換過程用
document.createElement組出 HTML 片段 - 載入 bundle 時會讀取
window.matchMedia並在<head>插入 CDN 資源,見 執行期依賴 - 連結指向 Vimeo 時會以同步 XHR 查詢縮圖(擴充模式),轉換期間會阻塞主執行緒
在 Node.js 使用需搭配 jsdom 等 DOM 實作並先提供 window.matchMedia。
範例
const parser = new MDParser({ standard: false });
const html = parser.parse("```js\nconst a = 1;\n```");
document.querySelector("#out").innerHTML = html;
PR.prettyPrint();
輸出直接寫入 innerHTML 前,請先閱讀 安全性。