jekyll-open-sdg-plugins 2.2.0 → 2.3.0.pre.beta3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test-pull-requests.yml +5 -1
- data/lib/jekyll-open-sdg-plugins/create_indicators.rb +13 -4
- data/lib/jekyll-open-sdg-plugins/create_pages.rb +6 -2
- data/lib/jekyll-open-sdg-plugins/fetch_remote_data.rb +1 -1
- data/lib/jekyll-open-sdg-plugins/routes.rb +3 -3
- data/lib/jekyll-open-sdg-plugins/schema-indicator-config.json +18 -2
- data/lib/jekyll-open-sdg-plugins/schema-site-config.json +47 -0
- data/lib/jekyll-open-sdg-plugins/sdg_variables.rb +1 -1
- data/lib/jekyll-open-sdg-plugins/search_index.rb +1 -1
- data/lib/jekyll-open-sdg-plugins/version.rb +1 -1
- data/tests/Gemfile +4 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4944fa0ac86eba4e83bf4f3968446d4750af37f341e4f286dfe115faae4119da
|
4
|
+
data.tar.gz: 064bdf7b8c764545426078ea071dadc7ee6a0312a90c67f463e66140fd95f37a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec3a89e0a127bf08518ac704c4824b35c0b9a02eaa31c44f7bfa65b00362efd6a3a6ce5a87b3ea8578b5ba56c004ca7f323248e42aacf3d8e09a992e739aca7a
|
7
|
+
data.tar.gz: 5e5bf4015c3ba53b6d395dd5c3bfd0381813cec35b1a7c2c5d16141ce23e4df79441ac90a8a5d0466fbeb587d7fead29b500406623788b80384001c0812224de
|
@@ -6,12 +6,16 @@ jobs:
|
|
6
6
|
test:
|
7
7
|
|
8
8
|
runs-on: ubuntu-latest
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
ruby: [ '2.6', '2.7', '3.2' ]
|
9
12
|
|
13
|
+
name: Ruby ${{ matrix.ruby }} test
|
10
14
|
steps:
|
11
15
|
- uses: actions/checkout@v1
|
12
16
|
- name: Set up Ruby 2.6
|
13
17
|
uses: ruby/setup-ruby@v1
|
14
18
|
with:
|
15
|
-
ruby-version:
|
19
|
+
ruby-version: ${{ matrix.ruby }}
|
16
20
|
- name: Run all tests
|
17
21
|
run: make test
|
@@ -13,6 +13,10 @@ module JekyllOpenSdgPlugins
|
|
13
13
|
form_settings_config = site.config['indicator_config_form']
|
14
14
|
form_settings_meta = site.config['indicator_metadata_form']
|
15
15
|
form_settings_data = site.config['indicator_data_form']
|
16
|
+
config_builder_layout = 'config-builder'
|
17
|
+
#if site.config['use_new_config_forms']
|
18
|
+
# config_builder_layout = 'config-builder-2'
|
19
|
+
#end
|
16
20
|
|
17
21
|
translations = site.data['translations']
|
18
22
|
# If site.create_indicators is set, create indicators per the metadata.
|
@@ -44,6 +48,11 @@ module JekyllOpenSdgPlugins
|
|
44
48
|
|
45
49
|
# Create the indicator page.
|
46
50
|
site.collections['indicators'].docs << IndicatorPage.new(site, site.source, dir, inid, language, layout)
|
51
|
+
# Also create the iframe version.
|
52
|
+
iframe_layout = 'indicator-iframe'
|
53
|
+
iframe_permalink = permalink + '-iframe'
|
54
|
+
iframe_dir = index == 0 ? iframe_permalink : File.join(language_public, iframe_permalink)
|
55
|
+
site.collections['pages'].docs << IndicatorPage.new(site, site.source, iframe_dir, inid, language, iframe_layout)
|
47
56
|
end
|
48
57
|
end
|
49
58
|
# Create the indicator settings configuration/metadata/data pages.
|
@@ -105,7 +114,7 @@ module JekyllOpenSdgPlugins
|
|
105
114
|
dir = File.join(dir_base, 'config')
|
106
115
|
title = opensdg_translate_key('indicator.edit_configuration', translations, language)
|
107
116
|
config_type = 'indicator'
|
108
|
-
site.collections['pages'].docs << IndicatorConfigPage.new(site, site.source, dir, inid, language, meta, title, config_type, form_settings_config)
|
117
|
+
site.collections['pages'].docs << IndicatorConfigPage.new(site, site.source, dir, inid, language, meta, title, config_type, form_settings_config, config_builder_layout)
|
109
118
|
end
|
110
119
|
|
111
120
|
if do_indicator_meta_forms
|
@@ -116,7 +125,7 @@ module JekyllOpenSdgPlugins
|
|
116
125
|
dir = File.join(dir_base, 'metadata')
|
117
126
|
title = opensdg_translate_key('indicator.edit_metadata', translations, language)
|
118
127
|
config_type = 'metadata'
|
119
|
-
site.collections['pages'].docs << IndicatorConfigPage.new(site, site.source, dir, inid, language, metadata_to_use, title, config_type, form_settings_meta)
|
128
|
+
site.collections['pages'].docs << IndicatorConfigPage.new(site, site.source, dir, inid, language, metadata_to_use, title, config_type, form_settings_meta, config_builder_layout)
|
120
129
|
end
|
121
130
|
|
122
131
|
if do_indicator_data_forms
|
@@ -150,7 +159,7 @@ module JekyllOpenSdgPlugins
|
|
150
159
|
|
151
160
|
# A Page subclass used in the `CreateIndicators` class for the indicator config forms.
|
152
161
|
class IndicatorConfigPage < Jekyll::Page
|
153
|
-
def initialize(site, base, dir, inid, language, meta, title, config_type, form_settings)
|
162
|
+
def initialize(site, base, dir, inid, language, meta, title, config_type, form_settings, layout)
|
154
163
|
@site = site
|
155
164
|
@base = base
|
156
165
|
@dir = dir
|
@@ -161,7 +170,7 @@ module JekyllOpenSdgPlugins
|
|
161
170
|
self.data['language'] = language
|
162
171
|
self.data['indicator_number'] = inid
|
163
172
|
self.data['config_type'] = config_type
|
164
|
-
self.data['layout'] =
|
173
|
+
self.data['layout'] = layout
|
165
174
|
self.data['meta'] = meta
|
166
175
|
self.data['title'] = title + ': ' + inid.gsub('-', '.')
|
167
176
|
self.data['config_filename'] = inid + '.yml'
|
@@ -89,11 +89,15 @@ module JekyllOpenSdgPlugins
|
|
89
89
|
# Hardcode the site configuration page if it's not already there.
|
90
90
|
form_settings = site.config['site_config_form']
|
91
91
|
config_page = pages.find { |page| page['layout'] == 'config-builder' }
|
92
|
+
config_builder_layout = 'config-builder'
|
93
|
+
if site.config['use_new_config_forms']
|
94
|
+
config_builder_layout = 'config-builder-2'
|
95
|
+
end
|
92
96
|
if config_page == nil
|
93
97
|
if form_settings && form_settings['enabled']
|
94
98
|
pages.push({
|
95
99
|
'folder' => '/config',
|
96
|
-
'layout' =>
|
100
|
+
'layout' => config_builder_layout,
|
97
101
|
'title' => 'Open SDG site configuration',
|
98
102
|
'config_type' => 'site',
|
99
103
|
'config_filename' => 'site_config.yml',
|
@@ -101,7 +105,7 @@ module JekyllOpenSdgPlugins
|
|
101
105
|
end
|
102
106
|
end
|
103
107
|
# Make sure the form settings are set.
|
104
|
-
config_page = pages.find { |page| page['layout'] ==
|
108
|
+
config_page = pages.find { |page| page['layout'] == config_builder_layout }
|
105
109
|
if config_page != nil && form_settings && form_settings['enabled']
|
106
110
|
config_page['form_settings'] = form_settings
|
107
111
|
end
|
@@ -39,7 +39,7 @@ module JekyllOpenSdgPlugins
|
|
39
39
|
endpoint = is_remote ? path + '/' + value : File.join(path, fix_path(value))
|
40
40
|
|
41
41
|
begin
|
42
|
-
json_file = is_remote ? open(endpoint) : File.open(endpoint)
|
42
|
+
json_file = is_remote ? URI.open(endpoint) : File.open(endpoint)
|
43
43
|
build[key] = JSON.load(json_file)
|
44
44
|
rescue StandardError => e
|
45
45
|
# For backwards compatibility, forego the exception in some cases.
|
@@ -10,7 +10,7 @@ module JekyllOpenSdgPlugins
|
|
10
10
|
|
11
11
|
routes = {}
|
12
12
|
baseurl = ''
|
13
|
-
if site.config.has_key?('baseurl')
|
13
|
+
if site.config.has_key?('baseurl') and site.config['baseurl'].is_a?(String)
|
14
14
|
baseurl = site.config['baseurl']
|
15
15
|
end
|
16
16
|
unless baseurl.end_with?('/')
|
@@ -26,7 +26,7 @@ module JekyllOpenSdgPlugins
|
|
26
26
|
route = route + '/'
|
27
27
|
end
|
28
28
|
|
29
|
-
unless doc.data['layout'] == 'config-builder' or doc.data['layout'] == 'data-editor'
|
29
|
+
unless doc.data['layout'] == 'config-builder' or doc.data['layout'] == 'data-editor' or doc.data['layout'] == 'config-builder-2'
|
30
30
|
routes['pages'].append(route)
|
31
31
|
end
|
32
32
|
end
|
@@ -40,7 +40,7 @@ module JekyllOpenSdgPlugins
|
|
40
40
|
route = route + '/'
|
41
41
|
end
|
42
42
|
|
43
|
-
if doc.data['layout'] == 'config-builder' or doc.data['layout'] == 'data-editor'
|
43
|
+
if doc.data['layout'] == 'config-builder' or doc.data['layout'] == 'data-editor' or doc.data['layout'] == 'config-builder-2'
|
44
44
|
routes['config'].append(route)
|
45
45
|
end
|
46
46
|
end
|
@@ -310,6 +310,8 @@
|
|
310
310
|
"title": "Position",
|
311
311
|
"description": "Placement of the label along the line.",
|
312
312
|
"enum": [
|
313
|
+
"start",
|
314
|
+
"end",
|
313
315
|
"top",
|
314
316
|
"bottom",
|
315
317
|
"left",
|
@@ -326,7 +328,14 @@
|
|
326
328
|
"fontColor": {
|
327
329
|
"type": "string",
|
328
330
|
"format": "color",
|
329
|
-
"title": "Label color",
|
331
|
+
"title": "Label color (do not use)",
|
332
|
+
"description": "[DEPRECATED: USE 'Label color (use this)' INSTEAD]",
|
333
|
+
"default": "#000000"
|
334
|
+
},
|
335
|
+
"color": {
|
336
|
+
"type": "string",
|
337
|
+
"format": "color",
|
338
|
+
"title": "Label color (use this)",
|
330
339
|
"description": "Color for the label text.",
|
331
340
|
"default": "#000000"
|
332
341
|
},
|
@@ -360,7 +369,14 @@
|
|
360
369
|
"type": "string",
|
361
370
|
"format": "color",
|
362
371
|
"default": "#ffffff",
|
363
|
-
"title": "High-contrast label color",
|
372
|
+
"title": "High-contrast label color (do not use)",
|
373
|
+
"description": "[DEPRECATED: USE 'High-contrast label color (use this)' INSTEAD]"
|
374
|
+
},
|
375
|
+
"color": {
|
376
|
+
"type": "string",
|
377
|
+
"format": "color",
|
378
|
+
"default": "#ffffff",
|
379
|
+
"title": "High-contrast label color (use this)",
|
364
380
|
"description": "Color for the label text in high-contrast mode."
|
365
381
|
},
|
366
382
|
"backgroundColor": {
|
@@ -1203,6 +1203,36 @@
|
|
1203
1203
|
}
|
1204
1204
|
]
|
1205
1205
|
},
|
1206
|
+
"observation_attributes": {
|
1207
|
+
"options": {"collapsed": true},
|
1208
|
+
"type": "array",
|
1209
|
+
"title": "Observation attributes",
|
1210
|
+
"description": "This setting can be used to specify data columns to be considered 'observation attributes' and displayed along with individual data-points.",
|
1211
|
+
"items": {
|
1212
|
+
"type": "object",
|
1213
|
+
"title": "Observation attribute",
|
1214
|
+
"properties": {
|
1215
|
+
"field": {
|
1216
|
+
"type": "string",
|
1217
|
+
"minLength": 1,
|
1218
|
+
"title": "Field",
|
1219
|
+
"description": "Column name in the data."
|
1220
|
+
},
|
1221
|
+
"label": {
|
1222
|
+
"type": "string",
|
1223
|
+
"minLength": 1,
|
1224
|
+
"title": "Label",
|
1225
|
+
"description": "Optional label when displayed in footnotes."
|
1226
|
+
}
|
1227
|
+
}
|
1228
|
+
},
|
1229
|
+
"links": [
|
1230
|
+
{
|
1231
|
+
"rel": "More information on the observation attributes setting",
|
1232
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/configuration/#observation_attributes"
|
1233
|
+
}
|
1234
|
+
]
|
1235
|
+
},
|
1206
1236
|
"progress_status": {
|
1207
1237
|
"options": {"collapsed": true},
|
1208
1238
|
"type": "object",
|
@@ -1335,6 +1365,11 @@
|
|
1335
1365
|
{ "$ref": "#/definitions/title_and_description" },
|
1336
1366
|
{
|
1337
1367
|
"properties": {
|
1368
|
+
"disaggregation_indicator_count_label": {
|
1369
|
+
"title": "Disaggregation indicator count label",
|
1370
|
+
"type": "string",
|
1371
|
+
"description": "An alternative label to use for the indicator count on the disaggregation tab, to be display after a number."
|
1372
|
+
},
|
1338
1373
|
"disaggregation_tabs": {
|
1339
1374
|
"title": "Disaggregation tabs",
|
1340
1375
|
"type": "boolean",
|
@@ -1486,6 +1521,18 @@
|
|
1486
1521
|
}
|
1487
1522
|
]
|
1488
1523
|
},
|
1524
|
+
"use_new_config_forms": {
|
1525
|
+
"title": "Use new config forms",
|
1526
|
+
"type": "boolean",
|
1527
|
+
"description": "This setting can be set to `true` to try the new site configuration forms. This is experimental and will eventually be the default.",
|
1528
|
+
"format": "checkbox",
|
1529
|
+
"links": [
|
1530
|
+
{
|
1531
|
+
"rel": "More information on the use_new_config_forms setting",
|
1532
|
+
"href": "https://open-sdg.readthedocs.io/en/latest/configuration/#use_new_config_forms"
|
1533
|
+
}
|
1534
|
+
]
|
1535
|
+
},
|
1489
1536
|
"validate_indicator_config": {
|
1490
1537
|
"title": "Validate indicator config",
|
1491
1538
|
"type": "boolean",
|
@@ -541,7 +541,7 @@ module JekyllOpenSdgPlugins
|
|
541
541
|
end
|
542
542
|
doc.data['logo'] = logo
|
543
543
|
|
544
|
-
if collection == 'indicators'
|
544
|
+
if collection == 'indicators' || doc.data['layout'] == 'indicator-iframe'
|
545
545
|
# For indicators we also set the current indicator/target/goal.
|
546
546
|
if doc.data.has_key? 'indicator_number'
|
547
547
|
indicator_number = doc.data['indicator_number']
|
@@ -36,7 +36,7 @@ module JekyllOpenSdgPlugins
|
|
36
36
|
site.collections.keys.each do |collection|
|
37
37
|
site.collections[collection].docs.each do |doc|
|
38
38
|
# Do not index configuration forms.
|
39
|
-
if doc.data.has_key?('layout') && doc.data['layout'] == 'config-builder'
|
39
|
+
if doc.data.has_key?('layout') && (doc.data['layout'] == 'config-builder' or doc.data['layout'] == 'config-builder-2')
|
40
40
|
next
|
41
41
|
end
|
42
42
|
# We segregate the search items by language.
|
data/tests/Gemfile
CHANGED
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: 2.
|
4
|
+
version: 2.3.0.pre.beta3
|
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: 2024-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -104,11 +104,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
104
|
version: '0'
|
105
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- - "
|
107
|
+
- - ">"
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
109
|
+
version: 1.3.1
|
110
110
|
requirements: []
|
111
|
-
rubygems_version: 3.
|
111
|
+
rubygems_version: 3.0.9
|
112
112
|
signing_key:
|
113
113
|
specification_version: 4
|
114
114
|
summary: Jekyll plugins for use with the Open SDG platform
|