jekyll-open-sdg-plugins 1.2.0 → 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 +3 -0
- data/lib/jekyll-open-sdg-plugins/create_indicators.rb +12 -3
- data/lib/jekyll-open-sdg-plugins/schema-indicator-config.json +45 -0
- data/lib/jekyll-open-sdg-plugins/schema-site-config.json +83 -2
- data/lib/jekyll-open-sdg-plugins/sdg_variables.rb +43 -6
- data/lib/jekyll-open-sdg-plugins/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1579412cd0fc422e1af1ee418f9dcf89d10a8491ff0ce362c269ca49ad3b8f9d
|
4
|
+
data.tar.gz: c67a8ba97b93d0264e28f9cd764cd90f6a7db755ad10e1e5823a1cd4a25b927d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77a40b3a54553c73cc1ff3a560310f97e709b94be07c1b539ed92b0423803ba628454484b3910dc62b4175463fd520c7cd4c5a90c9f051cb6fde6bf6842c6f2a
|
7
|
+
data.tar.gz: d556a58a95a4627a25d947c8dd66470b3f3a580f56baa3c86da25b2b82499a5913a4ef3ec42083676cf7b7e3dffd2f8c9b944a8499e9492ab00a64d6ab0d1191
|
@@ -34,8 +34,13 @@ module JekyllOpenSdgPlugins
|
|
34
34
|
end
|
35
35
|
# Loop through the indicators (using metadata as a list).
|
36
36
|
metadata.each do |inid, meta|
|
37
|
+
permalink = inid
|
38
|
+
if meta.has_key?('permalink') and meta['permalink'] != ''
|
39
|
+
permalink = meta['permalink']
|
40
|
+
end
|
37
41
|
# Add the language subfolder for all except the default (first) language.
|
38
|
-
dir = index == 0 ?
|
42
|
+
dir = index == 0 ? permalink : File.join(language_public, permalink)
|
43
|
+
|
39
44
|
# Create the indicator page.
|
40
45
|
site.collections['indicators'].docs << IndicatorPage.new(site, site.source, dir, inid, language, layout)
|
41
46
|
end
|
@@ -64,9 +69,13 @@ module JekyllOpenSdgPlugins
|
|
64
69
|
language_public = languages_public[language]
|
65
70
|
end
|
66
71
|
metadata.each do |inid, meta|
|
67
|
-
|
72
|
+
permalink = inid
|
73
|
+
if meta.has_key?('permalink') and meta['permalink'] != ''
|
74
|
+
permalink = meta['permalink']
|
75
|
+
end
|
76
|
+
dir = File.join('config', permalink)
|
68
77
|
if index != 0
|
69
|
-
dir = File.join(language_public, 'config',
|
78
|
+
dir = File.join(language_public, 'config', permalink)
|
70
79
|
end
|
71
80
|
site.collections['pages'].docs << IndicatorConfigPage.new(site, site.source, dir, inid, language, meta, layout)
|
72
81
|
end
|
@@ -3,6 +3,17 @@
|
|
3
3
|
"title": "Open SDG indicator configuration",
|
4
4
|
"description": "This form will produce an indicator's configuration for your Open SDG implementation.",
|
5
5
|
"properties": {
|
6
|
+
"composite_breakdown_label": {
|
7
|
+
"type": "string",
|
8
|
+
"title": "Composite breakdown label",
|
9
|
+
"description": "Used as a label for the COMPOSITE_BREAKDOWN column, if it appears in the indicator data.",
|
10
|
+
"links": [
|
11
|
+
{
|
12
|
+
"rel": "More information on the composite breakdown label setting",
|
13
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/metadata-format/#composite-breakdown-label"
|
14
|
+
}
|
15
|
+
]
|
16
|
+
},
|
6
17
|
"computation_units": {
|
7
18
|
"type": "string",
|
8
19
|
"title": "Unit of measurement",
|
@@ -492,6 +503,17 @@
|
|
492
503
|
"title": "Page content",
|
493
504
|
"description": "Content which displays in the main content area of the indicator page."
|
494
505
|
},
|
506
|
+
"permalink": {
|
507
|
+
"type": "string",
|
508
|
+
"title": "Permalink",
|
509
|
+
"description": "Overrides the normal path of the indicator page. Not recommended, execpt for 'standalone' indicators.",
|
510
|
+
"links": [
|
511
|
+
{
|
512
|
+
"rel": "More information the permalink setting",
|
513
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/metadata-format/#standalone-indicators"
|
514
|
+
}
|
515
|
+
]
|
516
|
+
},
|
495
517
|
"reporting_status": {
|
496
518
|
"type": "string",
|
497
519
|
"title": "Reporting status",
|
@@ -504,6 +526,29 @@
|
|
504
526
|
}
|
505
527
|
]
|
506
528
|
},
|
529
|
+
"sort": {
|
530
|
+
"type": "string",
|
531
|
+
"title": "Sort order",
|
532
|
+
"description": "Override the default order in which this indicator is displayed in lists. This can be left blank, and it will be automatically determined.",
|
533
|
+
"links": [
|
534
|
+
{
|
535
|
+
"rel": "More information on the sort setting",
|
536
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/metadata-format/#sorting-in-lists"
|
537
|
+
}
|
538
|
+
]
|
539
|
+
},
|
540
|
+
"standalone": {
|
541
|
+
"title": "Standalone indicator",
|
542
|
+
"type": "boolean",
|
543
|
+
"description": "Whether the indicator is standalone (separate from the SDGs) or not.",
|
544
|
+
"format": "checkbox",
|
545
|
+
"links": [
|
546
|
+
{
|
547
|
+
"rel": "More information the standalone setting",
|
548
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/metadata-format/#standalone-indicators"
|
549
|
+
}
|
550
|
+
]
|
551
|
+
},
|
507
552
|
"tags": {
|
508
553
|
"options": {"collapsed": true},
|
509
554
|
"type": "array",
|
@@ -167,6 +167,12 @@
|
|
167
167
|
},
|
168
168
|
"description": "The layout to use for the goal pages."
|
169
169
|
},
|
170
|
+
"previous_next_links": {
|
171
|
+
"title": "Previous/next links",
|
172
|
+
"type": "boolean",
|
173
|
+
"description": "This setting can be used to show navigation links to the previous/next goals.",
|
174
|
+
"format": "checkbox"
|
175
|
+
},
|
170
176
|
"goals": {
|
171
177
|
"options": {"collapsed": true},
|
172
178
|
"type": "array",
|
@@ -213,6 +219,12 @@
|
|
213
219
|
]
|
214
220
|
},
|
215
221
|
"description": "The layout to use for the indicator pages."
|
222
|
+
},
|
223
|
+
"previous_next_links": {
|
224
|
+
"title": "Previous/next links",
|
225
|
+
"type": "boolean",
|
226
|
+
"description": "This setting can be used to show navigation links to the previous/next indicators.",
|
227
|
+
"format": "checkbox"
|
216
228
|
}
|
217
229
|
},
|
218
230
|
"links": [
|
@@ -306,6 +318,30 @@
|
|
306
318
|
}
|
307
319
|
]
|
308
320
|
},
|
321
|
+
"data_fields": {
|
322
|
+
"options": {"collapsed": true},
|
323
|
+
"type": "object",
|
324
|
+
"title": "Data fields",
|
325
|
+
"description": "Control the names of fields used for special purposes in data.",
|
326
|
+
"properties": {
|
327
|
+
"units": {
|
328
|
+
"type": "string",
|
329
|
+
"title": "Units",
|
330
|
+
"description": "Field to reserve for units of measurement. Defaults to 'Units'."
|
331
|
+
},
|
332
|
+
"series": {
|
333
|
+
"type": "string",
|
334
|
+
"title": "Series",
|
335
|
+
"description": "Field to reserve for the SDG series. Defaults to 'Series'."
|
336
|
+
}
|
337
|
+
},
|
338
|
+
"links": [
|
339
|
+
{
|
340
|
+
"rel": "More information on the data fields setting",
|
341
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/configuration/#data_fields"
|
342
|
+
}
|
343
|
+
]
|
344
|
+
},
|
309
345
|
"date_formats": {
|
310
346
|
"options": {"collapsed": true},
|
311
347
|
"type": "array",
|
@@ -580,7 +616,7 @@
|
|
580
616
|
"title": "Graph color set",
|
581
617
|
"description": "This setting can be used to customize the color set used in the charts.",
|
582
618
|
"examples": [],
|
583
|
-
"enum": ["default", "sdg", "goal", "custom"],
|
619
|
+
"enum": ["default", "accessible", "sdg", "goal", "custom"],
|
584
620
|
"links": [
|
585
621
|
{
|
586
622
|
"rel": "More information on the graph color set setting",
|
@@ -617,6 +653,35 @@
|
|
617
653
|
}
|
618
654
|
]
|
619
655
|
},
|
656
|
+
"header": {
|
657
|
+
"options": {"collapsed": true},
|
658
|
+
"type": "object",
|
659
|
+
"title": "Header",
|
660
|
+
"description": "This setting can be used to customise the header.",
|
661
|
+
"properties": {
|
662
|
+
"include": {
|
663
|
+
"type": "string",
|
664
|
+
"title": "Include file",
|
665
|
+
"enum": [
|
666
|
+
"header-default.html",
|
667
|
+
"header-menu-left-aligned.html"
|
668
|
+
],
|
669
|
+
"options": {
|
670
|
+
"enum_titles": [
|
671
|
+
"Default header",
|
672
|
+
"Menu left-aligned"
|
673
|
+
]
|
674
|
+
},
|
675
|
+
"description": "The header style to use on all pages."
|
676
|
+
}
|
677
|
+
},
|
678
|
+
"links": [
|
679
|
+
{
|
680
|
+
"rel": "More information on the header setting",
|
681
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/configuration/#header"
|
682
|
+
}
|
683
|
+
]
|
684
|
+
},
|
620
685
|
"header_language_toggle": {
|
621
686
|
"type": "string",
|
622
687
|
"title": "Header language toggle",
|
@@ -855,7 +920,23 @@
|
|
855
920
|
"title": "Main menu",
|
856
921
|
"description": "The links to display in the main menu.",
|
857
922
|
"items": {
|
858
|
-
"
|
923
|
+
"title": "Menu item",
|
924
|
+
"allOf": [
|
925
|
+
{ "$ref": "#/definitions/menu_item" },
|
926
|
+
{
|
927
|
+
"properties": {
|
928
|
+
"dropdown": {
|
929
|
+
"title": "Dropdown menu",
|
930
|
+
"type": "array",
|
931
|
+
"description": "Enter menu items here to turn this into a dropdown.",
|
932
|
+
"items": {
|
933
|
+
"$ref": "#/definitions/menu_item",
|
934
|
+
"title": "Dropdown menu item"
|
935
|
+
}
|
936
|
+
}
|
937
|
+
}
|
938
|
+
}
|
939
|
+
]
|
859
940
|
},
|
860
941
|
"links": [
|
861
942
|
{
|
@@ -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)
|
@@ -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: 2021-01
|
11
|
+
date: 2021-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -100,9 +100,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
100
|
version: '0'
|
101
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- - "
|
103
|
+
- - ">"
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
105
|
+
version: 1.3.1
|
106
106
|
requirements: []
|
107
107
|
rubygems_version: 3.1.4
|
108
108
|
signing_key:
|