文件 1.11.6

預覽器選項

本頁列出 new MDViewer(config) 的選項、實例方法與屬性,以及綁定編輯器的方式。

建構

const viewer = new MDViewer({
    id: "viewer",
    emptyContent: "# Nothing yet",
    style: { mode: "auto", fill: true, fontFamily: "sans-serif" },
    sync: { editor: editor, delay: 300, scroll: true },
    hashtag: { path: "/tags/", target: "_blank" }
});

建構完成時會立即呼叫一次 init()。

選項

選項 型別 預設 說明
id string 無 容器元素 ID;找不到時建立未掛載的 <section>,用 viewer.body 取得
emptyContent string "" 沒有 txt 參數、編輯器也沒有文字時渲染的 Markdown
style.mode string "auto" "auto"/"light"/"dark",見 主題
style.fill boolean true 寫入 data-fill,填滿父元素
style.fontFamily string "sans-serif" 以全域 .pd-md-viewer 選擇器插入 <style>;同頁多個預覽器時後者覆蓋前者
sync.editor MDEditor null 綁定的編輯器;不是 MDEditor 實例時視為未綁定
sync.delay number 300 渲染延遲毫秒數;0 或無法解析的值回到 300
sync.scroll boolean false 滾輪捲動同步,見 渲染與同步
hashtag.path string "" hashtag 連結前綴;空字串時不轉換,見 Hashtag 連結
hashtag.target string "" "_blank" 開新分頁,其他值一律 _self

方法

方法 說明
init(txt = "") 排程一次渲染;txt 有值時渲染 txt,否則讀取編輯器文字或 emptyContent
clear() 清空容器內容
unsave() 把 data-saved 設為 0
changeMode(mode = "light") 直接寫入 data-mode;"dark" 為深色,其他值(含空字串)為淺色

屬性

屬性 型別 說明
body HTMLElement 預覽器容器
editor MDEditor 綁定的編輯器;可在建構後指定
vbody vDOM 容器的虛擬 DOM 快照;目前渲染流程不使用

綁定與解除編輯器

viewer.editor = editor;

設定 editor 時會同時把 editor.viewer 指回此預覽器,並依 sync.scroll 設定滾輪同步。改綁另一個編輯器時,先前編輯器的 onwheel 會被清除。設為 null 只會清除先前的 onwheel,內部仍保留舊編輯器參照,渲染時會繼續讀取它的文字。

單獨使用

不綁定編輯器時,預覽器就是一個 Markdown 渲染容器:

const viewer = new MDViewer({ id: "viewer" });
viewer.init("# Title\n\nRendered **once**.");

已棄用的頂層選項(pre、delay、scrollSync、tagPath 等)見 已棄用 API。

EN