文件 1.11.6

內容與檔案

本頁說明如何讀寫 MDEditor 的內容:初始化、取得文字、清空、開啟 Markdown 檔、匯出檔案與儲存回呼。

方法

方法 說明
init(text?, withFocus = true, set = true) 以 text(或尚未使用的 defaultContent)重建所有列;set 為真時寫入一筆復原紀錄
text 唯讀屬性,回傳各列 innerText 以 \n 串接的結果
clear() 呼叫 init() 清空並更新預覽
selectAll() 選取從第一列到最後一列的全部文字
openfile(file) 以 FileReader 讀取 File 物件並載入,完成後更新預覽;未傳入時跳出 alert("請選擇檔案")
download(type = "md") 匯出檔案,type 為 "md" 或 "html",其他值直接忽略
save() 觸發儲存流程,見下節
unsave() 把編輯器與綁定預覽器的 data-saved 設為 0
changeMode(mode = "light") 切換主題,見 主題

init() 會先把容器 innerHTML 清空再重建,也會重新建立工具列。直接呼叫時不會更新預覽,需要時接著呼叫 editor.viewer.init()。

開啟檔案

<input type="file" accept=".md" onchange="editor.openfile(this.files[0])">

讀入的文字會 trim(),並把一般空白與不換行空白統一為一般空白。openfile() 先呼叫 clear(),所以原內容會留在復原紀錄中。

匯出

type 檔名 內容
"md" NanoMD-<timestamp>.md editor.text.trim()
"html" NanoMD-<timestamp>.html 完整 HTML 文件:<section class="pd-md-viewer"> 包住擴充模式轉換結果,並引用 CDN 上的 NanoMD-output.css(固定 1.11.6 版)、Material Symbols 與 code-prettify

匯出的 HTML 沒有載入 Mermaid,Mermaid 區塊會以原始碼文字呈現。檔案以 application/octet-stream Blob 下載。

儲存流程

save()(也由 Cmd/Ctrl+S 觸發)依 autosave 與 event.save 決定行為:

autosave event.save 行為
真 有函式 呼叫 event.save(editor.text)
真 未設定 跳出匯出視窗(Markdown/HTML/Cancel)
假 有函式 先更新預覽,再呼叫 event.save(editor.text)
假 未設定 只更新預覽
任一 明確設為 null 回傳 false,不做其他事(autosave 為假時預覽仍會先更新)
const editor = new MDEditor({
    id: "editor",
    event: {
        save: (text) => fetch("/api/save", { method: "POST", body: text })
    }
});
EN