Bzr 和 Launchpad 技巧:Firefox 插件

如果你使用 bazaar 工作,你肯定见过它的 URI。完整的列表可以在 bzr help urlspec 中找到。虽然我通常只使用其中的一部分,例如 bzr+ssh://bazaar.launchpad.net/~maria-captains/maria/5.2-serg/http://bazaar.launchpad.net/%2Bbranch/mysql-server/5.5/

此外,我经常使用 Launchpad 别名,例如 lp:~maria-captains/maria/5.3-serg/lp:maria/5.3lp:869001

最后,还有一些我们在 MySQL 中使用过的常用缩写,以及一些我们在 MariaDB 中使用的缩写,例如 bug#12345wl#90

令人烦恼的是,当我想要查找 wl#90 时,我需要记住它对应于 http://askmonty.org/worklog/?tid=90,然后在浏览器地址栏中输入后者。而对于我的浏览器来说,lp:869001https://bugs.launchpad.net/bugs/869001。类似地,上面提到的每个其他 URL 都有一个对浏览器友好的“邪恶双胞胎”。它之所以邪恶,是因为我必须记住它!

现在,Firefox 在一定程度上试图提供帮助。它支持所谓的**关键词**——书签的短别名。为 https://bugs.launchpad.net/bugs/%s 创建一个书签,并在“关键词”字段中输入 lp。现在你可以在地址栏中输入 lp 869001(带空格),Firefox 就会将其展开为完整的 URL https://bugs.launchpad.net/bugs/869001。相当方便。我已经使用了几年了。但仍然令我烦恼的是,我必须手动重写缩写,添加空格,删除冒号等等。最后,它烦恼到让我编写了一个 Firefox 插件!

让我来介绍 **LocationMorph**——一个可以根据用户指定的正则表达式任意重写地址栏文本的插件。我通过首选项对话框配置了它,使其使用以下规则集:

^bzr+ssh://bazaar.launchpad.net/ http://code.launchpad.net/
^lp:(d+)$ https://bugs.launchpad.net/bugs/$1
^lp http://code.launchpad.net/
^wl#(d+)$ http://askmonty.org/worklog/?tid=$1
^bug#(d+)$ http://bugs.mysql.com/bug.php?id=$1

现在,我可以简单地将一个 bzr URI、一个 Launchpad 别名或我们内部的电子邮件(或 bzr info)中的缩写直接复制粘贴到浏览器中,它会直接理解并显示我想要的页面。啊,完美…