// ==UserScript== // @name 博客网站的精简和宽屏处理 // @namespace https://github.com/liehuoe/tampermonkey_script // @version 0.1.4 // @author liehuoe // @description 自定义精简 // @license MIT // @match https://*.zhihu.com/* // @match https://*.csdn.net/* // @match https://*.jianshu.com/* // @match https://*.juejin.cn/* // @match https://*.51cto.com/* // @match http://*.360doc.com/* // @match https://*.bilibili.com/* // @icon data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNzAxNDAzMDEwODAzIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9Ijg1NTgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PHBhdGggZD0iTTMyIDY0TDk2IDB2MTAyNGwtNjQtNjRoOTI2LjQ3NmwtNjQgNjRWMGw2NCA2NEgzMnpNOTU4LjQ3NiAwdjEwMjRIMzJWMGg5MjYuNDc2eiIgcC1pZD0iODU1OSIgZmlsbD0iI2Q0MjM3YSI+PC9wYXRoPjxwYXRoIGQ9Ik0xNzguMjg2IDIxMC4yODZsNjQtNjR2MjkyLjU3MWwtNjQtNjRIODEyLjE5bC02NCA2NFYxNDYuMjg2bDY0IDY0SDE3OC4yODZ6IG02MzMuOTA0LTY0djI5Mi41NzFIMTc4LjI4NlYxNDYuMjg2SDgxMi4xOXpNMTc4LjI4NiA3NDYuNjY3bDY0LTY0djE5NS4wNDdsLTY0LTY0SDgxMi4xOWwtNjQgNjRWNjgyLjY2N2w2NCA2NEgxNzguMjg2eiBtNjMzLjkwNC02NHYxOTUuMDQ3SDE3OC4yODZWNjgyLjY2N0g4MTIuMTl6TTc4Ny44MSA1OTIuNzYyYzE3LjY3MyAwIDMyLTE0LjMyNyAzMi0zMiAwLTE3LjY3My0xNC4zMjctMzItMzItMzJIMjAyLjY2N2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyIDAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMkg3ODcuODF6IiBwLWlkPSI4NTYwIiBmaWxsPSIjZDQyMzdhIj48L3BhdGg+PC9zdmc+ // @grant GM_addStyle // @grant unsafeWindow // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_getValue // @grant GM_setValue // @downloadURL none // ==/UserScript== let autoWidthDisabled = false; function initAutoWidthDisabled() { const key = 'autoWidthDisabled'; autoWidthDisabled = GM_getValue(key); let menuId = GM_registerMenuCommand( `${autoWidthDisabled ? '🔲' : '✅'}宽屏处理`, () => { GM_setValue('autoWidthDisabled', !autoWidthDisabled); GM_unregisterMenuCommand(menuId); initAutoWidthDisabled(); location.reload(); } ) } initAutoWidthDisabled(); /** CSDN */ function csdn() { // 右上发布文章弹窗 GM_addStyle('.csdn-toolbar-creative-mp{display:none !important}'); // 右边工具栏 GM_addStyle('.csdn-side-toolbar{display:none !important}'); } /** CSDN 博客 */ function csdn_blog() { // 右上登录提示 GM_addStyle('#csdn-toolbar-profile-nologin{display:none !important}'); // 左边侧栏 GM_addStyle('.blog_container_aside{display:none !important}'); GM_addStyle('#toolBarBox .left-toolbox{left:0 !important; width:100% !important}'); // 下方"关注博主即可阅读全文" GM_addStyle('.hide-article-box{display:none !important}'); GM_addStyle('#article_content{height:auto !important}'); // 宽屏 if (!autoWidthDisabled) { GM_addStyle('#mainBox{flex:1 !important; width:0 !important; margin-right:0 !important}'); GM_addStyle('#mainBox > main{width:100% !important}'); } else { GM_addStyle('#mainBox{width:auto !important;'); } // 显示右边目录 GM_addStyle('#rightAside{display:none !important}'); GM_addStyle('#rightAsideConcision{display:block !important}'); // 右下"觉得还不错" GM_addStyle('.tool-active-list{display:none !important}'); // 右下分享按钮 GM_addStyle('#tool-share{display:none !important}'); // 右下登录弹窗 GM_addStyle('.passport-login-tip-container{display:none !important}'); // 滚动时弹出登录弹窗 document.addEventListener("scroll", e => e.stopPropagation(), true); // 免登录复制 GM_addStyle('#content_views pre code{user-select:text !important}'); GM_addStyle('#content_views pre{user-select:text !important}'); GM_addStyle('#content_views{user-select:text !important}'); GM_addStyle('#articleSearchTip{display:none !important}'); document.querySelectorAll('code').forEach((el) => el.addEventListener('copy', (e) => e.stopPropagation(), true)); // 站外直链 window.addEventListener('load', () => { document.querySelectorAll('#article_content a:not([href*="csdn.net"])').forEach((el) => { el.addEventListener('mouseover', (e) => e.stopPropagation(), true); el.addEventListener('click', (e) => e.stopPropagation(), true); }); }, { once: true }); } /** CSDN文库 */ function csdn_wenku() { // 去除需要点击"阅读全文"才能展示整篇文章 GM_addStyle('.article-box > .cont{max-height:unset !important}'); GM_addStyle('.article-box > .cont > .open {display:none !important}'); // 去除右栏的个人信息和相关推荐 GM_addStyle('.layout-right {display:none !important}'); // 宽屏调整 if (!autoWidthDisabled) { GM_addStyle('.layout-center {width:100% !important}'); } } /** 知乎 */ function zhihu() { // 中间登录弹窗 GM_addStyle('.Modal-wrapper{display:none !important}'); GM_addStyle('html{overflow:auto !important; margin-right: 0 !important}'); // 右上登录弹窗 GM_addStyle('div[style*="margin-top: 14px"][style*="position: fixed"]{display:none !important}'); // 右下登录弹窗 GM_addStyle('div[style*="transform-origin: center bottom"][style*="margin-top: -6px"]{display:none !important}'); // 站外直链 const observer = new MutationObserver((mutations) => mutations.forEach((item) => { const token = 'link.zhihu.com/?target='; const els = [ ...item.target.querySelectorAll(`a.external[href*="${token}"]`), ...item.target.querySelectorAll(`a.LinkCard[href*="${token}"]`), ].forEach((el) => { el.href = decodeURIComponent(el.href.slice(el.href.indexOf(token) + token.length)); }); })); observer.observe(document.body, { childList: true, subtree: true }); } /** 知乎 专栏 */ function zhihu_zhuanlan() { // 上方header不要固定位置 GM_addStyle('.ColumnPageHeader{position:relative !important}'); // 宽屏 if (!autoWidthDisabled) { GM_addStyle('.Post-Main{padding: 0 10px !important}'); GM_addStyle('.Post-Header{width: auto !important}'); GM_addStyle('.Post-RichTextContainer{width: auto !important}'); GM_addStyle('.RichContent-actions{width: 100% !important; left: 10px !important}'); GM_addStyle('.Post-SideActions{display: none !important;}'); // 隐藏右边点赞 GM_addStyle('.Post-Sub > div{overflow: hidden !important; width: auto !important; margin-left: 10px !important;}'); // 评论 } } /** 知乎 文章(有专栏,问答的内容) */ function zhihu_tardis_zm() { // 上方header不要固定位置 GM_addStyle('.sgui-header{display:none !important}'); // 宽屏 if (!autoWidthDisabled) { GM_addStyle('.Container{max-width:unset !important}'); } } /** 知乎 问答 */ function zhihu_question() { // 宽屏 if (!autoWidthDisabled) { GM_addStyle('.Question-main{width: auto !important}'); GM_addStyle('.Question-main > .ListShortcut{flex:1 !important; width:0 !important}'); GM_addStyle('.Question-mainColumn{flex: 1 !important; width:auto !important; margin-right:10px !important}'); GM_addStyle('.AuthorInfo{max-width: none !important;}'); } // 右边下载知乎客户端 GM_addStyle('.AppBanner{display: none !important;}'); // 上方的"登录后你可以" GM_addStyle('.Question-mainColumnLogin{display: none !important;}'); } /** 简书 博客 */ function jianshu_blog() { // 右边悬浮工具栏 GM_addStyle('footer + div{display:none !important;}'); // 右下热门故事 GM_addStyle('aside > section + div{display:none !important;}'); // 宽屏 if (!autoWidthDisabled) { GM_addStyle('div[role="main"]{width:auto !important;}'); GM_addStyle('div[role="main"] > div:first-child{flex:1 !important;width:0 !important;}'); } // 文章下方的故事和推荐阅读 GM_addStyle('div[role="main"] > div:first-child > section:first-child ~ section{display:none !important;}'); } /** 掘金 博客 */ function juejin_blog() { // 左边悬浮工具栏 GM_addStyle('.article-suspended-panel{display:none !important;}'); // 右边相关推荐和精选内容 GM_addStyle('.article-catalog ~ div{display:none !important;}'); // 右下的"登录掘金领取礼包" GM_addStyle('.bottom-login-guide{display:none !important;}'); // 右下的除回到顶部外的悬浮按钮 GM_addStyle('*:has(~ .to-top-btn){display:none !important;}'); // 去除右下方的浮动图标"创作者榜单" GM_addStyle('.global-float-banner{display:none !important;}'); // 去除右下方的"关注掘金公众号" GM_addStyle('.post-bottom-right{display:none !important;}'); // 下方的为你推荐 GM_addStyle('.recommended-area{display:none !important;}'); // 宽屏调整 if (!autoWidthDisabled) { GM_addStyle('.main-container{max-width:unset !important;width:calc(100% - 30px) !important;}'); GM_addStyle('.main-area{width:calc(100% - 25rem - 20px) !important;}'); } } /** * 51cto 博客 * https://blog.51cto.com/51ctoblog/8633619 */ function cto_blog() { // 去除滚动时出现的header, 增加阅读高度 document.addEventListener('scroll', (e) => e.stopPropagation(), true); // 推荐视频 GM_addStyle('.recommend-video{display:none !important;}'); // 去除左边悬浮工具栏 GM_addStyle('.action-aside-left{display:none !important;}'); // 去除右边悬浮工具栏 GM_addStyle('aside.minmenu{display:none !important;}'); // 免登录复制 document.addEventListener('copy', (e) => e.stopPropagation(), true); document.addEventListener('keydown', (e) => e.stopPropagation(), true); // 宽屏调整 if (!autoWidthDisabled) { // 保留右栏显示目录 GM_addStyle('#page_center{width: calc(100% - 20px);display: flex;}'); GM_addStyle('#page_center>.detail-content-left{flex: 1;margin-right: 10px;}'); } } /** * 51cto 文章 * https://www.51cto.com/article/621735.html */ function cto_article() { // 去除左边浮动工具栏 GM_addStyle('.left-window{display: none;}'); // 去除右栏 GM_addStyle('.article-right{display: none;}'); // 去除公众号二维码 GM_addStyle('.suspension-pendant_r{display: none;}'); // 去除右下方工具栏 GM_addStyle('.components-common-suspension{display: none !important;}'); // 宽屏调整 if (!autoWidthDisabled) { GM_addStyle('.article{width: calc(100% - 20px) !important;}'); GM_addStyle('.article>.article-left{width: 100% !important;}'); } } /** 360doc */ function doc360() { // 居中 GM_addStyle('.doc360article_content{width:fit-content !important;padding:0 !important;}'); // 去除滚动时弹出登录弹窗 document.addEventListener("scroll", e => e.stopPropagation(), true); // 去除右栏 GM_addStyle('.doc360article_content>.a_right{display:none !important;}'); // 去除左下角的工具栏 GM_addStyle('#goTop2{display:none !important;}'); // 去除左边的二维码 GM_addStyle('.floatqrcode{display:none !important;}'); // 去除下方的"猜你喜欢" GM_addStyle('#divyoulikeadtitle{display:none !important;}'); // 去除选中文字的浮动工具栏 GM_addStyle('#contextmenudivmouseup{display:none !important;}'); // 免登录复制 document.addEventListener('copy', (e) => e.stopPropagation(), true); document.addEventListener('contextmenu', (e) => e.stopPropagation(), true); // 宽屏调整 if (!autoWidthDisabled) { GM_addStyle('.doc360article_content>.a_left{width:100% !important;}'); GM_addStyle('.doc360article_content>.a_left>#bgchange{width:100% !important;padding:18px 20px 0 !important;box-sizing:border-box !important;}'); GM_addStyle('#articlecontent>table{width:100% !important;}'); const ctx = document.getElementById('articlecontent'); ctx.querySelectorAll('*[style*="max-width:"]').forEach((e) => e.style.maxWidth = 'unset'); } } /** bilibili 博客 */ function bilibili_blog() { // 去除右上方的登录提示框 window.addEventListener('load', () => { document.querySelectorAll('.van-popover:has(> .unlogin-popover)').forEach((e) => e.style.display = 'none'); }); // 去除滚动时弹出的登录提示 GM_addStyle('.login-tip{display:none !important;}'); // 宽屏调整 if (!autoWidthDisabled) { GM_addStyle('.article-detail{width:calc(100% - 90px) !important;margin-right:80px !important;}'); GM_addStyle('.right-side-bar{margin-left:0 !important;right:10px !important;}'); GM_addStyle('#article-content{padding:0 !important;}'); } } const root = { com: { zhihu: { func: zhihu, zhuanlan: { func: zhihu_zhuanlan }, www: { question: { func: zhihu_question }, tardis: { zm: { func: zhihu_tardis_zm } } } }, jianshu: { www: { p: { func: jianshu_blog } } }, '51cto': { blog: { func: cto_blog }, www: { article: { func: cto_article } } }, '360doc': { www: { content: { func: doc360 } } }, bilibili: { www: { read: { func: bilibili_blog } } } }, cn: { juejin: { post: { func: juejin_blog } } }, net: { csdn: { func: csdn, blog: { func: csdn_blog }, wenku: { func: csdn_wenku } } } }; /** * * @param route root/children * @param paths {string[]} */ function exec(route, paths) { const item = route[paths[0]]; const func = route.func; paths = paths.slice(1); let rc = true; if (item) rc = (exec(item, paths) !== false); if (rc && func) rc = (func() !== false); return rc; } /** main */ (function () { 'use strict'; /** @type {string[]} */ let paths = unsafeWindow.location.pathname.split('/').slice(1); /** @type {string[]} */ let domains = unsafeWindow.location.hostname.split('.'); exec(root, [...domains.reverse(), ...paths]); })();