Skip to content

Commit 8f5034b

Browse files
Replace Shields.io with locally rendered data/badges
1 parent 6e736d1 commit 8f5034b

File tree

4 files changed

+111
-62
lines changed

4 files changed

+111
-62
lines changed

sass/_extra.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@
5757
margin-right: 0.5em;
5858
}
5959

60+
.ui.label > .icon {
61+
margin-right: 0.25em;
62+
}
63+
64+
.ui.label > .detail {
65+
margin-left: 0.5em;
66+
}
67+
6068
@media only screen and (max-width: 991px) {
6169
.masthead .ui.menu a.item {
6270
display: none;

sass/_semantic.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
@import 'semantic/icon';
99
@import 'semantic/image';
1010
// @import 'semantic/input';
11-
// @import 'semantic/label';
11+
@import 'semantic/label';
1212
@import 'semantic/list';
1313
//@import 'semantic/loader';
1414
//@import 'semantic/placeholder';

sass/semantic/_label.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ a.ui.label {
351351
}
352352
.ui.card .image > .ui.ribbon.label,
353353
.ui.image > .ui.ribbon.label {
354-
left: calc(--0.05rem - 1.2em);
354+
left: calc(-0.05rem - 1.2em);
355355
}
356356
.ui.card .image > .ui[class*="right ribbon"].label,
357357
.ui.image > .ui[class*="right ribbon"].label {

templates/categories/macros.html

Lines changed: 101 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
11
{% macro info(item, section, archived=false) %}
22

3+
{% set github_token = get_env(name="GITHUB_TOKEN") %}
4+
35
{% if item.name %}
46
{% set name = item.name %}
57
{% endif %}
68

7-
{% if item.source %}
8-
{% if item.source == 'crates' %}
9-
{% set data = load_data(url = "https://crates.io/api/v1/crates/" ~ item.name ~ "?include=downloads", format="json", headers=["User-Agent=arewegameyet ([email protected])"]) %}
10-
{# human readable name #}
11-
{% set name = data.crate.name %}
12-
{# Github/Gitlab/Etc. repository #}
13-
{% set repository_url = data.crate.repository %}
14-
{% set crate_url = 'https://crates.io/crates/' ~ name %}
15-
{% set description = data.crate.description %}
16-
{% set latest_version = data.crate.default_version %}
17-
{% set downloads = data.crate.downloads %}
18-
{% set recent_downloads = data.crate.recent_downloads %}
19-
{% if data.crate.homepage %}
20-
{% set homepage_url = data.crate.homepage %}
21-
{% endif %}
22-
{% elif item.source == 'github' %}
23-
{% set data = load_data(url="https://api.github.com/repos/" ~ item.name, format="json") %}
24-
{% set name = data.name %}
25-
{% set repository_url = data.html_url %}
26-
{# Org or User name #}
27-
{% set owner = data.owner.login %}
28-
{% if data.homepage != "" %}
29-
{% set homepage_url = data.homepage %}
30-
{% endif %}
31-
{% set description = data.description %}
32-
{% set stars = data.stargazers_count %}
33-
{% set last_commit = data.pushed_at %}
9+
{% if item.source and item.source == 'crates' %}
10+
{% set data = load_data(url = "https://crates.io/api/v1/crates/" ~ item.name ~ "?include=downloads,default_version", format="json", headers=["User-Agent=arewegameyet ([email protected])"]) %}
11+
12+
{% set name = data.crate.name %}
13+
{% set description = data.crate.description %}
14+
{% set repository_url = data.crate.repository %}
15+
{% set crate_url = 'https://crates.io/crates/' ~ name %}
16+
{% set latest_version = data.crate.default_version %}
17+
{% set downloads = data.crate.downloads %}
18+
{% set recent_downloads = data.crate.recent_downloads %}
19+
{% set license = data.versions | first | get(key="license") %}
20+
21+
{% if data.crate.homepage %}
22+
{% set homepage_url = data.crate.homepage %}
23+
{% endif %}
24+
{% elif item.source and item.source == 'github' %}
25+
{% set data = load_data(url="https://api.github.com/repos/" ~ item.name, headers=["Authorization=Bearer " ~ github_token], format="json") %}
26+
27+
{% set name = data.name %}
28+
{% set description = data.description %}
29+
{% set repository_url = data.html_url %}
30+
31+
{% if data.license %}
32+
{% set license = data.license.name %}
33+
{% endif %}
34+
35+
{% if data.homepage %}
36+
{% set homepage_url = data.homepage %}
3437
{% endif %}
3538
{% endif %}
3639

@@ -50,6 +53,24 @@
5053
{% set primary_url = repository_url %}
5154
{% endif %}
5255

56+
{% if repository_url and repository_url is containing("github.com/") %}
57+
{% set repo_id = repository_url | split(pat="github.com/") | last %}
58+
59+
{% set data = load_data(url="https://api.github.com/repos/" ~ repo_id, headers=["Authorization=Bearer " ~ github_token], format="json", required=false) %}
60+
{% if data %}
61+
{% set stars = data.stargazers_count %}
62+
{% set last_activity = data.pushed_at %}
63+
{% endif %}
64+
{% elif repository_url and repository_url is containing("gitlab.com/") %}
65+
{% set repo_id = repository_url | split(pat="gitlab.com/") | last | urlencode_strict %}
66+
67+
{% set data = load_data(url="https://gitlab.com/api/v4/projects/" ~ repo_id, format="json", required=false) %}
68+
{% if data %}
69+
{% set stars = data.star_count %}
70+
{% set last_activity = data.last_activity_at %}
71+
{% endif %}
72+
{% endif %}
73+
5374
<li class="ui card{% if archived %} archived{% endif %}">
5475
{% if item.image %}
5576
{% if primary_url %}
@@ -66,28 +87,28 @@
6687
{% endif %}
6788

6889
<div class="content">
69-
<a href="#{{ name | slugify }}" id="{{ name | slugify }}" aria-label="Permanent link for {{ name }}">
70-
<i class="right floated hashtag icon"></i>
90+
<a class="right floated" href="#{{ name | slugify }}" id="{{ name | slugify }}" aria-label="Permanent link for {{ name }}">
91+
<i class="hashtag icon" aria-hidden="true"></i>
7192
</a>
7293

7394
{% if repository_url %}
74-
<a href="{{ repository_url }}" aria-label="Github link for {{ name }}">
75-
<i class="right floated github icon"></i>
95+
<a class="right floated" href="{{ repository_url }}" aria-label="Github link for {{ name }}">
96+
<i class="github icon" aria-hidden="true"></i>
7697
</a>
7798
{% endif %}
7899

79100
{% if crate_url %}
80-
<a href="{{ crate_url }}" aria-label="Crates.io link for {{ name }}">
81-
<i class="right floated cube icon"></i>
101+
<a class="right floated" href="{{ crate_url }}" aria-label="Crates.io link for {{ name }}">
102+
<i class="cube icon" aria-hidden="true"></i>
82103
</a>
83104
{% endif %}
84105

85106
{% if homepage_url %}
86-
<a href="{{ homepage_url }}" aria-label="Website link for {{ name }}">
87-
<i class="right floated home icon"></i>
107+
<a class="right floated" href="{{ homepage_url }}" aria-label="Website link for {{ name }}">
108+
<i class="home icon" aria-hidden="true"></i>
88109
</a>
89110
{% endif %}
90-
111+
91112
<div class="header">
92113
{% if primary_url %}
93114
<a href="{{ primary_url }}">{{ name }}</a>
@@ -112,60 +133,80 @@
112133

113134
{% if item.source or gitter_url %}
114135
<div class="extra content">
115-
116136
<div class="ui horizontal list">
117-
{% if item.source and item.source == 'crates' %}
137+
{% if gitter_url %}
118138
<div class="item">
119139
<div class="content">
120-
<a href="https://crates.io/crates/{{name}}">
121-
<img src="https://img.shields.io/crates/v/{{name}}.svg?maxAge=2592000" alt="Latest version: {{ latest_version }}">
140+
<a class="ui blue label" href="{{ gitter_url }}" target="_blank">
141+
<i class="chat icon" aria-hidden="true"></i>
142+
Chat on Gitter
122143
</a>
123144
</div>
124145
</div>
146+
{% endif %}
147+
{% if latest_version %}
125148
<div class="item">
126149
<div class="content">
127-
<a href="https://crates.io/crates/{{name}}">
128-
<img src="https://img.shields.io/crates/d/{{name}}.svg?maxAge=2592000" alt="Downloads: {{ downloads }}">
129-
</a>
150+
<div class="ui basic label">
151+
<i class="code icon" aria-hidden="true"></i>
152+
Latest version:
153+
<div class="detail">{{ latest_version }}</div>
154+
</div>
130155
</div>
131156
</div>
157+
{% endif %}
158+
{% if downloads %}
132159
<div class="item">
133160
<div class="content">
134-
<a href="https://crates.io/crates/{{name}}">
135-
<img src="https://img.shields.io/crates/dr/{{name}}.svg?maxAge=2592000" alt="Recent downloads: {{ recent_downloads }}">
136-
</a>
161+
<div class="ui basic label">
162+
<i class="download icon" aria-hidden="true"></i>
163+
Downloads:
164+
<div class="detail">{{ downloads | num_format }}</div>
165+
</div>
137166
</div>
138167
</div>
168+
{% endif %}
169+
{% if recent_downloads %}
139170
<div class="item">
140171
<div class="content">
141-
<a href="https://crates.io/crates/{{name}}">
142-
<img src="https://img.shields.io/crates/l/{{name}}.svg?maxAge=2592000" alt="View license for {{ name }}">
143-
</a>
172+
<div class="ui basic label">
173+
<i class="clock icon" aria-hidden="true"></i>
174+
Recent downloads:
175+
<div class="detail">{{ recent_downloads | num_format }}</div>
176+
</div>
144177
</div>
145178
</div>
146179
{% endif %}
147-
{% if item.source and item.source == 'github' %}
180+
{% if license %}
148181
<div class="item">
149182
<div class="content">
150-
<a href="https://github.com/{{owner}}/{{name}}">
151-
<img src="https://img.shields.io/github/stars/{{owner}}/{{name}}?style=flat" alt="Github Stars: {{ stars }}">
152-
</a>
183+
<div class="ui basic label">
184+
<i class="balance scale icon" aria-hidden="true"></i>
185+
License:
186+
<div class="detail">{{ license }}</div>
187+
</div>
153188
</div>
154189
</div>
190+
{% endif %}
191+
{% if stars %}
155192
<div class="item">
156193
<div class="content">
157-
<a href="https://github.com/{{owner}}/{{name}}">
158-
<img src="https://img.shields.io/github/last-commit/{{owner}}/{{name}}" alt="Last commit date: {{ last_commit | date }}">
159-
</a>
194+
<div class="ui basic label">
195+
<i class="star icon" aria-hidden="true"></i>
196+
Stars:
197+
<div class="detail">{{ stars }}</div>
198+
</div>
160199
</div>
161200
</div>
162201
{% endif %}
163-
{% if gitter_url %}
202+
{% if last_activity %}
164203
<div class="item">
165204
<div class="content">
166-
<a href="{{ gitter_url }}" target="_blank">
167-
<img src="/assets/badges/chat.svg"/>
168-
</a>
205+
<div class="ui basic label">
206+
<i class="calendar icon" aria-hidden="true"></i>
207+
Last activity:
208+
<div class="detail">{{ last_activity | date(format="%Y-%m-%d") }}</div>
209+
</div>
169210
</div>
170211
</div>
171212
{% endif %}

0 commit comments

Comments
 (0)