jekyll-open-sdg-plugins 1.2.0.pre.beta3 → 1.3.0.pre.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll-open-sdg-plugins/create_goals.rb +11 -0
- data/lib/jekyll-open-sdg-plugins/create_indicators.rb +12 -3
- data/lib/jekyll-open-sdg-plugins/create_pages.rb +1 -1
- data/lib/jekyll-open-sdg-plugins/schema-indicator-config.json +87 -33
- data/lib/jekyll-open-sdg-plugins/schema-site-config.json +198 -114
- data/lib/jekyll-open-sdg-plugins/sdg_variables.rb +44 -7
- data/lib/jekyll-open-sdg-plugins/version.rb +1 -1
- metadata +2 -2
@@ -43,6 +43,24 @@ module JekyllOpenSdgPlugins
|
|
43
43
|
sort_order
|
44
44
|
end
|
45
45
|
|
46
|
+
# Get previous item from an array, or loop to the end.
|
47
|
+
def get_previous_item(list, index)
|
48
|
+
decremented = index - 1
|
49
|
+
if decremented < 0
|
50
|
+
decremented = list.length() - 1
|
51
|
+
end
|
52
|
+
list[decremented]
|
53
|
+
end
|
54
|
+
|
55
|
+
# Get next item from an array, or loop to the beginning.
|
56
|
+
def get_next_item(list, index)
|
57
|
+
incremented = index + 1
|
58
|
+
if incremented >= list.length()
|
59
|
+
incremented = 0
|
60
|
+
end
|
61
|
+
list[incremented]
|
62
|
+
end
|
63
|
+
|
46
64
|
# The Jekyll baseurl is user-configured, and can be inconsistent. This
|
47
65
|
# ensure it is consistent in whether it starts/ends with a slash.
|
48
66
|
def normalize_baseurl(baseurl)
|
@@ -170,7 +188,7 @@ module JekyllOpenSdgPlugins
|
|
170
188
|
goal_image_base = site.config['goal_image_base']
|
171
189
|
end
|
172
190
|
goal_image_extension = 'png'
|
173
|
-
if site.config.has_key? 'goal_image_extension'
|
191
|
+
if site.config.has_key?('goal_image_extension') && site.config['goal_image_extension'] != ''
|
174
192
|
goal_image_extension = site.config['goal_image_extension']
|
175
193
|
end
|
176
194
|
|
@@ -209,6 +227,7 @@ module JekyllOpenSdgPlugins
|
|
209
227
|
goal_number = get_goal_number(indicator_number)
|
210
228
|
target_number = get_target_number(indicator_number)
|
211
229
|
is_global_indicator = global_inids.index(indicator_number) != nil
|
230
|
+
|
212
231
|
# To get the name of global stuff, we can use predicable translation
|
213
232
|
# keys from the SDG Translations project. Eg: global_goals.1-title
|
214
233
|
goal_translation_key = 'global_goals.' + goal_number
|
@@ -253,8 +272,10 @@ module JekyllOpenSdgPlugins
|
|
253
272
|
end
|
254
273
|
end
|
255
274
|
|
275
|
+
is_standalone = meta.has_key?('standalone') and meta['standalone']
|
276
|
+
|
256
277
|
# Set the goal for this language, once only.
|
257
|
-
if already_added[language].index(goal_number) == nil
|
278
|
+
if !is_standalone && already_added[language].index(goal_number) == nil
|
258
279
|
already_added[language].push(goal_number)
|
259
280
|
available_goal = {
|
260
281
|
'number' => goal_number,
|
@@ -269,7 +290,7 @@ module JekyllOpenSdgPlugins
|
|
269
290
|
available_goals[language].push(available_goal)
|
270
291
|
end
|
271
292
|
# Set the target for this language, once only.
|
272
|
-
if already_added[language].index(target_number) == nil
|
293
|
+
if !is_standalone && already_added[language].index(target_number) == nil
|
273
294
|
already_added[language].push(target_number)
|
274
295
|
available_target = {
|
275
296
|
'number' => target_number,
|
@@ -293,12 +314,21 @@ module JekyllOpenSdgPlugins
|
|
293
314
|
else
|
294
315
|
indicator_name = meta['indicator_name']
|
295
316
|
end
|
317
|
+
indicator_path = indicator_number
|
318
|
+
if is_standalone && meta.has_key?('permalink') && meta['permalink'] != ''
|
319
|
+
indicator_path = meta['permalink']
|
320
|
+
end
|
321
|
+
indicator_sort = get_sort_order(indicator_number)
|
322
|
+
if meta.has_key?('sort') && meta['sort'] != ''
|
323
|
+
# Allow metadata 'sort' field to override the default sort.
|
324
|
+
indicator_sort = meta['sort']
|
325
|
+
end
|
296
326
|
available_indicator = {
|
297
327
|
'number' => indicator_number,
|
298
328
|
'slug' => indicator_number.gsub('.', '-'),
|
299
329
|
'name' => opensdg_translate_key(indicator_name, translations, language),
|
300
|
-
'url' => get_url(baseurl, language,
|
301
|
-
'sort' =>
|
330
|
+
'url' => get_url(baseurl, language, indicator_path, languages, languages_public),
|
331
|
+
'sort' => indicator_sort,
|
302
332
|
'goal_number' => goal_number,
|
303
333
|
'target_number' => target_number,
|
304
334
|
'global' => global_indicator,
|
@@ -374,7 +404,11 @@ module JekyllOpenSdgPlugins
|
|
374
404
|
target_number = get_target_number(indicator_number)
|
375
405
|
doc.data['goal'] = available_goals[language].find {|x| x['number'] == goal_number}
|
376
406
|
doc.data['target'] = available_targets[language].find {|x| x['number'] == target_number}
|
377
|
-
|
407
|
+
indicator_index = available_indicators[language].find_index {|x| x['number'] == indicator_number}
|
408
|
+
doc.data['indicator'] = available_indicators[language][indicator_index]
|
409
|
+
doc.data['next'] = get_next_item(available_indicators[language], indicator_index)
|
410
|
+
doc.data['previous'] = get_previous_item(available_indicators[language], indicator_index)
|
411
|
+
|
378
412
|
elsif collection == 'goals'
|
379
413
|
# For goals we also set the current goal.
|
380
414
|
if doc.data.has_key? 'goal_number'
|
@@ -389,7 +423,10 @@ module JekyllOpenSdgPlugins
|
|
389
423
|
if goal_number.is_a? Numeric
|
390
424
|
goal_number = goal_number.to_s
|
391
425
|
end
|
392
|
-
|
426
|
+
goal_index = available_goals[language].find_index {|x| x['number'] == goal_number}
|
427
|
+
doc.data['goal'] = available_goals[language][goal_index]
|
428
|
+
doc.data['next'] = get_next_item(available_goals[language], goal_index)
|
429
|
+
doc.data['previous'] = get_previous_item(available_goals[language], goal_index)
|
393
430
|
end
|
394
431
|
end
|
395
432
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-open-sdg-plugins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0.pre.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brock Fanning
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|