您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
这是一款促进CSDN极致简洁和高效的插件。免费共享大量创新功能,如:净化页面、展示全屏、显示推荐、复制文本、展开代码等。让我们的学习体验无比简洁、专注、高效、畅快。
您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
- // ==UserScript==
- // @name EasyCSDN
- // @description 这是一款促进CSDN极致简洁和高效的插件。免费共享大量创新功能,如:净化页面、展示全屏、显示推荐、复制文本、展开代码等。让我们的学习体验无比简洁、专注、高效、畅快。
- // @version 32.0
- // @author xcanwin
- // @namespace https://github.com/xcanwin/EasyCSDN/
- // @supportURL https://github.com/xcanwin/EasyCSDN/
- // @license GPL-2.0-only
- // @match *://blog.csdn.net/*/article/details/*
- // @match *://*.blog.csdn.net/article/details/*
- // @grant GM_addStyle
- // @run-at document-start
- // ==/UserScript==
- (function() {
- 'use strict';
- const $ = (Selector, el) => (el || document).querySelector(Selector);
- const $$ = (Selector, el) => (el || document).querySelectorAll(Selector);
- /*电脑端净化样式*/
- const purify_style_pc = `
- .passport-login-container /*隐藏[置顶的]登录提示*/,
- .passport-login-tip-container /*隐藏[置顶的]登录权益提示*/,
- body>#toolbarBox /*隐藏[置顶的][顶部的]菜单栏*/,
- .left-toolbox /*隐藏[置顶的][底部的]关注栏*/,
- .blog_container_aside /*隐藏[左边的]栏*/,
- #rightAside /*隐藏[右边的]栏*/,
- .csdn-side-toolbar /*隐藏[右边的]磁吸栏*/,
- .blog-footer-bottom /*隐藏[底部的]网站介绍*/,
- .recommend-nps-box /*隐藏[底部的]打分*/,
- .blog-tags-box /*隐藏[正文的][顶部的]分类*/,
- .column-group /*隐藏[正文的][顶部的]加入社区*/,
- #blogColumnPayAdvert /*隐藏[正文的][顶部的]专栏*/,
- .more-toolbox-new /*隐藏[正文的][底部的]关注栏*/,
- #treeSkill /*隐藏[正文的][底部的]技能树*/,
- .recommend-box /*隐藏[正文的][底部的]推荐文章*/,
- .recommend-box div[data-url*="download.csdn.net"] /*隐藏[正文的][底部的]含有下载的推荐文章*/,
- .recommend-box div[data-url*="wenku.csdn.net"] /*隐藏[正文的][底部的]含有文库的推荐文章*/,
- .hljs-button.signin /*隐藏[正文的][代码块的]复制提示*/,
- .code-annotation /*隐藏[正文的][代码块的]一键注释*/,
- .article-search-tip /*隐藏[正文的]搜索提示*/
- {
- display: none !important;
- }
- /*隐藏背景*/
- html body {
- background: none !important;
- background-image: unset !important;
- background-color: unset !important;
- }
- /*调整标题*/
- .title-article {
- display: flex !important;
- justify-content: center !important;
- font-size: 33px !important;
- padding-top:23px !important;
- padding-bottom: 10px !important;
- }
- /*调整头像*/
- .article-type-img {
- display: none !important;
- border-radius: 4px !important;
- height: 28px !important;
- width: 28px !important;
- margin: 6px !important;
- margin-right: 20px !important;
- }
- /*正文的div居中*/
- #mainBox {
- display: flex;
- justify-content: center;
- }
- /*正文的图片居中*/
- #content_views p img {
- display: flex;
- margin-left: auto;
- margin-right: auto;
- }
- /*展示全屏*/
- #mainBox {
- width: 100%;
- }
- #mainBox main {
- width: 82%;
- margin-bottom: unset !important;
- }
- .main_father {
- padding: unset !important;
- }
- .main_father.d-flex {
- display: unset !important;
- }
- /*临时显示*/
- .show-temp {
- display: unset !important;
- }
- /*适当展示图片*/
- main #content_views img {
- max-width: 70% !important;
- }
- /*阅读全文*/
- .hide-article-box {
- display: none !important;
- }
- #article_content {
- height: auto !important;
- overflow: auto !important;
- }
- `;
- /*移动端净化样式*/
- const purify_style_mb = `
- #csdn-toolbar /*隐藏[置顶的][顶部的]菜单栏*/,
- #operate /*隐藏[置顶的][底部的]搜索标签与评论*/,
- .article-type /*隐藏[正文的][顶部的]文章类型*/,
- .have-heart-count /*隐藏[正文的][顶部的]赞*/,
- .identity-icon /*隐藏[正文的][顶部的]身份等级*/,
- #detailFollow /*隐藏[正文的][顶部的]关注*/,
- #recommend /*隐藏[正文的][底部的]推荐文章*/,
- #recommend div[data-url*="download.csdn.net"] /*隐藏[正文的][底部的]含有下载的推荐文章*/,
- #recommend div[data-url*="wenku.csdn.net"] /*隐藏[正文的][底部的]含有文库的推荐文章*/
- {
- display: none !important;
- }
- /*展示全屏*/
- body #main {
- padding-top: unset !important;
- margin-top: unset !important;
- }
- body {
- padding-bottom: unset !important;
- }
- /*展示分界线*/
- .spec_space {
- height: 32px !important;
- background-color: #eaeaea !important;
- }
- `;
- //净化页面
- const purifyPage = function() {
- GM_addStyle(purify_style_pc);
- GM_addStyle(purify_style_mb);
- };
- //显示推荐的开关
- const showRecommend = function() {
- const sr = document.createElement("div");
- sr.style = "height: 64px; background-color: #eaeaea;";
- sr.onclick = function() {
- $$(".recommend-box").forEach(el => {
- el.classList.toggle("show-temp");
- });
- $(".recommend-box")?.scrollIntoView();
- };
- $('main').insertBefore(sr, $('.recommend-box'));
- };
- //展开代码
- const prettyCode = function() {
- const browser_menu_height = window.outerHeight - window.innerHeight; //浏览器顶部菜单栏高度
- const browser_height_max = screen.height - browser_menu_height; //浏览器最大可展示高度
- let i = 0;
- $$('.set-code-hide').forEach(el => {
- if (i == 0 && $("code", el)?.clientHeight <= browser_height_max * 1.8) {
- //预判首个代码块实际高度,若小于浏览器最大可展示高度的180%,则自动展开代码
- $(".hide-preCode-bt", el)?.click();
- } else if ($("code", el)?.clientHeight <= browser_height_max * 0.8) {
- //预判其余代码块实际高度,若小于浏览器最大可展示高度的80%,则自动展开代码
- $(".hide-preCode-bt", el)?.click();
- }
- i++;
- });
- };
- //拦截推荐搜索
- const hookXHR = function() {
- const origOpen = XMLHttpRequest.prototype.open;
- const block_url = 'redisdatarecall\.csdn\.net/recommend/';
- XMLHttpRequest.prototype.open = function() {
- const reqUrl = arguments[1];
- if (reqUrl.match(block_url)){
- return;
- }
- origOpen.apply(this, arguments);
- };
- };
- //调整头像
- const beautyLOGO = function() {
- $('.article-type-img').src = $('link[rel="shortcut icon"]').href;
- $('.article-type-img').style = 'display: block !important;';
- };
- //净化URL, 保障用户信息安全
- const prettyURL = function() {
- let newurl = location.href.match('(https?://.*?blog\.csdn\.net/.*?article/details/.*?)\\?');
- if (newurl) {
- newurl = newurl[1];
- window.history.replaceState({
- path: newurl
- }, '', newurl);
- }
- };
- window.onload = function() {
- beautyLOGO();
- prettyCode();
- showRecommend();
- };
- purifyPage();
- prettyURL();
- hookXHR();
- })();