jekyll-open-sdg-plugins 1.6.0.pre.beta1 → 1.7.0.pre.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +16 -16
  3. data/.github/workflows/test-pull-requests.yml +17 -17
  4. data/.gitignore +6 -6
  5. data/LICENSE +21 -21
  6. data/Makefile +33 -33
  7. data/README.md +7 -7
  8. data/jekyll-open-sdg-plugins.gemspec +18 -18
  9. data/lib/jekyll-open-sdg-plugins/backwards_compatibility.rb +64 -61
  10. data/lib/jekyll-open-sdg-plugins/create_goals.rb +85 -85
  11. data/lib/jekyll-open-sdg-plugins/create_indicators.rb +206 -206
  12. data/lib/jekyll-open-sdg-plugins/create_pages.rb +135 -135
  13. data/lib/jekyll-open-sdg-plugins/fetch_remote_data.rb +188 -188
  14. data/lib/jekyll-open-sdg-plugins/helpers.rb +132 -132
  15. data/lib/jekyll-open-sdg-plugins/metadata_schema_to_config.rb +72 -72
  16. data/lib/jekyll-open-sdg-plugins/schema-indicator-config.json +787 -709
  17. data/lib/jekyll-open-sdg-plugins/schema-site-config.json +1652 -1617
  18. data/lib/jekyll-open-sdg-plugins/sdg_variables.rb +614 -549
  19. data/lib/jekyll-open-sdg-plugins/search_index.rb +102 -102
  20. data/lib/jekyll-open-sdg-plugins/site_configuration.rb +73 -52
  21. data/lib/jekyll-open-sdg-plugins/translate_date.rb +122 -122
  22. data/lib/jekyll-open-sdg-plugins/translate_key.rb +20 -20
  23. data/lib/jekyll-open-sdg-plugins/translate_metadata_field.rb +111 -111
  24. data/lib/jekyll-open-sdg-plugins/validate_indicator_config.rb +52 -52
  25. data/lib/jekyll-open-sdg-plugins/validate_site_config.rb +34 -34
  26. data/lib/jekyll-open-sdg-plugins/version.rb +3 -3
  27. data/lib/jekyll-open-sdg-plugins.rb +18 -18
  28. data/tests/Gemfile +7 -7
  29. data/tests/_config.yml +168 -168
  30. metadata +3 -3
