Website badge: Fix color and subdirs, allow specifying label (#949)

This commit is contained in:
Georges Dupéron 2017-04-20 20:21:27 +02:00 committed by Paul Melnikow
parent a079b682e3
commit 571f46f16a
2 changed files with 29 additions and 11 deletions

View File

@ -5874,21 +5874,22 @@ cache(function(data, match, sendBadge, request) {
}));
// Test if a webpage is online
camp.route(/^\/website(-(([^-]|--)*?)-(([^-]|--)*)(-(([^-]|--)+)-(([^-]|--)+))?)?\/([^/]+)\/(.+)\.(svg|png|gif|jpg|json)$/,
camp.route(/^\/website(-(([^-/]|--|\/\/)+)-(([^-/]|--|\/\/)+)(-(([^-/]|--|\/\/)+)-(([^-/]|--|\/\/)+))?)?(-(([^-/]|--|\/\/)+))?\/([^/]+)\/(.+)\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
var onlineMessage = escapeFormat(match[2] != null ? match[2] : "online");
var offlineMessage = escapeFormat(match[4] != null ? match[4] : "offline");
var onlineColor = escapeFormat(match[7] != null ? match[7] : "brightgreen");
var offlineColor = escapeFormat(match[9] != null ? match[9] : "red");
var userProtocol = match[11];
var userURI = match[12];
var format = match[13];
var onlineMessage = escapeFormatSlashes(match[2] != null ? match[2] : "online");
var offlineMessage = escapeFormatSlashes(match[4] != null ? match[4] : "offline");
var onlineColor = escapeFormatSlashes(match[7] != null ? match[7] : "brightgreen");
var offlineColor = escapeFormatSlashes(match[9] != null ? match[9] : "red");
var label = escapeFormatSlashes(match[12] != null ? match[12] : "website");
var userProtocol = match[14];
var userURI = match[15];
var format = match[16];
var withProtocolURI = userProtocol + "://" + userURI;
var options = {
method: 'HEAD',
uri: withProtocolURI,
};
var badgeData = getBadgeData('website', data);
var badgeData = getBadgeData(label, data);
badgeData.colorscheme = undefined;
request(options, function(err, res) {
// We consider all HTTP status codes below 310 as success.
@ -6332,6 +6333,13 @@ function escapeFormat(t) {
.replace(/__/g, '_').replace(/--/g, '-');
}
function escapeFormatSlashes(t) {
return escapeFormat(t)
// Double slash
.replace(/\/\//g, '/');
}
function sixHex(s) { return /^[0-9a-fA-F]{6}$/.test(s); }
function getLabel(label, data) {

View File

@ -405,8 +405,8 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable
<td><code>https://img.shields.io/chrome-web-store/d/nimelepbpejjlbmoobocpfnjhihnpked.svg</code></td>
</tr>
<tr><th data-keywords='website' data-doc='websiteDoc'> Website: </th>
<td><img src='/website-up-down-green-red/http/shields.io.svg' alt=''/></td>
<td><code>https://img.shields.io/website-up-down-green-red/http/shields.io.svg</code></td>
<td><img src='/website-up-down-green-red-my--website/http/shields.io.svg' alt=''/></td>
<td><code>https://img.shields.io/website-up-down-green-red-my--website/http/shields.io.svg</code></td>
</tr>
<tr><th data-keywords='cocoapods'> CocoaPods: </th>
<td><img src='/cocoapods/dt/AFNetworking.svg' alt='' /></td>
@ -1225,10 +1225,16 @@ is where the current server got started.
<ul>
<li>Nothing:
<code>…/website/…</code></li>
<li>Badge label (displayed in the left part of the badge):
<code>…/website-label/…</code></li>
<li>Online and offline text:
<code>…/website-up-down/…</code></li>
<li>Online and offline text, then badge label:
<code>…/website-up-down-label/…</code></li>
<li>Online and offline text, then online and offline colors:
<code>…/website-up-down-green-orange/…</code></li>
<li>Online and offline text, then online and offline colors, then badge label:
<code>…/website-up-down-green-orange-label/…</code></li>
</ul>
<table class=centered><tbody>
<tr><td> Dashes <code>--</code>
@ -1239,6 +1245,10 @@ is where the current server got started.
</td><td>
</td><td> <code>_</code> Underscore <br/>
</td></tr>
<tr><td> Slashes <code>//</code>
</td><td>
</td><td> <code>/</code> Slash <br/>
</td></tr>
<tr><td> <code>_</code> or Space <code>&nbsp;</code>
</td><td>
</td><td> <code>&nbsp;</code> Space