如何为Imagus hover zoom extension开发自定义滤镜?

Cam*_*tin 13 javascript regex browser-extension

在我读到Hover Zoom是邪恶的(yikes!)之后,两篇文章让我立即切换到另一篇文章,名为Imagus:

Imagus似乎很适合Hover Zoom也可以做到这一点,但此外,它似乎支持自定义过滤器(支持更多网站),除了它已经包装的庞大数量.

在选项页面中,在Chrome上,过滤器部分看起来很美味:

  截图

然而,与此同时,它似乎写在我称之为Perl Javascript的内容中.

  Perl编码最佳实践

我认为自己精通Javascript,DOM和Regex,但尝试猜测这是做什么只是痛苦,所以我寻找文档.似乎有一个MyOpera博客,现在该项目网站暂时托管在Google Docs上.

该页面没有提及如何开发"过滤器"(或"sieves",如该页面中所写的那样?)

那么,我该如何开发自定义过滤器?我不知道所有可能性(它似乎非常灵活),但即使只是修改URL这样的简单例子也会很好.(/thumb/123.jpg变成/large/123.jpg什么东西).

甚至只是对字段的解释.他们似乎是:

  • link
  • url
  • res
  • img
  • to
  • note < - 可能是评论

lon*_*jil 17

fieds可以包含JavaScript函数或Regex.

  • 链接会重新显示您悬停的所有链接的地址.
  • url使用链接字段中捕获的括号值来创建网址.
  • res重新收集url或link指向的任何文本页面.

如果其中一个为空,则跳过该步骤,例如没有url和res只是从链接的输出加载.
一个简单的例子是xkcd过滤器:
link:

^(xkcd\.(?:org|com)/\d{1,5})/?$
Run Code Online (Sandbox Code Playgroud)

查找xkcd漫画的链接.如果您不熟悉正则表达式,则括号之间的任何内容都会被保存,并且可以在Imagus中用作"$ n"来表示第n次捕获.请注意,如果在第一个括号后面有一个"?:",它将不会被捕获.

网址:

$1/info.0.json
Run Code Online (Sandbox Code Playgroud)

这只是将"/info.0.json"附加到链接的地址.

RES:

:
if ($._[0] != '{') $ = null;
else $ = JSON.parse($._), $ = [$.img, [$.year, ('0'+$.month).slice(-2),
('0'+$.day).slice(-2)].join('-') + ' | ' + $.safe_title + ' - ' + $.alt + ' ' +
$.link];
return $;
Run Code Online (Sandbox Code Playgroud)

这个javascript函数解析JSON文件并返回一个数组,其中第一个元素是链接,第二个是在hoverzoomed图像下显示的标题文本.如果您只返回一个链接,那么标题将是链接的替代文字.

  • img用作链接,但用于图像源
  • to用作res或url

一个简单的用例是当你想从缩略图重定向到雇用时.就像wikimapia.org的过滤器一样.
IMG:

^(photos\.wikimapia\.org/p/[^_]+_(?!big))[^.]+
Run Code Online (Sandbox Code Playgroud)

这会找到名称中没有大的任何wikimapia图像.
至:

$1big
Run Code Online (Sandbox Code Playgroud)

为网址添加大量内容.

  • 注意只是为了笔记.

某些过滤器此处包含指向API文档的链接.

现在,还没有关于此功能的文档,所以我可能错过了很多,但很多时候它就足够了.

干杯.

  • 你是一个伟大的人*.今天我会把这一切都搞定! (3认同)