您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A Tampermonkey script that helps you quickly link to [ossinsight](https://ossinsight.io/) in your GitHub repository to quickly analyze the health of an open source project for more multidimensional insight into an open source project
// ==UserScript== // @name github-ossinsight // @namespace https://github.com/lly-ke/github-ossinsight // @version 2022.12.20 // @description A Tampermonkey script that helps you quickly link to [ossinsight](https://ossinsight.io/) in your GitHub repository to quickly analyze the health of an open source project for more multidimensional insight into an open source project // @description:zh 一个 Tampermonkey(油猴) 脚本,它可以帮助您在 GitHub 仓库中快速链接到 [ossinsight](https://ossinsight.io/) , 以便快速分析开源项目健康状况以更在多维度深入探究一个开源项目 // @description:zh-CN 一个 Tampermonkey(油猴) 脚本,它可以帮助您在 GitHub 仓库中快速链接到 [ossinsight](https://ossinsight.io/) , 以便快速分析开源项目健康状况以更在多维度深入探究一个开源项目 // @author lly-ke // @match https://github.com/* // @icon https://raw.githubusercontent.com/lly-ke/github-ossinsight/main/images/logo.svg // @grant none // @license MIT // ==/UserScript== (function () { 'use strict' const svgStr = `<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="16px" height="15px" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewBox="0 0 128 80" id="svg2" version="1.1" inkscape:version="0.48.5 r10040" width="100%" height="100%" sodipodi:docname="activity-log-manager.svg"> <metadata id="metadata76"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title /> </cc:Work> </rdf:RDF> </metadata> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1082" inkscape:window-height="570" id="namedview74" showgrid="false" inkscape:zoom="2.4583334" inkscape:cx="97.683497" inkscape:cy="32.343562" inkscape:window-x="15" inkscape:window-y="39" inkscape:window-maximized="0" inkscape:current-layer="svg2" /> <defs id="defs4"> <linearGradient id="linearGradient3764" x1="1" x2="47" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,-1,1,0,-1.5e-6,47.999998)"> <stop stop-color="#8358b4" stop-opacity="1" id="stop7" /> <stop offset="1" stop-color="#8d65ba" stop-opacity="1" id="stop9" /> </linearGradient> <clipPath id="clipPath-057129763"> <g transform="translate(0,-1004.3622)" id="g12"> <path d="m -24,13 c 0,1.105 -0.672,2 -1.5,2 -0.828,0 -1.5,-0.895 -1.5,-2 0,-1.105 0.672,-2 1.5,-2 0.828,0 1.5,0.895 1.5,2 z" transform="matrix(15.333333,0,0,11.5,414.99999,878.8622)" id="path14" inkscape:connector-curvature="0" style="fill:#1890d0" /> </g> </clipPath> <clipPath id="clipPath-064426159"> <g transform="translate(0,-1004.3622)" id="g17"> <path d="m -24,13 c 0,1.105 -0.672,2 -1.5,2 -0.828,0 -1.5,-0.895 -1.5,-2 0,-1.105 0.672,-2 1.5,-2 0.828,0 1.5,0.895 1.5,2 z" transform="matrix(15.333333,0,0,11.5,414.99999,878.8622)" id="path19" inkscape:connector-curvature="0" style="fill:#1890d0" /> </g> </clipPath> </defs> <g id="g33" transform="translate(0,80)" /> <path style="fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0" id="path61" d="m 124.3786,58.780229 c -1.27749,-1.795307 -2.68782,-3.48499 -4.11179,-5.150822 C 112.62916,44.68703 103.86053,36.715539 94.250452,30.927693 88.115128,27.228104 81.543761,24.247314 74.74074,22.809725 71.279616,22.090933 67.893432,21.719607 64.319891,21.705982 c -3.461128,0 -6.918848,0.384951 -10.37997,1.103743 -6.813243,1.437589 -13.360765,4.418379 -19.496087,8.117968 -9.606671,5.787846 -18.388938,13.762746 -26.0538323,22.701714 -1.4103405,1.662427 -2.7934283,3.352111 -4.0709103,5.150822 -1.7441892,2.394851 -1.7441892,5.21552 0,7.61037 3.9005794,5.467639 8.5574296,10.322066 13.2687846,14.784739 10.192606,9.569192 21.863688,17.578152 34.73049,20.811052 3.978932,0.99813 7.971493,1.47846 11.977677,1.47846 4.057286,0 8.022589,-0.48033 12.001521,-1.47846 12.866803,-3.2329 24.551506,-11.24526 34.757746,-20.811052 4.73861,-4.445654 9.38182,-9.313696 13.29263,-14.784739 1.71694,-2.39485 1.71694,-5.215519 0,-7.61037 m 0,0" /> <path style="fill:#f9f9f9;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0" id="path63" d="m 95.010128,62.585414 c 0,16.927497 -13.728682,30.659556 -30.65958,30.659556 -16.927494,0 -30.659579,-13.728655 -30.659579,-30.659556 0,-16.927494 13.728682,-30.659582 30.659579,-30.659582 16.927497,0 30.65958,13.728679 30.65958,30.659582 m 0,0" /> <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0" id="SVGCleanerId_0" d="m 81.383648,62.585414 c 0,9.395467 -7.624015,17.019479 -17.0331,17.019479 -9.409084,0 -17.033099,-7.624012 -17.033099,-17.019479 0,-9.409081 7.624015,-17.033104 17.033099,-17.033104 9.409085,0 17.0331,7.624023 17.0331,17.033104 m 0,0" /> <path sodipodi:type="arc" style="fill:#f9f9f9;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path2994" sodipodi:cx="60.403698" sodipodi:cy="61.555935" sodipodi:rx="5.1774597" sodipodi:ry="4.889823" d="m 65.581158,61.555935 a 5.1774597,4.889823 0 1 1 -10.35492,0 5.1774597,4.889823 0 1 1 10.35492,0 z" transform="translate(12.066285,-6.7626366)" /> </svg> ` const el = document.querySelector('.pagehead-actions') const [owner, repo] = location.pathname.split('/').slice(1, 3) const targetUrl = `https://ossinsight.io/analyze/${owner}/${repo}` const title = `${repo} 仓库对应的 ossinsight 分析页面` if (!el) { console.log('github-ossinsight: 没有找到pagehead-actions元素, 无法添加按钮') return } el.insertAdjacentHTML( 'afterbegin', `<li><a id="github-ossinsight" href="${targetUrl}" target="_blank" rel="noopener noreferrer" title="${title}" aria-label="${title}" class="btn btn-sm tooltipped tooltipped-s">${svgStr}</a></li>` ) })();