zhihu optimizer, 这是一款让知乎变得更好的轻量级Tampermonkey脚本.....Make Thing Better and Simpler
main features:
- 界面阅读更舒适
- 将部分高频操作转为自动化, 如连续在多个不同的答案, 专栏中自动滚动页面.
- 收集信息的辅助
浏览器兼容测试: chrome 80+ 完美运行; Firefox未作兼容测试
Tampermonkey版本: 4.x +
(建议使用尽可能高版本的chrome | chromium浏览器和Tampermonkey扩展)
安装地址: Github
推荐使用浏览器: Centbrowser(百分浏览器)
推荐搭配脚本: Toc Bar, auto-generating table of content
注1: 在edge浏览器上, 一些操作的窗体也别于chrome, 没那么友好, 如promot, alert, 其位置位于浏览器的顶部位置, 而不是中间
注2: 脚本适用于在不登录账号的状态下使用, 主要适配question, answer, column, search, 这四个页面 注3: 新增的其他大量功能并未完整列举.
- 简介
- 目录
- Q&A
- 关于代码
快捷键是本脚本的核心组成部分, 大量的功能的启用或关闭都是通过快捷键操作来完成的
部分快捷键位置示意图
由于快捷键的数量很多, 具体以表格内容的为标准, 上图仅作为参考
注意事项:
-
shift + 鼠标右键, 在非专栏首页只能折叠点击区域的答案, 而在专栏首页则将具有展开和折叠功能.
但需要注意的是, 专栏首页的展开内容仅作为快速阅读使用, 如果对应项目包含GIF, 视频等多媒体内容将不作处理, 必须打开阅读器, 相应的多媒体内容才能在页面正常展示和使用.
如果你点击的是链接, 则展开和折叠将不会起作用, 而是会执行对应的链接处理(即表格底部描述的对应功能)
-
部分功能和知乎原页面预置的快捷键有冲突, 冲突的几组快捷键将被本脚本的取代掉(可自行对照上面快捷键表格)
一些需要注意的快捷键:
-
高亮
支持4种颜色可选, 分别为黄色, 绿色, 紫色, 红色
辅助键: 'Shift'键
-
yellow => 'y';
-
green => 'g';
-
purple => 'p';
-
red => 'r';
通过此项, 将可以对专栏文章进行标记处理, 相应的标记在使用"打印"为PDF时,将会保存下来
-
命令行
辅助键: shift + q, (query);
具体支持的命令参考命令行部分
-
多搜索引擎
辅助键: shift + 'm', (multi)
具体参考搜索多搜索引擎部分
-
编辑当前页面
辅助键: 无, F2
编辑模式将使得当前页面可以被用户自由修改; 为避免页面异常, 在使用后, 务必退出可编辑模式
-
自动滚屏
辅助键: 无
"`", 该键位于"Tab"键上方(左上角的角落位置那个按键)
双击开始滚动或者暂停;
此项功能是自动化的基础, 自动化围绕着此功能展开, 具体参考自动化部分.
其中和此项密切相关的快捷键为 'shift' + 'a'
-
PDF打印排版优化
辅助键: shift + "["
清除不相关的内容(轻微调整页面布局, 如标题居中), 方便生成主要包含正文PDF文件, 增加和 Toc Bar, 自动生成文章大纲联动
-
用户名(user), 该用户发表的所有内容将在上述页面被移除掉, 例如: 故事档案局
-
关键词(keyword), 此项覆盖的范围最广, 内容, URL, document.title..., 假如URL或document.title包含有关键词的, 将在打开页面前警示用户, 如果内容包含的, 相应项将从上述页面移除
-
问题(question), 该问题所包含的所有答案将从上述页面被移除掉
-
答案(answer)
-
专栏文章(article)
使用非常简单, 只需要点击相应的按钮即可完成, 取消也是如此
-
用户名拦截:
打开用户的主页面, 如 盐选成长计划
- 其他的项皆是类似操作
注1: 拦截的优先级, 针对包含用户名称的项, 用户名优先级最高; 全局, 关键词的优先级最高
注2: 用户拦截, 为唯一的同步操作, 即在拦截或取消拦截, 相应的操作会直接同步到所有的上述页面, 不需要刷新页面
注3: 用户拦截和话题拦截的数据存储于Tampermonkey内置存储, 专栏文章和答案拦截存储于浏览器的IndexedDB中(相应区别见Q&A)
注4: 关键词用户自定义功能尚未开放, 内置关键词仅包含少量的常见垃圾词汇
目前支持的命令有:
当然你也能自定义壁纸或者直接使用阅读器的壁纸
如果图片载入太慢, 或者你特别喜欢某张壁纸, 可以 $bgi -f , 此命令将会设置固定使用该壁纸, 同时对壁纸进行压缩缓存, 以获得更好的使用体验, 你可以调整压缩的比例, 具体操作见于下面命令行表格
-
light, 用于设置屏幕颜色遮罩
注意, 在设置颜色时, 必须输入的格式是 # + 颜色代码, 不支持rgb(0, 0, 0)此类格式
-
fold, expand, 顾名思义, 用于在话题, 答案|问题, 搜索页面折叠, 展开相应的内容, 但需要注意的是每次展开将被限制在最多5项(这是为了避免短时间内载入大量的内容, 在载入内容的同时将同时触发过滤器检查机制, 大量的内容会导致页面潜在可能的卡顿)
折叠将以屏幕可见的第一项内容(如:答案)为中心, 上下展开或折叠
-
reset, 用于重置数据的存储, 使用的时候需要谨慎(小心数据的误删)
如果你之前安装过旧版本的Zhihu_Optimizer, 建议使用 $reset -t, 清除一下本脚本在Tampermonkey的数据, 由于之前的版本可能存储了异常的数据导致有些功能无法正常使用, 但需要注意的是, 使用该命令需谨慎, 避免重要数据丢失
-
help, 打开相应的帮主页面
如快捷键, 命令行, 用户手册等页面
-
monkey ,设置Tampermonkey
由于需要使用到Tampermonkey的ID, 如果用户不设置, 将会自动检测浏览器的UA来判断, 仅支持Edge和Chrome, 如果你浏览器有伪装UA的扩展或脚本, 检测可能将会出问题; 同时由于microsoftedge和chrome store的扩展通用, 所以使用该命令前先设置好Tampermonkey的ID
$monkey -e iikmkjmpaadaobahmlepeloendndfphd
注意事项: 假如在使用脚本的过程中出现异常, 可以尝试清除Tampermonkey等存储的数据
-
单一快捷键
选中搜索, 'dm', 'db', 这两项不支持, 直接选中搜索
-
弹窗搜索
-
2.1 单一搜索引擎
如 z java, 表示在使用知乎搜索引擎, 来搜索java, 支持'dm', 'db'
-
2.2 混合搜索
如 $ -z -b -db 机器学习, 表示将同时搜索知乎, B站, 豆瓣读书
注意, 不同搜索引擎之间需要用空格隔开
即, IndexedDB的数据
导出, 快捷键'shift' + 'b', (backup)
导入, 快捷键 'shift' + 'i', (import); 取消此窗体也为此快捷键
注意事项:
-
在清理浏览器前, 切记备份数据
-
www.zhihu.com, zhuanlan.zhihu.com的数据要分别导出或导入
生效页面: 全站
预置4种颜色可选, 在Tampermonkey菜单可选
分别为: 土黄色, 橄榄绿, 草原绿, 灰色(具体颜色效果参考实际)
亮度将根据时间自动梯度调节, 颜色, 透明度都将同步调节
支持暂时关闭当前页面颜色调节, 支持完全退出页面颜色调节
支持使用命令行进行自定义调节(具体参考命令行), 假如你在命令行设置自定义屏幕颜色遮罩后, 使用菜单栏项进行设置, 则通过命令行进行的设置将会被自动清除
生效页面: 专栏文章
对内容的文字颜色进行一定的规律调节, 预置红, 蓝两种基准色(即在这两种颜色上进行梯级调节)
突出英文字母, 和数字, 字母和数字分别采用绿色和紫色交替显示
需要注意的是: 如果原文已经加粗(或者已经表示强调的内容), 标题, 链接等内容将不会受到影
代码区将对知乎未标记的JavaScript代码进行关键词高亮
默认开启, 需要手动关闭, 'shift' + 'T', (Text)
-
1.1 自动加载下一内容
快捷键'shift' + 'a', (auto), 开启或关闭自动加载, 以下内容皆如此
在开启自动模式后, 'a', 快捷键将可以临时暂停
-
1.2 自动加载阅读模式
快捷键'shift' + 'd', (direct)
在打开页面5秒后, 将自动加载阅读模式
-
1.3 '护士模式'
快捷键 'shift' + 'n', (nurse, 护士)
在打开页面5秒后, 将自动加载阅读模式, 同时自动开启自动模式
只支持'shift' + 'a', 自动加载模式, 但是需要注意的是, 你当前阅读的文章必须在侧边栏的目录中, 如, 下图所示
- 注意事项
-
3.1 开启自动模式之后, 为了避免冲突, 部分功能可能会暂时禁用, 如加载间隙期(如等待5s), 手动去点击一些其他的项目, 或退出阅读模式等都会受到限制, 可以关闭自动模式之后在进行操作
-
3.2 在答案, 问题页面下, 阅读器模式, 由于答案的长短不一(如只有几十个字), 将会自动分析其内容长度, 来决定在当前答案停留的时间, 为避免过短时间滚动到下一答案, 将会稍微延长等待时间
专栏文章下和专栏首页, 侧边栏的轻微差异
注意: 在非专栏文章页面, 如需启用侧边栏, 需要先follow任意一个专栏先
-
1.1 订阅(subscribe)
上限10项, 用于你当前急切关注的专栏, 超出上限, 将根据订阅的先后进行清除, 即早期添加进来的将被后期添加的取代
订阅方法:
快捷键在(专栏文章页面), 'shift', + 's', (subscribe)
或者:
-
1.2 跟随(follow)
近似于fans, 无理性的, 将你喜欢的专栏都可以装进来, 不设上限
快捷键在(专栏文章页面), 'shift', + 'f', (follow)
或者, 如上图
*注意不带'$'开头则默认检索你follow的专栏数据, 带**$*号的将检索对应的项
-
2.1 按关键词, 单一关键词, $a=(python), 多个关键词$a=(python 机器学习), 使用空格进行分隔, 括号必须存在
-
2.2 按时间搜索, 支持小时(hour), 天数(day), 星期(week), 月份(month), 年(year)
$h<24, 表示收藏时间小于24个小时, 多个条件, $d>1 $d<7, 即收藏时间大于1天, 小于7天
-
2.3 按文章ID搜索, $p=102274476, (精确搜索)
-
2.4 混合条件搜索(时间+关键词), 如: $d>3 $d<7 $a=(python javascript), 即收藏时间大于3天小于7天, 关键词包含python和JavaScript;
-
2.5 收藏的答案有别于收藏的专栏文章, 使用 $q 进行检索, 如 $q=javascript, 或多条件 $q=javascript python, 即标题中同时包含
-
3.1 专栏
见单一页面功能图示
-
3.2 阅读器
见单一页面功能图示
-
4.1 专栏
快捷键 shift + 'l', (read it later)
-
4.2 阅读器
见单一页面功能图示
注意事项: 在'pages'项中, 有一个'reverse', 可以对目录进行倒排序, 可以方便查看该专栏很久以前发表的文章或你follow的专栏
将征用知乎专栏首页作为数据的汇总页面专栏首页
(快捷键, shift + x可以直接打开首页)
你subscribe & follow的专栏, 专栏文章或答案收藏, 稍后阅读等数据将在此页面汇聚, 作为个人的新主页
界面以及主要功能介绍
(收藏, 稍后阅读等功能见于右侧工具栏)
在图片模式下, 并不会加载所有的当前页面图片, 只加载含有大图(原图)的图片
注意事项:
需要注意的是由于在阅读器中, 知乎原有的视频, GIf, 图片等多媒体内容无法正常由知乎原网页的JS做出响应.
在阅读器中相应功能将由本脚本独立提供, 所以当你在阅读器中查看视频等内容和原页面是有所差别的(但是不会影响使用)
例如: 阅读器_播放视频
(Centbrowser(百分浏览器)下的效果, 可以直接下载视频)
简单模式, 仅保留搜索的主要内容,可以移除掉知乎的商业推广, 如live, 盐选, 视频等
(dislike, 该文章将从搜索, 话题等页面当中被拦截, like暂时未启用任何功能)
(该功能已经处于不可用状态, 提供白噪音来源的站点已经停止服务)
预置10种不同风格的白噪音可选, 但需要注意的是专栏主页已经预设音频控制项(不需要手动开启)
shift + w, (whitenoise), 生成或销毁音频播放器(生成播放器的同时将会同步加载音频, 加载成功后会自动播放)
shift + v, 播放或暂停
shift + +, -, 控制音量
更多相关操作详见与快捷键操作
注意事项:
-
除了专栏首页下有音频控制栏, 其他的页面都不生成图形界面, 完全由快捷键控制;
-
为了避免影响注意力, 白噪音设置的默认播放模式为循环播放, 播放完切换下一, 需要手动切换
-
移除预置搜索框搜索词
-
移除搜索框下的热门搜索, 不影响搜索建议和搜索历史
-
禁止搜索框在空白状态依然产生搜索的行为, 即不输入任何内容的状态下, 按回车键依然会搜索(关键词为知乎的热门搜索)
F12, 即可查看到包含脚本信息, 数据存储情况, 过滤内容提示(如你可能会看到那种用户被拦截等), 错误等
即在打开外链时, 不需要在知乎安全中心跳转*(全局生效, 包括评论区)*
移除在为未登录状态下, 页面出现的登录弹窗(不影响正常的登录, 当你主动登录账号时)
移除版权声明, 将部分常用的中文符号换成对应的英文符号, 如中文空心句号, 换成英文实心句号, 此项默认开启, 如需关闭此设置, 见于快捷键操作部分
对广告内容进行轻微调整
拦截导致页面在自动滚动时出现卡顿的事件
数据的存储选择了两种不同的存储方式
-
Tampermonkey自带的数据存储, 这部分的数据为相对重要的数据, 数据量较小的数据, 如关注的专栏, 屏蔽掉的用户, 屏蔽掉的话题, 问题
-
IndexedDB, 反之, 用于大规模的数据的存储, 如收藏的文章(以及其生成的摘要, 备注, 标签等), 和屏蔽掉的答案或专栏文章
注意事项:
-
使用IndexedDB存储的问题
这是高度受制于浏览器, 如同源限制(简单的理解就是zhuanlan.zhihu.com无法和www.zhihu.com进行直接的数据访问), 限制了IndexedDB的可用性, 故而在收藏答案时, 只做简单处理, 并不会像收藏专栏文章, 可以收集各个方面的数据.
-
谨慎清理浏览器
注意IndexedDB存储的数据会在清理浏览器, 或者使用管家类(xx垃圾清理, 隐私保护等噱头的工具软件)"清理"系统时, 会一并移除
-
用户所有的使用数据均为本地存储
- 由于知乎的答案是采用懒加载模式,(即你滚动到特定的页面时, 才加载数据), 而在阅读模式下, 采用的为模拟滚动的方式触发数据的加载, 可能有时无法有效加载数据, 可以尝试退出阅读器, 进行手动滚动加载
- 页面潜在崩溃, 在阅读模式下采用模拟滚动来加载后续的数据, 短期内可能由于滚动过快, 过于频繁, 触发大量数据加载, 导致页面可能出现崩溃(亦或者知乎页面的反爬保护)
- 得益于代码的优化, 以上两种情况在3.4.7.x以上版本暂未出现过, 并不保证是否依然存在类似问题.
如果你之前安装过旧版本的zhihu optimizer, 特别是3.5.0.0之前的版本的, 可能部分数据存储异常, 导致部分功能异常, 可以尝试使用$reset 命令(使用方法, 参考命令行部分)重置一下数据(注意将会清除部分数据)
-
api, 代码所使用到的api接口均源于搜索查找所得, 原api所有者持有最终版权, 请勿滥用
-
第三方代码, 少量使用到第三方代码的项为
-
2.1 阅读器, html和css主要源于360doc.com
-
2.2 flipclock, html和css
-
2.3 其他的零散来源不同的站点如, BiliBili, zhihu等
-
2.4 以上使用均已在代码中标注出处来源(部分未提及的, 均已在代码处, 标注出处), 原作者版权所有, 请勿滥用
-
2.5 如原作者禁止以上代码, 请联系我, Lian_Hwang@126.com, 我将删除以上对应代码
-
本代码遵循MIT开源协议, (以上使用的第三方代码, 原作者版权所有), 使用请自行风险评估
-
代码一次写成, 没有进行二度重构, 修修补补, 可阅读性价差, 将就吧...
-----------------------------------------------------------End-------------------------------------------------------------------
Make Thing Better & Simpler