兆基89 downloadsPreview, search, inspect, and embed local HTML files with scoped resources, live reload, zoom, and full screen.
让保存在 Obsidian 仓库里的 HTML 成品,像 Markdown 一样直接打开。
课程页面 · 分享会 · 公众号排版 · 交互演示
ZJ HTML Studio lets Obsidian Desktop open local .html and .htm files in native tabs. It supports scoped local resources, safe read-only, local interactive and trusted compatibility modes, live reload, read-only source view, page zoom, in-page search, fullscreen, and Markdown embeds.
main.js, manifest.json, and styles.css from the matching GitHub Release and place them in <vault>/.obsidian/plugins/zj-html-studio/..html or .htm file in the file explorer to preview it.![[page.html]], ![[page.html|760]], or ![[page.html|760x430]].The plugin is desktop-only and requires Obsidian 1.12.7 or later. It does not collect telemetry or send vault content to a developer-operated service. Local previews bind only to 127.0.0.1 and are limited to the resource scope shown in the toolbar.
许多课程、分享会、公众号排版和 AI 生成页面最终都会变成 HTML 文件。文件虽然保存在 Obsidian 仓库里,却常常需要离开 Obsidian,再到 Finder 或浏览器中打开。
ZJ HTML Studio 为 .html 和 .htm 注册原生标签页视图。点击文件即可预览,页面依赖的图片、样式、脚本、字体和媒体资源也会在明确的仓库范围内加载。
| 原来的麻烦 | 使用 ZJ HTML Studio 后 |
|---|---|
| HTML 文件无法在 Obsidian 内直接查看 | 点击文件即可在原生标签页预览 |
| 父目录图片、样式或模块容易失效 | 自动分析依赖并计算最小资源范围 |
| 多个页面共用一个服务,容易互相干扰 | 每个预览拥有独立来源和会话 |
| 页面空白时难以判断原因 | 诊断面板会说明缺失资源和受限能力 |
| 页面没有全屏按钮 | 插件工具栏提供通用全屏 |
| 长页面不好找内容,源码又无法直接看 | 支持页内查找、页面缩放和只读源码 |
| HTML 只能单独打开,很难和笔记放在一起 | 可以用 ![[file.html]] 直接嵌入 Markdown |
.html 和 .htm 文件。Ctrl/Cmd+F 查找、上一处和下一处。| 模式 | 适合什么页面 | 能做什么 |
|---|---|---|
| 安全只读,默认 | 来源不明、只需查看排版的 HTML | 显示本地排版与媒体,关闭页面脚本、常见后台请求、外部子资源、表单、嵌套页面、Worker 和剪贴板能力 |
| 本地交互 | 你自己制作并检查过、靠 JavaScript 渲染正文的本地课件 | 允许页面脚本和当前资源范围中的脚本,阻止常见 fetch/XHR/WebSocket、外部子资源、Worker、嵌套页、表单、剪贴板和 unsafe-eval;页面导航及 WebRTC 不作绝对离线承诺 |
| 可信兼容 | 你自己制作或已经审查过的交互页面 | 允许脚本、模块、联网请求和剪贴板写入,同时继续限制页面只能读取工具栏显示的本地资源范围 |
三种模式中的链接或页面跳转都仍可能离开本地预览地址。本地交互会执行页面脚本,当前 Chromium 不会执行 webrtc 'none',因此只用于自己制作并检查过的文件。陌生 HTML 保持安全只读。
如果页面的正文由 JavaScript 动态生成,安全只读会显示明确提醒和“本地交互打开”按钮,不再把纯背景或黑屏当成正常加载。
.html 或 .htm 文件。工具栏提供刷新、自动刷新、浏览器打开、全屏、源文件定位、安全模式、资源范围和诊断入口。
![[course.html]]
![[course.html|760]]
![[course.html|760x430]]
嵌入会沿用文件夹的安全/本地交互/可信规则。安全只读检测到页面脚本时,可对当前嵌入临时切换到本地交互。若页面需要读取较大范围,会先显示确认入口。Canvas 预览本轮未开启,会提供“在标签页打开”按钮。
插件以本地优先和最小权限为设计前提:
127.0.0.1,使用系统随机端口;最后一个预览关闭或插件停用后自动停止。webrtc 'none'。本地交互会阻止已列出的常见请求通道,但 WebRTC 仍可产生网络活动。data.json 保存自动刷新偏好,以及用户明确记住的安全、本地交互或可信目录规则。插件已进入 Obsidian 官方社区插件目录,可在 设置 → 第三方插件 → 浏览 中搜索 ZJ HTML Studio 并安装。官方清单仍注明尚未经过 Obsidian staff 人工审核。
从对应版本的 GitHub Release 下载:
main.jsmanifest.jsonstyles.css将三个文件放入:
<你的仓库>/.obsidian/plugins/zj-html-studio/
重启 Obsidian,然后在第三方插件设置中启用 ZJ HTML Studio。
1.12.70.3.0 已在 macOS / Obsidian 1.12.7 完成安全只读脚本提示、本地交互课件渲染与翻页、Markdown 嵌入、三态往返和最后会话回收的真实运行验收Markdown HTML 嵌入会在启动时检查当前 Obsidian 是否提供扩展嵌入能力。若未来版本取消该能力,只会停用笔记内嵌并给出提示,HTML 原生标签页与其他功能仍可继续使用。
Windows 与 Linux 已通过自动检查,但尚未完成真实 Obsidian 实机验收。
npm ci
npm run check
npm run check 会依次执行:
插件没有运行时第三方依赖。当前生产安装文件合计约 235 KiB;node_modules/、dist/、本地设置、日志和环境变量文件均不会进入 Git 历史。
src/:插件正式源码。tests/:安全边界、跨平台路径、并发和生命周期的回归保护。manifest.json、versions.json:Obsidian 安装与版本兼容所需。package-lock.json:锁定构建依赖,保证审核和发布可以复现。.github/workflows/:三平台检查与可复现的 Release 构建。SECURITY.md、CHANGELOG.md、CONTRIBUTING.md:安全报告、版本变化和协作规则。这些文件直接服务于安装、审核、安全或维护。构建缓存、依赖目录、真实仓库内容和内部研发资料不进入公开仓库。
本项目使用 MIT License。