Add a button to visit the `sha^` (parent commit) on each commit on a `git blame` page.
Versión del día
// ==UserScript==
// @name GitHub: Blame Previous Commit Button
// @description Add a button to visit the `sha^` (parent commit) on each commit on a `git blame` page.
// @author Chris H (Zren / Shade)
// @icon https://github.com/favicon.ico
// @namespace http://xshade.ca
// @version 1
// @include https://github.com*
// ==/UserScript==
(function(uw){
var $ = uw.$;
var createElement = function(html) {
var e = document.createElement('div');
e.innerHTML = html;
return e.firstChild;
};
var blameUrlPattern = /^(https:\/\/github.com\/[^\/]+\/[^\/]+\/blame\/)([^\/]+)(.*)$/;
var main = function() {
var m = blameUrlPattern.exec(document.location.href);
if (!m)
return;
Array.prototype.forEach.call(document.querySelectorAll('.blame-commit-info'), function(e) {
var url = e.firstElementChild.href;
var sha = url.substr(url.lastIndexOf('/') + 1);
var blameUrlForCurrentFile = m[1] + sha + encodeURI('^') + m[3];
var html = '<a class="blame-sha blame-previous-commit" href="' + blameUrlForCurrentFile + '">Before</a>';
var a = createElement(html);
e.lastElementChild.insertBefore(a, e.lastElementChild.firstChild);
});
};
main();
$(document).on('pjax:end', main);
})(typeof unsafeWindow === 'undefined' ? window : unsafeWindow);