跳到主要内容

打开方式

每个文件,用最合适的方式打开。

udctl 用最合适的查看器显示每个文件——图片用图片查看器,图表用图表编辑器。你可以随时切换查看器、设置自己的默认项,或用插件教会 udctl 一种全新的文件类型。

7+ 内置查看器1-click 插件安装已上线 网页版
“打开方式”菜单,列出可用的查看器

合适的查看器

合适的视图,随你更改。

一键切换查看器

大多数时候 udctl 会根据文件名自动选好查看器。当一个文件可以用多种方式显示时,文件上方的 打开方式 按钮会显示当前使用的查看器,并让你切换到另一个——此外还随时提供“以文本查看”和“下载”。当同一类文件有不止一个插件能打开时,它们都会各自作为一个选项出现在菜单里。

设置跟随你的默认项

想让某种文件总是用同样方式打开?选择“始终以此方式打开 .xyz 文件”。默认项绑定到你的账号,会跨设备跟随你,也不会影响任何其他人。

文档:切换与默认项 →
“打开方式”菜单,选中的查看器带勾、并有“设为默认”选项

内置

覆盖你最常用的文件类型。

图表

.drawio 通用图表与 udctl 数据流图

Excalidraw

手绘风格草图

图片、视频与音频

内嵌预览媒体文件

PDF 与 Word

文档就地打开

电子表格与表格

行列直接渲染

Markdown、代码与文本

内置语法高亮

演示文稿与 HTML

幻灯片与网页

其他类型? 任何没有内置查看器的文件类型都无法自行预览——udctl 不会给你一个空白预览,而是告诉你还没有能打开它的应用,并在下载链接旁边把你指向插件库,让你为它添加一个查看器。

你自己的查看器

教会 udctl 一种新文件类型。

一个插件就是一个自包含的 .html 文件——就像安装一个 app 让操作系统能打开一种新文件。udctl 把要显示的文件交给插件,插件负责绘制。一个完整可用的插件就这么简单:

viewer.html
<!doctype html>
<html>
  <body>
    <pre id="out">Waiting for a file…</pre>
    <script>
      // 1. Listen for the file udctl will send.
      window.addEventListener('message', function (event) {
        var msg = event.data;
        if (!msg || msg.udPlugin !== 1 || msg.type !== 'file') return;
        var text = new TextDecoder().decode(msg.bytes);
        document.getElementById('out').textContent =
          msg.fileName + '\n\n' + text;
      });
      // 2. Tell udctl we are ready to receive it.
      parent.postMessage({ udPlugin: 1, type: 'ready' }, '*');
    </script>
  </body>
</html>

沙箱隔离,且只属于你

udctl 在一个封闭沙箱里运行每个插件:它只能读取并显示你打开的那一个文件,无法访问网络、看不到你的其他文件、也碰不到你的账号。安装前你会看到插件能做什么并需要确认——所以规则很简单:只装你信任的插件。你安装的插件只属于你自己。

Jupyter Notebook Viewer 插件渲染一个带代码单元和图表的笔记本
Jupyter Notebook Viewer 插件渲染 spend-analysis.ipynb
文档:插件协议 →

插件库

浏览、一键安装、分享你自己的。

设置 → 资源插件 → 插件库,列出可安装的插件

从插件库一键安装

打开 设置 → 资源插件 → 插件库,浏览发布到官方 registry 的插件,一键安装。udctl 会用 registry 中的指纹校验每个插件,确保你装到的就是发布的那一份。

一个现成的例子

官方的 Jupyter Notebook Viewer 可以渲染 .ipynb 笔记本——markdown 与代码单元、语法高亮、表格和图片。从插件库安装它,几秒钟就能试用插件。

文档:registry 如何运作 →

提交你自己的

发布一个插件给所有人。

1

Fork registry 仓库

Fork 公开仓库 oatnil-top/ud-registry.

2

加入你的文件和条目

把你构建好的 .html 放到 plugins/<id>/<id>.html 并在 plugins.json 中加入对应条目。

3

提交 pull request

自动检查会校验指纹,审阅者会阅读源码,合并后即发布到插件库。

目前在哪里可用

“打开方式”以及本页的全部内容,现已在网页版上线:app.udctl.com。桌面端将在下个版本加入——在那之前,请在网页版使用这些功能。

打开一切,按你的方式。

在网页版试用各种查看器,阅读完整指南,或浏览插件 registry。