CSDN-Optimize-Beautify-Simplify

优化和美化CSDN浏览体验 - 沉浸式阅读、免登录复制、去广告等

От 04.02.2024. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name		CSDN-Optimize-Beautify-Simplify
// @name:zh		CSDN-优化美化极简化-沉浸式阅读-免登录复制-去广告等
// @name:en		Streamline and Beautify CSDN Browsing Experience
// @name:ja		CSDNブラウジング体験の合理化と美化 - 沈浸的読書、広告なしなど
// @name:fr		Rationaliser et embellir l'expérience de navigation CSDN
// @name:es		Simplificar y embellecer la experiencia de navegación de CSDN
// @name:de		Optimieren und verschönern Sie das CSDN-Browsen
// @name:it		Semplificare e abbellire l'esperienza di navigazione CSDN
// @namespace		http://github.com/yuhanawa/UserScript
// @name:zh-CN		CSDN-优化美化极简化-沉浸式阅读-免登录复制-去广告等
// @name:zh-TW		CSDN-優化美化極簡化-沉浸式閱讀-免登入複製-去廣告等
// @description		优化和美化CSDN浏览体验 - 沉浸式阅读、免登录复制、去广告等
// @description:zh		优化和美化CSDN浏览体验 - 沉浸式阅读、免登录复制、去广告等
// @description:en		Streamline and Beautify CSDN Browsing Experience -  Immersive Reading,Ad-free,etc.
// @description:ja		CSDNブラウジング体験の合理化と美化 - 沈浸的読書、広告なしなど.
// @description:fr		Script utilisateur: Rationaliser et embellir l'expérience de navigation CSDN - Lecture immersive, sans publicité, etc.
// @description:es		Script de usuario: Simplificar y embellecer la experiencia de navegación de CSDN - Lectura inmersiva, sin anuncios, etc.
// @description:de		Benutzer-Skript: Optimieren und verschönern Sie das CSDN-Browsen - immersives Lesen, werbefrei, etc.
// @description:it		Script utente: Semplificare e abbellire l'esperienza di navigazione CSDN - Lettura immersiva, senza pubblicità, ecc.
// @description:zh-CN		优化和美化CSDN浏览体验 - 沉浸式阅读、免登录复制、去广告等
// @description:zh-TW		優化和美化CSDN瀏覽體驗 - 沉浸式閱讀、免登录复制、去廣告等
// @grant		GM_setValue
// @grant		GM_getValue
// @grant		GM_addStyle
// @grant		GM_registerMenuCommand
// @match		*://*.csdn.net/*
// @match		*://yuhan-script-config.netlify.app/*
// @match		*://user-script-config-form.vercel.app/*
// @match		*://yuhanawa.github.io/tools/userscriptconfig/*
// @version		0.1.34
// @author		Yuhanawa
// @supportURL		https://greasyfork.org/zh-CN/scripts/471071/feedback
// @license		GPL-3.0
// @icon		none
// @run-at		document-start
// ==/UserScript==

/* 
    csdn v.0.1.34 by Yuhanawa
    Source: https://github.com/Yuhanawa/UserScript
*/

