您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
5/28/2020, 5:17:05 PM
// ==UserScript== // @name Publish button in repo on GitHub // @namespace Violentmonkey Scripts // @match https://github.com/*/* // @grant none // @version 1.4 // @author - // @description 5/28/2020, 5:17:05 PM // ==/UserScript== const username = $("a.url.fn").innerText // DOM-lib Element.prototype.makeElement = function (tag, options={}) { return makeElement(tag, options, this) } Element.prototype.find = Element.prototype.querySelector function makeElement(tag, options={}, parent) { const el = document.createElement(tag) Object.assign(el, options) if (parent) parent.append(el) return el } function $(selector, text) { if (text) return [...$$(selector)].find(el => el.innerText == text) return document.querySelector(selector) } function $$(selector) { return [...document.body.querySelectorAll(selector)].filter(el => el.tagName != "SCRIPT") } // Script if (username == location.href.match(/github.com\/([^\/]*)/)[1]) { if (!location.href.endsWith('/settings') && !localStorage.publish) { $('.pagehead-actions').makeElement('li').makeElement('button', {className: 'btn btn-sm', innerText: 'Publish'}).onclick = () => { console.log('start publish') localStorage.publish = 1 location.href += '/settings/pages' } } else if (location.href.endsWith('/settings/pages') && localStorage.publish == 1) { localStorage.publish = 2 setTimeout(() => $('[value=master]').click(), 300) setTimeout(() => [...document.forms].find(form => form.action.endsWith("/pages/source")).submit(), 1000) } else if (location.href.endsWith('/settings/pages') && localStorage.publish == 2) { localStorage.publish = 3 location.href = location.href.replace('/settings/pages', '') } else if (!location.href.endsWith('/settings/pages') && localStorage.publish == 3) { delete localStorage.publish repo_homepage.value = 'https://' + username + '.github.io/' + location.href.replace('https://github.com/' + username + '/', '') + '/' repo_metadata_form.submit() } }