不改写 Markdown 源文的出版级排版渲染层。
当前版本:v0.1.4 需要 Obsidian **1.7.2 或更高版本**。 Typesetter 是面向学术写作、科学笔记和多语言正文的免费、开源、本地优先 Obsidian 插件。它为源码模式、实时预览、阅读视图以及打印/PDF 输出提供 非破坏性的排版层;每一种渲染表面和每一条排版规则都能分别配置。 > **本插件不会修改底层 Markdown 源文件。** ~~~text 源文: The result----although unexpected----was obtained in 2025-2026. 渲染: The result—although unexpected—was obtained in 2025–2026. ~~~ ## 目录 - [功能概览](#功能概览) - [平台支持](#平台支持) - [安装](#安装) - [快速开始](#快速开始) - [排版规则](#排版规则) - [永久保护的上下文](#永久保护的上下文) - [设置](#设置) - [工作原理](#工作原理) - [开发](#开发) - [发布流程](#发布流程) - [已知限制](#已知限制) - [项目政策](#项目政策) ## 功能概览 | 范围 | 行为 | | --- | --- | | 非破坏性渲染 | 只改变显示,不改变 Markdown 文件、编辑器文档、前置元数据或剪贴板文本。 | | 四类独立控制 | 源码模式、实时预览、阅读视图和打印/PDF 输出可分别启用。 | | 语法感知安全 | 使用 CodeMirror 6 语法信息保护代码、公式、链接、元数据和 Markdown 结构。 | | 安全的渲染 DOM | 阅读视图只处理可见正文文本节点,不修改属性或链接目标。 | | 确定性引擎 | 独立规则返回文本范围,冲突按固定优先级和最长匹配处理。 | | 多语言标点 | 默认尊重输入法 Unicode;CJK 字形塑形和文字系统纠正均为可选项。 | | 便于编辑 | 默认在光标处显示原标记;从编辑器复制时仍得到源标记。 | | 离线、本地优先 | 无账户、遥测、广告、远程服务或运行时下载。 | ## 平台支持 Typesetter 在清单中声明 `isDesktopOnly: false`,运行时只使用 Obsidian 与 CodeMirror 的跨平台 Web API,不使用 Node.js、Electron 或直接文件系统 API。 源码模式、实时预览、阅读视图、设置和命令均按桌面端与移动端兼容设计。 打印/PDF 是兼容性表面,不是插件内置的 PDF 生成器。当 Obsidian 或导出插件 捕获经过后处理的阅读视图 DOM,并保留打印 CSS 时,排版结果可以进入输出。 桌面 Obsidian 的原生打印/PDF 路径符合这一模式;移动端或第三方导出插件也可能 兼容,但若它自行重新解析 Markdown、跳过 Obsidian 后处理器或丢弃打印 CSS, 就需要专用适配器。 | 平台或工作流 | 状态 | | --- | --- | | Windows、macOS、Linux | 架构支持;仍需针对相关 Obsidian 版本实机验证。 | | Android、iOS、iPadOS | 编辑器与阅读视图按移动端兼容设计。 | | Obsidian 原生打印/PDF | 通过独立的打印/PDF 设置支持。 | | 第三方导出插件 | 若使用 Obsidian 渲染 DOM 与打印样式则可兼容;需按具体导出器验证。 | ## 安装 ### 社区插件 Typesetter 尚未被 Obsidian 社区插件目录收录。审核通过后,可从 **设置 → 第三方插件** 中直接安装。 ### 手动安装发布版 1. 从对应的 [GitHub Release](https://github.com/ichenh/obsidian-typesetter/releases) 下载 `main.js`、`manifest.json` 和 `styles.css`。 2. 创建 `