选项页面是配置 Markdown Here 行为和外观的主要用户界面。它允许用户自定义样式、语法高亮、快捷键以及高级功能,如数学公式渲染。本页面记录了选项页面系统的结构、功能和组件,该系统是 Markdown Here 用户界面和选项组件不可或缺的一部分。
有关配置数据如何存储的信息,请参阅配置存储。
选项页面提供了一个用户友好的界面,无需直接编辑配置文件即可自定义 Markdown Here 的行为。它包含几个关键部分,允许用户
选项系统会自动保存更改,并提供样式如何影响渲染 Markdown 的即时预览。
来源:src/common/options.html1-690 src/common/options.js1-500 src/common/options-store.js1-572
选项页面分为几个功能性部分,以便对相关设置进行逻辑分组。用户界面采用响应式设计,以适应不同的屏幕尺寸。
用户界面分为以下几个关键部分:
来源:src/common/options.html329-658
选项页面包含多个交互式元素:
用户界面还具有一个“已保存更改”的通知,当设置自动保存时会短暂出现。
来源:src/common/options.html17-138 src/common/options.html119-131
选项页面利用了一个抽象的存储系统,该系统可以适应浏览器环境。这种抽象允许相同的界面在不同浏览器之间工作,同时适应它们特定的存储机制。
系统根据浏览器环境确定使用哪种存储实现:
ChromeOptionsStore(使用 Chrome Storage API)MozillaOptionsStore(使用 Mozilla 偏好设置)SafariOptionsStore来源:src/common/options-store.js18-26 src/common/options-store.js476-499
系统为所有选项定义了默认值,这些值在用户首次安装扩展或重置选项时使用。
DEFAULTS = {
'math-enabled': false,
'math-value': '<img src="https://latex.codecogs.com/png.image?\\dpi{120}\\inline&space;{urlmathcode}" alt="{mathcode}">',
'hotkey': { shiftKey: false, ctrlKey: true, altKey: true, key: 'M' },
'forgot-to-render-check-enabled': false,
'header-anchors-enabled': false,
'gfm-line-breaks-enabled': true
}
CSS 样式默认值从外部文件加载。
来源:src/common/options-store.js18-26 src/common/options-store.js123-133
选项页面通过一个定义明确的流程加载和保存配置数据。
在 options.js 文件中的 checkChange() 函数会检测选项的更改,该函数每 100 毫秒运行一次。检测到更改后,会延迟 400 毫秒自动保存,以避免在输入过程中过多保存。
来源:src/common/options.js21-147 src/common/options.js227-288
选项页面包含一个实时预览功能,用于显示 Markdown 将如何根据当前设置进行渲染。
预览实现为一个包含示例 Markdown 文本的 iframe。渲染过程使用户在电子邮件中激活 Markdown Here 功能时使用的核心 Markdown 渲染引擎相同。
来源:src/common/options.js151-164 src/common/options.js303-355
选项页面提供两个 CSS 编辑器:
两个编辑器都允许直接编辑 CSS,并提供重置按钮以恢复默认值。语法高亮编辑器还包括一个主题选择下拉菜单,可以加载预定义的主题。
来源:src/common/options.html422-449 src/common/options.js356-390
TeX 数学公式支持部分允许用户
默认模板使用 CodeCogs 渲染 TeX 表达式,但用户可以自定义以使用其他服务。
来源:src/common/options.html489-544 src/common/options.js444-448
快捷键配置部分允许用户设置用于切换 Markdown 渲染的键盘快捷键。用户可以选择
系统会验证主键,确保它是字母数字的,并在不是时提供警告。它还会更新 UI 中所有快捷键的显示。
来源:src/common/options.html549-583 src/common/options.js450-499
高级和其他部分包括几个可选功能:
来源:src/common/options.html598-640
选项页面设计用于在不同浏览器上运行,并对平台特定行为进行了特殊处理。
对于基于 Mozilla 的浏览器(Firefox/Thunderbird),打开选项页面和测试页面,以及在快捷键更改后重新加载都需要特殊处理。
来源:src/common/options.js203-221 src/firefox/chrome/content/background-services.js18-341
选项页面包含全面的国际化支持,所有 UI 文本都从特定语言的消息包加载。
本地化系统
data-i18n 属性的元素来源:src/common/options.js166-200 src/common/options.html15
选项页面是一个全面的用户界面,用于自定义 Markdown Here 的行为和外观。它提供了一种用户友好的方式来配置设置,而无需理解底层的技术细节。系统的架构确保了
这种设计使用户能够轻松定制他们的 Markdown Here 体验,同时在不同的浏览器环境中保持一致的界面。
来源:src/common/options.html1-690 src/common/options.js1-500 src/common/options-store.js1-572