用localstorage保存网页版markdown编辑器配置,核心是结构化存储主题、实时渲染开关、预览宽度、公式渲染、高亮主题等偏好项,统一键名"md-editor-config",读写时加容错与事件同步,确保刷新不丢设置且界面即时生效。

用 localStorage 保存网页版 Markdown 编辑器的实时预览配置,核心是把用户可调的偏好项结构化存下来,并在页面加载时自动还原。它不依赖后端,刷新不丢设置,适合主题、渲染开关、分栏比例等轻量级配置。
要存哪些配置项
常见可持久化的预览相关配置包括:
-
主题模式:如
"light"、"dark"、"auto" - 实时渲染开关:布尔值,控制是否边输边渲染(默认开)
-
预览区域宽度比例:比如编辑区占 60%,预览区占 40%,存为
60 -
公式渲染启用状态:是否加载 MathJax,存为
true或false -
代码高亮主题:如
"github-dark"、"atom-one-light"
怎么存——结构清晰 + 安全序列化
建议统一用一个键名(例如 "md-editor-config")存整个配置对象,避免多个 key 管理混乱:
const config = {
theme: "dark",
autoRender: true,
previewWidth: 40,
mathjax: true,
highlightTheme: "github-dark"
};
localStorage.setItem("md-editor-config", JSON.stringify(config));
读取时加容错处理,防止解析失败导致脚本中断:
const saved = localStorage.getItem("md-editor-config");
const config = saved ? JSON.parse(saved) : {};
// 后续用 config.theme、config.autoRender 等字段初始化界面
什么时候存——响应用户操作,不盲目轮询
配置通常由用户主动修改,推荐在以下时机写入:
通过 jina.ai 将网页抓取为精简的 markdown,用于在需要获取 URL 并获取压缩的 markdown 内容以节省 token。触发词 l...
- 切换主题下拉菜单的
change事件后 - 勾选/取消“实时预览”复选框的
change事件后 - 拖动分栏分割线并释放鼠标(
mouseup)后 - 在设置面板点击“保存”按钮时
避免用 setInterval 频繁保存,既无必要又影响性能。
怎么同步到界面——加载即生效 + 动态响应
页面初始化完成时读取并应用配置:
- 给
添加data-theme属性控制整体主题 - 根据
autoRender开关绑定或解绑编辑器的input监听器 - 用 CSS 变量或内联样式设置预览区宽度:
style="flex: 0 0 ${config.previewWidth}%;" - 若
mathjax === false,跳过 MathJax 脚本加载逻辑
如果配置变更需影响其他模块(如重新初始化高亮库),可配合自定义事件通知:
window.dispatchEvent(new Event("configupdated"));
不复杂但容易忽略细节:iOS Safari 无痕模式可能禁用 localStorage,所有读写操作都应包裹 try/catch,失败时回退到默认值并静默处理,不影响基础功能。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










