diff --git a/action.yml b/action.yml
index b972aa3d..82875a23 100644
--- a/action.yml
+++ b/action.yml
@@ -1111,7 +1111,7 @@ inputs:
# Action metadata
name: GitHub metrics as SVG image
author: lowlighter
-description: An SVG generator with 20+ metrics about your GitHub account! Additional plugins are available to display even more!
+description: An infographics generator with 30+ plugins and 100+ options to display stats about your GitHub account and render them as SVG, Markdown, PDF or JSON!
branding:
icon: user-check
color: gray-dark
diff --git a/source/app/web/instance.mjs b/source/app/web/instance.mjs
index d1a1aee5..b1d8f280 100644
--- a/source/app/web/instance.mjs
+++ b/source/app/web/instance.mjs
@@ -188,9 +188,17 @@ export default async function({mock, nosettings} = {}) {
"activity.limit":100,
"activity.days":0,
notable:true,
+ followup:true,
+ "followup.sections":"repositories, user",
+ habits:true,
+ "habits.from":100,
+ "habits.days":7,
+ "habits.facts":false,
+ "habits.charts":true,
+ introduction:true
},
},
- {graphql, rest, plugins:{achievements:{enabled:true}, isocalendar:{enabled:true}, languages:{enabled:true}, activity:{enabled:true, markdown:"extended"}, notable:{enabled:true}}, conf, convert:"json"},
+ {graphql, rest, plugins:{achievements:{enabled:true}, isocalendar:{enabled:true}, languages:{enabled:true}, activity:{enabled:true, markdown:"extended"}, notable:{enabled:true}, followup:{enabled:true}, habits:{enabled:true}, introduction:{enabled:true}}, conf, convert:"json"},
{Plugins, Templates},
)
//Cache
diff --git a/source/app/web/statics/about/index.html b/source/app/web/statics/about/index.html
index 5f61c940..44c58fc2 100644
--- a/source/app/web/statics/about/index.html
+++ b/source/app/web/statics/about/index.html
@@ -76,6 +76,10 @@
+
+
@@ -165,6 +169,56 @@
+
+
+
+ Overall status of related issues and pull requests
+
+
+
+
+
Issues {{ {repositories:`opened on ${account.login}'${[...account.login].pop() === "s" ? "" : "s"} repositories`, user:`opened by ${account.login}`}[type] || "" }}
+
+
+
+
+ {{ section.issues.open }} open
+
+
+
+ {{ section.issues.closed }} closed
+
+
+
+
+
Pull requests {{ {repositories:`opened on ${account.login}'${[...account.login].pop() === "s" ? "" : "s"} repositories`, user:`opened by ${account.login}`}[type] || "" }}
+
+
+
+
+ {{ section.pr.open }} open
+
+
+
+ {{ section.pr.closed }} closed
+
+
+
+ {{ section.pr.merged }} merged
+
+
+
+
+
+
+
+
+
+
+ Average commits per day over the last week
+
+
+
+
{{ habits[h] }}
+
+
{{ `${h}`.padStart(2, 0) }}
+
+
+
+
diff --git a/source/app/web/statics/about/script.js b/source/app/web/statics/about/script.js
index 4a04ff71..794dda60 100644
--- a/source/app/web/statics/about/script.js
+++ b/source/app/web/statics/about/script.js
@@ -98,6 +98,15 @@
achievements() {
return this.metrics?.rendered.plugins.achievements.list?.filter(({ leaderboard }) => !leaderboard).filter(({ title }) => !/(?:automater|octonaut|infographile)/i.test(title)) ?? []
},
+ introduction() {
+ return this.metrics?.rendered.plugins.introduction?.text ?? ""
+ },
+ followup() {
+ return this.metrics?.rendered.plugins.followup ?? null
+ },
+ habits() {
+ return this.metrics?.rendered.plugins.habits.commits.hours ?? null
+ },
isocalendar() {
return (this.metrics?.rendered.plugins.isocalendar.svg ?? "")
.replace(/#ebedf0/gi, "var(--color-calendar-graph-day-bg)")
diff --git a/source/app/web/statics/about/style.css b/source/app/web/statics/about/style.css
index 8990e845..29e03db2 100644
--- a/source/app/web/statics/about/style.css
+++ b/source/app/web/statics/about/style.css
@@ -11,6 +11,9 @@
align-items: center;
margin-top: 1rem;
}
+ .text-center {
+ text-align: center;
+ }
/* Search */
.search {
@@ -82,6 +85,33 @@
box-shadow: 0 0 0 1px var(--color-avatar-border);
}
+/** Progress bars */
+ .progress-bars {
+ display: flex;
+ margin: .5rem 0;
+ }
+ .progress {
+ height: 8px;
+ border-radius: 6px;
+ outline: 1px solid transparent;
+ }
+ .progress:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .progress:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .legend {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ }
+ .legend > * {
+ margin: 0 1rem;
+ }
+
/* Languages */
.languages .list {
display: flex;
@@ -99,10 +129,16 @@
font-size: .8rem;
color: var(--color-text-secondary);
}
- .progress {
- height: 8px;
- border-radius: 6px;
- outline: 1px solid transparent;
+
+/* Followup */
+ .followup {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: row;
+ }
+ .followup .followup-section {
+ width: 100%;
+ margin-bottom: .5rem;
}
/* Isocalendar */
@@ -240,6 +276,32 @@
width: 100%;
}
+/* Charts */
+ .chart-bars {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-end;
+ width: 100%;
+ height: 12rem;
+ overflow: auto;
+ }
+ .chart-bars .entry {
+ flex: 1 1 0;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+ .chart-bars .entry .value {
+ color: var(--color-text-secondary);
+ font-size: .8rem;
+ }
+ .chart-bars .entry .label {
+ margin: 0 .25rem;
+ }
+ .chart-bars .bar {
+ width: 100%;
+ }
+
/* Icon gauges */
.gauge {
stroke-linecap: round;
@@ -387,6 +449,10 @@
.languages .language {
width: 25%;
}
+ .followup .followup-section {
+ width: calc(50% - 1rem);
+ margin-right: 1rem;
+ }
.search {
width: 520px;
}