isLoaded=!1,onload(()=>isLoaded=!0);const __props__=new Map;
function $get(k,d){return void 0===d?GM_getValue(k,__props__.get(k)):GM_getValue(k,d)}
function $set(k,v){return GM_setValue(k,v)}
function loadConfig(name,properties){GM_registerMenuCommand("打开设置中心(智能测试)",()=>{var sites;sites=["https://yuhanawa.github.io/tools/userscriptconfig/","https://user-script-config-form.vercel.app","https://yuhan-script-config.netlify.app"],new Promise((resolve,reject)=>{let fastestSite=null,fastestTime=1/0;sites.forEach(function(site){const xhr=new XMLHttpRequest,startTime=(new Date).getTime();xhr.onreadystatechange=()=>{var timeElapsed;xhr.readyState===XMLHttpRequest.DONE&&(timeElapsed=(new Date).getTime()-startTime,console.log(`Ping ${site} took ${timeElapsed}ms`),200===xhr.status&&timeElapsed<fastestTime&&(fastestTime=timeElapsed,fastestSite=site),resolve(fastestSite))},xhr.open("GET",site,!0),xhr.send()})}).then(fastestSite=>{fastestSite?void 0!==GM_openInTab?GM_openInTab(fastestSite,{active:!0}):window.location.href=fastestSite:console.log("No valid site found.")}).catch(error=>{console.error("Error:",error)}),void 0!==GM_openInTab?GM_openInTab("https://yuhanawa.github.io/tools/userscriptconfig/",{active:!0}):location.href="https://yuhanawa.github.io/tools/userscriptconfig/"}),GM_registerMenuCommand("打开设置中心(github|如果打不开点下面的)",()=>{void 0!==GM_openInTab?GM_openInTab("https://yuhanawa.github.io/tools/userscriptconfig/",{active:!0}):location.href="https://yuhanawa.github.io/tools/userscriptconfig/"}),GM_registerMenuCommand("打开设置中心(vercel|被墙)",()=>{void 0!==GM_openInTab?GM_openInTab("https://user-script-config-form.vercel.app",{active:!0}):location.href="https://user-script-config-form.vercel.app"}),GM_registerMenuCommand("打开设置中心(netlify)",()=>{void 0!==GM_openInTab?GM_openInTab("https://yuhan-script-config.netlify.app",{active:!0}):location.href="https://yuhan-script-config.netlify.app"}),Object.keys(properties).forEach(key=>__props__.set(name+"_"+key,properties[key].default)),(location.href.match("yuhan-script-config.netlify.app")||location.href.match("user-script-config-form.vercel.app")||location.href.match("yuhanawa.github.io/tools/userscriptconfig")||location.href.match("localhost"))&&(null==unsafeWindow.userscript&&(unsafeWindow.userscript={}),unsafeWindow.userscript[name]={props:properties,get:$get,set:$set})}
function style(css){var node;"undefined"!=typeof GM_addStyle?GM_addStyle(css):((node=document.createElement("style")).appendChild(document.createTextNode(css)),document.body.appendChild(node))}
function option(name,key,options,current,index,onclick){return null!=current&&null!=index||(current=$set(key,getOptionKeyAndName(options[0]).key),index=options.indexOf(options.filter(x=>getOptionKeyAndName(x).key==current)[0])),-1!==index&&null!=index||($set(key,getOptionKeyAndName(options[0]).key),current=getOptionKeyAndName(options[index=0]).key),name+=`:${getOptionKeyAndName(options[index]).name}[${index+1}/${options.length}]<点击切换模式`,GM_registerMenuCommand(name,()=>{if(index+1>=options.length?$set(key,getOptionKeyAndName(options[0]).key):$set(key,getOptionKeyAndName(options[index+1]).key),onclick)try{onclick()}catch{}location.reload()}),index}
function onload(f){isLoaded?f():document.addEventListener("DOMContentLoaded",()=>f())}
function timeoutOnLoad(f,t){onload(()=>setTimeout(()=>f(),t))}
function intervalOnLoad(f,timeout){onload(()=>setInterval(f,timeout))}
function delay(fn,time,interval){(interval?intervalOnLoad:timeoutOnLoad)(fn,time)}
function run(fts){void 0===fts&&(fts=features);for(const key of Object.keys(fts)){var feature=fts[key];0!=feature.match.filter(m=>"string"==typeof m?null!==window.location.href.match(m):m.test(window.location.href)).length&&addFeature(key,feature)}}
function addFeature(key,feature){var{name,values}=feature;if("$"===name)try{"function"==typeof values?"string"==typeof(result=values(feature))&&style(result):"string"==typeof values&&style(value)}catch(e){console.error(e)}else{var result=Object.keys(values),key0=getOptionKeyAndName(result[0]).key;let current=$get(key,key0),index=result.findIndex(x=>getOptionKeyAndName(x).key===current);-1!==index&&null!=index||($set(key,key0),index=0,current=key0),option(name,key,result,current,index);try{const value=values[result[index]];if(null!==value&&void 0!==value)if("function"==typeof value){const result=value(feature);"string"==typeof result&&style(result)}else"string"==typeof value&&style(value)}catch(e){console.error(e)}}}
function getOptionKeyAndName(optionStr){var key=optionStr.match(/\$([^ ]+)/)?.[0];return key?{key:key.replace("$",""),name:optionStr.replace(key,"")}:{key:optionStr,name:optionStr}}


