- <%= plugins.stargazers.error.message %>
+ <% if (plugins.pagespeed) { %>
+
-
- Total stargazers
-
- <% { let previous = null; for (const [date, value] of Object.entries(plugins.stargazers.total.dates)) { const p = 0.05+0.95*(value-plugins.stargazers.total.min)/(plugins.stargazers.total.max-plugins.stargazers.total.min); const [y, m, d] = date.split("-").map(Number) %>
-
-
<%= (value-(previous ?? 0)) ? value : "" %>
-
- <%= d %>
- <% if ((previous === null)||(d === 1)) { %>
-
<%= plugins.stargazers.months[m] %>
+
+
+
+ <% for (const {score, title} of plugins.pagespeed.scores) { %>
+
+
+ <%= title %>
+
+ <% } %>
+
+
+
+ <% if (plugins.pagespeed.detailed) { %>
+
+
+
+
+ Time to interactive
+
+
+
+
+ Total Blocking Time
+
+
+
+ First Contentful Paint
+
+
+
+ Largest Contentful Paint
+
+
+
+ Cumulative Layout Shift
+
+
+
+ <% for (const {score, suffix = "", threshold} of [
+ {score:plugins.pagespeed.metrics.interactive/1000, suffix:"s", threshold:[3.785, 7.3]},
+ {score:plugins.pagespeed.metrics.speedIndex/1000, suffix:"s", threshold:[3.387, 5.8]},
+ {score:plugins.pagespeed.metrics.totalBlockingTime/1000, suffix:"s", threshold:[.287, .6]},
+ {score:plugins.pagespeed.metrics.firstContentfulPaint/1000, suffix:"s", threshold:[2.336, 4]},
+ {score:plugins.pagespeed.metrics.largestContentfulPaint/1000, suffix:"s", threshold:[2.5, 4]},
+ {score:+plugins.pagespeed.metrics.cumulativeLayoutShift, threshold:[.1, .25]}
+ ]) { %>
+
+
+ <% if (!Number.isNaN(score)) { %>
+ <%= score.toFixed(2).replace(/[.]0+$/, "") %> <%= suffix %>
+ <% } else { %>
+ N/A
<% } %>
- <% previous = value } } %>
-
-
-
- New stargazers per day
-
- <% { let previous = true; for (const [date, value] of Object.entries(plugins.stargazers.increments.dates)) { const p = value/plugins.stargazers.increments.max; const [y, m, d] = date.split("-").map(Number) %>
-
-
<%= value != 0 ? value : "" %>
-
- <%= d %>
- <% if ((previous === null)||(d === 1)) { %>
-
<%= plugins.stargazers.months[m] %>
- <% } %>
-
- <% previous = value } } %>
-
-
-
+ <% if (Number.isNaN(score)) { %>
+
+ <% } else if (score <= threshold[0]) { %>
+
+ <% } else if (score <= threshold[1]) { %>
+
+ <% } else { %>
+
+ <% } %>
+
+ <% } %>
+
+
+ <% } %>
+ <% if (plugins.pagespeed.screenshot) { %>
+
+
+
+
+
+ <% } %>
<% } %>
-
+ <% } %>
+
+ <% if (plugins.stargazers) { %>
+
+
+
+ Stargazers over the last two weeks
+
+ <% if (plugins.stargazers.error) { %>
+
+
+ <%= plugins.stargazers.error.message %>
+
+ <% } else { %>
+
+
+ Total stargazers
+
+ <% { let previous = null; for (const [date, value] of Object.entries(plugins.stargazers.total.dates)) { const p = 0.05+0.95*(value-plugins.stargazers.total.min)/(plugins.stargazers.total.max-plugins.stargazers.total.min); const [y, m, d] = date.split("-").map(Number) %>
+
+
<%= (value-(previous ?? 0)) ? value : "" %>
+
+ <%= d %>
+ <% if ((previous === null)||(d === 1)) { %>
+
<%= plugins.stargazers.months[m] %>
+ <% } %>
+
+ <% previous = value } } %>
+
+
+
+ New stargazers per day
+
+ <% { let previous = true; for (const [date, value] of Object.entries(plugins.stargazers.increments.dates)) { const p = value/plugins.stargazers.increments.max; const [y, m, d] = date.split("-").map(Number) %>
+
+
<%= value != 0 ? value : "" %>
+
+ <%= d %>
+ <% if ((previous === null)||(d === 1)) { %>
+
<%= plugins.stargazers.months[m] %>
+ <% } %>
+
+ <% previous = value } } %>
+
+
+
+ <% } %>
+
+ <% } %>
+
<% } %>
<% if (base.metadata) { %>
diff --git a/source/templates/repository/template.mjs b/source/templates/repository/template.mjs
index 98ffe8b7..cbee549e 100644
--- a/source/templates/repository/template.mjs
+++ b/source/templates/repository/template.mjs
@@ -30,9 +30,10 @@
}
console.debug(`metrics/compute/${login}/${repo} > ${commits.length} commits loaded`)
- //Override creation date and disk usage
+ //Override creation date, disk usage and website url
data.user.createdAt = repository.createdAt
data.user.repositories.totalDiskUsage = repository.diskUsage
+ data.user.websiteUrl = repository.homepageUrl
//Override contributions calendar
const days = 14
diff --git a/tests/metrics.test.js b/tests/metrics.test.js
index 4c3b37de..b4cfc80c 100644
--- a/tests/metrics.test.js
+++ b/tests/metrics.test.js
@@ -86,24 +86,24 @@
}],
["PageSpeed plugin (default)", {
plugin_pagespeed:true,
- }, {skip:["repository"]}],
+ }],
["PageSpeed plugin (different url)", {
plugin_pagespeed:true,
plugin_pagespeed_url:"github.com",
- }, {skip:["repository"]}],
+ }],
["PageSpeed plugin (detailed)", {
plugin_pagespeed:true,
plugin_pagespeed_detailed:true,
- }, {skip:["repository"]}],
+ }],
["PageSpeed plugin (screenshot)", {
plugin_pagespeed:true,
plugin_pagespeed_screenshot:true,
- }, {skip:["repository"]}],
+ }],
["PageSpeed plugin (complete)", {
plugin_pagespeed:true,
plugin_pagespeed_detailed:true,
plugin_pagespeed_screenshot:true,
- }, {skip:["repository"]}],
+ }],
["Isocalendar plugin (default)", {
plugin_isocalendar: true,
}, {skip:["terminal", "repository"]}],
@@ -129,20 +129,20 @@
}, {skip:["terminal", "repository"]}],
["Language plugin (default)", {
plugin_languages:true,
- }, {skip:["repository"]}],
+ }],
["Language plugin (ignored languages)", {
plugin_languages:true,
plugin_languages_ignored:"html, css, dockerfile",
- }, {skip:["repository"]}],
+ }],
["Language plugin (skipped repositories)", {
plugin_languages:true,
plugin_languages_skipped:"metrics",
- }, {skip:["repository"]}],
+ }],
["Language plugin (complete)", {
plugin_languages:true,
plugin_languages_ignored:"html, css, dockerfile",
plugin_languages_skipped:"metrics",
- }, {skip:["repository"]}],
+ }],
["Follow-up plugin (default)", {
plugin_followup:true,
}],
@@ -241,20 +241,20 @@
plugin_activity_limit:100,
plugin_activity_days:14,
plugin_activity_filter:"all",
- }, {skip:["terminal"]}],
+ }, {skip:["terminal", "repository"]}],
["Activity plugin (filtered)", {
plugin_activity:true,
plugin_activity_filter:"pr, issue",
- }, {skip:["terminal"]}],
+ }, {skip:["terminal", "repository"]}],
["Stars plugin (default)", {
plugin_stars:true,
- }, {skip:["terminal"]}],
+ }, {skip:["terminal", "repository"]}],
["Stargazers plugin (default)", {
plugin_stargazers:true,
}, {skip:["terminal"]}],
["Gists plugin (default)", {
plugin_gists:true,
- }, {skip:["terminal"]}],
+ }, {skip:["terminal", "repository"]}],
]
//Tests run