diff --git a/badge.js b/badge.js
index 84c435007e..ba0e502156 100644
--- a/badge.js
+++ b/badge.js
@@ -52,20 +52,23 @@ function makeImage(data, cb) {
if (!(data.template + '-' + data.format in templates)) {
data.template = 'default';
}
+ if (data.colorscheme) {
+ var pickedColorscheme = colorscheme[data.colorscheme];
+ if (!pickedColorscheme) {
+ pickedColorscheme = colorscheme.red;
+ }
+ data.colorA = pickedColorscheme.colorA;
+ data.colorB = pickedColorscheme.colorB;
+ }
// String coercion.
data.text[0] = '' + data.text[0];
data.text[1] = '' + data.text[1];
-
- var template = templates[data.template + '-' + data.format];
- if (data.colorscheme) {
- data.colorA = colorscheme[data.colorscheme].colorA;
- data.colorB = colorscheme[data.colorscheme].colorB;
- }
data.widths = [
(canvasContext.measureText(data.text[0]).width|0) + 10,
(canvasContext.measureText(data.text[1]).width|0) + 10,
];
+ var template = templates[data.template + '-' + data.format];
addEscapers(data);
try {
var result = template(data);
diff --git a/server.js b/server.js
index 234d0a8e17..f6c2699db5 100644
--- a/server.js
+++ b/server.js
@@ -2453,6 +2453,7 @@ function(data, match, end, ask) {
}
badge(badgeData, makeSend(format, ask.res, end));
} catch(e) {
+ console.error(e.stack);
badge({text: ['error', 'bad badge'], colorscheme: 'red'},
makeSend(format, ask.res, end));
}
diff --git a/templates/default-template.svg b/templates/default-template.svg
index a1c78f1eec..dcc8af4aa5 100644
--- a/templates/default-template.svg
+++ b/templates/default-template.svg
@@ -5,9 +5,9 @@
-
-
-
+
+
+
{{=it.escapeXml(it.text[0])}}
diff --git a/templates/flat-square-template.svg b/templates/flat-square-template.svg
index eb46ea55b4..75fb021f14 100644
--- a/templates/flat-square-template.svg
+++ b/templates/flat-square-template.svg
@@ -1,7 +1,7 @@