V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
viakiba
V2EX  ›  分享发现

油猴脚本-Github-增加辅助按钮 (Web-VSCode & git-history )

  •  
  •   viakiba · 2022-09-06 18:57:00 +08:00 · 894 次点击
    这是一个创建于 600 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直使用两个 github 小技巧,每次都是手动输入网址。故做一个简洁版的 油猴脚本,增加几个按钮。

    效果

    文件页 与 非文件页 都会有 Web-VSCode 的按钮,点击后打开 web 版本的 vscode 。

    1.jpg

    文件页多出一个 Commithistory 的按钮,点击后会进入一个新页面。

    2.jpg

    GIf

    代码也很简单~

    // ==UserScript==
    // @name          Github-Helper
    // @namespace     http://diveintogreasemonkey.org/download/
    // @description   example script to alert "Hello world!" on every page
    // @include       https://github.com/*
    // @run-at document-idle
    // ==/UserScript==
    var countDown = 1
    function main(){
        var node = document.getElementsByClassName("btn mr-2 d-none d-md-block");
        var lengthTemp = node.length
        if (lengthTemp > 1){
          console.log("xxxxxxx");
          return
        }
        if(lengthTemp === 0){
            node = document.getElementsByClassName("btn ml-2 d-none d-md-block");
            if (node.length > 1){
                return
            }
        }
        console.log("xxxxxxx"+node.length);
        var url = document.URL;
        console.log(url);
        var url1 = "https://githistory.xyz"+url.substring(18,url.length)
        console.log(url1);
        var url2 = "https://github.dev"+url.substring(18,url.length)
        console.log(url2);
        if (lengthTemp != 0){
            var nodeAddFile = document.getElementsByClassName("btn d-none d-md-flex flex-items-center");
            if (nodeAddFile.length ==0){
                var n1 = node[0].cloneNode(true)
                n1.innerText = "CommitHistory"
                n1.setAttribute("target", "_blank");
                n1.setAttribute("href", url1);
                node[0].parentElement.insertBefore(n1,node[0])
            }
        }
    
        var n2 = node[0].cloneNode(true)
        n2.innerText = "Web-VsCode"
        n2.setAttribute("target", "_blank");
        n2.setAttribute("href", url2);
        node[0].parentElement.insertBefore(n2,node[0])
    
        countDown = 0
        console.log(countDown)
    }
    var interval = setInterval(main,1000)
    
    2 条回复    2022-09-07 11:19:44 +08:00
    vvhy
        1
    vvhy  
       2022-09-06 22:21:49 +08:00 via Android
    第一个有快捷键“.”
    code4you
        2
    code4you  
       2022-09-07 11:19:44 +08:00
    第一个有快捷键“.” 😁

    这个技巧 最近才发现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2911 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:47 · PVG 22:47 · LAX 07:47 · JFK 10:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.