monitoring-jekyll-theme 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +36 -0
- data/_includes/accessibility.html +38 -0
- data/_includes/competitors.html +1 -0
- data/_includes/lighthouse.html +26 -0
- data/_includes/pagespeed.html +22 -0
- data/_includes/seo.html +177 -0
- data/_includes/statistiques.html +173 -0
- data/_includes/styles.html +50 -0
- data/_includes/stylestats.html +33 -0
- data/_includes/yellowlabtools.html +34 -0
- data/_layouts/default.html +19 -0
- data/_plugins/humanize.rb +258 -0
- data/assets/css/styles.css +449 -0
- data/assets/fonts/IBMPlexMono-Bold.ttf +0 -0
- data/assets/fonts/Optiker-K.woff2 +0 -0
- data/assets/fonts/PublicSans-Regular.woff2 +0 -0
- data/assets/js/frappe-charts.min.iife.js +2 -0
- data/assets/js/lighthouse.js +81 -0
- data/assets/js/van11y-accessible-hide-show-aria.es6.js +326 -0
- data/assets/js/van11y-accessible-tab-panel-aria.es6.js +491 -0
- metadata +105 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
<h3>Yellow Labs Tools</h3>
|
2
|
+
{% for org_hash in site.data.[include.site].[include.type] | sort %}
|
3
|
+
{% assign org = org_hash[1] %}
|
4
|
+
<div class="grid">
|
5
|
+
<div class="box date">
|
6
|
+
<span>Date</span>
|
7
|
+
<p>{{ org_hash[0] | date: "%d %b %y" }}</p>
|
8
|
+
</div>
|
9
|
+
<div class="box score">
|
10
|
+
<span>Time To First Byte</span>
|
11
|
+
{{ org.toolsResults.phantomas.metrics.timeToFirstByte | round }} <i>ms</i>
|
12
|
+
</div>
|
13
|
+
<div class="box score">
|
14
|
+
<span>html Size</span>
|
15
|
+
{{ org.toolsResults.phantomas.metrics.htmlSize | round }} <i>kb</i>
|
16
|
+
</div>
|
17
|
+
<div class="box score">
|
18
|
+
<span>js Size</span>
|
19
|
+
{{ org.toolsResults.phantomas.metrics.jsSize | round }} <i>kb</i>
|
20
|
+
</div>
|
21
|
+
<div class="box score">
|
22
|
+
<span>Time To First Css</span>
|
23
|
+
{{ org.toolsResults.phantomas.metrics.timeToFirstCss | round }} <i>ms</i>
|
24
|
+
</div>
|
25
|
+
<div class="box score">
|
26
|
+
<span>https Requests</span>
|
27
|
+
{{ org.toolsResults.phantomas.metrics.httpsRequests | round }}
|
28
|
+
</div>
|
29
|
+
<div class="box score">
|
30
|
+
<span>Not Found</span>
|
31
|
+
{{ org.toolsResults.phantomas.metrics.notFound | round }}
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
{% endfor %}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<link rel="stylesheet" href="/assets/css/styles.css">
|
5
|
+
</head>
|
6
|
+
|
7
|
+
<body>
|
8
|
+
|
9
|
+
<header class="wrapper">
|
10
|
+
<p><a href="/">Accueil</a></p>
|
11
|
+
<h1>Monitoring performance<br><small>{{ site.title }}</small></h1>
|
12
|
+
</header>
|
13
|
+
|
14
|
+
<div class="wrapper">
|
15
|
+
{{ content }}
|
16
|
+
</div>
|
17
|
+
</body>
|
18
|
+
|
19
|
+
</html>
|
@@ -0,0 +1,258 @@
|
|
1
|
+
# https://github.com/23maverick23/jekyll-humanize
|
2
|
+
module Jekyll
|
3
|
+
|
4
|
+
module Humanize
|
5
|
+
##
|
6
|
+
# This is a port of the Django app `humanize` which adds a "human touch"
|
7
|
+
# to data. Given that Jekyll produces static sites, some of the original
|
8
|
+
# methods do not make logical sense (e.g. naturaltime).
|
9
|
+
#
|
10
|
+
# Source code can be viewed here:
|
11
|
+
# https://github.com/django/django
|
12
|
+
#
|
13
|
+
# Copyright (c) Django Software Foundation and individual contributors.
|
14
|
+
# All rights reserved.
|
15
|
+
|
16
|
+
####################
|
17
|
+
# PUBLIC METHODS #
|
18
|
+
####################
|
19
|
+
|
20
|
+
def ordinal(value, flag=nil)
|
21
|
+
##
|
22
|
+
# Converts an integer to its ordinal as a string. 1 is '1st', 2 is '2nd',
|
23
|
+
# 3 is '3rd', etc. Works for any integer.
|
24
|
+
#
|
25
|
+
# Usage:
|
26
|
+
# {{ somenum }} >>> 3
|
27
|
+
# {{ somenum | ordinal }} >>> '3rd'
|
28
|
+
# {{ somenum | ordinal: "super" }} >>> '3<sup>rd</sup>'
|
29
|
+
|
30
|
+
begin
|
31
|
+
value = value.to_i
|
32
|
+
flag.to_s.downcase!
|
33
|
+
rescue Exception => e
|
34
|
+
puts "#{e.class} #{e}"
|
35
|
+
return value
|
36
|
+
end
|
37
|
+
|
38
|
+
suffix = ""
|
39
|
+
suffixes = ["th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"]
|
40
|
+
unless [11, 12, 13].include? value % 100 then
|
41
|
+
suffix = suffixes[value % 10]
|
42
|
+
else
|
43
|
+
suffix = suffixes[0]
|
44
|
+
end
|
45
|
+
|
46
|
+
unless flag and flag == "super"
|
47
|
+
return "#{value}%s" % suffix
|
48
|
+
else
|
49
|
+
return "#{value}<sup>%s</sup>" % suffix
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
def intcomma(value, delimiter=",")
|
55
|
+
##
|
56
|
+
# Converts an integer to a string containing commas every three digits.
|
57
|
+
# For example, 3000 becomes '3,000' and 45000 becomes '45,000'.
|
58
|
+
# Optionally supports a delimiter override for commas.
|
59
|
+
#
|
60
|
+
# Usage:
|
61
|
+
# {{ post.content | number_of_words }} >>> 12345
|
62
|
+
# {{ post.content | number_of_words | intcomma }} >>> '12,345'
|
63
|
+
# {{ post.content | number_of_words | intcomma: '.' }} >>> '12.345'
|
64
|
+
|
65
|
+
begin
|
66
|
+
orig = value.to_s
|
67
|
+
delimiter = delimiter.to_s
|
68
|
+
rescue Exception => e
|
69
|
+
puts "#{e.class} #{e}"
|
70
|
+
return value
|
71
|
+
end
|
72
|
+
|
73
|
+
copy = orig.strip
|
74
|
+
copy = orig.gsub(/^(-?\d+)(\d{3})/, "\\1#{delimiter}\\2")
|
75
|
+
orig == copy ? copy : intcomma(copy, delimiter)
|
76
|
+
end
|
77
|
+
|
78
|
+
INTWORD_HELPERS = [
|
79
|
+
[6, "million"],
|
80
|
+
[9, "billion"],
|
81
|
+
[12, "trillion"],
|
82
|
+
[15, "quadrillion"],
|
83
|
+
[18, "quintillion"],
|
84
|
+
[21, "sextillion"],
|
85
|
+
[24, "septillion"],
|
86
|
+
[27, "octillion"],
|
87
|
+
[30, "nonillion"],
|
88
|
+
[33, "decillion"],
|
89
|
+
[100, "googol"],
|
90
|
+
]
|
91
|
+
|
92
|
+
def intword(value)
|
93
|
+
##
|
94
|
+
# Converts a large integer to a friendly text representation. Works best
|
95
|
+
# for numbers over 1 million. For example, 1000000 becomes '1.0 million',
|
96
|
+
# 1200000 becomes '1.2 million' and 1200000000 becomes '1.2 billion'.
|
97
|
+
#
|
98
|
+
# Usage:
|
99
|
+
# {{ largenum }} >>> 1200000
|
100
|
+
# {{ largenum | intword }} >>> '1.2 million'
|
101
|
+
|
102
|
+
begin
|
103
|
+
value = value.to_i
|
104
|
+
rescue Exception => e
|
105
|
+
puts "#{e.class} #{e}"
|
106
|
+
return value
|
107
|
+
end
|
108
|
+
|
109
|
+
if value < 1000000
|
110
|
+
return value
|
111
|
+
end
|
112
|
+
|
113
|
+
for exponent, text in INTWORD_HELPERS
|
114
|
+
large_number = 10 ** exponent
|
115
|
+
|
116
|
+
if value < large_number * 1000
|
117
|
+
return "%#{value}.1f #{text}" % (value / large_number.to_f)
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
return value
|
123
|
+
end
|
124
|
+
|
125
|
+
def apnumber(value)
|
126
|
+
##
|
127
|
+
# For numbers 0-9, returns the number spelled out. Otherwise, returns the
|
128
|
+
# number. This follows Associated Press style.
|
129
|
+
#
|
130
|
+
# Usage:
|
131
|
+
# {{ num }} >>> 6
|
132
|
+
# {{ num | apnumber }} >>> six
|
133
|
+
|
134
|
+
begin
|
135
|
+
value = value.to_i
|
136
|
+
rescue Exception => e
|
137
|
+
puts "#{e.class} #{e}"
|
138
|
+
return value
|
139
|
+
end
|
140
|
+
|
141
|
+
unless value >= 0 and value < 10 then
|
142
|
+
return value
|
143
|
+
else
|
144
|
+
return ["zero", "one", "two", "three", "four", "five", "six",
|
145
|
+
"seven", "eight", "nine"][value]
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
|
150
|
+
def naturalday(date)
|
151
|
+
##
|
152
|
+
# For date values that are within a 9 day stretch from present day, this
|
153
|
+
# will attempt to return the string representation in the format of today,
|
154
|
+
# tomorrow, yesterday, "in # days" or "# days ago". Otherwise, returns a
|
155
|
+
# string formatted according to the "date_format" setting in your
|
156
|
+
# _config.yml file using strftime format (if not defined, it will default
|
157
|
+
# to "%m/%d/%Y").
|
158
|
+
#
|
159
|
+
# Usage:
|
160
|
+
# TODAY == 01/26/2014
|
161
|
+
# {{ post.updated }} >>> 01/25/2014
|
162
|
+
# {{ post.updated | naturalday }} >>> 'yesterday'
|
163
|
+
# {{ post.date }} >>> 01/19/2014
|
164
|
+
# {{ post.date | naturalday }} >>> 'seven days ago'
|
165
|
+
|
166
|
+
begin
|
167
|
+
site = @context.registers[:site]
|
168
|
+
date_format = site.config['humanize']['date_format']
|
169
|
+
date = time(date).to_date
|
170
|
+
rescue Exception => e
|
171
|
+
puts "#{e.class} #{e}"
|
172
|
+
return date
|
173
|
+
end
|
174
|
+
|
175
|
+
unless date_format then
|
176
|
+
date_format = "%m/%d/%Y"
|
177
|
+
end
|
178
|
+
|
179
|
+
today = time(Time.now).to_date
|
180
|
+
delta = (date - today).to_i
|
181
|
+
|
182
|
+
case delta
|
183
|
+
when 0
|
184
|
+
return "today"
|
185
|
+
when 1
|
186
|
+
return "tomorrow"
|
187
|
+
when 2..9
|
188
|
+
delta = apnumber(delta)
|
189
|
+
return "in #{delta} days"
|
190
|
+
when -1
|
191
|
+
return "yesterday"
|
192
|
+
when -9..-2
|
193
|
+
delta = apnumber(delta * -1)
|
194
|
+
return "#{delta} days ago"
|
195
|
+
else
|
196
|
+
return date.strftime("#{date_format}")
|
197
|
+
end
|
198
|
+
|
199
|
+
end
|
200
|
+
|
201
|
+
def filesize(value)
|
202
|
+
##
|
203
|
+
# For filesize values in bytes, returns the number rounded to 3
|
204
|
+
# decimal places with the correct suffix.
|
205
|
+
#
|
206
|
+
# Usage:
|
207
|
+
# {{ bytes }} >>> 123456789
|
208
|
+
# {{ bytes | filesize }} >>> 117.738 MB
|
209
|
+
filesize_tb = 1099511627776.0
|
210
|
+
filesize_gb = 1073741824.0
|
211
|
+
filesize_mb = 1048576.0
|
212
|
+
filesize_kb = 1024.0
|
213
|
+
|
214
|
+
begin
|
215
|
+
value = value.to_f
|
216
|
+
rescue Exception => e
|
217
|
+
puts "#{e.class} #{e}"
|
218
|
+
return value
|
219
|
+
end
|
220
|
+
|
221
|
+
if value >= filesize_tb
|
222
|
+
return "%s TB" % (value / filesize_tb).to_f.round(3)
|
223
|
+
elsif value >= filesize_gb
|
224
|
+
return "%s GB" % (value / filesize_gb).to_f.round(3)
|
225
|
+
elsif value >= filesize_mb
|
226
|
+
return "%s MB" % (value / filesize_mb).to_f.round(3)
|
227
|
+
elsif value >= filesize_kb
|
228
|
+
return "%s KB" % (value / filesize_kb).to_f.round(0)
|
229
|
+
elsif value == 1
|
230
|
+
return "1 byte"
|
231
|
+
else
|
232
|
+
return "%s bytes" % value.to_f.round(0)
|
233
|
+
end
|
234
|
+
|
235
|
+
end
|
236
|
+
|
237
|
+
#####################
|
238
|
+
# PRIVATE METHODS #
|
239
|
+
#####################
|
240
|
+
|
241
|
+
private
|
242
|
+
def time(input)
|
243
|
+
case input
|
244
|
+
when Time
|
245
|
+
input
|
246
|
+
when String
|
247
|
+
Time.parse(input)
|
248
|
+
else
|
249
|
+
Jekyll.logger.error "Invalid Date:", "'#{input}' not valid datetime."
|
250
|
+
exit(1)
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
end
|
255
|
+
|
256
|
+
end
|
257
|
+
|
258
|
+
Liquid::Template.register_filter(Jekyll::Humanize)
|