GithubでURL中のブランチ名/タグ名をコミットハッシュ(8桁)に置き換える

    @@ -1,11 +1,19 @@ /* * @title GithubでURL中のブランチ名/タグ名をコミットハッシュ(8桁)に置き換える - * @description https://help.github.com/articles/getting-permanent-links-to-files/ githubサイト内で「y」を押すことによりURL中のブランチ名/タグ名をコミットハッシュに切り替えることができる。 - * しかしこのとき置換されるコミットハッシュは40桁のフルサイズのもので共有するURLとしていささか長い。そこでほとんどのリポジトリで必要十分と思われる8桁のコミットハッシュに置換するのがこのブックマークレット。ついでにgithubの「y」ショートカットでの挙動はいささかおかしい(URLは書き換えるがブラウザのhistoryにそれを積まない)のでこのブックマークレットではきちんと置換後のURLへ遷移することにした。 - * @include http://* + * @description https://help.github.com/articles/getting-permanent-links-to-files/ githubサイト内で「y」を押すことによりURL中のブランチ名/タグ名をコミットハッシュに切り替えることができる。しかしこのとき置換されるコミットハッシュは40桁のフルサイズのもので共有するURLとしていささか長い。そこでほとんどのリポジトリで必要十分と思われる8桁のコミットハッシュに置換するのがこのブックマークレット。ついでにgithubの「y」ショートカットでの挙動はいささかおかしい(URLは書き換えるがブラウザのhistoryにそれを積まない)のでこのブックマークレットではきちんと置換後のURLへ遷移することにした。 + * @include https://github.com/* * @license MIT License * @require + * @javascript_url */ -console.log("hello"); +var uriParts = location.href.split("/") +var commitHash8bytes = document.querySelector("a.commit-tease-sha").innerText + +// @includeで実行できるURLは限定されている前提としてgithub.comに確かにいるかどうかはチェックしない。 +if (uriParts.length = 5 || (uriParts.length = 6 && uriParts[5] === "")) { + uriParts[5] = "tree"; + uriParts[6] = commitHash8bytes; + location.href = urlParts.join("/"); +}
  • /*
     * @title GithubでURL中のブランチ名/タグ名をコミットハッシュ(8桁)に置き換える
     * @description https://help.github.com/articles/getting-permanent-links-to-files/ githubサイト内で「y」を押すことによりURL中のブランチ名/タグ名をコミットハッシュに切り替えることができる。しかしこのとき置換されるコミットハッシュは40桁のフルサイズのもので共有するURLとしていささか長い。そこでほとんどのリポジトリで必要十分と思われる8桁のコミットハッシュに置換するのがこのブックマークレット。ついでにgithubの「y」ショートカットでの挙動はいささかおかしい(URLは書き換えるがブラウザのhistoryにそれを積まない)のでこのブックマークレットではきちんと置換後のURLへ遷移することにした。
     * @include https://github.com/*
     * @license MIT License
     * @require 
     * @javascript_url
     */
    
    
    var uriParts = location.href.split("/")
    var commitHash8bytes = document.querySelector("a.commit-tease-sha").innerText
    
    // @includeで実行できるURLは限定されている前提としてgithub.comに確かにいるかどうかはチェックしない。
    if (uriParts.length = 5 || (uriParts.length = 6 && uriParts[5] === "")) {
      uriParts[5] = "tree";
      uriParts[6] = commitHash8bytes;
      location.href = urlParts.join("/");
    }
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2018/07/13 03:25:21 - 2018-07-13
  2. 2018/07/13 02:52:41 - 2018-07-13
  3. 2018/07/13 02:48:11 - 2018-07-13
  4. 2018/07/13 02:43:12 - 2018-07-13
  5. 2018/07/13 02:06:41 - 2018-07-13
  6. 2018/07/13 02:06:08 - 2018-07-13
  7. 2018/07/13 02:04:27 - 2018-07-13
  8. 2018/07/13 01:38:35 - 2018-07-13
  9. 2018/07/13 01:37:53 - 2018-07-13
  10. 2018/07/13 01:37:21 - 2018-07-13