GitHub: remove canonical

remove Github's canonical link

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @id             GitHub: remove canonical
// @name           GitHub: remove canonical
// @namespace      http://efcl.info
// @description    remove Github's canonical link
// @include        https://github.com/*/*
// @version 0.0.1.20140518104254
// ==/UserScript==

(function() {
    //const currentPath = unsafeWindow.GitHub.currentPath;// 現在地
    const repoName = unsafeWindow.GitHub.repoName;// レポジトリかどうか確認に使う
    const controllerName = unsafeWindow.GitHub.controllerName;// tree , commmit
    const currentRef = unsafeWindow.GitHub.currentRef;// master - Canonicalはmasterの時の変更されてるかな?
    if (!repoName) {
        return; // レポジトリじゃない
    }
    main();
    function checkCanonical(href) {
        // 状況をtreeに限定して、masterにいる時(原因のGithub)はcanonicalを書き換える。
        // 今は困った仕様でlocation.pathname !== href の状況なので、一致になったらこの子はいらない
        if (controllerName === "tree" && currentRef === "master"
                && location.pathname === href) {
            alert("Githubは何か変更したよ\n私はもういらない子かも");
        }
    }

    function getCanonical() {
        var link = document.querySelector('link[rel="canonical"]');
        if (link) {
            return link;
        }
    }

    function main() {
        var link = getCanonical();
        if (!link) {
            return;
        }
        // checkCanonical(link.href);// Githubが変更してくれるといいね
        link.parentNode.removeChild(link);
    }
})();