Skip to content
This repository was archived by the owner on May 11, 2025. It is now read-only.

Commit 7c602d6

Browse files
committed
0.18
1 parent d07c6f4 commit 7c602d6

2 files changed

Lines changed: 18 additions & 24 deletions

File tree

stats.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -591,20 +591,25 @@ async function langStatistics(queue) {
591591
}
592592

593593
function langHandler(langs) {
594+
langs = {...langs}; // 这里有一个很神奇的关于指针的Bug的回忆
595+
// (缓存与操作的Array指向一个列表, 导致了奇妙的事情发生, 有意者可以亲自拉下代码复刻这一[特性])
594596
const val_arr = Object.values(langs).sort().reverse();
595597
const total = val_arr.reduce((before, after) => before + after);
596598
for (let k in langs) {
597599
langs[langs[k]] = k;
598600
delete langs[k];
599601
}
602+
let cursor = 0;
600603
return val_arr.map(key => {
601604
const lang = langs[key];
602-
const percent = key / total * 100;
605+
const ratio = key / total;
606+
cursor += ratio;
603607
return {
604608
name: lang,
605609
color: lang_colors[lang],
606-
percent: percent,
607-
text: `${percent.toFixed(0)}% (${decConvert(key)})`,
610+
cursor: cursor - ratio,
611+
ratio: ratio,
612+
text: `${(ratio*100).toFixed(0)}% (${decConvert(key)})`,
608613
}
609614
});
610615
}
@@ -633,7 +638,7 @@ async function getRepository(username, repo) {
633638
stars: decConvert(info['stargazers_count']),
634639
watchers: decConvert(info['watchers_count']),
635640
license: info['license']['spdx_id'],
636-
language: info['language'],
641+
color: lang_colors[info['language']],
637642
langs: langHandler(await getLanguage(username, repo)),
638643
};
639644
}

views/repo.ejs

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
display: block;
77
fill: #8b849e;
88
}
9+
.repo-color {
10+
animation: fadeInAnimation 0.8s ease-in-out forwards;
11+
}
912
.header {
1013
font: 600 18px 'Segoe UI', Ubuntu, Sans-Serif;
1114
fill: #2f80ed;
@@ -57,14 +60,6 @@
5760
transform: translate(-5px, 5px) scale(1);
5861
}
5962
}
60-
@keyframes fadeInAnimation {
61-
from {
62-
opacity: 0;
63-
}
64-
to {
65-
opacity: 1;
66-
}
67-
}
6863
@keyframes rankAnimation {
6964
from {
7065
stroke-dashoffset: 251.32741228718345;
@@ -91,8 +86,8 @@
9186
}
9287
</style>
9388
<rect data-testid="card-bg" x="0.5" y="0.5" rx="4.5" height="99%" stroke="#e4e2e2" width="659" fill="#fffefe" stroke-opacity="1"/>
94-
<g data-testid="card-title" transform="translate(25, 35)"><g transform="translate(0, 0)"><text x="0" y="0" class="header" data-testid="header"><a href="https://github.com/<%- username %>/<%- repo %>/"><%- username %> / <%- repo %></a></text></g></g>
95-
<g data-testid="main-card-body" transform="translate(0, 55)"><svg x="0" y="0">
89+
<g data-testid="card-title" transform="translate(40, 35)"><g transform="translate(0, 0)"><circle class="repo-color" cx="-10" cy="-5" r="5" fill="<%- color %>"/><text x="0" y="0" class="header" data-testid="header"><a href="https://github.com/<%- username %>/<%- repo %>/"><%- username %> / <%- repo %></a></text></g></g>
90+
<g data-testid="main-card-info" transform="translate(0, 55)"><svg x="0" y="0">
9691
<g transform="translate(0, 0)">
9792
<g class="stagger" style="animation-delay: 450ms" transform="translate(25, 0)">
9893
<svg xmlns="http://www.w3.org/2000/svg" data-testid="icon" class="icon" viewBox="0 0 16 16" version="1.1" width="16" height="16">
@@ -138,22 +133,16 @@
138133
</g>
139134
</svg></g>
140135
<line x1="290" y1="40" x2="290" y2="186" stroke="#eeecec"></line>
141-
<g xmlns="http://www.w3.org/2000/svg" transform="translate(300, 55)" data-testid="main-card-body">
136+
<g xmlns="http://www.w3.org/2000/svg" transform="translate(300, 55)" data-testid="main-card-progress">
142137

143138
<svg data-testid="lang-items" x="25">
144139
<mask id="rect-mask">
145140
<rect x="0" y="0" width="300" height="8" fill="white" rx="5"/>
146141
</mask>
147142

148-
<rect mask="url(#rect-mask)" data-testid="lang-progress" x="0" y="0" width="230.36" height="8" fill="#f1e05a"/>
149-
150-
<rect mask="url(#rect-mask)" data-testid="lang-progress" x="230.36" y="0" width="30.53" height="8" fill="#e34c26"/>
151-
152-
<rect mask="url(#rect-mask)" data-testid="lang-progress" x="260.89" y="0" width="29.67" height="8" fill="#3178c6"/>
153-
154-
<rect mask="url(#rect-mask)" data-testid="lang-progress" x="290.56" y="0" width="18.08" height="8" fill="#563d7c"/>
155-
156-
<rect mask="url(#rect-mask)" data-testid="lang-progress" x="298.64" y="0" width="11.370000000000001" height="8" fill="#5686a5"/>
143+
<% langs.forEach(function(lang){ %>
144+
<rect mask="url(#rect-mask)" data-testid="lang-progress" x="<%- lang.cursor * 300 %>" y="0" width="<%- lang.ratio * 300 %>" height="8" fill="<%- lang.color %>"/>
145+
<% }); %>
157146

158147

159148
<g transform="translate(0, 25)">

0 commit comments

Comments
 (0)