Greasy Fork

Greasy Fork is available in English.

只看博客内容

支持【CSDN,简书,博客园,知乎,掘金,51CTO,51CTO文章,阿里云开发者社区,腾讯云开发者社区,微信,InfoQ,Github】等。 必要时临时关闭脚本,可能是需要验证。

当前为 2023-02-15 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        只看博客内容
// @description 支持【CSDN,简书,博客园,知乎,掘金,51CTO,51CTO文章,阿里云开发者社区,腾讯云开发者社区,微信,InfoQ,Github】等。 必要时临时关闭脚本,可能是需要验证。
// @namespace   https://gitee.com/inch_whf/tampermonkey-script-inch
// @version     1.23
// @author      wuhongfei
// @license     MIT
// @grant       none
// @match       *://blog.csdn.net/*/article/details/*
// @match       *://*.blog.csdn.net/article/details/*
// @match       *://www.jianshu.com/p/*
// @match       *://www.cnblogs.com/*/*/*
// @match       *://zhuanlan.zhihu.com/p/*
// @match       *://www.zhihu.com/question/*
// @match       *://juejin.cn/post/*
// @match       *://blog.51cto.com/u_*
// @match       *://www.51cto.com/article/*
// @match       *://cloud.tencent.com/developer/article/*
// @match       *://bbs.huaweicloud.com/blogs/*
// @match       *://developer.aliyun.com/article/*
// @match       *://mp.weixin.qq.com/*
// @match       *://www.infoq.cn/article/*
// @match       *://www.infoq.cn/news/*
// ==/UserScript==

// 启动函数
var host = window.location.host;
main(host);

// 主函数
function main(host) {
    'use strict';

    // 特制函数
    zhihu();
    csdn();
    tencent_cloud();

    const value = get_value(host);
    const timeout = value[1] || 10;

    window.onload=function(){
        setTimeout(function () {
        const dom_header_time = document.createElement("div");
        const dom_before = document.querySelector(value[4]);
        const dom_main = document.querySelector(value[0] || "article");

        const header = getHeader(value[2]);
        const date = getTime(value[3]);
        dom_header_time.innerHTML = `<b>${header}<br/>${date}<br/><br/></b>`;

        console.log(dom_header_time)
        console.log(dom_before)
        console.log(dom_main)

        body_just_script_link();
        dom_adjustment(dom_header_time);
        if (dom_before != null) { dom_adjustment(dom_before); }
        dom_adjustment(dom_main);
    }, timeout)};
}

//删除标题中的冗余信息去掉 (xx条消息)
function removeInfo() {
    let title = document.getElementsByTagName("title")[0];
    title.innerText = title.innerText.match(/(\([0-9]+.*[条](?=私信|消息).*?\)\s*)?(.+)/)[2];
}

// 获得dom元素
function get_value(host) {

    /**
     * 1. 每一项格式如下
     * [
     *  主题元素选择器1,
     *  等待时间(加载时间),
     *  标题选择器(为空则使用默认),
     *  时间选择器(为空则使用默认),
     *  主题元素选择器2(如知乎专栏,为空则跳过),
     * ]
     *
     * 2. 排版如下
     * - 标题
     * - 时间
     * - 主题元素选择器2
     * - 主题元素选择器1
     */

    const map = {
        // https://blog.csdn.net/qwer123451234123/article/details/124148166
        'blog.csdn.net': ['#article_content', 0, null, '.time'],
        // https://www.jianshu.com/p/4d85661fba0a
        'www.jianshu.com': ['article', 10],
        // https://www.cnblogs.com/zhangzl419/p/14649603.html
        'www.cnblogs.com': ['.post', 0, '.postTitle', '#cb_post_title_url',],
        // https://zhuanlan.zhihu.com/p/345475033
        'zhuanlan.zhihu.com': ['.Post-RichTextContainer', 0, null, '.ContentItem-time'],
        // https://www.zhihu.com/question/20306249/answers/updated
        'www.zhihu.com': ['.AnswersNavWrapper', 0, null, null, '.QuestionRichText'],
        // https://juejin.cn/post/6844903688088059912
        'juejin.cn': ['.markdown-body'],
        // https://www.51cto.com/article/745047.html
        'blog.51cto.com': ['#container'],
        'www.51cto.com': ['#container'],
        // https://developer.aliyun.com/article/871736
        'developer.aliyun.com': ['.article-inner', 10, null,  '.article-info-time', '.article-desc'],
        // https://cloud.tencent.com/developer/article/2011799
        'cloud.tencent.com': ['.J-articleContent', 0, null, '.article-info'],
        // https://bbs.huaweicloud.com/blogs/314775
        'bbs.huaweicloud.com': ['.markdown-preview', 400, null, '.article-write-time', '.cloud-blog-detail-summary'],
        // https://mp.weixin.qq.com/s/uX4ivZUxBzgPx2S_YAOdtQ
        'mp.weixin.qq.com': ['.rich_media_content', 0, null, '#publish_time'],
        // https://www.infoq.cn/article/ebdcihizbezofu9q6pi7
        'www.infoq.cn': ['.article-preview', 500, null, '.read-time'],
    };

    if (host.endsWith("blog.csdn.net")) {
        host = "blog.csdn.net";
    }
    return map[host];
}