loadConfig('csdn', {".line_ts":{"widget":"line","title":"如果发现某条设置存在问题请反馈: https://greasyfork.org/zh-CN/scripts/471071/feedback/"},".line_bc":{"widget":"line","title":"❗❗❗修改完记得点保存(在最下面)❗❗❗"},"copy":{"title":"免登录复制","default":"on","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"opt":{"title":"极简化|沉浸式阅读","default":"on","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"width":{"title":"调整文章宽度(前置功能:极简化)","default":"on","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"width_value":{"title":"文章宽度(前置功能:调整文章宽度)","default":"82","props":{"addonAfter":"%"},"description":"单位:%|百分比","hidden":"{{ formData.width === 'off' }}"},"header":{"title":"顶部菜单栏不跟随","default":"on","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"remove_header":{"title":"文章页移除顶部菜单栏","default":"on","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"toolbox":{"title":"低部菜单工具栏不跟随","default":"remove","widget":"select","props":{"options":[{"label":"移除","value":"remove"},{"label":"不跟随","value":"relative"},{"label":"关闭","value":"off"}]}},".line_fz":{"widget":"line","title":"调整字体大小"},"fontsize":{"title":"调整字体大小","default":"on","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"font_size_title":{"title":"标题","default":"32px","hidden":"{{ formData.fontsize === 'off' }}"},"font-size-p":{"title":"正文","default":"18px","hidden":"{{ formData.fontsize === 'off' }}"},"font-size-h2":{"title":"子标题","default":"24px","hidden":"{{ formData.fontsize === 'off' }}"},"font_size_code":{"title":"代码","default":"15px","hidden":"{{ formData.fontsize === 'off' }}"},".line_bg":{"widget":"line","title":"自定义背景"},"background":{"title":"自定义背景(总开关)","default":"off","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"background-value":{"title":"页面背景","description":"body的背景","default":"https://csdnimg.cn/release/blogv2/dist/pc/themesSkin/skin-code/images/bg.png?v20200831","hidden":"{{ formData.background === 'off' }}","widget":"imageInput","format":"image"},"blog-content-box-background-value":{"title":"文章背景","description":"用于放置文章的div颜色","default":"#f5f6f7E6","widget":"color"},"blog-content-box-opacity-value":{"title":"文章透明度","description":"文章整体透明度,包括文章内容","default":"0.98"},"header-box-background-value":{"title":"文章标题及部分卡片背景","description":"建议保持透明或使用高透明度颜色","default":"#00000000","widget":"color"},".line_ui":{"widget":"line","title":"自定义开关每一个UI的","description":"开启为显示该模块,关闭为隐藏该模块"},"ui_opt":{"title":"UI净化","default":"lite","widget":"select","props":{"options":[{"label":"极简化","value":"lite"},{"label":"常规","value":"normal"},{"label":"自定义","value":"custom"},{"label":"关闭","value":"off"}]}},"ui_opt_value":{"title":"UI净化","description":"需要UI净化为自定义模式","default":["#treeSkill","#blogVoteBox",".recommend-box",".first-recommend-box",".second-recommend-box",".insert-baidu-box.recommend-box-style","#recommendNps","#commentBox","#pcCommentBox","#toolBarBox",".blog-footer-bottom","#rightAside","#groupfile","#rightAside .kind_person",".sidetool-writeguide-box",".option-box[data-type=guide]",".option-box[data-type=cs]",".option-box[data-type=report]","#csdn-toolbar","#mainBox .blog_container_aside","#csdn-toolbar .toolbar-container-left","#csdn-toolbar .toolbar-container-right","#csdn-toolbar .toolbar-container-middle","#asideProfile","#footerRightAds","#asideWriteGuide","#asideSearchArticle","#asideHotArticle","#asideCategory","#asideNewComments","#asideNewNps","#asideArchive","#asidedirectory",".passport-container-mini-tip"],"widget":"CSDN_UI_editor","disabled":"{{ formData.ui_opt !== 'custom' }}"}})

let features_csdn_287998627={
	csdn_ui_opt:{name:"净化",match:[/blog\.csdn\.net(\/.*)?\/article\/details./],values:{"极简化$lite":()=>{style(["#treeSkill","#blogVoteBox",".recommend-box",".first-recommend-box",".second-recommend-box",".insert-baidu-box.recommend-box-style","#recommendNps","#commentBox","#pcCommentBox","#toolBarBox",".blog-footer-bottom","#rightAside","#groupfile","#rightAside .kind_person",".sidetool-writeguide-box",".option-box[data-type=guide]",".option-box[data-type=cs]",".option-box[data-type=report]","#csdn-toolbar","#mainBox .blog_container_aside","#csdn-toolbar .toolbar-container-left","#csdn-toolbar .toolbar-container-right","#csdn-toolbar .toolbar-container-middle","#asideProfile","#footerRightAds","#asideWriteGuide","#asideSearchArticle","#asideHotArticle","#asideCategory","#asideNewComments","#asideNewNps","#asideArchive","#asidedirectory",".passport-container-mini-tip"].join(", ")+" { display: none !important; }")},"常规$normal":()=>{style(["#csdn-toolbar .toolbar-logo","#csdn-toolbar .toolbar-btn-mp","#csdn-toolbar .toolbar-btn-writet","#csdn-toolbar .toolbar-btn-msg","#csdn-toolbar .toolbar-btn-vip","#asideProfile .profile-intro-name-boxOpration","#asideProfile .aside-box-footer","#asideProfile .item-rank","#footerRightAds","#asideWriteGuide","#asideHotArticle","#asideCategory","#asideNewComments","#asideNewNps","#asideArchive","#asideSearchArticle","main .article-title-box .article-type-img","#treeSkill","#blogVoteBox",".insert-baidu-box.recommend-box-style","#recommendNps","#commentBox",".blog-footer-bottom","#rightAside .kind_person",".sidetool-writeguide-box",".option-box[data-type=guide]",".option-box[data-type=cs]",".option-box[data-type=report]",".passport-container-mini-tip"].join(", ")+" { display: none !important; }")},"自定义$custom":()=>{style($get("csdn_ui_opt_value")+" { display: none !important; }")},"已关闭$off":()=>{}}},
	csdn_toolbox:{name:"底部不跟随或移除",match:[/blog\.csdn\.net(\/.*)?\/article\/details./],values:{"移除$remove":()=>`.left-toolbox{
          display: none!important;
        }`,"不跟随$relative":()=>`.left-toolbox{
          z-index: 996!important;
          left: 0px!important;
          bottom: 0px!important;
          width: 900px!important;
          position: relative!important;
        }`,"已关闭$off":null}},
	csdn_setting_btn:{name:"设置按钮",match:[/blog\.csdn\.net(\/.*)?\/article\/details./],values:{"已开启$on":()=>{timeoutOnLoad(()=>{var articleTitleBox=document.getElementsByClassName("article-title-box")[0],settingButton=document.createElement("a");settingButton.innerText="脚本设置",settingButton.href="https://yuhanawa.github.io/tools/userscriptconfig/",settingButton.target="_blank",settingButton.style="float: right;margin: 12px;font-size: 20px;text-decoration: underline !important;color: #4ea1db;",articleTitleBox.insertAdjacentElement("afterbegin",settingButton)},200)},"已关闭$off":null}},
	csdn_header:{name:"移除顶部或不跟随或淡化",match:[/blog\.csdn\.net(\/.*)?\/article\/details./],values:{"移除$remove":"#csdn-toolbar{ display: none!important; }","淡化不跟随$opacity":"#csdn-toolbar{position: static !important; opacity: 0.55;}","不跟随$static":"#csdn-toolbar{position: static !important;}","已关闭$off":null}},
	csdn_fontsize:{name:"调整字体大小",match:["csdn.net"],values:{"已开启$on":()=>(style(`body{--font-size-title: ${$get("csdn_font_size_title","32px")
};--font-size-p: ${$get("csdn_font_size_p","18px")
};--font-size-h2: ${$get("csdn_font_size_h2","24px")
};--font-size-code: ${$get("csdn_font_size_code","15px")
};}`),"html{--font-size-title:36px;--font-size-p:18px;--font-size-h2:24px;--font-size-code:15px}html body main div.blog-content-box .article-header-box .article-header div.article-title-box .title-article{font-size:var(--font-size-title)!important}html body main #content_views p{font-size:var(--font-size-p)!important}html body main #content_views h2{font-size:var(--font-size-h2)!important}html body main #content_views pre code{font-size:var(--font-size-code)!important}"),"已关闭$off":null}},
	csdn_copy:{name:"免登录复制",match:[/blog\.csdn\.net(\/.*)?\/article\/details./],values:{"已开启$on":()=>(timeoutOnLoad(()=>{document.querySelectorAll(".hljs-button").forEach(e=>{e.setAttribute("data-title","点击复制"),e.classList.remove("signin"),e.removeAttribute("onclick"),e.addEventListener("click",()=>{e.setAttribute("data-title"," "),navigator.clipboard.writeText(e.parentNode.innerText),e.setAttribute("data-title","复制成功"),setTimeout(()=>e.setAttribute("data-title","点击复制"),1200)})},250),document.querySelector(".blog-content-box").addEventListener("copy",e=>{e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(window.getSelection().toString())},!0),document.addEventListener("keydown",e=>{e.ctrlKey&&67==e.keyCode&&(e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(window.getSelection().toString()))},!0),document.oncopy=null,window.oncopy=null},500),"#content_views pre code{-webkit-touch-callout:text!important;-webkit-user-select:text!important;-khtml-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}"),"已关闭$off":null}},
	csdn_content_fullscreen:{name:"Ctrl + Enter开启专注模式",match:[/blog\.csdn\.net(\/.*)?\/article\/details./],values:{"已关闭$off":null,"已开启$on":()=>{document.addEventListener("keydown",e=>{e.ctrlKey&&13==e.keyCode&&(document.fullscreenElement?document.exitFullscreen():document.querySelector(".blog-content-box").requestFullscreen())})}}},
	csdn_base:{name:"$",match:["csdn.net"],values:()=>(timeoutOnLoad(()=>{var taghtml=document.getElementsByClassName("blog-tags-box")[0].outerHTML+"";document.getElementsByClassName("blog-tags-box")[0].remove(),document.getElementsByClassName("article-bar-top")[0].innerHTML=document.getElementsByClassName("article-bar-top")[0].innerHTML+taghtml,document.getElementsByClassName("time")[0].innerHTML=document.getElementsByClassName("time")[0].innerHTML.replace("于&nbsp;","").replace("&nbsp;发布",""),document.getElementsByClassName("left-toolbox")[0].style.left="auto",document.getElementsByClassName("blog-tags-box")[0].innerHTML=document.getElementsByClassName("blog-tags-box")[0].innerHTML.replaceAll(":","")},100),"on"===$get("csdn_width","on")&&(style("#mainBox > main{ width: 100% !important; }"),style(`body #mainBox{ width: ${$get("csdn_width_value","82")}% !important; }`)),'@charset "UTF-8";#article_content,#mainBox,.article-bar-top,.article-info-box,header div.article-info-box div.blog-tags-box .tags-box.artic-tag-box a.tag-link,main div.blog-content-box .article-header-box .article-header div.article-info-box div.blog-tags-box,main div.blog-content-box .article-header-box .article-header div.article-info-box div.blog-tags-box .tags-box{margin:auto;width:auto!important;height:auto!important;padding:0!important;overflow:hidden}.tag-link{margin:5px 0 0!important;overflow:hidden}main div.blog-content-box article{padding-top:10px}main div.blog-content-box .article-header-box .article-header div.article-info-box div.article-bar-top span{margin-right:4px}main div.blog-content-box .article-header-box .article-header div.article-info-box div.article-bar-top .follow-nickName{margin-right:2px}main div.blog-content-box .article-header-box .article-header div.article-info-box div.article-bar-top .bar-conten{padding-left:0;margin-left:10px}pre .hljs-button{display:block;position:absolute;right:4px;top:4px;font-size:12px;color:#fff;background-color:#666;padding:4px 12px;margin:8px;border-radius:4px;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.05),0 2px 4px rgba(0,0,0,.05)}code,main div.blog-content-box pre.set-code-hide,pre{height:auto!important}.hide-preCode-box{display:none}.set-code-hide,main div.blog-content-box pre{max-height:max-content!important;height:auto!important}.article-info-box{opacity:.92}.blog-content-box{overflow-y:auto}')},csdn_background:{name:"自定义背景",match:[/blog\.csdn\.net(\/.*)?\/article\/details./],values:{"已关闭$off":null,"已开启$on":()=>($get("csdn_background-value")&&style(`body{background:url("${$get("csdn_background-value")}")}`),style(`body{--blog-content-box-background:${$get("csdn_blog-content-box-background-value")}}`),style(`body{--blog-content-box-opacity:${$get("csdn_blog-content-box-opacity-value","0.98")}}`),style(`body{--blog-header-box-background:${$get("csdn_blog-header-box-background-value")}}`),":root body .blog-content-box{background:var(--blog-content-box-background)!important;opacity:var(--blog-content-box-opacity)!important}:root body #blogColumnPayAdvert,:root body #blogHuaweiyunAdvert,:root body .article-header-box{background-color:var(--blog-header-box-background)!important}")}},
	csdn_ad:{name:"去广告",match:["csdn.net"],values:{"已开启$on":()=>"#ad_iframe,#ad_unit,#mainBox>aside>div.box-shadow.mb8,.GoogleActiveViewElement,.GoogleActiveViewInnerContainer,.adsbygoogle{display:none!important;visibility:hidden!important;width:0!important;height:0!important}","已关闭$off":null}}
};
run(features_csdn_287998627);