目的:改善阅读体验,怀念知乎遗风

清理知乎回答中的搜索关键词

Sample Text:

<p>所以脖子应该是更早做[汉芯](https://www.zhihu.com/search?q=汉芯&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra={"sourceType"%3A"answer"%2C"sourceId"%3A2887595601})的时候就卡住了。
几十年[急功近利](https://www.zhihu.com/search?q=急功近利&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra={"sourceType"%3A"answer"%2C"sourceId"%3A2887595601})追求弯道超车,其实弯道的时候翻车更多。
</p> 

Search Regex:

/\[(.*?)\]\(https:\/\/www.zhihu.com\/search.*?\)/ 

Replace Expression: \1

解释正文中的搜索关键词都是以链接的方式嵌入的,文本部分放在 ​[]​ ,链接的 url 则是以 search 路径开头,所以,我们将文本提出到第一个 group,剩余的内容抛弃。最后在替换步骤用 ​\1​ 反引用第一个 group 的内容,即可实现提纯。

清理外链提醒

如果问题答案中或专栏文章中有一个外链,那么它的 href 标签会被改成 https://link.zhihu.com/?target=https%3Awww.v2ex.com/xxxxxx 这样的网址。

对于非知名网站,知乎安全中心会提醒你即将离开知乎,请注意帐号和财产安全,点击继续访问后才能进入。若是你经常看综述型的文章真是烦不胜烦,可直接使用下面的简短代码来去除;同理,也可用于油猴脚本在页面加载完成后自动触发,或手动执行即可。

const tags = ["a[href^='https://link.zhihu.com']", "a[href^='http://link.zhihu.com']"]
tags.forEach((tag) => {
  document.querySelectorAll(tag).forEach((aEle) => {
    if (!aEle || !aEle.href) return;
    let href = aEle.href.trim().replace(/^.*link\.zhihu\.com\/\?target=(.*?)$/im, '$1')
      .trim().replace(/^\s*http[^\/]*\/\//, 'http://');
    href = decodeURIComponent(href); // 把有特殊含义的字符串,解码回原字符,如 `%3A` 表示 `:`
    aEle.href = href;
  });
})

后续若有更多清理项,再做更新。

添加新评论