0

语境:

我是 TiddlyWiki(离线非线性个人笔记本)用户,我想改进图像附加的工作流程。将图像附加到 TW 的基本方法是编写如下内容:

[img[image-url-either-absolute-or-relative]]

在编辑区。问题是,如果我要附加 20 张图片,我必须提取 20 个网址并粘贴它们(并使用 [img[...]] 包装器)。我的想法是编写一个插件,允许我将 20 个文件从文件管理器拖放到编辑区域,并获得 20 个 url(最好用基本 [img[...]] 语法或其他一些)。

这可能吗?:

获取本地文件的 url(或 uri,其他)不是 Web 应用程序的常用操作,出于安全原因,它似乎被禁止(至少默认情况下)。不过,有没有办法实现这一点?前提是用户将接受任何安全警告。

可能是解决方法?

如果有解决方法的可能性(可能使用 AutoHotKey 或其他),我会很高兴听到(请记住,目标是改进工作流程,因此需要最少的额外点击/按键)。


目前,我很想为 Window 7 + Opera 12.17 实现这个,但当然,解决方案越通用越好(最后,如果它有用,我会与其他人分享)。是的,目前我说的是 TW Classic,而不是 TW5。

4

1 回答 1

0

使用复制操作执行此操作的方法有两个阶段:

首先,您使用 HTML5 支持拖放上传1 [2]到获取文件到浏览器中。

正如我链接的页面所示,HTML5 File API为您提供了文件名(没有路径)、mimetype(可能猜到了)、字节大小和内容。(API 规范还显示了最后修改日期的字段)

第二步是将该文件返回到磁盘上相对于 TiddlyWiki 文件的已知位置,并在当前光标位置插入一个相对 URL。

TiddlyWiki 有一个它使用的不同保护程序后端的集合,所以你基本上想要挂钩并使用相同的 API TW Classic 用于编写备份文件和可选的 RSS ChangeLog。

注意:这在 TW5 中可能或可能还没有。我记得在路线图上看到重新添加备份支持,从 判断savers/tiddlyfox.js,目前似乎对 TiddlyWiki 本身的路径进行了硬编码。但是,将它们保存在 Wiki 中作为二进制数据提琴手始终是一种选择。

至于不复制就做...

我有一个非常强烈的印象,即出于安全原因不可能完美地做到这一点,但这里有一些想法:

  1. 如果您愿意手动键入路径或保证文件将始终位于已知文件夹中,则可以使用File API仅检索文件名。
  2. 您可以编写一个脚本或插件来实现此工作流程:
    1. 在资源管理器中复制文件
    2. 将光标定位到您想要 URL 的位置
    3. 按全局热键

作为几年前搬到 Linux 的人,我会使用 Python+PyGTK+python-xlib,但AutoHotKey是 GPL 的,应该允许您在 Windows 上执行此操作:

  1. 它可以绑定一个全局热键
  2. 它可以读取剪贴板
  3. 如果您找不到或无法编写 Pythonos.path.relpath和的 AHK 克隆urllib.pathname2url,您可以调用外部脚本来完成这项工作。
  4. 它可以伪造按键,允许它自动输入到您的 TiddlyWiki 的编辑窗口中。
于 2014-11-25T23:57:54.027 回答