// ==UserScript== // @name CSDN-Optimize-Beautify-Simplify // @name:zh CSDN-美化增强-免登录复制-沉浸式阅读-去广告等[茧绡] // @name:en Streamline and Beautify CSDN Browsing Experience[Cocoon Silk] // @name:ja CSDNブラウジング体験の合理化と美化 - 沈浸的読書、広告なしなど[茧絲(けむりし)] // @namespace http://github.com/yuhanawa/UserScript // @name:zh-CN CSDN-美化增强-免登录复制-沉浸式阅读-去广告等[茧绡] // @name:zh-TW CSDN-美化增强-免登入複製-沉浸式閱讀-去廣告等[茧绡] // @description 剥茧化绸,使 CSDN 重现柔曼如丝的新颜; 优化美化CSDN体验-个性化-免登录复制-沉浸式阅读-去广告等 // @description:zh 剥茧化绸,使 CSDN 重现柔曼如丝的新颜; 优化美化CSDN体验-个性化-免登录复制-沉浸式阅读-去广告等 // @description:en Shedding the cocoon, CSDN emerges with a soft, silken radiance anew - Streamline and Beautify CSDN Browsing Experience - Immersive Reading,Ad-free,etc. // @description:ja 茧を脱ぎ捨て、CSDNは新たに絹のように柔らかな輝きを放-CSDNブラウジング体験の合理化と美化 - 沈浸的読書、広告なしなど. // @description:zh-CN 剥茧化绸,使 CSDN 重现柔曼如丝的新颜; 优化美化CSDN体验-个性化-免登录复制-沉浸式阅读-去广告等 // @description:zh-TW 剥茧化绸,使 CSDN 重现柔曼如丝的新颜; 優化和美化CSDN瀏覽體驗 - 沉浸式閱讀、免登录复制、去廣告等 // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle // @grant GM_registerMenuCommand // @grant GM_openInTab // @grant unsafeWindow // @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.50 // @author Yuhanawa // @supportURL https://greasyfork.org/zh-CN/scripts/471071/feedback // @license GPL-3.0 // @icon none // @run-at document-start // @downloadURL none // ==/UserScript== /* csdn v.0.1.50 by Yuhanawa Source: https://github.com/Yuhanawa/UserScript */ isLoaded=!1,onload(()=>isLoaded=!0);const __props__=new Map; function get(k,d){return GM_getValue(k,void 0===d?__props__.get(k):d)} function set(k,v){return GM_setValue(k,v)} function cfg(k,v){return void 0===v?get(k):set(k,v)} function getOptionKeyAndName(optionStr){var key=optionStr.match(/\$([^ ]+)/)?.[0];return key?{key:key.replace("$",""),name:optionStr.replace(key,"")}:{key:optionStr,name:optionStr}} 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 addMenu(name,key,options,current,index,onclick){const getOptionKey=o=>getOptionKeyAndName(o).key;void 0!==current&&null!=index&&-1!==index||(current=set(key,getOptionKey(options[0])),index=0);var o=`${name}:${o=options[index],getOptionKeyAndName(o).name}[${index+1}/${options.length}]<点击切换`;return GM_registerMenuCommand(o,()=>{if(set(key,getOptionKey(options[index+1>=options.length?0:index+1])),onclick)try{onclick()}catch(e){console.log(`发生错误(${name}-${current}-onclick): `+e)}location.reload()}),index} function onload(f){isLoaded?f():document.addEventListener("DOMContentLoaded",()=>f())} function timeoutAfterLoad(f,t){onload(()=>setTimeout(()=>f(),t))} function intervalAfterLoad(f,t,runOnFirst){onload(()=>{runOnFirst&&f(),setInterval(f,t)})} function run(fts){void 0===fts&&(fts=features);for(const key of Object.keys(fts))try{const feature=fts[key];("boolean"==typeof feature.match&&1==feature.match||0!==feature.match.filter(m=>"string"==typeof m?null!==window.location.href.match(m):m.test(window.location.href)).length)&&addFeature(key,feature)}catch(error){console.error("发生了一个意料之外的错误, 这可能是因为非法的feature所造成的, 不过请放心, 脚本将继续运行而不会崩溃. ",feature,error)}} function addFeature(key,feature){var{name,values}=feature;if(!feature.switchable||get(key+"_switch",feature.default_switch_state??!0))if("$"===name||feature.directlyRun)try{"function"==typeof values?"string"==typeof(result=values(feature))&&style(result):"string"==typeof values&&style(values)}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&&void 0!==index||(set(key,key0),index=0,current=key0),feature.hideInMenu||addMenu(name,key,result,current,index);try{var value=values[result[index]];if(null!=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 findFastestSite(sites){return new Promise((resolve,reject)=>{let fastestSite=null,fastestTime=1/0,completedRequests=0;sites.forEach(function(site){const xhr=new XMLHttpRequest,startTime=(new Date).getTime();xhr.onreadystatechange=()=>{var timeElapsed;fastestTime<100&&(xhr.abort(),resolve(fastestSite)),xhr.readyState===XMLHttpRequest.DONE&&(timeElapsed=(new Date).getTime()-startTime,console.log(`Ping ${site} took ${timeElapsed}ms`),console.log("Status: "+xhr.status),xhr.status<400&&timeElapsed{fastestTime<100&&(xhr.abort(),resolve(fastestSite))},xhr.onload=()=>{console.log("Pinging "+site)},xhr.open("GET",site,!0),xhr.timeout=2e3,xhr.send()})})} function getConfigPage(){return findFastestSite(["https://user-script-config-form.vercel.app","https://yuhan-script-config.netlify.app","https://yuhanawa.github.io/tools/userscriptconfig/"]).then(fastestSite=>fastestSite).catch(error=>(console.error("Error:",error),null))} function showConfigPage(){getConfigPage().then(fastestSite=>{void 0!==GM_openInTab?GM_openInTab(fastestSite,{active:!0}):location.href=fastestSite})} function LoadConfigPage(name){console.log("LoadConfigPage "+name)} function loadConfig(name,properties){GM_registerMenuCommand("在新窗口打开设置中心",()=>{showConfigPage()}),GM_registerMenuCommand("在页面内镶嵌设置中心(BETA)",()=>{loadconfigComponent()}),anchors=[];for(const key of Object.keys(properties))__props__.set(name+"_"+key,properties[key].default),key.startsWith("#")&&anchors.push({key:key,href:properties[key].href||key,title:properties[key].title||properties[key].description||key});void 0!==unsafeWindow.awa&&void 0!==unsafeWindow.awa.userscript||(unsafeWindow.awa={},unsafeWindow.awa.userscript={}),unsafeWindow.awa.current=name,unsafeWindow.awa.userscript[name]={props:properties,anchors:anchors,get:get,set:set}} function loadconfigComponent(){unsafeWindow.useNewConfig=!0;var head=unsafeWindow.document.head,reactScript=document.createElement("script");reactScript.src="https://cdn.jsdelivr.net/npm/react@18.2.0/umd/react.production.min.js",head.appendChild(reactScript);const reactDOMScript=document.createElement("script");reactDOMScript.src="https://cdn.jsdelivr.net/npm/react-dom@18.2.0/umd/react-dom.production.min.js",head.appendChild(reactDOMScript);var commonStyles=document.createElement("link"),commonStyles=(commonStyles.rel="stylesheet",commonStyles.href="https://cdn.jsdelivr.net/gh/Yuhanawa/UserScript/config-component/dist/assets/css/common.css",head.appendChild(commonStyles),document.createElement("link")),commonStyles=(commonStyles.rel="stylesheet",commonStyles.href="https://cdn.jsdelivr.net/gh/Yuhanawa/UserScript/config-component/dist/assets/css/vendor.css",head.appendChild(commonStyles),document.createElement("link"));commonStyles.rel="stylesheet",commonStyles.href="https://cdn.jsdelivr.net/gh/Yuhanawa/UserScript/config-component/dist/assets/css/index.css",head.appendChild(commonStyles);const addscript=head=>{var indexModule=document.createElement("script"),indexModule=(indexModule.type="module",indexModule.crossOrigin=!0,indexModule.src="https://cdn.jsdelivr.net/gh/Yuhanawa/UserScript/config-component/dist/assets/js/index.js",head.appendChild(indexModule),document.createElement("script")),indexModule=(indexModule.type="module",indexModule.crossOrigin=!0,indexModule.src="https://cdn.jsdelivr.net/gh/Yuhanawa/UserScript/config-component/dist/assets/js/index.js",head.appendChild(indexModule),document.createElement("link")),indexModule=(indexModule.rel="modulepreload",indexModule.crossOrigin=!0,indexModule.href="https://cdn.jsdelivr.net/gh/Yuhanawa/UserScript/config-component/dist/assets/js/common.js",head.appendChild(indexModule),document.createElement("link"));indexModule.rel="modulepreload",indexModule.crossOrigin=!0,indexModule.href="https://cdn.jsdelivr.net/gh/Yuhanawa/UserScript/config-component/dist/assets/js/vendor.js",head.appendChild(indexModule),document.getElementById("config-component-root").appendChild(document.createElement("config-component"));const configPage=document.querySelector("#config-component-shadow"),container=configPage.querySelector("#config-component-root"),iframe=configPage.querySelector(".config-component");var pos1=0,pos2=0,pos3=0,pos4=0; function elementDrag(e){(e=e||window.event).preventDefault(),pos1=pos3-e.clientX,pos2=pos4-e.clientY,pos3=e.clientX,pos4=e.clientY,container.style.top=container.offsetTop-pos2+"px",container.style.left=container.offsetLeft-pos1+"px"} function closeDragElement(){iframe.style.pointerEvents="auto",configPage.onmouseup=null,configPage.onmousemove=null}container.onmousedown=function(e){(e=e||window.event).preventDefault(),pos3=e.clientX,pos4=e.clientY,iframe.style.pointerEvents="none",configPage.onmouseup=closeDragElement,configPage.onmousemove=elementDrag}};head=document.createElement("div"),head.id="config-component-shadow",document.body.appendChild(head),commonStyles=document.createElement("div");commonStyles.id="config-component-root",head.appendChild(commonStyles),reactScript.onload=()=>reactDOMScript.onload=()=>addscript(unsafeWindow.document.head)} 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"}]}},"beautify":{"title":"细节优化","default":true,"widget":"switch","type":"boolean"},"width":{"title":"调整文章宽度","description":"该功能仅当左侧边栏隐藏时生效","default":"on","widget":"select","props":{"options":[{"label":"开启","value":"on"},{"label":"关闭","value":"off"}]}},"width_value":{"title":"文章宽度","description":"(单位:%|百分比) 该功能仅当左侧边栏隐藏时生效","default":"82","props":{"addonAfter":"%"},"hidden":"{{ formData.width === 'off' }}"},"header":{"title":"顶部菜单栏","default":"remove","widget":"select","props":{"options":[{"label":"移除","value":"remove"},{"label":"半透明","value":"opacity"},{"label":"淡化不跟随","value":"opacity_static"},{"label":"不跟随","value":"static"},{"label":"显示","value":"off"}]}},"toolbox":{"title":"低部菜单工具栏","default":"remove","widget":"select","props":{"options":[{"label":"移除","value":"remove"},{"label":"不跟随","value":"relative"},{"label":"半透明","value":"opacity"},{"label":"淡化不跟随","value":"opacity_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","hidden":"{{ formData.background === 'off' }}","widget":"color"},"blog-content-box-opacity-value":{"title":"文章透明度","description":"文章整体透明度,包括文章内容","hidden":"{{ formData.background === 'off' }}","default":"0.98"},"header-box-background-value":{"title":"文章标题及部分卡片背景","description":"建议保持透明或使用高透明度颜色","hidden":"{{ formData.background === 'off' }}","default":"#00000000","widget":"color"},"#line_ui":{"widget":"line","title":"自定义UI","description":"自定义UI需将‘UI净化预设’设置为自定义模式"},"ui_opt":{"title":"UI净化预设","default":"lite","widget":"select","props":{"options":[{"label":"极简","value":"lite"},{"label":"简|作者+目录","value":"lite1"},{"label":"简|作者+目录+菜单","value":"lite2"},{"label":"简|以上信息+推荐","value":"lite3"},{"label":"常规","value":"normal"},{"label":"自定义","value":"custom"},{"label":"关闭","value":"off"}]}},"ui_opt_value":{"title":"自定义UI","description":"需要UI净化预设为自定义模式","default":["#asideArchive","#csdn-toolbar .toolbar-menus","#csdn-toolbar .toolbar-btn-vip","#footerRightAds","#asideProfile .item-rank","#asideProfile .aside-box-footer","#asideWriteGuide","#asideHotArticle","#asideNewComments","#asideNewNps","main .article-bar-top","main .article-title-box .article-type-img","#recommendNps","#commentBox","#pcCommentBox","#treeSkill","#blogVoteBox",".insert-baidu-box.recommend-box-style",".blog-footer-bottom",".sidetool-writeguide-box",".option-box[data-type=guide]",".option-box[data-type=cs]",".option-box[data-type=report]",".btn-side-chatdoc-contentbox","#csdn-toolbar .toolbar-logo","#csdn-toolbar .toolbar-container-left","#asideCategory",".first-recommend-box",".second-recommend-box",".recommend-box","#toolBarBox",".passport-login-container"],"widget":"CSDN_UI_editor","disabled":"{{ formData.ui_opt !== 'custom' }}"}}) let features_csdn_1114922075 = { csdn_ui_opt: { name: "净化", match: [/blog\.csdn\.net(\/.*)?\/article\/details./], values: { 极简$lite: (self) => { var value = [ "#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]", ".btn-side-chatdoc-contentbox", "#csdn-toolbar", "#mainBox .blog_container_aside", "#csdn-toolbar .toolbar-container-left", "#csdn-toolbar .toolbar-container-right", "#csdn-toolbar .toolbar-container-middle", "#blogExtensionBox .extension_official", "#asideProfile", "#footerRightAds", "#asideWriteGuide", "#asideSearchArticle", "#asideHotArticle", "#asideCategory", "#asideNewComments", "#asideNewNps", "#asideArchive", "#asidedirectory", ".passport-container-mini-tip", ".passport-login-container", ]; self.hide(value); }, "简|作者+目录$lite1": (self) => { self.hide([ ".passport-container-mini-tip", "#asideArchive", "#csdn-toolbar .toolbar-menus", "#csdn-toolbar .toolbar-btn-vip", "#csdn-toolbar .toolbar-btn-msg", "#csdn-toolbar .toolbar-btn-mp", "#csdn-toolbar .toolbar-btn-writet", "#blogExtensionBox .extension_official", "#footerRightAds", "#asideProfile .item-rank", "#asideProfile .aside-box-footer", "#asideWriteGuide", "#asideHotArticle", "#asideNewComments", "#asideNewNps", "main .article-bar-top", "main .article-title-box .article-type-img", "#recommendNps", "#commentBox", "#pcCommentBox", "#treeSkill", "#blogVoteBox", ".recommend-box", ".first-recommend-box", ".second-recommend-box", ".insert-baidu-box.recommend-box-style", ".blog-footer-bottom", "#toolBarBox", ".sidetool-writeguide-box", ".option-box[data-type=guide]", ".option-box[data-type=cs]", ".option-box[data-type=report]", ".btn-side-chatdoc-contentbox", "#csdn-toolbar .toolbar-logo", "#csdn-toolbar .toolbar-container-left", "#asideProfile .data-info", "#asideCategory", ".passport-login-container", ]); }, "简|作者+目录+菜单$lite2": (self) => { self.hide([ ".passport-container-mini-tip", "#asideArchive", "#csdn-toolbar .toolbar-menus", "#csdn-toolbar .toolbar-btn-vip", "#footerRightAds", "#asideProfile .item-rank", "#asideProfile .aside-box-footer", "#asideWriteGuide", "#asideHotArticle", "#asideNewComments", "#asideNewNps", "main .article-bar-top", "main .article-title-box .article-type-img", "#recommendNps", "#commentBox", "#pcCommentBox", "#treeSkill", "#blogVoteBox", ".insert-baidu-box.recommend-box-style", ".blog-footer-bottom", ".sidetool-writeguide-box", ".option-box[data-type=guide]", ".option-box[data-type=cs]", ".option-box[data-type=report]", ".btn-side-chatdoc-contentbox", "#csdn-toolbar .toolbar-logo", "#csdn-toolbar .toolbar-container-left", "#asideCategory", ".first-recommend-box", ".second-recommend-box", ".recommend-box", "#toolBarBox", ".passport-login-container", ]); }, "简|以上信息+推荐$lite3": (self) => { self.hide([ ".passport-container-mini-tip", "#asideArchive", "#csdn-toolbar .toolbar-btn-vip", "#footerRightAds", "#asideProfile .item-rank", "#asideProfile .aside-box-footer", "#asideWriteGuide", "#asideHotArticle", "#asideNewComments", "#asideNewNps", "main .article-bar-top", "main .article-title-box .article-type-img", "#recommendNps", "#treeSkill", "#blogVoteBox", ".insert-baidu-box.recommend-box-style", ".blog-footer-bottom", ".sidetool-writeguide-box", ".option-box[data-type=guide]", ".option-box[data-type=cs]", ".option-box[data-type=report]", ".btn-side-chatdoc-contentbox", "#asideCategory", "#toolBarBox", "#csdn-toolbar .toolbar-menus", "#csdn-toolbar .toolbar-logo", "#csdn-toolbar .toolbar-container-left", ]); }, 常规$normal: (self) => { var value = [ "#csdn-toolbar .toolbar-logo", "#csdn-toolbar .toolbar-btn-mp", "#csdn-toolbar .toolbar-btn-write", "#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", "#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]", ".btn-side-chatdoc-contentbox", ".passport-container-mini-tip", ".passport-login-container", ]; self.hide(value); }, 自定义$custom: () => { style( `${get("csdn_ui_opt_value")} { display: none !important; width: 0 !important; height: 0 !important; visibility: collapse !important; }`, ); }, 已关闭$off: () => {}, }, hide: (value) => { style( `${value.join(", ")} { display: none !important; width: 0 !important; height: 0 !important; visibility: collapse !important; }`, ); }, }, 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; }`, 半透明$opacity: `.left-toolbox{ opacity: 0.55!important; transition: opacity 0.5s!important; } .left-toolbox:hover{ opacity: 1!important; }`, 淡化不跟随$opacity_relative: `.left-toolbox{ z-index: 996!important; left: 0px!important; bottom: 0px!important; width: 900px!important; position: relative!important; opacity: 0.55!important; transition: opacity 1.5s!important; } .left-toolbox:hover{ opacity: 1!important; }`, 显示$off: null, }, }, csdn_setting_btn: { name: "设置按钮", match: [/blog\.csdn\.net(\/.*)?\/article\/details./], values: { 已开启$on: () => { timeoutAfterLoad(() => { const articleTitleBox = document.getElementsByClassName("article-title-box")[0]; const 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_redirect: { name: "外链重定向自动跳转", match: ["link.csdn.net/"], values: { 已开启$on: () => { const url = new URLSearchParams(location.search).get("target"); location.href = url; location.replace(url); }, 已关闭$off: null, }, }, csdn_header: { name: "顶部菜单", match: [/blog\.csdn\.net(\/.*)?\/article\/details./], values: { 移除$remove: `#csdn-toolbar{ display: none!important; }`, 半透明$opacity: `#csdn-toolbar{ transition: opacity 0.5s!important; opacity: 0.75; backdrop-filter: blur(8px); filter: blur(2px); } #csdn-toolbar:hover, #csdn-toolbar:focus, #csdn-toolbar:focus-within, #csdn-toolbar:active { opacity: 1; backdrop-filter: none; filter: none; } `, 淡化不跟随$opacity_static: `#csdn-toolbar{position: static !important; opacity: 0.5; transition: opacity 1.5s!important;} #csdn-toolbar:hover{opacity: 1;}`, 不跟随$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") };}`, ); return "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: () => { timeoutAfterLoad(() => { // 修改复制按钮 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()); }, true, ); document.addEventListener( "keydown", (e) => { if (e.ctrlKey && e.keyCode == 67) { e.stopPropagation(); e.preventDefault(); navigator.clipboard.writeText(window.getSelection().toString()); } }, true, ); document.oncopy = null; window.oncopy = null; }, 500); return "#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}pre .hljs-button{background-color:#666;padding:2px;margin:10px;box-shadow:0 2px 4px rgba(0,0,0,.05),0 2px 4px rgba(0,0,0,.05);width:fit-content!important;height:fit-content!important}"; }, 已关闭$off: null, }, }, csdn_content_fullscreen: { name: "Ctrl + Enter开启专注模式", match: [/blog\.csdn\.net(\/.*)?\/article\/details./], values: { 已关闭$off: null, 已开启$on: () => { document.addEventListener("keydown", (e) => { if (e.ctrlKey && e.keyCode == 13) { if (document.fullscreenElement) document.exitFullscreen(); else document.querySelector(".blog-content-box").requestFullscreen(); } }); }, }, }, csdn_base: { name: "$", match: ["csdn.net"], values: () => { if (get("csdn_beautify", true)) { if (false) { // 可能存在问题,临时删除 } } fn = () => { const aside = document.getElementsByClassName( "blog_container_aside", )[0]; if (aside == undefined || aside == null) { setTimeout(fn, 150); return; } if (getComputedStyle(aside).display === "none") { style(`#mainBox { width: auto !important; }`); style(`main { margin: 0px 6px 40px 6px }`); if (get("csdn_width", "on") === "on") { style(`#mainBox > main{ width: 100% !important; }`); style( `body #mainBox{ width: ${get("csdn_width_value", "82")}% !important; }`, ); } } }; onload(fn); return '@charset "UTF-8";:root>*,:root>*>*,:root>*>*>*,:root>*>*>*>*{transition:all .3s!important}.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}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: () => { if (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")}}`, ); return ":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_1114922075);