您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This adds a link to the fork's branch on the GitHub "Comparing changes" page (AKA the "Create a Pull Request" page). See https://stackoverflow.com/questions/77623282/how-do-i-get-my-remote-branch-url-from-the-github-create-pull-request-page for more details.
当前为
// ==UserScript== // @name Add repo/branch links to GitHub's "Comparing Changes" page // @namespace http://tampermonkey.net/ // @version 0.6 // @description This adds a link to the fork's branch on the GitHub "Comparing changes" page (AKA the "Create a Pull Request" page). See https://stackoverflow.com/questions/77623282/how-do-i-get-my-remote-branch-url-from-the-github-create-pull-request-page for more details. // @author DanKaplanSES // @match https://github.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com // @require https://code.jquery.com/jquery-3.7.1.min.js // @grant none // @license MIT // ==/UserScript== const browseRepoHtml = `<div class="browse-repo"><a href="#" target="_blank">Browse Repo</a></div>`; const browseBranchHtml = `<div class="browse-branch"><a href="#" target="_blank">Browse Branch</a></div>`; jQuery.noConflict(true)(function ($) { function modifyPage() { if (location.pathname.indexOf(`/compare/`) === -1) { return; } const isPageAlreadyModified = $(`#browse-link-0`).length > 0; if (isPageAlreadyModified) { return; } $(`.range-cross-repo-pair details`).wrap( `<div class="details-container"></div>` ); $(`.details-container`).each(function (index) { const containerType = $(this).find(`summary.branch`).length > 0 ? `branch` : `repo`; const html = containerType === `repo` ? browseRepoHtml : browseBranchHtml; const href = hrefString(containerType, index); $(this) .css({ 'display': `inline-block` }) .append(html) .css({ 'text-align': `center` }) .find(`a`) .attr({ id: `browse-link-${index}`, href }); const containerContentsHidden = $(this).find(`details`).is(`:hidden`); if (containerContentsHidden) { $(this).hide(); } }); $(`.range-editor .pre-mergability, .range-editor .d-inline-block`).css({ 'vertical-align': `top`, }); } function hrefString(containerType, index) { switch (containerType) { case 'repo': return `/` + $(`.css-truncate-target`)[index].textContent; case 'branch': return ( `/` + $(`.css-truncate-target`)[index - 1].textContent + `/tree/` + $(`.css-truncate-target`)[index].textContent ); default: throw new Error(`Unexpected hrefType: ${hrefType}`); } } const pageReadyForModification = $(`.range-cross-repo-pair details`).length > 0; if (pageReadyForModification) { modifyPage(); } setInterval(modifyPage, 1500); });