jekyll-open-sdg-plugins 1.2.0 → 1.3.0.pre.beta1
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 +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:
|