Bookmark Dupes
截图:
简介:
#书签重复
(C) Martin Väth <martin@mvath.de>, <mvath.develop@gmail.com>
这个项目在 GNU 公共许可证 2.0 下。
可以显示/删除重复书签、空文件夹或描述的 WebExtension
安装bookmarkdupes后,使用就比较简单了:
要打开 bookmarkdupes,请单击扩展符号(重复的星号)或
使用扩展选项页面中的链接。
**不要启用“专家模式”**(除非您完全了解后果,
请参阅单独的部分)。
然后选择要显示的内容:
1.书签重复
2.清空文件夹
3.非重复书签
在此之后,您将看到带有复选框的书签列表;
在情况 1 中,数字表示匹配书签的顺序
根据内部存储的日期添加。
还有一些按钮可以选择/取消选择方便的复选框集。
最后,有一些按钮可以删除选定的书签。
**请注意,删除书签是不可逆的!**
*建议先备份您的书签!*
目前,没有可用于 android 的扩展的工作版本
(参见**已知错误**部分)。
## 重要的
当您重新组织/添加/删除书签时,请确保更新
删除之前显示的列表(通过按下相应的按钮)
书签!
## 权限
由于这些原因,该扩展程序需要以下权限:
1.“书签”读取/修改书签
2. “存储”用于存储/恢复专家模式下自定义的规则。
不幸的是,“存储”不是可能的可选权限之一
仅当用户实际请求该功能时才需要。
## 专业级
选中专家模式的复选框时,可以配置详细信息以
在计算列表或在哪些情况下忽略某些书签
书签被认为是相互欺骗的。
在非专家模式下,两个书签被认为是每个书签的副本
其他如果他们的 URL 一致。
在专家模式中,有一些自定义规则,URL 实际上是
用于比较的是要修改的。详情如下。
对于每个书签,规则都按给定的顺序应用。
有两种类型的规则:过滤规则和URL修改规则
(也有仅列出但没有效果的禁用规则)。
对于这两种类型的规则,可以指定使用的 4 个正则表达式
确定规则是否适用:如果相应的正则表达式是
非空,必须满足相应的条件,否则规则不会
申请。 (在过滤规则的情况下,这 4 个常规规则中的至少一个
expssions 必须是非空的,否则过滤规则也不适用。)
4个正则表达式分别指向书签名称或url,
并且正则表达式必须分别匹配或不匹配。
- 术语“正则表达式”是指 javascript 类型的正则表达式。
- 书签名称是指出现在
文件夹名称由空字符分隔的浏览器。
例如,如果您在“书签菜单”中有一个文件夹“收藏”
其中包含您的书签“示例”,书签的名称变为
`Bookmark Menu\0Collection\0Example`(其中 `\0` 表示空字符
可以通过带有 `\0` 或 `\x00` 的正则表达式匹配)。
- 书签网址为可能修改后的书签网址
通过先前的修饰符规则。
如果过滤规则适用,相应的书签将被忽略,即
它不会被视为重复项,也不会出现在
空文件夹列表或所有书签列表。
如果应用 URL 修改规则,将发生文本替换:
匹配指定正则表达式的所有部分都被替换为
替换文本(可能为空)。
这个规则对应javascript String.prototype.replace
带有全局修饰符的函数。
特别是,替换文本可以包含类似的符号
`$&` 或 `$1` 来引用整个匹配的文本或
分别匹配正则表达式中的第一个大括号。
以下5个替换文本具有特殊含义,超出
标准的 javascript 替换规则。
请注意,此特殊含义仅在完全替换时才有效
文本。换句话说,要获得特殊含义,替换文本不能
包含除这 4-6 个字符以外的任何内容。
(这并没有真正限制功能,因为可以结合
如有必要,有几条规则可以解决该限制。)
1. `\L$&`为小写匹配。
2. `\U$&`为大写匹配。
3. `$URL` 是应用任何其他规则之前的 url。
4. `$NAME` 是书签的全名/路径,文件夹之间用
空字符,例如“Bookmark Menu\0Collection\0Example”
5. `$TITLE`为书签标题,不带路径;例如,对于
书签名称“书签菜单 |收藏 |示例”为“示例”。
## 可以在专家模式下完成的特殊任务示例
### 任务
1. 如果两个书签的 URL 仅开头的“https:”与“http:”不同,则将其视为重复书签。
2. 如果两个书签的 URL 与第一个“?”符号匹配,则认为两个书签是重复的,即只是它们的附加信息不同。
3. 不要考虑任何名为“先生”的文件夹中的任何书签。 Dupe`` 作为副本。
4. 将所有书签添加到重复列表中,无论是否重复。
5. 添加文件夹`Bookmark Menu | 中的所有书签Remove` 到重复项列表(无论它们是否实际上是重复项)。
6. 如果两个书签具有相同的名称(而不是相同的 URL),则将它们视为重复书签。
7. 如果两个书签位于同一个文件夹中,则将它们视为重复书签。
### 如何在专家模式下完成上述任务
1. 使用替换规则:“替换 URL 匹配”`^http:` “by” `^https:`
解释:通过替换所有以 `http:` 开头的 URL
通过 `https:`,实际 URL 是否以 `http:` 开头并不重要
或`https:`。当然,我们可以交换 `http` 的角色
和我们规则中的 `https`。
2.使用替换规则:“替换URL匹配”`\?.*`“by”``(空字符串)
说明:简单地省略 ?符号及其后的所有其他符号
在所有网址中。
3. 使用过滤规则:“姓名匹配”`\0Mr\。 Dupe\0` 或 `\0Mr[.] Dupe\0`
解释:如果书签位于名为“Mr. Dupe”,其全名(路径)将包含文本“\0Mr.欺骗\0”;所以匹配那个文本。由于“。” symbol 对于正则表达式有特殊意义,我们必须引用它。这可以通过“\.”或查找仅包含单个符号“.”的字符类“[…]”来完成。
4.使用替换规则:“替换URL匹配”`.+`“by”`constant`
解释:通过将原始 URL 的所有字符 (`.+`) 替换为该文本,假设每个书签都具有 URL `constant`。
5、使用替换规则:“名称匹配”`^Bookmark Menu\0Remove\0` “替换URL匹配” `.+` “by” `constant`
与 4 一样,但仅适用于全名以匹配路径开头的书签。
这仅在文件夹包含至少 2 个书签时有效(否则 `constant` 不是重复的 URL)。当然,人们可能会使用实际重复的 URL 而不是 `constant` 来解决这个限制。
6.使用替换规则:“替换URL匹配”`.+`“by”`$TITLE`
说明:在查找重复项时,将所有书签 URL 替换为相应的书签标题。
7. 使用替换规则“替换 URL 匹配” `.+` “by” `$NAME` 后跟另一个替换规则“替换 URL 匹配” `[^\0]*$` “by” ` `(空字符串)
解释:首先将 URL 替换为其全名路径,然后通过在末尾剪切最长的非 `\0` 符号序列来省略该路径的最后一个组成部分。
##贡献者
(按字母顺序排列)
- Henaro aka Ironwool(俄语和乌克兰语翻译;重新设计 svg 图标;提供图标)
- Juan Salvador Aleixandre Talens(西班牙语翻译)
- YFdyh000(简体中文翻译)