@@ -1,1617 +1,1652 @@
1
- {
2
- "type": "object",
3
- "title": "Open SDG site configuration",
4
- "description": "This form will produce the site configuration for your Open SDG implementation.",
5
- "properties": {
6
- "accessible_charts": {
7
- "title": "Accessible charts",
8
- "type": "boolean",
9
- "description": "This setting can be set to `true` to enable chart functionality that is intended to increase accessibility by adding support for screenreaders and keyboard navigation.",
10
- "format": "checkbox",
11
- "links": [
12
- {
13
- "rel": "More information on the accessible charts setting",
14
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#accessible_charts"
15
- }
16
- ]
17
- },
18
- "accessible_tabs": {
19
- "title": "Accessible tabs",
20
- "type": "boolean",
21
- "description": "This setting can be set to `true` to enable tab functionality that is compliant with the WAI-ARIA best practices. This adds improved keyboard navigation of the tabs.",
22
- "format": "checkbox",
23
- "links": [
24
- {
25
- "rel": "More information on the accessible tabs setting",
26
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#accessible_tabs"
27
- }
28
- ]
29
- },
30
- "analytics": {
31
- "options": {"collapsed": true},
32
- "type": "object",
33
- "title": "Analytics",
34
- "description": "If these settings are used, usage statistics will be sent to Google Analytics. These are optional, and you don't have to use all of them. Typically you would just use one, such as the 'ua' option.",
35
- "properties": {
36
- "ua": {
37
- "type": "string",
38
- "title": "Universal Analytics (ua) tracking ID",
39
- "description": "The tracking ID for the analytics.js approach, for your property on Google Analytics. Typically starts with 'UA-'."
40
- },
41
- "gtag": {
42
- "type": "string",
43
- "title": "gtag.js (gtag) tracking ID",
44
- "description": "The tracking ID for the gtag.js approach, for your property on Google Analytics. Typically starts with 'G-'."
45
- },
46
- "gtm": {
47
- "type": "string",
48
- "title": "Google Tag Manager (gtm) tracking ID",
49
- "description": "Your tracking ID for Google Tag Manager. Typically starts with 'GTM-'. Though this is included as an analytics approach, it requires additional configuration within Google Tag Manager in order to capture analytics."
50
- }
51
- },
52
- "links": [
53
- {
54
- "rel": "More information on the analytics setting",
55
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#analytics"
56
- }
57
- ]
58
- },
59
- "breadcrumbs": {
60
- "options": {"collapsed": true},
61
- "type": "object",
62
- "title": "Breadcrumbs",
63
- "description": "This can contain breadcrumb settings for each of the supported collection types: goal, indicator, and post. Each should have a list of label/path objects.",
64
- "properties": {
65
- "goal": {
66
- "options": {"collapsed": true},
67
- "type": "array",
68
- "title": "Goal breadcrumbs",
69
- "description": "The breadcrumb items for goal pages.",
70
- "items": {
71
- "$ref": "#/definitions/breadcrumb_item"
72
- }
73
- },
74
- "indicator": {
75
- "options": {"collapsed": true},
76
- "type": "array",
77
- "title": "Indicator breadcrumbs",
78
- "description": "The breadcrumb items for indicator pages. Note that there will automatically be a final item, which is a link to the goal that the indicator belongs to. You do not need to specify this, since it is done dynamically and automatically.",
79
- "items": {
80
- "$ref": "#/definitions/breadcrumb_item"
81
- }
82
- },
83
- "post": {
84
- "options": {"collapsed": true},
85
- "type": "array",
86
- "title": "Post breadcrumbs",
87
- "description": "The breadcrumb items for post pages.",
88
- "items": {
89
- "$ref": "#/definitions/breadcrumb_item"
90
- }
91
- }
92
- },
93
- "links": [
94
- {
95
- "rel": "More information on the breadcrumbs setting",
96
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#breadcrumbs"
97
- }
98
- ]
99
- },
100
- "contrast_type": {
101
- "type": "string",
102
- "title": "Contrast type",
103
- "description": "The type of high-contrast toggle to use.",
104
- "enum": ["default", "single", "long"],
105
- "options": {
106
- "enum_titles": [
107
- "Default - two 'A' buttons side-by-side",
108
- "Single - one 'A' button which toggles on/off",
109
- "Long - text toggling between 'High contrast' and 'Default contrast'"
110
- ]
111
- },
112
- "links": [
113
- {
114
- "rel": "More information on the contrast type setting",
115
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#contrast_type"
116
- }
117
- ]
118
- },
119
- "cookie_consent_form": {
120
- "options": {"collapsed": true},
121
- "type": "object",
122
- "title": "Cookie consent form",
123
- "description": "A cookie consent form for users",
124
- "properties": {
125
- "enabled": {
126
- "type": "boolean",
127
- "title": "Enabled",
128
- "description": "Whether the cookie consent form will be enabled",
129
- "format": "checkbox"
130
- }
131
- },
132
- "links": [
133
- {
134
- "rel": "More information on the cookie_consent_form setting",
135
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#cookie_consent_form"
136
- }
137
- ]
138
- },
139
- "country": {
140
- "options": {"collapsed": true},
141
- "type": "object",
142
- "title": "Country information",
143
- "description": "Information about your country (or region, locality, etc.)",
144
- "properties": {
145
- "name": {
146
- "type": "string",
147
- "title": "Name",
148
- "description": "The name of your country/region/locality/etc.",
149
- "minLength": 1
150
- },
151
- "adjective": {
152
- "type": "string",
153
- "title": "Adjective",
154
- "description": "Adjective form of your country/region/locality/etc.",
155
- "minLength": 1
156
- }
157
- },
158
- "links": [
159
- {
160
- "rel": "More information on the country setting",
161
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#country"
162
- }
163
- ]
164
- },
165
- "create_goals": {
166
- "options": {"collapsed": true},
167
- "type": "object",
168
- "title": "Create goals",
169
- "description": "This setting can be used to automatically create the goal pages.",
170
- "properties": {
171
- "layout": {
172
- "type": "string",
173
- "title": "Layout",
174
- "enum": [
175
- "",
176
- "goal",
177
- "goal-by-target",
178
- "goal-by-target-vertical",
179
- "goal-with-progress"
180
- ],
181
- "options": {
182
- "enum_titles": [
183
- "Do not automatically create goals",
184
- "goal",
185
- "goal-by-target",
186
- "goal-by-target-vertical"
187
- ]
188
- },
189
- "description": "The layout to use for the goal pages."
190
- },
191
- "previous_next_links": {
192
- "title": "Previous/next links",
193
- "type": "boolean",
194
- "description": "This setting can be used to show navigation links to the previous/next goals.",
195
- "format": "checkbox"
196
- },
197
- "goals": {
198
- "options": {"collapsed": true},
199
- "type": "array",
200
- "title": "Content per goal",
201
- "description": "This setting can be used to enter details for each goal.",
202
- "items": {
203
- "type": "object",
204
- "title": "Goal",
205
- "properties": {
206
- "content": {
207
- "type": "string",
208
- "title": "Content",
209
- "format": "markdown",
210
- "description": "Markdown content or a translation key for this goal."
211
- }
212
- }
213
- }
214
- }
215
- },
216
- "links": [
217
- {
218
- "rel": "More information on the create goals setting",
219
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#create_goals"
220
- }
221
- ]
222
- },
223
- "create_indicators": {
224
- "options": {"collapsed": true},
225
- "type": "object",
226
- "title": "Create indicators",
227
- "description": "This setting can be used to automatically create the indicator pages.",
228
- "properties": {
229
- "layout": {
230
- "type": "string",
231
- "title": "Layout",
232
- "enum": [
233
- "",
234
- "indicator"
235
- ],
236
- "options": {
237
- "enum_titles": [
238
- "Do not automatically create indicators",
239
- "indicator"
240
- ]
241
- },
242
- "description": "The layout to use for the indicator pages."
243
- },
244
- "previous_next_links": {
245
- "title": "Previous/next links",
246
- "type": "boolean",
247
- "description": "This setting can be used to show navigation links to the previous/next indicators.",
248
- "format": "checkbox"
249
- }
250
- },
251
- "links": [
252
- {
253
- "rel": "More information on the create indicators setting",
254
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#create_indicators"
255
- }
256
- ]
257
- },
258
- "create_pages": {
259
- "options": {"collapsed": true},
260
- "type": "array",
261
- "title": "Create pages",
262
- "description": "This setting can be used to automatically create the pages.",
263
- "items": {
264
- "type": "object",
265
- "title": "Page",
266
- "properties": {
267
- "filename": {
268
- "type": "string",
269
- "title": "Filename",
270
- "description": "The filename for the page - usually 'index.html'."
271
- },
272
- "folder": {
273
- "type": "string",
274
- "minLength": 1,
275
- "title": "Folder",
276
- "description": "The folder path for the page."
277
- },
278
- "layout": {
279
- "type": "string",
280
- "minLength": 1,
281
- "title": "Layout",
282
- "description": "The layout to use for the page."
283
- },
284
- "title": {
285
- "type": "string",
286
- "title": "Title",
287
- "description": "The page title for the page."
288
- }
289
- }
290
- },
291
- "links": [
292
- {
293
- "rel": "More information on the create pages setting",
294
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#create_pages"
295
- }
296
- ]
297
- },
298
- "custom_css": {
299
- "options": {"collapsed": true},
300
- "type": "array",
301
- "title": "Custom CSS files",
302
- "description": "Deprecated: instead of using this, it is recommended to put custom CSS in a _sass/custom.scss file.",
303
- "items": {
304
- "type": "string",
305
- "title": "Custom CSS file"
306
- },
307
- "links": [
308
- {
309
- "rel": "More information on the custom CSS setting",
310
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#custom_css"
311
- }
312
- ]
313
- },
314
- "custom_js": {
315
- "options": {"collapsed": true},
316
- "type": "array",
317
- "title": "Custom JavaScript files",
318
- "description": "This setting can be used to load additional JavaScript files on each page.",
319
- "items": {
320
- "type": "string",
321
- "title": "Custom JavaScript file"
322
- },
323
- "links": [
324
- {
325
- "rel": "More information on the custom JS setting",
326
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#custom_js"
327
- }
328
- ]
329
- },
330
- "data_edit_url": {
331
- "type": "string",
332
- "title": "Data edit URL",
333
- "description": "This setting controls the URL of the 'Edit Data' buttons that appear on the staging site's indicator pages.",
334
- "links": [
335
- {
336
- "rel": "More information on the data edit URL setting",
337
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#data_edit_url"
338
- }
339
- ]
340
- },
341
- "data_fields": {
342
- "options": {"collapsed": true},
343
- "type": "object",
344
- "title": "Data fields",
345
- "description": "Control the names of fields used for special purposes in data.",
346
- "properties": {
347
- "units": {
348
- "type": "string",
349
- "title": "Units",
350
- "description": "Field to reserve for units of measurement. Defaults to 'Units'."
351
- },
352
- "series": {
353
- "type": "string",
354
- "title": "Series",
355
- "description": "Field to reserve for the SDG series. Defaults to 'Series'."
356
- }
357
- },
358
- "links": [
359
- {
360
- "rel": "More information on the data fields setting",
361
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#data_fields"
362
- }
363
- ]
364
- },
365
- "date_formats": {
366
- "options": {"collapsed": true},
367
- "type": "array",
368
- "title": "Date formats",
369
- "description": "This setting can be used to control date formats for use in the site, such as in the news/category/post layouts. Any number date formats can be entered, and each must have an arbitrary type, such as `standard`. Make sure that each type has a variant for each of your languages.",
370
- "items": {
371
- "type": "object",
372
- "title": "Date format",
373
- "properties": {
374
- "type": {
375
- "type": "string",
376
- "minLength": 1,
377
- "title": "Type",
378
- "description": "Use `standard` for news/post dates."
379
- },
380
- "language": {
381
- "type": "string",
382
- "minLength": 1,
383
- "title": "Language",
384
- "description": "Language code the format applies to."
385
- },
386
- "format": {
387
- "type": "string",
388
- "minLength": 1,
389
- "title": "Format",
390
- "description": "Ruby DateTime date format."
391
- }
392
- }
393
- },
394
- "links": [
395
- {
396
- "rel": "More information on the date formats setting",
397
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#date_formats"
398
- }
399
- ]
400
- },
401
- "disclaimer": {
402
- "options": {"collapsed": true},
403
- "type": "object",
404
- "title": "Disclaimer",
405
- "description": "This setting controls the content of the disclaimer that appears at the top of each page.",
406
- "properties": {
407
- "phase": {
408
- "type": "string",
409
- "title": "Phase",
410
- "description": "The development phase of your platform (alpha, beta, etc.)"
411
- },
412
- "message": {
413
- "type": "string",
414
- "title": "Message",
415
- "description": "A short disclaimer message."
416
- }
417
- },
418
- "links": [
419
- {
420
- "rel": "More information on the disclaimer setting",
421
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#disclaimer"
422
- }
423
- ]
424
- },
425
- "email_contacts": {
426
- "options": {"collapsed": true},
427
- "type": "object",
428
- "title": "Email addresses",
429
- "description": "Email addresses to publish on your platform.",
430
- "properties": {
431
- "questions": {
432
- "type": "string",
433
- "minLength": 1,
434
- "format": "email",
435
- "title": "Questions",
436
- "description": "Inbox for questions about your platform."
437
- },
438
- "suggestions": {
439
- "type": "string",
440
- "minLength": 1,
441
- "format": "email",
442
- "title": "Suggestions",
443
- "description": "Inbox for suggestions for your platform."
444
- },
445
- "functional": {
446
- "type": "string",
447
- "minLength": 1,
448
- "format": "email",
449
- "title": "Functional",
450
- "description": "Inbox for bug reports for your platform."
451
- }
452
- },
453
- "links": [
454
- {
455
- "rel": "More information on the email contacts setting",
456
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#email_contacts"
457
- }
458
- ]
459
- },
460
- "environment": {
461
- "type": "string",
462
- "minLength": 1,
463
- "title": "Environment",
464
- "description": "Which environment (staging or production) this configuration is for.",
465
- "enum": ["staging", "production"],
466
- "links": [
467
- {
468
- "rel": "More information on the environment setting",
469
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#environment"
470
- }
471
- ]
472
- },
473
- "favicons": {
474
- "type": "string",
475
- "title": "Favicons",
476
- "description": "The type of favicons to use.",
477
- "enum": ["legacy", "favicon.io"],
478
- "options": {
479
- "enum_titles": [
480
- "Legacy",
481
- "Favicon.io (recommended)"
482
- ]
483
- },
484
- "links": [
485
- {
486
- "rel": "More information on the favicons setting",
487
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#favicons"
488
- }
489
- ]
490
- },
491
- "footer_language_toggle": {
492
- "type": "string",
493
- "title": "Footer language toggle",
494
- "description": "This setting controls the type of language toggle to be used in the footer.",
495
- "enum": ["none", "dropdown", "links"],
496
- "links": [
497
- {
498
- "rel": "More information on the footer language toggle setting",
499
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#footer_language_toggle"
500
- }
501
- ]
502
- },
503
- "footer_menu": {
504
- "options": {"collapsed": true},
505
- "type": "array",
506
- "title": "Footer menu",
507
- "description": "The links to display in the footer menu.",
508
- "items": {
509
- "$ref": "#/definitions/menu_item"
510
- },
511
- "links": [
512
- {
513
- "rel": "More information on the footer menu setting",
514
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#footer_menu"
515
- }
516
- ]
517
- },
518
- "frontpage_cards": {
519
- "options": {"collapsed": true},
520
- "type": "array",
521
- "title": "Frontpage cards",
522
- "description": "This setting is only used in the frontpage-alt layout. It can display any number of 'cards' in 3-column rows, beneath the grid of goal tiles.",
523
- "items": {
524
- "type": "object",
525
- "title": "Frontpage card",
526
- "properties": {
527
- "title": {
528
- "type": "string",
529
- "minLength": 1,
530
- "title": "Title",
531
- "description": "The card's title."
532
- },
533
- "content": {
534
- "type": "string",
535
- "title": "Content",
536
- "description": "The card's content.",
537
- "format": "markdown"
538
- },
539
- "include": {
540
- "type": "string",
541
- "title": "Include file",
542
- "description": "A Jekyll include file to place inside the card."
543
- },
544
- "button_label": {
545
- "type": "string",
546
- "title": "Button label",
547
- "description": "A label for a button to display at the bottom of the card."
548
- },
549
- "button_link": {
550
- "type": "string",
551
- "title": "Button link",
552
- "description": "A path or URL for the card's button to link to."
553
- },
554
- "rule_color": {
555
- "type": "string",
556
- "title": "Rule color",
557
- "description": "The color of the horizontal line appearing above the card."
558
- }
559
- }
560
- },
561
- "links": [
562
- {
563
- "rel": "More information on the frontpage cards setting",
564
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_cards"
565
- }
566
- ]
567
- },
568
- "frontpage_goals_grid": {
569
- "options": {"collapsed": true},
570
- "type": "object",
571
- "title": "Frontpage goals grid",
572
- "description": "This setting is only used in the frontpage-alt layout. It can display a title and description above the grid of goal tiles.",
573
- "$ref": "#/definitions/title_and_description",
574
- "links": [
575
- {
576
- "rel": "More information on the frontpage goals grid setting",
577
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_goals_grid"
578
- }
579
- ]
580
- },
581
- "frontpage_heading": {
582
- "type": "string",
583
- "title": "Frontpage heading",
584
- "description": "This setting can control the heading that appears on the front page. This setting is only used in the frontpage layout.",
585
- "links": [
586
- {
587
- "rel": "More information on the frontpage heading setting",
588
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_heading"
589
- }
590
- ]
591
- },
592
- "frontpage_instructions": {
593
- "type": "string",
594
- "title": "Frontpage instructions",
595
- "description": "This setting can control the instructions that appear on the front page. This setting is only used in the frontpage layout.",
596
- "links": [
597
- {
598
- "rel": "More information on the frontpage instructions setting",
599
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_instructions"
600
- }
601
- ]
602
- },
603
- "frontpage_introduction_banner": {
604
- "options": {"collapsed": true},
605
- "type": "object",
606
- "title": "Frontpage introduction banner",
607
- "description": "This setting is only used in the frontpage-alt layout. It can display a title and description in a banner at the top of the frontpage.",
608
- "$ref": "#/definitions/title_and_description",
609
- "links": [
610
- {
611
- "rel": "More information on the frontpage introduction banner setting",
612
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_introduction_banner"
613
- }
614
- ]
615
- },
616
- "goal_image_base": {
617
- "type": "string",
618
- "minLength": 1,
619
- "title": "Goal image base URL",
620
- "description": "This setting controls the base URL for downloading the imagery for the goals.",
621
- "links": [
622
- {
623
- "rel": "More information on the goal image base setting",
624
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#goal_image_base"
625
- }
626
- ]
627
- },
628
- "goal_image_extension": {
629
- "type": "string",
630
- "title": "Goal image extension",
631
- "description": "This setting controls the type of file (the file extension) that will be used for the goal images.",
632
- "links": [
633
- {
634
- "rel": "More information on the goal image extension setting",
635
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#goal_image_extension"
636
- }
637
- ]
638
- },
639
- "goals_page": {
640
- "options": {"collapsed": true},
641
- "type": "object",
642
- "title": "Goals page",
643
- "description": "This setting is used in the 'goals' layout. It can display a title and description above the grid of goal tiles.",
644
- "$ref": "#/definitions/title_and_description",
645
- "links": [
646
- {
647
- "rel": "More information on the goals page setting",
648
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#goals_page"
649
- }
650
- ]
651
- },
652
- "graph_color_headline": {
653
- "type": "string",
654
- "format": "color",
655
- "title": "Graph color for headline",
656
- "default": "#004466",
657
- "description": "This setting can be used to customize the color used in the chart 'headlines'.",
658
- "examples": [],
659
- "links": [
660
- {
661
- "rel": "More information on the graph color headline setting",
662
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_headline"
663
- }
664
- ]
665
- },
666
- "graph_color_headline_high_contrast": {
667
- "type": "string",
668
- "format": "color",
669
- "title": "Graph color for headline - high-contrast",
670
- "default": "#55a6e5",
671
- "description": "This setting can be used to customize the color used in the chart 'headlines' in high-contrast mode.",
672
- "examples": [],
673
- "links": [
674
- {
675
- "rel": "More information on the graph color headline high-contrast setting",
676
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_headline_high_contrast"
677
- }
678
- ]
679
- },
680
- "graph_color_set": {
681
- "type": "string",
682
- "title": "Graph color set",
683
- "description": "This setting can be used to customize the color set used in the charts.",
684
- "examples": [],
685
- "enum": ["default", "accessible", "sdg", "goal", "custom"],
686
- "links": [
687
- {
688
- "rel": "More information on the graph color set setting",
689
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_set"
690
- }
691
- ]
692
- },
693
- "graph_color_list": {
694
- "options": {"collapsed": true},
695
- "type": "array",
696
- "title": "Graph color list",
697
- "description": "This setting can be used to define a set of colors to be used in the charts. This is only used when graph_color_set is 'custom'.",
698
- "items": {
699
- "type": "string",
700
- "format": "color",
701
- "title": "Color",
702
- "description": "Hexadecimal color code"
703
- },
704
- "links": [
705
- {
706
- "rel": "More information on the graph color list setting",
707
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_list"
708
- }
709
- ]
710
- },
711
- "graph_color_number": {
712
- "title": "Graph color number",
713
- "type": "integer",
714
- "description": "This setting can be used to limit the length of the list of colors selected via graph_color_set.",
715
- "links": [
716
- {
717
- "rel": "More information on the graph color number setting",
718
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_number"
719
- }
720
- ]
721
- },
722
- "graph_title_from_series": {
723
- "title": "Graph title from series",
724
- "type": "boolean",
725
- "description": "This setting can be set to `true` to use the selected series for the graph title, whenever possible.",
726
- "format": "checkbox",
727
- "links": [
728
- {
729
- "rel": "More information on the graph title from series setting",
730
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_title_from_series"
731
- }
732
- ]
733
- },
734
- "header": {
735
- "options": {"collapsed": true},
736
- "type": "object",
737
- "title": "Header",
738
- "description": "This setting can be used to customise the header.",
739
- "properties": {
740
- "include": {
741
- "type": "string",
742
- "title": "Include file",
743
- "enum": [
744
- "header-default.html",
745
- "header-menu-left-aligned.html"
746
- ],
747
- "options": {
748
- "enum_titles": [
749
- "Default header",
750
- "Menu left-aligned"
751
- ]
752
- },
753
- "description": "The header style to use on all pages."
754
- }
755
- },
756
- "links": [
757
- {
758
- "rel": "More information on the header setting",
759
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#header"
760
- }
761
- ]
762
- },
763
- "header_language_toggle": {
764
- "type": "string",
765
- "title": "Header language toggle",
766
- "description": "This setting controls the type of language toggle to be used in the header.",
767
- "enum": ["none", "dropdown", "links"],
768
- "links": [
769
- {
770
- "rel": "More information on the header language toggle setting",
771
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#header_language_toggle"
772
- }
773
- ]
774
- },
775
- "hide_empty_metadata": {
776
- "title": "Hide empty metadata",
777
- "type": "boolean",
778
- "description": "This setting can be used to hide any metadata fields that are empty.",
779
- "format": "checkbox",
780
- "links": [
781
- {
782
- "rel": "More information on the hide empty metadata setting",
783
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#hide_empty_metadata"
784
- }
785
- ]
786
- },
787
- "hide_single_series": {
788
- "title": "Hide single series",
789
- "type": "boolean",
790
- "description": "This setting can be used to hide the 'Series' toggle on indicators where there is only one choice.",
791
- "format": "checkbox",
792
- "links": [
793
- {
794
- "rel": "More information on the hide single series setting",
795
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#hide_single_series"
796
- }
797
- ]
798
- },
799
- "hide_single_unit": {
800
- "title": "Hide single unit",
801
- "type": "boolean",
802
- "description": "This setting can be used to hide the 'Unit' toggle on indicators where there is only one choice.",
803
- "format": "checkbox",
804
- "links": [
805
- {
806
- "rel": "More information on the hide single unit setting",
807
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#hide_single_unit"
808
- }
809
- ]
810
- },
811
- "indicator_config_form": {
812
- "options": {"collapsed": true},
813
- "type": "object",
814
- "title": "Indicator configuration form",
815
- "description": "Configuration of the indicator configuration form.",
816
- "$ref": "#/definitions/config_form_options"
817
- },
818
- "indicator_data_form": {
819
- "options": {"collapsed": true},
820
- "type": "object",
821
- "title": "Indicator data form",
822
- "description": "Configuration of the indicator data form.",
823
- "properties": {
824
- "enabled": {
825
- "type": "boolean",
826
- "title": "Enable this type of form",
827
- "description": "If enabled, the indicator data form will be available.",
828
- "format": "checkbox"
829
- },
830
- "repository_link": {
831
- "type": "string",
832
- "title": "Repository link",
833
- "description": "The URL pattern of the 'Go to repository' link on the configuration page."
834
- }
835
- }
836
- },
837
- "indicator_metadata_form": {
838
- "options": {"collapsed": true},
839
- "type": "object",
840
- "title": "Indicator metadata form",
841
- "description": "Configuration of the indicator metadata form.",
842
- "allOf": [
843
- { "$ref": "#/definitions/config_form_options" },
844
- {
845
- "properties": {
846
- "language": {
847
- "type": "string",
848
- "title": "Language for editing",
849
- "description": "Choose the language you prefer when editing metadata. This is used to translate the labels of the metadata fields."
850
- },
851
- "scopes": {
852
- "options": {"collapsed": true},
853
- "type": "array",
854
- "title": "Metadata scopes",
855
- "description": "Specify the 'scopes' of metadata to include on the form. Eg: 'national' or 'global'.",
856
- "items": {
857
- "type": "string",
858
- "title": "Scope"
859
- }
860
- },
861
- "exclude_fields": {
862
- "options": {"collapsed": true},
863
- "type": "array",
864
- "title": "Exclude fields",
865
- "description": "Specify any fields you would like to exclude from the form.",
866
- "items": {
867
- "type": "string",
868
- "title": "Field"
869
- }
870
- },
871
- "translated": {
872
- "type": "boolean",
873
- "title": "Display translated contents in the form",
874
- "description": "This should only be enabled if you are using the 'subfolder' approach for your metadata.",
875
- "format": "checkbox"
876
- }
877
- }
878
- }
879
- ]
880
- },
881
- "languages": {
882
- "options": {"collapsed": true},
883
- "type": "array",
884
- "minItems": 1,
885
- "title": "Languages",
886
- "description": "This setting controls the languages to be used on the site.",
887
- "items": {
888
- "type": "string",
889
- "minLength": 1,
890
- "title": "Language"
891
- },
892
- "links": [
893
- {
894
- "rel": "More information on the languages setting",
895
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#languages"
896
- }
897
- ]
898
- },
899
- "languages_public": {
900
- "options": {"collapsed": true},
901
- "type": "array",
902
- "title": "Language code overrides",
903
- "description": "This setting can be used if you are not happy with any of the standard language codes.",
904
- "items": {
905
- "type": "object",
906
- "title": "Language override",
907
- "properties": {
908
- "language": {
909
- "type": "string",
910
- "minLength": 1,
911
- "title": "Language",
912
- "description": "The (standard) language code that you would like to override."
913
- },
914
- "language_public": {
915
- "type": "string",
916
- "minLength": 1,
917
- "title": "Language override",
918
- "description": "The (non-standard) language code that you would like show the public instead."
919
- }
920
- }
921
- },
922
- "links": [
923
- {
924
- "rel": "More information on the language override setting",
925
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#languages_public"
926
- }
927
- ]
928
- },
929
- "logos": {
930
- "options": {"collapsed": true},
931
- "type": "array",
932
- "title": "Logos",
933
- "description": "This setting can be used to control the main logo (or logos).",
934
- "items": {
935
- "type": "object",
936
- "title": "Logo",
937
- "properties": {
938
- "language": {
939
- "type": "string",
940
- "title": "Language",
941
- "description": "The language on which this logo displays. Leave blank to show on all."
942
- },
943
- "src": {
944
- "type": "string",
945
- "minLength": 1,
946
- "title": "Image file",
947
- "description": "The image file (path or URL) for this logo"
948
- },
949
- "alt": {
950
- "type": "string",
951
- "minLength": 1,
952
- "title": "Alt text",
953
- "description": "The alt text for this logo"
954
- }
955
- }
956
- },
957
- "links": [
958
- {
959
- "rel": "More information on the logos setting",
960
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#logos"
961
- }
962
- ]
963
- },
964
- "map_layers": {
965
- "options": {"collapsed": true},
966
- "type": "array",
967
- "title": "Map layers",
968
- "description": "Configure any number of layers to display on all indicator maps. A minimum of one layer is required to display maps.",
969
- "items": {
970
- "type": "object",
971
- "title": "Map layer",
972
- "properties": {
973
- "subfolder": {
974
- "type": "string",
975
- "title": "Subfolder",
976
- "description": "The subfolder under 'geojson' in the data repository holding the GeoJSON file for this layer."
977
- },
978
- "label": {
979
- "type": "string",
980
- "title": "Download button label",
981
- "description": "The label to use in the 'Download GeoJSON' button for this layer."
982
- },
983
- "min_zoom": {
984
- "type": "integer",
985
- "title": "Minimum zoom",
986
- "description": "This layer will only be visible when the map is zoomed to at least this number."
987
- },
988
- "max_zoom": {
989
- "type": "integer",
990
- "title": "Maximum zoom",
991
- "description": "The layer will not be visible when the map is zoomed beyond this number."
992
- },
993
- "staticBorders": {
994
- "type": "boolean",
995
- "format": "checkbox",
996
- "title": "Static borders",
997
- "description": "Whether the borders on this layer should remain visible when the map is zoomed past the maximum."
998
- }
999
- }
1000
- },
1001
- "links": [
1002
- {
1003
- "rel": "More information on the map layers setting",
1004
- "href": "https://open-sdg.readthedocs.io/en/latest/maps/#map_layers"
1005
- }
1006
- ]
1007
- },
1008
- "map_options": {
1009
- "options": {"collapsed": true},
1010
- "type": "object",
1011
- "title": "Map options",
1012
- "description": "Site-wide configuration of map behavior and style.",
1013
- "properties": {
1014
- "minZoom": {
1015
- "title": "Minimum zoom",
1016
- "type": "integer",
1017
- "description": "The lowest amount of 'zoom' possible for users.",
1018
- "default": 5
1019
- },
1020
- "maxZoom": {
1021
- "title": "Maximum zoom",
1022
- "type": "integer",
1023
- "description": "The highest amount of 'zoom' possible for users.",
1024
- "default": 10
1025
- },
1026
- "tileURL": {
1027
- "title": "Tile URL",
1028
- "type": "string",
1029
- "format": "url",
1030
- "description": "If you would like the maps to show tile imagery, add the URL here."
1031
- },
1032
- "tileOptions": {
1033
- "title": "Tile options",
1034
- "type": "object",
1035
- "options": {"collapsed": true},
1036
- "description": "Additional options for map tile imagery.",
1037
- "properties": {
1038
- "id": {
1039
- "type": "string",
1040
- "title": "Tile ID"
1041
- },
1042
- "accessToken": {
1043
- "type": "string",
1044
- "title": "Access token"
1045
- },
1046
- "attribution": {
1047
- "type": "string",
1048
- "title": "Attribution"
1049
- }
1050
- }
1051
- },
1052
- "colorRange": {
1053
- "type": "string",
1054
- "title": "Color range",
1055
- "description": "The color range for the choropleth map.",
1056
- "default": "chroma.brewer.BuGn",
1057
- "links": [
1058
- {
1059
- "ref": "More information on the color range setting",
1060
- "href": "https://gka.github.io/chroma.js/#chroma-brewer"
1061
- }
1062
- ]
1063
- },
1064
- "noValueColor": {
1065
- "type": "string",
1066
- "format": "color",
1067
- "title": "No-value color",
1068
- "description": "Color for boundaries that have no data.",
1069
- "default": "#f0f0f0"
1070
- },
1071
- "styleNormal": {
1072
- "type": "object",
1073
- "title": "Style (normal)",
1074
- "description": "Style for boundaries in normal state",
1075
- "$ref": "#/definitions/map_style",
1076
- "default": {
1077
- "weight": 1,
1078
- "opacity": 1,
1079
- "fillOpacity": 0.7,
1080
- "color": "#888888"
1081
- }
1082
- },
1083
- "styleHighlighted": {
1084
- "type": "object",
1085
- "title": "Style (highlighted)",
1086
- "description": "Style for boundaries in highlighted state",
1087
- "$ref": "#/definitions/map_style",
1088
- "default": {
1089
- "weight": 1,
1090
- "opacity": 1,
1091
- "fillOpacity": 0.7,
1092
- "color": "#111111"
1093
- }
1094
- },
1095
- "styleStatic": {
1096
- "type": "object",
1097
- "title": "Style (static)",
1098
- "description": "Style for boundaries in static state (map layers using the 'static boundaries' option).",
1099
- "$ref": "#/definitions/map_style",
1100
- "default": {
1101
- "weight": 2,
1102
- "opacity": 1,
1103
- "fillOpacity": 0,
1104
- "color": "#172d44",
1105
- "dashArray": "5,5"
1106
- }
1107
- }
1108
- },
1109
- "links": [
1110
- {
1111
- "rel": "More information on the map options setting",
1112
- "href": "https://open-sdg.readthedocs.io/en/latest/maps/#map_options"
1113
- }
1114
- ]
1115
- },
1116
- "menu": {
1117
- "options": {"collapsed": true},
1118
- "type": "array",
1119
- "minItems": 1,
1120
- "title": "Main menu",
1121
- "description": "The links to display in the main menu.",
1122
- "items": {
1123
- "title": "Menu item",
1124
- "allOf": [
1125
- { "$ref": "#/definitions/menu_item" },
1126
- {
1127
- "properties": {
1128
- "dropdown": {
1129
- "title": "Dropdown menu",
1130
- "type": "array",
1131
- "description": "Enter menu items here to turn this into a dropdown.",
1132
- "items": {
1133
- "$ref": "#/definitions/menu_item",
1134
- "title": "Dropdown menu item"
1135
- }
1136
- }
1137
- }
1138
- }
1139
- ]
1140
- },
1141
- "links": [
1142
- {
1143
- "rel": "More information on the menu setting",
1144
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#menu"
1145
- }
1146
- ]
1147
- },
1148
- "metadata_edit_url": {
1149
- "type": "string",
1150
- "title": "Metadata edit URL",
1151
- "description": "This setting controls the URL of the 'Edit Metadata' buttons that appear on the staging site's indicator pages.",
1152
- "links": [
1153
- {
1154
- "rel": "More information on the metadata edit URL setting",
1155
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#metadata_edit_url"
1156
- }
1157
- ]
1158
- },
1159
- "metadata_tabs": {
1160
- "options": {"collapsed": true},
1161
- "type": "array",
1162
- "title": "Metadata tabs",
1163
- "description": "This setting can control the metadata tabs which appear on the indicator pages.",
1164
- "items": {
1165
- "type": "object",
1166
- "title": "Metadata tab",
1167
- "properties": {
1168
- "scope": {
1169
- "type": "string",
1170
- "minLength": 1,
1171
- "title": "Scope",
1172
- "description": "This tab will contain fields in the specific `scope` in your data repository's metadata schema file (eg, `_prose.yml`)."
1173
- },
1174
- "title": {
1175
- "type": "string",
1176
- "minLength": 1,
1177
- "title": "Title",
1178
- "description": "The title of the metadata tab."
1179
- },
1180
- "description": {
1181
- "type": "string",
1182
- "title": "Description",
1183
- "description": "A descriptive blurb to show at the top of the tab content.",
1184
- "format": "markdown"
1185
- }
1186
- }
1187
- },
1188
- "links": [
1189
- {
1190
- "rel": "More information on the metadata tabs setting",
1191
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#metadata_tabs"
1192
- }
1193
- ]
1194
- },
1195
- "news": {
1196
- "options": {"collapsed": true},
1197
- "type": "object",
1198
- "title": "News",
1199
- "description": "Configuration related to news updates and posts.",
1200
- "properties": {
1201
- "category_links": {
1202
- "title": "Category links",
1203
- "type": "boolean",
1204
- "description": "Whether you would like the 'categories' of posts to generate links to dedicated category pages.",
1205
- "format": "checkbox"
1206
- }
1207
- },
1208
- "links": [
1209
- {
1210
- "rel": "More information on the news setting",
1211
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#news"
1212
- }
1213
- ]
1214
- },
1215
- "non_global_metadata": {
1216
- "type": "string",
1217
- "title": "Non-global metadata",
1218
- "description": "This setting can be used to control the text of the tab containing non-global metadata.",
1219
- "links": [
1220
- {
1221
- "rel": "More information on the non-global metadata setting",
1222
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#non_global_metadata"
1223
- }
1224
- ]
1225
- },
1226
- "progress_status": {
1227
- "options": {"collapsed": true},
1228
- "type": "object",
1229
- "title": "Progress status",
1230
- "description": "This setting is used in the 'goal-with-progress' layout. It controls the behavior of progress status functionality.",
1231
- "properties": {
1232
- "status_heading": {
1233
- "title": "Status heading",
1234
- "type": "string",
1235
- "description": "A heading to display before the progress status on indicator pages."
1236
- },
1237
- "status_types": {
1238
- "options": {"collapsed": true},
1239
- "type": "array",
1240
- "title": "Status types",
1241
- "description": "Controls the behavior and labels for the different progress status types.",
1242
- "items": {
1243
- "type": "object",
1244
- "title": "Status type",
1245
- "properties": {
1246
- "value": {
1247
- "type": "string",
1248
- "minLength": 1,
1249
- "title": "Value",
1250
- "description": "The value of the status type, as it is set in the indicator configuration (eg, 'targetachieved')."
1251
- },
1252
- "label": {
1253
- "type": "string",
1254
- "title": "Label",
1255
- "description": "The human-readable label for the status type. Can be a translation key (eg, 'status.target_achieved')."
1256
- },
1257
- "image": {
1258
- "type": "string",
1259
- "title": "Image",
1260
- "description": "The internal path to the image to use (if any) for this progress status."
1261
- },
1262
- "alt": {
1263
- "type": "string",
1264
- "title": "Alt",
1265
- "description": "An alt tag for the image above."
1266
- }
1267
- }
1268
- }
1269
- }
1270
- },
1271
- "links": [
1272
- {
1273
- "rel": "More information on the progress status setting",
1274
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#progress_status"
1275
- }
1276
- ]
1277
- },
1278
- "remote_data_prefix": {
1279
- "type": "string",
1280
- "minLength": 1,
1281
- "title": "Remote data prefix",
1282
- "description": "Specify the URL of the 'data service' that is generated from your data repository.",
1283
- "links": [
1284
- {
1285
- "rel": "More information on the remote data prefix setting",
1286
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#remote_data_prefix"
1287
- }
1288
- ]
1289
- },
1290
- "reporting_status": {
1291
- "options": {"collapsed": true},
1292
- "type": "object",
1293
- "title": "Reporting status",
1294
- "description": "This setting is used in the 'reportingstatus' layout. It can display a title and description above the reporting status page.",
1295
- "allOf": [
1296
- { "$ref": "#/definitions/title_and_description" },
1297
- {
1298
- "properties": {
1299
- "disaggregation_tabs": {
1300
- "title": "Disaggregation tabs",
1301
- "type": "boolean",
1302
- "description": "Whether or not to display disaggregation status tabs. If you enable this setting, you should also use 'expected_disaggregations' in your indicator configuration, in order to provide the disaggregation status report with useful metrics.",
1303
- "format": "checkbox"
1304
- },
1305
- "status_types": {
1306
- "options": {"collapsed": true},
1307
- "type": "array",
1308
- "title": "Status types",
1309
- "description": "Controls the behavior and labels for the different reporting status types.",
1310
- "items": {
1311
- "type": "object",
1312
- "title": "Status type",
1313
- "properties": {
1314
- "value": {
1315
- "type": "string",
1316
- "minLength": 1,
1317
- "title": "Value",
1318
- "description": "The value of the status type, as it is set in the indicator configuration (eg, 'complete')."
1319
- },
1320
- "label": {
1321
- "type": "string",
1322
- "minLength": 1,
1323
- "title": "Label",
1324
- "description": "The human-readable label for the status type. Can be a translation key (eg, 'status.reported_online')."
1325
- },
1326
- "hide_on_goal_pages": {
1327
- "type": "boolean",
1328
- "title": "Hide on goal pages",
1329
- "description": "Whether to hide this status type on goal pages. Useful for the most commonly-occuring type.",
1330
- "format": "checkbox"
1331
- }
1332
- }
1333
- }
1334
- }
1335
- }
1336
- }
1337
- ],
1338
- "links": [
1339
- {
1340
- "rel": "More information on the reporting status setting",
1341
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#reporting_status"
1342
- }
1343
- ]
1344
- },
1345
- "repository_url_data": {
1346
- "type": "string",
1347
- "title": "Repository URL - Data",
1348
- "description": "The URL of your data repository, eg: https://github.com/my-github-org/data",
1349
- "links": [
1350
- {
1351
- "rel": "More information on the data repository URL setting",
1352
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#repository_url_data"
1353
- }
1354
- ]
1355
- },
1356
- "repository_url_site": {
1357
- "type": "string",
1358
- "title": "Repository URL - Site",
1359
- "description": "The URL of your site repository, eg: https://github.com/my-github-org/site",
1360
- "links": [
1361
- {
1362
- "rel": "More information on the site repository URL setting",
1363
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#repository_url_site"
1364
- }
1365
- ]
1366
- },
1367
- "search_index_boost": {
1368
- "options": {"collapsed": true},
1369
- "type": "array",
1370
- "title": "Search index boost",
1371
- "description": "This setting can be used to give a boost to one or more fields in the search index.",
1372
- "items": {
1373
- "type": "object",
1374
- "title": "Boost",
1375
- "properties": {
1376
- "field": {
1377
- "type": "string",
1378
- "minLength": 1,
1379
- "title": "Field",
1380
- "description": "Field to boost ('title', 'content', etc.)"
1381
- },
1382
- "boost": {
1383
- "type": "integer",
1384
- "minLength": 1,
1385
- "title": "Boost",
1386
- "description": "Higher boost means higher search ranking."
1387
- }
1388
- }
1389
- },
1390
- "links": [
1391
- {
1392
- "rel": "More information on the search index boost setting",
1393
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#search_index_boost"
1394
- }
1395
- ]
1396
- },
1397
- "search_index_extra_fields": {
1398
- "options": {"collapsed": true},
1399
- "type": "array",
1400
- "title": "Search index extra fields",
1401
- "description": "This setting can be used to index additional metadata fields in your indicators, for the purposes of affecting the site-wide search.",
1402
- "items": {
1403
- "type": "string",
1404
- "title": "Extra field"
1405
- },
1406
- "links": [
1407
- {
1408
- "rel": "More information on the search index extra fields setting",
1409
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#search_index_extra_fields"
1410
- }
1411
- ]
1412
- },
1413
- "series_toggle": {
1414
- "title": "Series toggle",
1415
- "type": "boolean",
1416
- "description": "This setting enables the special treatment of the 'Series' column in the data. If set to true, when an indicator's data includes a 'Series' column, it will be displayed above 'Units' as radio buttons.",
1417
- "format": "checkbox",
1418
- "links": [
1419
- {
1420
- "rel": "More information on the series toggle setting",
1421
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#series_toggle"
1422
- }
1423
- ]
1424
- },
1425
- "sharethis_property": {
1426
- "type": "string",
1427
- "title": "ShareThis property",
1428
- "description": "This setting creates a ShareThis widget along the left side of every page. It should be the property id for your ShareThis account.",
1429
- "links": [
1430
- {
1431
- "rel": "More information on the sharethis setting",
1432
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#sharethis_property"
1433
- }
1434
- ]
1435
- },
1436
- "site_config_form": {
1437
- "options": {"collapsed": true},
1438
- "type": "object",
1439
- "title": "Site configuration form",
1440
- "description": "Configuration of the site configuration form.",
1441
- "$ref": "#/definitions/config_form_options"
1442
- },
1443
- "validate_indicator_config": {
1444
- "title": "Validate indicator config",
1445
- "type": "boolean",
1446
- "description": "If checked, this will require that all indicators have valid Open SDG indicator configuration.",
1447
- "format": "checkbox",
1448
- "links": [
1449
- {
1450
- "rel": "More information on the validate indicator config setting",
1451
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#validate_indicator_config"
1452
- }
1453
- ]
1454
- },
1455
- "validate_site_config": {
1456
- "title": "Validate site config",
1457
- "type": "boolean",
1458
- "description": "If checked, this will require valid site configuration.",
1459
- "format": "checkbox",
1460
- "links": [
1461
- {
1462
- "rel": "More information on the validate site config setting",
1463
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#validate_site_config"
1464
- }
1465
- ]
1466
- },
1467
- "x_axis_label": {
1468
- "type": "string",
1469
- "title": "X axis label",
1470
- "description": "A label beneath the X axis on charts. This is overridden by the same indicator configuration setting.",
1471
- "links": [
1472
- {
1473
- "rel": "More information on the X axis label setting",
1474
- "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#x_axis_label"
1475
- }
1476
- ]
1477
- }
1478
- },
1479
- "additionalProperties": true,
1480
- "definitions": {
1481
- "menu_item": {
1482
- "type": "object",
1483
- "title": "Menu item",
1484
- "properties": {
1485
- "path": {
1486
- "type": "string",
1487
- "minLength": 1,
1488
- "title": "Path",
1489
- "description": "Path or URL that the menu item should link to."
1490
- },
1491
- "translation_key": {
1492
- "type": "string",
1493
- "minLength": 1,
1494
- "title": "Label",
1495
- "description": "Label (or translation key) for the link."
1496
- }
1497
- }
1498
- },
1499
- "breadcrumb_item": {
1500
- "type": "object",
1501
- "title": "Breadcrumb item",
1502
- "properties": {
1503
- "path": {
1504
- "type": "string",
1505
- "minLength": 1,
1506
- "title": "Path",
1507
- "description": "Path or URL that the breadcrumb item should link to."
1508
- },
1509
- "label": {
1510
- "type": "string",
1511
- "minLength": 1,
1512
- "title": "Label",
1513
- "description": "Label (or translation key) for the breadcrumb item."
1514
- }
1515
- }
1516
- },
1517
- "title_and_description": {
1518
- "type": "object",
1519
- "properties": {
1520
- "title": {
1521
- "type": "string",
1522
- "title": "Title"
1523
- },
1524
- "description": {
1525
- "type": "string",
1526
- "title": "Description",
1527
- "format": "markdown"
1528
- }
1529
- }
1530
- },
1531
- "map_style": {
1532
- "properties": {
1533
- "weight": {
1534
- "type": "number",
1535
- "title": "Weight",
1536
- "description": "The weight (boldness) of boundary borders."
1537
- },
1538
- "opacity": {
1539
- "type": "number",
1540
- "title": "Opacity",
1541
- "description": "The opacity of the boundary borders (between 0 and 1)."
1542
- },
1543
- "fillOpacity": {
1544
- "type": "number",
1545
- "title": "Fill opacity",
1546
- "description": "The opacity of the boundaries' background color (between 0 and 1)."
1547
- },
1548
- "color": {
1549
- "type": "string",
1550
- "format": "color",
1551
- "title": "Color",
1552
- "description": "The color of the boundary borders."
1553
- },
1554
- "dashArray": {
1555
- "type": "string",
1556
- "title": "Dash array",
1557
- "description": "A 'dash array' describing the boundary as dashed lines."
1558
- }
1559
- }
1560
- },
1561
- "config_form_options": {
1562
- "type": "object",
1563
- "properties": {
1564
- "enabled": {
1565
- "type": "boolean",
1566
- "title": "Enable this type of form",
1567
- "description": "If enabled, this type of configuration form will be available.",
1568
- "format": "checkbox"
1569
- },
1570
- "dropdowns": {
1571
- "type": "array",
1572
- "title": "Dropdown lists",
1573
- "description": "Set options for any dropdown lists.",
1574
- "items": {
1575
- "type": "object",
1576
- "title": "Dropdown list",
1577
- "properties": {
1578
- "jsonschema": {
1579
- "type": "string",
1580
- "title": "JSONSchema path",
1581
- "description": "The jsonschema path to the dropdown field."
1582
- },
1583
- "values": {
1584
- "type": "array",
1585
- "title": "Values",
1586
- "description": "List of dropdown option values",
1587
- "items": {
1588
- "type": "string",
1589
- "title": "Value"
1590
- }
1591
- },
1592
- "labels": {
1593
- "type": "array",
1594
- "title": "Labels",
1595
- "description": "Optional list of dropdown option labels. Should correspond to the values above.",
1596
- "items": {
1597
- "type": "string",
1598
- "title": "Label"
1599
- }
1600
- }
1601
- }
1602
- }
1603
- },
1604
- "repository_link": {
1605
- "type": "string",
1606
- "title": "Repository link",
1607
- "description": "The URL pattern of the 'Go to repository' link on the configuration page."
1608
- },
1609
- "translation_link": {
1610
- "type": "string",
1611
- "title": "Translation link",
1612
- "description": "The URL pattern for all 'Go to translation' links on the configuration page."
1613
- }
1614
- }
1615
- }
1616
- }
1617
- }
1
+ {
2
+ "type": "object",
3
+ "title": "Open SDG site configuration",
4
+ "description": "This form will produce the site configuration for your Open SDG implementation.",
5
+ "properties": {
6
+ "accessible_charts": {
7
+ "title": "Accessible charts",
8
+ "type": "boolean",
9
+ "description": "This setting can be set to `true` to enable chart functionality that is intended to increase accessibility by adding support for screenreaders and keyboard navigation.",
10
+ "format": "checkbox",
11
+ "links": [
12
+ {
13
+ "rel": "More information on the accessible charts setting",
14
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#accessible_charts"
15
+ }
16
+ ]
17
+ },
18
+ "accessible_tabs": {
19
+ "title": "Accessible tabs",
20
+ "type": "boolean",
21
+ "description": "This setting can be set to `true` to enable tab functionality that is compliant with the WAI-ARIA best practices. This adds improved keyboard navigation of the tabs.",
22
+ "format": "checkbox",
23
+ "links": [
24
+ {
25
+ "rel": "More information on the accessible tabs setting",
26
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#accessible_tabs"
27
+ }
28
+ ]
29
+ },
30
+ "analytics": {
31
+ "options": {"collapsed": true},
32
+ "type": "object",
33
+ "title": "Analytics",
34
+ "description": "If these settings are used, usage statistics will be sent to Google Analytics. These are optional, and you don't have to use all of them. Typically you would just use one, such as the 'ua' option.",
35
+ "properties": {
36
+ "ua": {
37
+ "type": "string",
38
+ "title": "Universal Analytics (ua) tracking ID",
39
+ "description": "The tracking ID for the analytics.js approach, for your property on Google Analytics. Typically starts with 'UA-'."
40
+ },
41
+ "gtag": {
42
+ "type": "string",
43
+ "title": "gtag.js (gtag) tracking ID",
44
+ "description": "The tracking ID for the gtag.js approach, for your property on Google Analytics. Typically starts with 'G-'."
45
+ },
46
+ "gtm": {
47
+ "type": "string",
48
+ "title": "Google Tag Manager (gtm) tracking ID",
49
+ "description": "Your tracking ID for Google Tag Manager. Typically starts with 'GTM-'. Though this is included as an analytics approach, it requires additional configuration within Google Tag Manager in order to capture analytics."
50
+ }
51
+ },
52
+ "links": [
53
+ {
54
+ "rel": "More information on the analytics setting",
55
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#analytics"
56
+ }
57
+ ]
58
+ },
59
+ "breadcrumbs": {
60
+ "options": {"collapsed": true},
61
+ "type": "object",
62
+ "title": "Breadcrumbs",
63
+ "description": "This can contain breadcrumb settings for each of the supported collection types: goal, indicator, and post. Each should have a list of label/path objects.",
64
+ "properties": {
65
+ "goal": {
66
+ "options": {"collapsed": true},
67
+ "type": "array",
68
+ "title": "Goal breadcrumbs",
69
+ "description": "The breadcrumb items for goal pages.",
70
+ "items": {
71
+ "$ref": "#/definitions/breadcrumb_item"
72
+ }
73
+ },
74
+ "indicator": {
75
+ "options": {"collapsed": true},
76
+ "type": "array",
77
+ "title": "Indicator breadcrumbs",
78
+ "description": "The breadcrumb items for indicator pages. Note that there will automatically be a final item, which is a link to the goal that the indicator belongs to. You do not need to specify this, since it is done dynamically and automatically.",
79
+ "items": {
80
+ "$ref": "#/definitions/breadcrumb_item"
81
+ }
82
+ },
83
+ "post": {
84
+ "options": {"collapsed": true},
85
+ "type": "array",
86
+ "title": "Post breadcrumbs",
87
+ "description": "The breadcrumb items for post pages.",
88
+ "items": {
89
+ "$ref": "#/definitions/breadcrumb_item"
90
+ }
91
+ }
92
+ },
93
+ "links": [
94
+ {
95
+ "rel": "More information on the breadcrumbs setting",
96
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#breadcrumbs"
97
+ }
98
+ ]
99
+ },
100
+ "contrast_type": {
101
+ "type": "string",
102
+ "title": "Contrast type",
103
+ "description": "The type of high-contrast toggle to use.",
104
+ "enum": ["default", "single", "long"],
105
+ "options": {
106
+ "enum_titles": [
107
+ "Default - two 'A' buttons side-by-side",
108
+ "Single - one 'A' button which toggles on/off",
109
+ "Long - text toggling between 'High contrast' and 'Default contrast'"
110
+ ]
111
+ },
112
+ "links": [
113
+ {
114
+ "rel": "More information on the contrast type setting",
115
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#contrast_type"
116
+ }
117
+ ]
118
+ },
119
+ "cookie_consent_form": {
120
+ "options": {"collapsed": true},
121
+ "type": "object",
122
+ "title": "Cookie consent form",
123
+ "description": "A cookie consent form for users",
124
+ "properties": {
125
+ "enabled": {
126
+ "type": "boolean",
127
+ "title": "Enabled",
128
+ "description": "Whether the cookie consent form will be enabled",
129
+ "format": "checkbox"
130
+ }
131
+ },
132
+ "links": [
133
+ {
134
+ "rel": "More information on the cookie_consent_form setting",
135
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#cookie_consent_form"
136
+ }
137
+ ]
138
+ },
139
+ "country": {
140
+ "options": {"collapsed": true},
141
+ "type": "object",
142
+ "title": "Country information",
143
+ "description": "Information about your country (or region, locality, etc.)",
144
+ "properties": {
145
+ "name": {
146
+ "type": "string",
147
+ "title": "Name",
148
+ "description": "The name of your country/region/locality/etc.",
149
+ "minLength": 1
150
+ },
151
+ "adjective": {
152
+ "type": "string",
153
+ "title": "Adjective",
154
+ "description": "Adjective form of your country/region/locality/etc.",
155
+ "minLength": 1
156
+ }
157
+ },
158
+ "links": [
159
+ {
160
+ "rel": "More information on the country setting",
161
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#country"
162
+ }
163
+ ]
164
+ },
165
+ "create_goals": {
166
+ "options": {"collapsed": true},
167
+ "type": "object",
168
+ "title": "Create goals",
169
+ "description": "This setting can be used to automatically create the goal pages.",
170
+ "properties": {
171
+ "layout": {
172
+ "type": "string",
173
+ "title": "Layout",
174
+ "enum": [
175
+ "",
176
+ "goal",
177
+ "goal-by-target",
178
+ "goal-by-target-vertical",
179
+ "goal-with-progress"
180
+ ],
181
+ "options": {
182
+ "enum_titles": [
183
+ "Do not automatically create goals",
184
+ "goal",
185
+ "goal-by-target",
186
+ "goal-by-target-vertical",
187
+ "goal-with-progress"
188
+ ]
189
+ },
190
+ "description": "The layout to use for the goal pages."
191
+ },
192
+ "previous_next_links": {
193
+ "title": "Previous/next links",
194
+ "type": "boolean",
195
+ "description": "This setting can be used to show navigation links to the previous/next goals.",
196
+ "format": "checkbox"
197
+ },
198
+ "goals": {
199
+ "options": {"collapsed": true},
200
+ "type": "array",
201
+ "title": "Content per goal",
202
+ "description": "This setting can be used to enter details for each goal.",
203
+ "items": {
204
+ "type": "object",
205
+ "title": "Goal",
206
+ "properties": {
207
+ "content": {
208
+ "type": "string",
209
+ "title": "Content",
210
+ "format": "markdown",
211
+ "description": "Markdown content or a translation key for this goal."
212
+ }
213
+ }
214
+ }
215
+ }
216
+ },
217
+ "links": [
218
+ {
219
+ "rel": "More information on the create goals setting",
220
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#create_goals"
221
+ }
222
+ ]
223
+ },
224
+ "create_indicators": {
225
+ "options": {"collapsed": true},
226
+ "type": "object",
227
+ "title": "Create indicators",
228
+ "description": "This setting can be used to automatically create the indicator pages.",
229
+ "properties": {
230
+ "layout": {
231
+ "type": "string",
232
+ "title": "Layout",
233
+ "enum": [
234
+ "",
235
+ "indicator"
236
+ ],
237
+ "options": {
238
+ "enum_titles": [
239
+ "Do not automatically create indicators",
240
+ "indicator"
241
+ ]
242
+ },
243
+ "description": "The layout to use for the indicator pages."
244
+ },
245
+ "previous_next_links": {
246
+ "title": "Previous/next links",
247
+ "type": "boolean",
248
+ "description": "This setting can be used to show navigation links to the previous/next indicators.",
249
+ "format": "checkbox"
250
+ }
251
+ },
252
+ "links": [
253
+ {
254
+ "rel": "More information on the create indicators setting",
255
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#create_indicators"
256
+ }
257
+ ]
258
+ },
259
+ "create_pages": {
260
+ "options": {"collapsed": true},
261
+ "type": "array",
262
+ "title": "Create pages",
263
+ "description": "This setting can be used to automatically create the pages.",
264
+ "items": {
265
+ "type": "object",
266
+ "title": "Page",
267
+ "properties": {
268
+ "filename": {
269
+ "type": "string",
270
+ "title": "Filename",
271
+ "description": "The filename for the page - usually 'index.html'."
272
+ },
273
+ "folder": {
274
+ "type": "string",
275
+ "minLength": 1,
276
+ "title": "Folder",
277
+ "description": "The folder path for the page."
278
+ },
279
+ "layout": {
280
+ "type": "string",
281
+ "minLength": 1,
282
+ "title": "Layout",
283
+ "description": "The layout to use for the page."
284
+ },
285
+ "title": {
286
+ "type": "string",
287
+ "title": "Title",
288
+ "description": "The page title for the page."
289
+ }
290
+ }
291
+ },
292
+ "links": [
293
+ {
294
+ "rel": "More information on the create pages setting",
295
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#create_pages"
296
+ }
297
+ ]
298
+ },
299
+ "custom_css": {
300
+ "options": {"collapsed": true},
301
+ "type": "array",
302
+ "title": "Custom CSS files",
303
+ "description": "Deprecated: instead of using this, it is recommended to put custom CSS in a _sass/custom.scss file.",
304
+ "items": {
305
+ "type": "string",
306
+ "title": "Custom CSS file"
307
+ },
308
+ "links": [
309
+ {
310
+ "rel": "More information on the custom CSS setting",
311
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#custom_css"
312
+ }
313
+ ]
314
+ },
315
+ "custom_js": {
316
+ "options": {"collapsed": true},
317
+ "type": "array",
318
+ "title": "Custom JavaScript files",
319
+ "description": "This setting can be used to load additional JavaScript files on each page.",
320
+ "items": {
321
+ "type": "string",
322
+ "title": "Custom JavaScript file"
323
+ },
324
+ "links": [
325
+ {
326
+ "rel": "More information on the custom JS setting",
327
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#custom_js"
328
+ }
329
+ ]
330
+ },
331
+ "data_edit_url": {
332
+ "type": "string",
333
+ "title": "Data edit URL",
334
+ "description": "This setting controls the URL of the 'Edit Data' buttons that appear on the staging site's indicator pages.",
335
+ "links": [
336
+ {
337
+ "rel": "More information on the data edit URL setting",
338
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#data_edit_url"
339
+ }
340
+ ]
341
+ },
342
+ "data_fields": {
343
+ "options": {"collapsed": true},
344
+ "type": "object",
345
+ "title": "Data fields",
346
+ "description": "Control the names of fields used for special purposes in data.",
347
+ "properties": {
348
+ "units": {
349
+ "type": "string",
350
+ "title": "Units",
351
+ "description": "Field to reserve for units of measurement. Defaults to 'Units'."
352
+ },
353
+ "series": {
354
+ "type": "string",
355
+ "title": "Series",
356
+ "description": "Field to reserve for the SDG series. Defaults to 'Series'."
357
+ }
358
+ },
359
+ "links": [
360
+ {
361
+ "rel": "More information on the data fields setting",
362
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#data_fields"
363
+ }
364
+ ]
365
+ },
366
+ "date_formats": {
367
+ "options": {"collapsed": true},
368
+ "type": "array",
369
+ "title": "Date formats",
370
+ "description": "This setting can be used to control date formats for use in the site, such as in the news/category/post layouts. Any number date formats can be entered, and each must have an arbitrary type, such as `standard`. Make sure that each type has a variant for each of your languages.",
371
+ "items": {
372
+ "type": "object",
373
+ "title": "Date format",
374
+ "properties": {
375
+ "type": {
376
+ "type": "string",
377
+ "minLength": 1,
378
+ "title": "Type",
379
+ "description": "Use `standard` for news/post dates."
380
+ },
381
+ "language": {
382
+ "type": "string",
383
+ "minLength": 1,
384
+ "title": "Language",
385
+ "description": "Language code the format applies to."
386
+ },
387
+ "format": {
388
+ "type": "string",
389
+ "minLength": 1,
390
+ "title": "Format",
391
+ "description": "Ruby DateTime date format."
392
+ }
393
+ }
394
+ },
395
+ "links": [
396
+ {
397
+ "rel": "More information on the date formats setting",
398
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#date_formats"
399
+ }
400
+ ]
401
+ },
402
+ "disclaimer": {
403
+ "options": {"collapsed": true},
404
+ "type": "object",
405
+ "title": "Disclaimer",
406
+ "description": "This setting controls the content of the disclaimer that appears at the top of each page.",
407
+ "properties": {
408
+ "phase": {
409
+ "type": "string",
410
+ "title": "Phase",
411
+ "description": "The development phase of your platform (alpha, beta, etc.)"
412
+ },
413
+ "message": {
414
+ "type": "string",
415
+ "title": "Message",
416
+ "description": "A short disclaimer message."
417
+ }
418
+ },
419
+ "links": [
420
+ {
421
+ "rel": "More information on the disclaimer setting",
422
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#disclaimer"
423
+ }
424
+ ]
425
+ },
426
+ "email_contacts": {
427
+ "options": {"collapsed": true},
428
+ "type": "object",
429
+ "title": "Email addresses",
430
+ "description": "Email addresses to publish on your platform.",
431
+ "properties": {
432
+ "questions": {
433
+ "type": "string",
434
+ "minLength": 1,
435
+ "format": "email",
436
+ "title": "Questions",
437
+ "description": "Inbox for questions about your platform."
438
+ },
439
+ "suggestions": {
440
+ "type": "string",
441
+ "minLength": 1,
442
+ "format": "email",
443
+ "title": "Suggestions",
444
+ "description": "Inbox for suggestions for your platform."
445
+ },
446
+ "functional": {
447
+ "type": "string",
448
+ "minLength": 1,
449
+ "format": "email",
450
+ "title": "Functional",
451
+ "description": "Inbox for bug reports for your platform."
452
+ }
453
+ },
454
+ "links": [
455
+ {
456
+ "rel": "More information on the email contacts setting",
457
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#email_contacts"
458
+ }
459
+ ]
460
+ },
461
+ "environment": {
462
+ "type": "string",
463
+ "minLength": 1,
464
+ "title": "Environment",
465
+ "description": "Which environment (staging or production) this configuration is for.",
466
+ "enum": ["staging", "production"],
467
+ "links": [
468
+ {
469
+ "rel": "More information on the environment setting",
470
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#environment"
471
+ }
472
+ ]
473
+ },
474
+ "favicons": {
475
+ "type": "string",
476
+ "title": "Favicons",
477
+ "description": "The type of favicons to use.",
478
+ "enum": ["legacy", "favicon.io"],
479
+ "options": {
480
+ "enum_titles": [
481
+ "Legacy",
482
+ "Favicon.io (recommended)"
483
+ ]
484
+ },
485
+ "links": [
486
+ {
487
+ "rel": "More information on the favicons setting",
488
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#favicons"
489
+ }
490
+ ]
491
+ },
492
+ "footer_language_toggle": {
493
+ "type": "string",
494
+ "title": "Footer language toggle",
495
+ "description": "This setting controls the type of language toggle to be used in the footer.",
496
+ "enum": ["none", "dropdown", "links"],
497
+ "links": [
498
+ {
499
+ "rel": "More information on the footer language toggle setting",
500
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#footer_language_toggle"
501
+ }
502
+ ]
503
+ },
504
+ "footer_menu": {
505
+ "options": {"collapsed": true},
506
+ "type": "array",
507
+ "title": "Footer menu",
508
+ "description": "The links to display in the footer menu.",
509
+ "items": {
510
+ "$ref": "#/definitions/menu_item"
511
+ },
512
+ "links": [
513
+ {
514
+ "rel": "More information on the footer menu setting",
515
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#footer_menu"
516
+ }
517
+ ]
518
+ },
519
+ "frontpage_cards": {
520
+ "options": {"collapsed": true},
521
+ "type": "array",
522
+ "title": "Frontpage cards",
523
+ "description": "This setting is only used in the frontpage-alt layout. It can display any number of 'cards' in 3-column rows, beneath the grid of goal tiles.",
524
+ "items": {
525
+ "type": "object",
526
+ "title": "Frontpage card",
527
+ "properties": {
528
+ "title": {
529
+ "type": "string",
530
+ "minLength": 1,
531
+ "title": "Title",
532
+ "description": "The card's title."
533
+ },
534
+ "content": {
535
+ "type": "string",
536
+ "title": "Content",
537
+ "description": "The card's content.",
538
+ "format": "markdown"
539
+ },
540
+ "include": {
541
+ "type": "string",
542
+ "title": "Include file",
543
+ "description": "A Jekyll include file to place inside the card."
544
+ },
545
+ "button_label": {
546
+ "type": "string",
547
+ "title": "Button label",
548
+ "description": "A label for a button to display at the bottom of the card."
549
+ },
550
+ "button_link": {
551
+ "type": "string",
552
+ "title": "Button link",
553
+ "description": "A path or URL for the card's button to link to."
554
+ },
555
+ "rule_color": {
556
+ "type": "string",
557
+ "title": "Rule color",
558
+ "description": "The color of the horizontal line appearing above the card."
559
+ }
560
+ }
561
+ },
562
+ "links": [
563
+ {
564
+ "rel": "More information on the frontpage cards setting",
565
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_cards"
566
+ }
567
+ ]
568
+ },
569
+ "frontpage_goals_grid": {
570
+ "options": {"collapsed": true},
571
+ "type": "object",
572
+ "title": "Frontpage goals grid",
573
+ "description": "This setting is only used in the frontpage-alt layout. It can display a title and description above the grid of goal tiles.",
574
+ "$ref": "#/definitions/title_and_description",
575
+ "links": [
576
+ {
577
+ "rel": "More information on the frontpage goals grid setting",
578
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_goals_grid"
579
+ }
580
+ ]
581
+ },
582
+ "frontpage_heading": {
583
+ "type": "string",
584
+ "title": "Frontpage heading",
585
+ "description": "This setting can control the heading that appears on the front page. This setting is only used in the frontpage layout.",
586
+ "links": [
587
+ {
588
+ "rel": "More information on the frontpage heading setting",
589
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_heading"
590
+ }
591
+ ]
592
+ },
593
+ "frontpage_instructions": {
594
+ "type": "string",
595
+ "title": "Frontpage instructions",
596
+ "description": "This setting can control the instructions that appear on the front page. This setting is only used in the frontpage layout.",
597
+ "links": [
598
+ {
599
+ "rel": "More information on the frontpage instructions setting",
600
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_instructions"
601
+ }
602
+ ]
603
+ },
604
+ "frontpage_introduction_banner": {
605
+ "options": {"collapsed": true},
606
+ "type": "object",
607
+ "title": "Frontpage introduction banner",
608
+ "description": "This setting is only used in the frontpage-alt layout. It can display a title and description in a banner at the top of the frontpage.",
609
+ "$ref": "#/definitions/title_and_description",
610
+ "links": [
611
+ {
612
+ "rel": "More information on the frontpage introduction banner setting",
613
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#frontpage_introduction_banner"
614
+ }
615
+ ]
616
+ },
617
+ "goal_image_base": {
618
+ "type": "string",
619
+ "minLength": 1,
620
+ "title": "Goal image base URL",
621
+ "description": "This setting controls the base URL for downloading the imagery for the goals.",
622
+ "links": [
623
+ {
624
+ "rel": "More information on the goal image base setting",
625
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#goal_image_base"
626
+ }
627
+ ]
628
+ },
629
+ "goal_image_extension": {
630
+ "type": "string",
631
+ "title": "Goal image extension",
632
+ "description": "This setting controls the type of file (the file extension) that will be used for the goal images.",
633
+ "links": [
634
+ {
635
+ "rel": "More information on the goal image extension setting",
636
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#goal_image_extension"
637
+ }
638
+ ]
639
+ },
640
+ "goals_page": {
641
+ "options": {"collapsed": true},
642
+ "type": "object",
643
+ "title": "Goals page",
644
+ "description": "This setting is used in the 'goals' layout. It can display a title and description above the grid of goal tiles.",
645
+ "$ref": "#/definitions/title_and_description",
646
+ "links": [
647
+ {
648
+ "rel": "More information on the goals page setting",
649
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#goals_page"
650
+ }
651
+ ]
652
+ },
653
+ "graph_color_headline": {
654
+ "type": "string",
655
+ "format": "color",
656
+ "title": "Graph color for headline",
657
+ "default": "#004466",
658
+ "description": "This setting can be used to customize the color used in the chart 'headlines'.",
659
+ "examples": [],
660
+ "links": [
661
+ {
662
+ "rel": "More information on the graph color headline setting",
663
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_headline"
664
+ }
665
+ ]
666
+ },
667
+ "graph_color_headline_high_contrast": {
668
+ "type": "string",
669
+ "format": "color",
670
+ "title": "Graph color for headline - high-contrast",
671
+ "default": "#55a6e5",
672
+ "description": "This setting can be used to customize the color used in the chart 'headlines' in high-contrast mode.",
673
+ "examples": [],
674
+ "links": [
675
+ {
676
+ "rel": "More information on the graph color headline high-contrast setting",
677
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_headline_high_contrast"
678
+ }
679
+ ]
680
+ },
681
+ "graph_color_set": {
682
+ "type": "string",
683
+ "title": "Graph color set",
684
+ "description": "This setting can be used to customize the color set used in the charts.",
685
+ "examples": [],
686
+ "enum": ["default", "accessible", "sdg", "goal", "custom"],
687
+ "links": [
688
+ {
689
+ "rel": "More information on the graph color set setting",
690
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_set"
691
+ }
692
+ ]
693
+ },
694
+ "graph_color_list": {
695
+ "options": {"collapsed": true},
696
+ "type": "array",
697
+ "title": "Graph color list",
698
+ "description": "This setting can be used to define a set of colors to be used in the charts. This is only used when graph_color_set is 'custom'.",
699
+ "items": {
700
+ "type": "string",
701
+ "format": "color",
702
+ "title": "Color",
703
+ "description": "Hexadecimal color code"
704
+ },
705
+ "links": [
706
+ {
707
+ "rel": "More information on the graph color list setting",
708
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_list"
709
+ }
710
+ ]
711
+ },
712
+ "graph_color_number": {
713
+ "title": "Graph color number",
714
+ "type": "integer",
715
+ "description": "This setting can be used to limit the length of the list of colors selected via graph_color_set.",
716
+ "links": [
717
+ {
718
+ "rel": "More information on the graph color number setting",
719
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_color_number"
720
+ }
721
+ ]
722
+ },
723
+ "graph_title_from_series": {
724
+ "title": "Graph title from series",
725
+ "type": "boolean",
726
+ "description": "This setting can be set to `true` to use the selected series for the graph title, whenever possible.",
727
+ "format": "checkbox",
728
+ "links": [
729
+ {
730
+ "rel": "More information on the graph title from series setting",
731
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#graph_title_from_series"
732
+ }
733
+ ]
734
+ },
735
+ "header": {
736
+ "options": {"collapsed": true},
737
+ "type": "object",
738
+ "title": "Header",
739
+ "description": "This setting can be used to customise the header.",
740
+ "properties": {
741
+ "include": {
742
+ "type": "string",
743
+ "title": "Include file",
744
+ "enum": [
745
+ "header-default.html",
746
+ "header-menu-left-aligned.html"
747
+ ],
748
+ "options": {
749
+ "enum_titles": [
750
+ "Default header",
751
+ "Menu left-aligned"
752
+ ]
753
+ },
754
+ "description": "The header style to use on all pages."
755
+ }
756
+ },
757
+ "links": [
758
+ {
759
+ "rel": "More information on the header setting",
760
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#header"
761
+ }
762
+ ]
763
+ },
764
+ "header_language_toggle": {
765
+ "type": "string",
766
+ "title": "Header language toggle",
767
+ "description": "This setting controls the type of language toggle to be used in the header.",
768
+ "enum": ["none", "dropdown", "links"],
769
+ "links": [
770
+ {
771
+ "rel": "More information on the header language toggle setting",
772
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#header_language_toggle"
773
+ }
774
+ ]
775
+ },
776
+ "hide_empty_metadata": {
777
+ "title": "Hide empty metadata",
778
+ "type": "boolean",
779
+ "description": "This setting can be used to hide any metadata fields that are empty.",
780
+ "format": "checkbox",
781
+ "links": [
782
+ {
783
+ "rel": "More information on the hide empty metadata setting",
784
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#hide_empty_metadata"
785
+ }
786
+ ]
787
+ },
788
+ "hide_single_series": {
789
+ "title": "Hide single series",
790
+ "type": "boolean",
791
+ "description": "This setting can be used to hide the 'Series' toggle on indicators where there is only one choice.",
792
+ "format": "checkbox",
793
+ "links": [
794
+ {
795
+ "rel": "More information on the hide single series setting",
796
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#hide_single_series"
797
+ }
798
+ ]
799
+ },
800
+ "hide_single_unit": {
801
+ "title": "Hide single unit",
802
+ "type": "boolean",
803
+ "description": "This setting can be used to hide the 'Unit' toggle on indicators where there is only one choice.",
804
+ "format": "checkbox",
805
+ "links": [
806
+ {
807
+ "rel": "More information on the hide single unit setting",
808
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#hide_single_unit"
809
+ }
810
+ ]
811
+ },
812
+ "indicator_config_form": {
813
+ "options": {"collapsed": true},
814
+ "type": "object",
815
+ "title": "Indicator configuration form",
816
+ "description": "Configuration of the indicator configuration form.",
817
+ "$ref": "#/definitions/config_form_options"
818
+ },
819
+ "indicator_data_form": {
820
+ "options": {"collapsed": true},
821
+ "type": "object",
822
+ "title": "Indicator data form",
823
+ "description": "Configuration of the indicator data form.",
824
+ "properties": {
825
+ "enabled": {
826
+ "type": "boolean",
827
+ "title": "Enable this type of form",
828
+ "description": "If enabled, the indicator data form will be available.",
829
+ "format": "checkbox"
830
+ },
831
+ "repository_link": {
832
+ "type": "string",
833
+ "title": "Repository link",
834
+ "description": "The URL pattern of the 'Go to repository' link on the configuration page."
835
+ }
836
+ }
837
+ },
838
+ "indicator_metadata_form": {
839
+ "options": {"collapsed": true},
840
+ "type": "object",
841
+ "title": "Indicator metadata form",
842
+ "description": "Configuration of the indicator metadata form.",
843
+ "allOf": [
844
+ { "$ref": "#/definitions/config_form_options" },
845
+ {
846
+ "properties": {
847
+ "language": {
848
+ "type": "string",
849
+ "title": "Language for editing",
850
+ "description": "Choose the language you prefer when editing metadata. This is used to translate the labels of the metadata fields."
851
+ },
852
+ "scopes": {
853
+ "options": {"collapsed": true},
854
+ "type": "array",
855
+ "title": "Metadata scopes",
856
+ "description": "Specify the 'scopes' of metadata to include on the form. Eg: 'national' or 'global'.",
857
+ "items": {
858
+ "type": "string",
859
+ "title": "Scope"
860
+ }
861
+ },
862
+ "exclude_fields": {
863
+ "options": {"collapsed": true},
864
+ "type": "array",
865
+ "title": "Exclude fields",
866
+ "description": "Specify any fields you would like to exclude from the form.",
867
+ "items": {
868
+ "type": "string",
869
+ "title": "Field"
870
+ }
871
+ },
872
+ "translated": {
873
+ "type": "boolean",
874
+ "title": "Display translated contents in the form",
875
+ "description": "This should only be enabled if you are using the 'subfolder' approach for your metadata.",
876
+ "format": "checkbox"
877
+ }
878
+ }
879
+ }
880
+ ]
881
+ },
882
+ "indicator_tabs": {
883
+ "options": {"collapsed": true},
884
+ "type": "object",
885
+ "title": "Indicator tabs",
886
+ "description": "Assign content for the indicator tabs.",
887
+ "properties": {
888
+ "tab_1": {
889
+ "type": "string",
890
+ "title": "Tab 1",
891
+ "description": "What to display in the first tab",
892
+ "$ref": "#/definitions/indicator_tabs_options"
893
+ },
894
+ "tab_2": {
895
+ "type": "string",
896
+ "title": "Tab 2",
897
+ "description": "What to display in the second tab",
898
+ "$ref": "#/definitions/indicator_tabs_options"
899
+ },
900
+ "tab_3": {
901
+ "type": "string",
902
+ "title": "Tab 3",
903
+ "description": "What to display in the third tab",
904
+ "$ref": "#/definitions/indicator_tabs_options"
905
+ },
906
+ "tab_4": {
907
+ "type": "string",
908
+ "title": "Tab 4",
909
+ "description": "What to display in the fourth tab",
910
+ "$ref": "#/definitions/indicator_tabs_options"
911
+ }
912
+ }
913
+ },
914
+ "languages": {
915
+ "options": {"collapsed": true},
916
+ "type": "array",
917
+ "minItems": 1,
918
+ "title": "Languages",
919
+ "description": "This setting controls the languages to be used on the site.",
920
+ "items": {
921
+ "type": "string",
922
+ "minLength": 1,
923
+ "title": "Language"
924
+ },
925
+ "links": [
926
+ {
927
+ "rel": "More information on the languages setting",
928
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#languages"
929
+ }
930
+ ]
931
+ },
932
+ "languages_public": {
933
+ "options": {"collapsed": true},
934
+ "type": "array",
935
+ "title": "Language code overrides",
936
+ "description": "This setting can be used if you are not happy with any of the standard language codes.",
937
+ "items": {
938
+ "type": "object",
939
+ "title": "Language override",
940
+ "properties": {
941
+ "language": {
942
+ "type": "string",
943
+ "minLength": 1,
944
+ "title": "Language",
945
+ "description": "The (standard) language code that you would like to override."
946
+ },
947
+ "language_public": {
948
+ "type": "string",
949
+ "minLength": 1,
950
+ "title": "Language override",
951
+ "description": "The (non-standard) language code that you would like show the public instead."
952
+ }
953
+ }
954
+ },
955
+ "links": [
956
+ {
957
+ "rel": "More information on the language override setting",
958
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#languages_public"
959
+ }
960
+ ]
961
+ },
962
+ "logos": {
963
+ "options": {"collapsed": true},
964
+ "type": "array",
965
+ "title": "Logos",
966
+ "description": "This setting can be used to control the main logo (or logos).",
967
+ "items": {
968
+ "type": "object",
969
+ "title": "Logo",
970
+ "properties": {
971
+ "language": {
972
+ "type": "string",
973
+ "title": "Language",
974
+ "description": "The language on which this logo displays. Leave blank to show on all."
975
+ },
976
+ "src": {
977
+ "type": "string",
978
+ "minLength": 1,
979
+ "title": "Image file",
980
+ "description": "The image file (path or URL) for this logo"
981
+ },
982
+ "alt": {
983
+ "type": "string",
984
+ "minLength": 1,
985
+ "title": "Alt text",
986
+ "description": "The alt text for this logo"
987
+ }
988
+ }
989
+ },
990
+ "links": [
991
+ {
992
+ "rel": "More information on the logos setting",
993
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#logos"
994
+ }
995
+ ]
996
+ },
997
+ "map_layers": {
998
+ "options": {"collapsed": true},
999
+ "type": "array",
1000
+ "title": "Map layers",
1001
+ "description": "Configure any number of layers to display on all indicator maps. A minimum of one layer is required to display maps.",
1002
+ "items": {
1003
+ "type": "object",
1004
+ "title": "Map layer",
1005
+ "properties": {
1006
+ "subfolder": {
1007
+ "type": "string",
1008
+ "title": "Subfolder",
1009
+ "description": "The subfolder under 'geojson' in the data repository holding the GeoJSON file for this layer."
1010
+ },
1011
+ "label": {
1012
+ "type": "string",
1013
+ "title": "Download button label",
1014
+ "description": "The label to use in the 'Download GeoJSON' button for this layer."
1015
+ },
1016
+ "min_zoom": {
1017
+ "type": "integer",
1018
+ "title": "Minimum zoom",
1019
+ "description": "This layer will only be visible when the map is zoomed to at least this number."
1020
+ },
1021
+ "max_zoom": {
1022
+ "type": "integer",
1023
+ "title": "Maximum zoom",
1024
+ "description": "The layer will not be visible when the map is zoomed beyond this number."
1025
+ },
1026
+ "staticBorders": {
1027
+ "type": "boolean",
1028
+ "format": "checkbox",
1029
+ "title": "Static borders",
1030
+ "description": "Whether the borders on this layer should remain visible when the map is zoomed past the maximum."
1031
+ }
1032
+ }
1033
+ },
1034
+ "links": [
1035
+ {
1036
+ "rel": "More information on the map layers setting",
1037
+ "href": "https://open-sdg.readthedocs.io/en/latest/maps/#map_layers"
1038
+ }
1039
+ ]
1040
+ },
1041
+ "map_options": {
1042
+ "options": {"collapsed": true},
1043
+ "type": "object",
1044
+ "title": "Map options",
1045
+ "description": "Site-wide configuration of map behavior and style.",
1046
+ "properties": {
1047
+ "minZoom": {
1048
+ "title": "Minimum zoom",
1049
+ "type": "integer",
1050
+ "description": "The lowest amount of 'zoom' possible for users.",
1051
+ "default": 5
1052
+ },
1053
+ "maxZoom": {
1054
+ "title": "Maximum zoom",
1055
+ "type": "integer",
1056
+ "description": "The highest amount of 'zoom' possible for users.",
1057
+ "default": 10
1058
+ },
1059
+ "tileURL": {
1060
+ "title": "Tile URL",
1061
+ "type": "string",
1062
+ "format": "url",
1063
+ "description": "If you would like the maps to show tile imagery, add the URL here."
1064
+ },
1065
+ "tileOptions": {
1066
+ "title": "Tile options",
1067
+ "type": "object",
1068
+ "options": {"collapsed": true},
1069
+ "description": "Additional options for map tile imagery.",
1070
+ "properties": {
1071
+ "id": {
1072
+ "type": "string",
1073
+ "title": "Tile ID"
1074
+ },
1075
+ "accessToken": {
1076
+ "type": "string",
1077
+ "title": "Access token"
1078
+ },
1079
+ "attribution": {
1080
+ "type": "string",
1081
+ "title": "Attribution"
1082
+ }
1083
+ }
1084
+ },
1085
+ "colorRange": {
1086
+ "type": "string",
1087
+ "title": "Color range",
1088
+ "description": "The color range for the choropleth map.",
1089
+ "default": "chroma.brewer.BuGn",
1090
+ "links": [
1091
+ {
1092
+ "ref": "More information on the color range setting",
1093
+ "href": "https://gka.github.io/chroma.js/#chroma-brewer"
1094
+ }
1095
+ ]
1096
+ },
1097
+ "noValueColor": {
1098
+ "type": "string",
1099
+ "format": "color",
1100
+ "title": "No-value color",
1101
+ "description": "Color for boundaries that have no data.",
1102
+ "default": "#f0f0f0"
1103
+ },
1104
+ "styleNormal": {
1105
+ "type": "object",
1106
+ "title": "Style (normal)",
1107
+ "description": "Style for boundaries in normal state",
1108
+ "$ref": "#/definitions/map_style",
1109
+ "default": {
1110
+ "weight": 1,
1111
+ "opacity": 1,
1112
+ "fillOpacity": 0.7,
1113
+ "color": "#888888"
1114
+ }
1115
+ },
1116
+ "styleHighlighted": {
1117
+ "type": "object",
1118
+ "title": "Style (highlighted)",
1119
+ "description": "Style for boundaries in highlighted state",
1120
+ "$ref": "#/definitions/map_style",
1121
+ "default": {
1122
+ "weight": 1,
1123
+ "opacity": 1,
1124
+ "fillOpacity": 0.7,
1125
+ "color": "#111111"
1126
+ }
1127
+ },
1128
+ "styleStatic": {
1129
+ "type": "object",
1130
+ "title": "Style (static)",
1131
+ "description": "Style for boundaries in static state (map layers using the 'static boundaries' option).",
1132
+ "$ref": "#/definitions/map_style",
1133
+ "default": {
1134
+ "weight": 2,
1135
+ "opacity": 1,
1136
+ "fillOpacity": 0,
1137
+ "color": "#172d44",
1138
+ "dashArray": "5,5"
1139
+ }
1140
+ }
1141
+ },
1142
+ "links": [
1143
+ {
1144
+ "rel": "More information on the map options setting",
1145
+ "href": "https://open-sdg.readthedocs.io/en/latest/maps/#map_options"
1146
+ }
1147
+ ]
1148
+ },
1149
+ "menu": {
1150
+ "options": {"collapsed": true},
1151
+ "type": "array",
1152
+ "minItems": 1,
1153
+ "title": "Main menu",
1154
+ "description": "The links to display in the main menu.",
1155
+ "items": {
1156
+ "title": "Menu item",
1157
+ "allOf": [
1158
+ { "$ref": "#/definitions/menu_item" },
1159
+ {
1160
+ "properties": {
1161
+ "dropdown": {
1162
+ "title": "Dropdown menu",
1163
+ "type": "array",
1164
+ "description": "Enter menu items here to turn this into a dropdown.",
1165
+ "items": {
1166
+ "$ref": "#/definitions/menu_item",
1167
+ "title": "Dropdown menu item"
1168
+ }
1169
+ }
1170
+ }
1171
+ }
1172
+ ]
1173
+ },
1174
+ "links": [
1175
+ {
1176
+ "rel": "More information on the menu setting",
1177
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#menu"
1178
+ }
1179
+ ]
1180
+ },
1181
+ "metadata_edit_url": {
1182
+ "type": "string",
1183
+ "title": "Metadata edit URL",
1184
+ "description": "This setting controls the URL of the 'Edit Metadata' buttons that appear on the staging site's indicator pages.",
1185
+ "links": [
1186
+ {
1187
+ "rel": "More information on the metadata edit URL setting",
1188
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#metadata_edit_url"
1189
+ }
1190
+ ]
1191
+ },
1192
+ "metadata_tabs": {
1193
+ "options": {"collapsed": true},
1194
+ "type": "array",
1195
+ "title": "Metadata tabs",
1196
+ "description": "This setting can control the metadata tabs which appear on the indicator pages.",
1197
+ "items": {
1198
+ "type": "object",
1199
+ "title": "Metadata tab",
1200
+ "properties": {
1201
+ "scope": {
1202
+ "type": "string",
1203
+ "minLength": 1,
1204
+ "title": "Scope",
1205
+ "description": "This tab will contain fields in the specific `scope` in your data repository's metadata schema file (eg, `_prose.yml`)."
1206
+ },
1207
+ "title": {
1208
+ "type": "string",
1209
+ "minLength": 1,
1210
+ "title": "Title",
1211
+ "description": "The title of the metadata tab."
1212
+ },
1213
+ "description": {
1214
+ "type": "string",
1215
+ "title": "Description",
1216
+ "description": "A descriptive blurb to show at the top of the tab content.",
1217
+ "format": "markdown"
1218
+ }
1219
+ }
1220
+ },
1221
+ "links": [
1222
+ {
1223
+ "rel": "More information on the metadata tabs setting",
1224
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#metadata_tabs"
1225
+ }
1226
+ ]
1227
+ },
1228
+ "news": {
1229
+ "options": {"collapsed": true},
1230
+ "type": "object",
1231
+ "title": "News",
1232
+ "description": "Configuration related to news updates and posts.",
1233
+ "properties": {
1234
+ "category_links": {
1235
+ "title": "Category links",
1236
+ "type": "boolean",
1237
+ "description": "Whether you would like the 'categories' of posts to generate links to dedicated category pages.",
1238
+ "format": "checkbox"
1239
+ }
1240
+ },
1241
+ "links": [
1242
+ {
1243
+ "rel": "More information on the news setting",
1244
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#news"
1245
+ }
1246
+ ]
1247
+ },
1248
+ "non_global_metadata": {
1249
+ "type": "string",
1250
+ "title": "Non-global metadata",
1251
+ "description": "This setting can be used to control the text of the tab containing non-global metadata.",
1252
+ "links": [
1253
+ {
1254
+ "rel": "More information on the non-global metadata setting",
1255
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#non_global_metadata"
1256
+ }
1257
+ ]
1258
+ },
1259
+ "progress_status": {
1260
+ "options": {"collapsed": true},
1261
+ "type": "object",
1262
+ "title": "Progress status",
1263
+ "description": "This setting is used in the 'goal-with-progress' layout. It controls the behavior of progress status functionality.",
1264
+ "properties": {
1265
+ "status_heading": {
1266
+ "title": "Status heading",
1267
+ "type": "string",
1268
+ "description": "A heading to display before the progress status on indicator pages."
1269
+ },
1270
+ "status_types": {
1271
+ "options": {"collapsed": true},
1272
+ "type": "array",
1273
+ "title": "Status types",
1274
+ "description": "Controls the behavior and labels for the different progress status types.",
1275
+ "items": {
1276
+ "type": "object",
1277
+ "title": "Status type",
1278
+ "properties": {
1279
+ "value": {
1280
+ "type": "string",
1281
+ "minLength": 1,
1282
+ "title": "Value",
1283
+ "description": "The value of the status type, as it is set in the indicator configuration (eg, 'targetachieved')."
1284
+ },
1285
+ "label": {
1286
+ "type": "string",
1287
+ "title": "Label",
1288
+ "description": "The human-readable label for the status type. Can be a translation key (eg, 'status.target_achieved')."
1289
+ },
1290
+ "image": {
1291
+ "type": "string",
1292
+ "title": "Image",
1293
+ "description": "The internal path to the image to use (if any) for this progress status."
1294
+ },
1295
+ "alt": {
1296
+ "type": "string",
1297
+ "title": "Alt",
1298
+ "description": "An alt tag for the image above."
1299
+ }
1300
+ }
1301
+ }
1302
+ }
1303
+ },
1304
+ "links": [
1305
+ {
1306
+ "rel": "More information on the progress status setting",
1307
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#progress_status"
1308
+ }
1309
+ ]
1310
+ },
1311
+ "remote_data_prefix": {
1312
+ "type": "string",
1313
+ "minLength": 1,
1314
+ "title": "Remote data prefix",
1315
+ "description": "Specify the URL of the 'data service' that is generated from your data repository.",
1316
+ "links": [
1317
+ {
1318
+ "rel": "More information on the remote data prefix setting",
1319
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#remote_data_prefix"
1320
+ }
1321
+ ]
1322
+ },
1323
+ "reporting_status": {
1324
+ "options": {"collapsed": true},
1325
+ "type": "object",
1326
+ "title": "Reporting status",
1327
+ "description": "This setting is used in the 'reportingstatus' layout. It can display a title and description above the reporting status page.",
1328
+ "allOf": [
1329
+ { "$ref": "#/definitions/title_and_description" },
1330
+ {
1331
+ "properties": {
1332
+ "disaggregation_tabs": {
1333
+ "title": "Disaggregation tabs",
1334
+ "type": "boolean",
1335
+ "description": "Whether or not to display disaggregation status tabs. If you enable this setting, you should also use 'expected_disaggregations' in your indicator configuration, in order to provide the disaggregation status report with useful metrics.",
1336
+ "format": "checkbox"
1337
+ },
1338
+ "status_types": {
1339
+ "options": {"collapsed": true},
1340
+ "type": "array",
1341
+ "title": "Status types",
1342
+ "description": "Controls the behavior and labels for the different reporting status types.",
1343
+ "items": {
1344
+ "type": "object",
1345
+ "title": "Status type",
1346
+ "properties": {
1347
+ "value": {
1348
+ "type": "string",
1349
+ "minLength": 1,
1350
+ "title": "Value",
1351
+ "description": "The value of the status type, as it is set in the indicator configuration (eg, 'complete')."
1352
+ },
1353
+ "label": {
1354
+ "type": "string",
1355
+ "minLength": 1,
1356
+ "title": "Label",
1357
+ "description": "The human-readable label for the status type. Can be a translation key (eg, 'status.reported_online')."
1358
+ },
1359
+ "hide_on_goal_pages": {
1360
+ "type": "boolean",
1361
+ "title": "Hide on goal pages",
1362
+ "description": "Whether to hide this status type on goal pages. Useful for the most commonly-occuring type.",
1363
+ "format": "checkbox"
1364
+ }
1365
+ }
1366
+ }
1367
+ }
1368
+ }
1369
+ }
1370
+ ],
1371
+ "links": [
1372
+ {
1373
+ "rel": "More information on the reporting status setting",
1374
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#reporting_status"
1375
+ }
1376
+ ]
1377
+ },
1378
+ "repository_url_data": {
1379
+ "type": "string",
1380
+ "title": "Repository URL - Data",
1381
+ "description": "The URL of your data repository, eg: https://github.com/my-github-org/data",
1382
+ "links": [
1383
+ {
1384
+ "rel": "More information on the data repository URL setting",
1385
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#repository_url_data"
1386
+ }
1387
+ ]
1388
+ },
1389
+ "repository_url_site": {
1390
+ "type": "string",
1391
+ "title": "Repository URL - Site",
1392
+ "description": "The URL of your site repository, eg: https://github.com/my-github-org/site",
1393
+ "links": [
1394
+ {
1395
+ "rel": "More information on the site repository URL setting",
1396
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#repository_url_site"
1397
+ }
1398
+ ]
1399
+ },
1400
+ "search_index_boost": {
1401
+ "options": {"collapsed": true},
1402
+ "type": "array",
1403
+ "title": "Search index boost",
1404
+ "description": "This setting can be used to give a boost to one or more fields in the search index.",
1405
+ "items": {
1406
+ "type": "object",
1407
+ "title": "Boost",
1408
+ "properties": {
1409
+ "field": {
1410
+ "type": "string",
1411
+ "minLength": 1,
1412
+ "title": "Field",
1413
+ "description": "Field to boost ('title', 'content', etc.)"
1414
+ },
1415
+ "boost": {
1416
+ "type": "integer",
1417
+ "minLength": 1,
1418
+ "title": "Boost",
1419
+ "description": "Higher boost means higher search ranking."
1420
+ }
1421
+ }
1422
+ },
1423
+ "links": [
1424
+ {
1425
+ "rel": "More information on the search index boost setting",
1426
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#search_index_boost"
1427
+ }
1428
+ ]
1429
+ },
1430
+ "search_index_extra_fields": {
1431
+ "options": {"collapsed": true},
1432
+ "type": "array",
1433
+ "title": "Search index extra fields",
1434
+ "description": "This setting can be used to index additional metadata fields in your indicators, for the purposes of affecting the site-wide search.",
1435
+ "items": {
1436
+ "type": "string",
1437
+ "title": "Extra field"
1438
+ },
1439
+ "links": [
1440
+ {
1441
+ "rel": "More information on the search index extra fields setting",
1442
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#search_index_extra_fields"
1443
+ }
1444
+ ]
1445
+ },
1446
+ "series_toggle": {
1447
+ "title": "Series toggle",
1448
+ "type": "boolean",
1449
+ "description": "This setting enables the special treatment of the 'Series' column in the data. If set to true, when an indicator's data includes a 'Series' column, it will be displayed above 'Units' as radio buttons.",
1450
+ "format": "checkbox",
1451
+ "links": [
1452
+ {
1453
+ "rel": "More information on the series toggle setting",
1454
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#series_toggle"
1455
+ }
1456
+ ]
1457
+ },
1458
+ "site_config_form": {
1459
+ "options": {"collapsed": true},
1460
+ "type": "object",
1461
+ "title": "Site configuration form",
1462
+ "description": "Configuration of the site configuration form.",
1463
+ "$ref": "#/definitions/config_form_options"
1464
+ },
1465
+ "validate_indicator_config": {
1466
+ "title": "Validate indicator config",
1467
+ "type": "boolean",
1468
+ "description": "If checked, this will require that all indicators have valid Open SDG indicator configuration.",
1469
+ "format": "checkbox",
1470
+ "links": [
1471
+ {
1472
+ "rel": "More information on the validate indicator config setting",
1473
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#validate_indicator_config"
1474
+ }
1475
+ ]
1476
+ },
1477
+ "validate_site_config": {
1478
+ "title": "Validate site config",
1479
+ "type": "boolean",
1480
+ "description": "If checked, this will require valid site configuration.",
1481
+ "format": "checkbox",
1482
+ "links": [
1483
+ {
1484
+ "rel": "More information on the validate site config setting",
1485
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#validate_site_config"
1486
+ }
1487
+ ]
1488
+ },
1489
+ "x_axis_label": {
1490
+ "type": "string",
1491
+ "title": "X axis label",
1492
+ "description": "A label beneath the X axis on charts. This is overridden by the same indicator configuration setting.",
1493
+ "links": [
1494
+ {
1495
+ "rel": "More information on the X axis label setting",
1496
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#x_axis_label"
1497
+ }
1498
+ ]
1499
+ }
1500
+ },
1501
+ "additionalProperties": true,
1502
+ "definitions": {
1503
+ "menu_item": {
1504
+ "type": "object",
1505
+ "title": "Menu item",
1506
+ "properties": {
1507
+ "path": {
1508
+ "type": "string",
1509
+ "minLength": 1,
1510
+ "title": "Path",
1511
+ "description": "Path or URL that the menu item should link to."
1512
+ },
1513
+ "translation_key": {
1514
+ "type": "string",
1515
+ "minLength": 1,
1516
+ "title": "Label",
1517
+ "description": "Label (or translation key) for the link."
1518
+ }
1519
+ }
1520
+ },
1521
+ "breadcrumb_item": {
1522
+ "type": "object",
1523
+ "title": "Breadcrumb item",
1524
+ "properties": {
1525
+ "path": {
1526
+ "type": "string",
1527
+ "minLength": 1,
1528
+ "title": "Path",
1529
+ "description": "Path or URL that the breadcrumb item should link to."
1530
+ },
1531
+ "label": {
1532
+ "type": "string",
1533
+ "minLength": 1,
1534
+ "title": "Label",
1535
+ "description": "Label (or translation key) for the breadcrumb item."
1536
+ }
1537
+ }
1538
+ },
1539
+ "title_and_description": {
1540
+ "type": "object",
1541
+ "properties": {
1542
+ "title": {
1543
+ "type": "string",
1544
+ "title": "Title"
1545
+ },
1546
+ "description": {
1547
+ "type": "string",
1548
+ "title": "Description",
1549
+ "format": "markdown"
1550
+ }
1551
+ }
1552
+ },
1553
+ "map_style": {
1554
+ "properties": {
1555
+ "weight": {
1556
+ "type": "number",
1557
+ "title": "Weight",
1558
+ "description": "The weight (boldness) of boundary borders."
1559
+ },
1560
+ "opacity": {
1561
+ "type": "number",
1562
+ "title": "Opacity",
1563
+ "description": "The opacity of the boundary borders (between 0 and 1)."
1564
+ },
1565
+ "fillOpacity": {
1566
+ "type": "number",
1567
+ "title": "Fill opacity",
1568
+ "description": "The opacity of the boundaries' background color (between 0 and 1)."
1569
+ },
1570
+ "color": {
1571
+ "type": "string",
1572
+ "format": "color",
1573
+ "title": "Color",
1574
+ "description": "The color of the boundary borders."
1575
+ },
1576
+ "dashArray": {
1577
+ "type": "string",
1578
+ "title": "Dash array",
1579
+ "description": "A 'dash array' describing the boundary as dashed lines."
1580
+ }
1581
+ }
1582
+ },
1583
+ "config_form_options": {
1584
+ "type": "object",
1585
+ "properties": {
1586
+ "enabled": {
1587
+ "type": "boolean",
1588
+ "title": "Enable this type of form",
1589
+ "description": "If enabled, this type of configuration form will be available.",
1590
+ "format": "checkbox"
1591
+ },
1592
+ "dropdowns": {
1593
+ "type": "array",
1594
+ "title": "Dropdown lists",
1595
+ "description": "Set options for any dropdown lists.",
1596
+ "items": {
1597
+ "type": "object",
1598
+ "title": "Dropdown list",
1599
+ "properties": {
1600
+ "jsonschema": {
1601
+ "type": "string",
1602
+ "title": "JSONSchema path",
1603
+ "description": "The jsonschema path to the dropdown field."
1604
+ },
1605
+ "values": {
1606
+ "type": "array",
1607
+ "title": "Values",
1608
+ "description": "List of dropdown option values",
1609
+ "items": {
1610
+ "type": "string",
1611
+ "title": "Value"
1612
+ }
1613
+ },
1614
+ "labels": {
1615
+ "type": "array",
1616
+ "title": "Labels",
1617
+ "description": "Optional list of dropdown option labels. Should correspond to the values above.",
1618
+ "items": {
1619
+ "type": "string",
1620
+ "title": "Label"
1621
+ }
1622
+ }
1623
+ }
1624
+ }
1625
+ },
1626
+ "repository_link": {
1627
+ "type": "string",
1628
+ "title": "Repository link",
1629
+ "description": "The URL pattern of the 'Go to repository' link on the configuration page."
1630
+ },
1631
+ "translation_link": {
1632
+ "type": "string",
1633
+ "title": "Translation link",
1634
+ "description": "The URL pattern for all 'Go to translation' links on the configuration page."
1635
+ }
1636
+ }
1637
+ },
1638
+ "indicator_tabs_options": {
1639
+ "enum": ["", "chart", "table", "map", "embed", "hide"],
1640
+ "options": {
1641
+ "enum_titles": [
1642
+ "",
1643
+ "Chart",
1644
+ "Table",
1645
+ "Map",
1646
+ "Embed",
1647
+ "Hide this tab"
1648
+ ]
1649
+ }
1650
+ }
1651
+ }
1652
+ }