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

时间:2014-06-04 19:17:06

标签: javascript regex browser-extension

在我读到关于Hover Zoom being evil(yikes!)之后,两篇文章让我立即切换到另一篇文章,名为Imagus:

Imagus似乎完全符合Hover Zoom的要求,但此外,它似乎支持自定义过滤器(以支持更多网站),此外还有它已经包含的庞大数量。

在选项页面的Chrome浏览器中,过滤器部分看起来美味可黑客

screenshot

然而,与此同时,它似乎写在我所谓的 Perl Javascript

Perl Coding Best Practices

我认为自己精通Javascript,DOM和Regex,但尝试猜测这是做什么只是痛苦,所以我寻找文档。好像有一个MyOpera blog,现在website of the project暂时托管在Google文档上。

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

所以,如何开发自定义过滤器?我不了解所有可能性(它似乎非常灵活),但即使只是修改URL这样的简单示例也会很好。 (将/thumb/123.jpg转换为/large/123.jpg或其他内容。

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

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

1 个答案:

答案 0 :(得分:16)

fieds可以包含JavaScript函数或Regex。

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

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

^(xkcd\.(?:org|com)/\d{1,5})/?$

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

<强> URL:

$1/info.0.json

这只是附加&#34; /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 $;

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

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

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

^(photos\.wikimapia\.org/p/[^_]+_(?!big))[^.]+

这会找到名称中没有大的维基马皮亚图像

$1big

为网址添加大量内容。

  • note仅供注意。

有些过滤器会在此处提供指向API文档的链接。

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

干杯。