function getTime(selector) {
    // time标签的datetime属性的前10个字符
    const dom = document.querySelector(selector|| 'time');
    if(!dom){
        return '无'
    }
    const time_string = dom.getAttribute('datetime') || dom.innerText;
    return /\d{4}[-\.\/]\d{2}[-\.\/]\d{2}/.exec(time_string)[0].replace(/[-\.\/]/g, "-");
}
function getHeader(selector) {
    // time标签的datetime属性的前10个字符
    return document.querySelector(selector || 'h1').innerText
}



// 只保留内容dom
function body_just_script_link() {

    const body = document.body;

    body.style.setProperty('background', 'rgba(18,18,18,0)', 'important');

    const children = body.children
    for (var i = children.length - 1; i >= 0; i--) {
        if ("LINK" != children[i].tagName && "SCRIPT" != children[i].tagName) {
            // if("DIV"==children[i].tagName){
            body.removeChild(children[i]);
        }
    }

}


// 调整dom元素
function dom_adjustment(dom) {

    document.body.appendChild(dom);

    dom.style.width = '95%';
    dom.style.margin = 'auto';
    dom.style.display = 'block';

    const children2 = dom.children
    for (var i = children2.length - 1; i >= 0; i--) {
        children2[i].style.width = '100%';
    }

    if (typeof window.orientation == 'undefined') {
        // 当前设备不是移动设备,限制宽度
        // 参考:https://www.ruanyifeng.com/blog/2021/09/detecting-mobile-browser.html

        const imgs = dom.getElementsByTagName("img");
        for (var i = imgs.length - 1; i >= 0; i--) {
            imgs[i].style.width = '';
            imgs[i].style.maxWidth = '50%';
            imgs[i].style.display = 'block';
        }
    }

}

// 开始特制===========================================================================

// 知乎特制
function zhihu() {
    if ('zhuanlan.zhihu.com' != host) {
        return;
    }

    // 直接渲染所有图面
    (function () {
        const attribute = 'data-actualsrc';
        const imgs = document.querySelectorAll('img[' + attribute + ']');
        for (var i = imgs.length - 1; i >= 0; i--) {
            const img = imgs[i];
            imgs[i].setAttribute('src', imgs[i].getAttribute(attribute));
        }
    })();

    // 关闭登录弹窗

    setTimeout(() => {
        // 获得按钮
        const closeButton = document.querySelector(".Modal-closeIcon")
        if (closeButton == null) {
            return;
        }

        // 点击
        closeButton.dispatchEvent(new MouseEvent('click', {
            view: window,
            bubbles: true,
            cancelable: true
        }));
        // 把html中的“overflow:hidden"去掉,小时滚动条
        document.querySelector("html").style.overflow = "";
    }, 1000);

    //   // 展示gif
    //   if (typeof window.orientation == 'undefined') {
    //     // 当前设备不是移动设备,限制gif
    //     // 参考:https://www.ruanyifeng.com/blog/2021/09/detecting-mobile-browser.html

    //     GifPlayers = document.querySelectorAll(".GifPlayer");
    //     for (var i = GifPlayers.length - 1; i >= 0; i--) {
    //       GifPlayers[i].querySelector(".GifPlayer-cover").style.paddingTop = '';
    //       GifPlayers[i].getElementsByTagName("video").style.objectFit = "contain"
    //     }

    //   }

}

// csdn特制
function csdn() {
    if ('blog.csdn.net' != host) {
        return;
    }

    // 关闭“CSDN:关注博主即可阅读全文”
    // 参考:https://www.isolves.com/it/cxkf/yy/js/2022-06-29/56707.html
    var article_content = document.getElementById("article_content");
    if (!article_content.hasAttribute('style')) {
        return;
    }
    article_content.removeAttribute("style");

    var follow_text = document.getElementsByClassName('follow-text')[0];
    follow_text.parentElement.parentElement.removeChild(follow_text.parentElement);

    var hide_article_box = document.getElementsByClassName('hide-article-box')[0];
    hide_article_box.parentElement.removeChild(hide_article_box);

}

// 腾讯云特制
function tencent_cloud() {
    if ('cloud.tencent.com' != host) {
        return;
    }
    var button = document.querySelector("#react-root > div:nth-child(1) > div.J-body.col-body.pg-2-article > div.com-3-layout > div.layout-main > section.com-2-panel.col-2-article.J-articlePanel > div.com-markdown-collpase.com-markdown-collpase-hide > div.com-markdown-collpase-toggle > a");
    if (button) {
        button.click();
    }
}