GithubでURL中のブランチ名/タグ名をコミットハッシュ(8桁)に置き換える
by
den8
2018-07-13 [2018/07/13 03:25:21]
https://help.github.com/articles/getting-permanent-links-to-files/ githubサイト内で「y」を押すことによりURL中のブランチ名/タグ名をコミットハッシュに切り替えることができる。しかしこのとき置換されるコミットハッシュは40桁のフルサイズのもので共有するURLとしていささか長い。そこでほとんどのリポジトリで必要十分と思われる8桁のコミットハッシュに置換するのがこのブックマークレット。ついでにgithubの「y」ショートカットでの挙動はいささかおかしい(URLは書き換えるがブラウザのhistoryにそれを積まない)のでこのブックマークレットではきちんと置換後のURLへ遷移することにした。
@@ -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 です。