blob: c541920cc179975afdfc6b1971e07ee5d5a9c71c [file] [log] [blame]
---
layout: raw
---
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html><body><style type="text/css">
body {
padding: 0;
margin: 0;
font: bold 11px/14px "Helvetica Neue", Helvetica, Arial, sans-serif;
overflow: hidden;
}
.github-btn {
height: 20px;
overflow: hidden;
}
.gh-btn,
.gh-count,
.gh-ico {
float: left;
}
.gh-btn,
.gh-count {
padding: 2px 5px 2px 4px;
color: #333;
text-decoration: none;
text-shadow: 0 1px 0 #fff;
white-space: nowrap;
cursor: pointer;
border-radius: 3px;
}
.gh-btn {
background-color: #e6e6e6;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fafafa), to(#eaeaea));
background-image: -webkit-linear-gradient(#fafafa, #eaeaea);
background-image: -moz-linear-gradient(top, #fafafa, #eaeaea);
background-image: -ms-linear-gradient(#fafafa, #eaeaea);
background-image: -o-linear-gradient(#fafafa, #eaeaea);
background-image: linear-gradient(#fafafa, #eaeaea);
background-repeat: no-repeat;
border: 1px solid #d4d4d4;
border-bottom-color: #bcbcbc;
}
.gh-btn:hover,
.gh-btn:focus,
.gh-btn:active {
color: #fff;
text-decoration: none;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
border-color: #518cc6 #518cc6 #2a65a0;
background-color: #3072b3;
}
.gh-btn:hover,
.gh-btn:focus {
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#599bdc), to(#3072b3));
background-image: -webkit-linear-gradient(#599bdc, #3072b3);
background-image: -moz-linear-gradient(top, #599bdc, #3072b3);
background-image: -ms-linear-gradient(#599bdc, #3072b3);
background-image: -o-linear-gradient(#599bdc, #3072b3);
background-image: linear-gradient(#599bdc, #3072b3);
}
.gh-btn:active {
background-image: none;
-webkit-box-shadow: inset 0 2px 5px rgba(0,0,0,.10);
-moz-box-shadow: inset 0 2px 5px rgba(0,0,0,.10);
box-shadow: inset 0 2px 5px rgba(0,0,0,.10);
}
.gh-ico {
width: 14px;
height: 14px;
margin-right: 4px;
vertical-align: 3px;
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMTMycHgiIGhlaWdodD0iNjZweCIgdmlld0JveD0iMCAwIDEzMiA2NiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTMyIDY2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjMzMzMzMzIiBkPSJNMzMsMS44Yy0xNy43LDAtMzIsMTQuMy0zMiwzMmMwLDE0LjEsOS4yLDI2LjEsMjEuOSwzMC40DQoJYzEuNiwwLjMsMi4yLTAuNywyLjItMS41YzAtMC44LDAtMi44LDAtNS40Yy04LjksMS45LTEwLjgtNC4zLTEwLjgtNC4zYy0xLjUtMy43LTMuNi00LjctMy42LTQuN2MtMi45LTIsMC4yLTEuOSwwLjItMS45DQoJYzMuMiwwLjIsNC45LDMuMyw0LjksMy4zYzIuOSw0LjksNy41LDMuNSw5LjMsMi43YzAuMy0yLjEsMS4xLTMuNSwyLTQuM2MtNy4xLTAuOC0xNC42LTMuNi0xNC42LTE1LjhjMC0zLjUsMS4yLTYuMywzLjMtOC42DQoJYy0wLjMtMC44LTEuNC00LjEsMC4zLTguNWMwLDAsMi43LTAuOSw4LjgsMy4zYzIuNi0wLjcsNS4zLTEuMSw4LTEuMWMyLjcsMCw1LjUsMC40LDgsMS4xYzYuMS00LjEsOC44LTMuMyw4LjgtMy4zDQoJYzEuNyw0LjQsMC42LDcuNywwLjMsOC41YzIuMSwyLjIsMy4zLDUuMSwzLjMsOC42YzAsMTIuMy03LjUsMTUtMTQuNiwxNS44YzEuMSwxLDIuMiwyLjksMi4yLDUuOWMwLDQuMywwLDcuNywwLDguOA0KCWMwLDAuOSwwLjYsMS45LDIuMiwxLjVDNTUuOCw1OS45LDY1LDQ3LjksNjUsMzMuOEM2NSwxNi4xLDUwLjcsMS44LDMzLDEuOHoiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjRkZGRkZGIiBkPSJNOTksMS44Yy0xNy43LDAtMzIsMTQuMy0zMiwzMmMwLDE0LjEsOS4yLDI2LjEsMjEuOSwzMC40DQoJYzEuNiwwLjMsMi4yLTAuNywyLjItMS41YzAtMC44LDAtMi44LDAtNS40Yy04LjksMS45LTEwLjgtNC4zLTEwLjgtNC4zYy0xLjUtMy43LTMuNi00LjctMy42LTQuN2MtMi45LTIsMC4yLTEuOSwwLjItMS45DQoJYzMuMiwwLjIsNC45LDMuMyw0LjksMy4zYzIuOSw0LjksNy41LDMuNSw5LjMsMi43YzAuMy0yLjEsMS4xLTMuNSwyLTQuM2MtNy4xLTAuOC0xNC42LTMuNi0xNC42LTE1LjhjMC0zLjUsMS4yLTYuMywzLjMtOC42DQoJYy0wLjMtMC44LTEuNC00LjEsMC4zLTguNWMwLDAsMi43LTAuOSw4LjgsMy4zYzIuNi0wLjcsNS4zLTEuMSw4LTEuMWMyLjcsMCw1LjUsMC40LDgsMS4xYzYuMS00LjEsOC44LTMuMyw4LjgtMy4zDQoJYzEuNyw0LjQsMC42LDcuNywwLjMsOC41YzIuMSwyLjIsMy4zLDUuMSwzLjMsOC42YzAsMTIuMy03LjUsMTUtMTQuNiwxNS44YzEuMSwxLDIuMiwyLjksMi4yLDUuOWMwLDQuMywwLDcuNywwLDguOA0KCWMwLDAuOSwwLjYsMS45LDIuMiwxLjVjMTIuNy00LjIsMjEuOS0xNi4yLDIxLjktMzAuNEMxMzEsMTYuMSwxMTYuNywxLjgsOTksMS44eiIvPg0KPC9zdmc+DQo=);
background-size: 28px 14px;
background-repeat: no-repeat;
background-position: 0 0;
}
.gh-btn:hover .gh-ico,
.gh-btn:focus .gh-ico,
.gh-btn:active .gh-ico {
background-position: -14px 0;
}
.gh-count {
position: relative;
display: none; /* hidden to start */
margin-left: 4px;
background-color: #fafafa;
border: 1px solid #d4d4d4;
}
.gh-count:hover,
.gh-count:focus {
color: #4183C4;
}
.gh-count:before,
.gh-count:after {
content: '';
position: absolute;
display: inline-block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.gh-count:before {
top: 50%;
left: -3px;
margin-top: -4px;
border-width: 4px 4px 4px 0;
border-right-color: #fafafa;
}
.gh-count:after {
top: 50%;
left: -4px;
z-index: -1;
margin-top: -5px;
border-width: 5px 5px 5px 0;
border-right-color: #d4d4d4;
}
.github-btn-large {
height: 30px;
}
.github-btn-large .gh-btn,
.github-btn-large .gh-count {
padding: 3px 10px 3px 8px;
font-size: 16px;
line-height: 22px;
border-radius: 4px;
}
.github-btn-large .gh-ico {
width: 20px;
height: 20px;
background-size: 40px 20px;
}
.github-btn-large .gh-btn:hover .gh-ico,
.github-btn-large .gh-btn:focus .gh-ico,
.github-btn-large .gh-btn:active .gh-ico {
background-position: -20px 0;
}
.github-btn-large .gh-count {
margin-left: 6px;
}
.github-btn-large .gh-count:before {
left: -5px;
margin-top: -6px;
border-width: 6px 6px 6px 0;
}
.github-btn-large .gh-count:after {
left: -6px;
margin-top: -7px;
border-width: 7px 7px 7px 0;
}
</style>
<span class="github-btn" id="github-btn">
<a class="gh-btn" id="gh-btn" href="#" target="_blank">
<span class="gh-ico"></span>
<span class="gh-text" id="gh-text"></span>
</a>
<a class="gh-count" id="gh-count" href="#" target="_blank"></a>
</span>
<script>
// Read a page's GET URL variables and return them as an associative array.
// Source: http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html
var params = function () {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}()
var user = params.user,
repo = params.repo,
type = params.type,
count = params.count,
size = params.size,
head = document.getElementsByTagName('head')[0],
button = document.getElementById('gh-btn'),
mainButton = document.getElementById('github-btn'),
text = document.getElementById('gh-text'),
counter = document.getElementById('gh-count');
// Add commas to numbers
function addCommas(n) {
return String(n).replace(/(\d)(?=(\d{3})+$)/g, '$1,')
}
function jsonp(path) {
var el = document.createElement('script');
el.src = path + '?callback=callback';
head.insertBefore(el, head.firstChild);
}
function callback(obj) {
if (type == 'watch') {
counter.innerHTML = addCommas(obj.data.watchers);
} else if (type == 'fork') {
counter.innerHTML = addCommas(obj.data.forks);
} else if (type == 'follow') {
counter.innerHTML = addCommas(obj.data.followers);
}
// Show the count if asked
if (count == 'true') {
counter.style.display = 'block';
}
}
// Set href to be URL for repo
button.href = 'https://github.com/' + user + '/' + repo + '/';
// Add the class, change the text label, set count link href
if (type == 'watch') {
mainButton.className += ' github-watchers';
text.innerHTML = 'Star';
counter.href = 'https://github.com/' + user + '/' + repo + '/stargazers';
} else if (type == 'fork') {
mainButton.className += ' github-forks';
text.innerHTML = 'Fork';
counter.href = 'https://github.com/' + user + '/' + repo + '/network';
} else if (type == 'follow') {
mainButton.className += ' github-me';
text.innerHTML = 'Follow @' + user;
button.href = 'https://github.com/' + user;
counter.href = 'https://github.com/' + user + '/followers';
}
// Change the size
if (size == 'large') {
mainButton.className += ' github-btn-large';
}
if (type == 'follow') {
jsonp('https://api.github.com/users/' + user);
} else {
jsonp('https://api.github.com/repos/' + user + '/' + repo);
}
</script></body></html>