jekyll-open-sdg-plugins 1.0.0.rc3 → 1.0.0.rc4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f50ca10fd9350b8b2e3010b8c17e971f38a4e49fc9866c6218f4f1486374a3f
|
4
|
+
data.tar.gz: 956ad212e0d4288410d4c121ad41d761a50e4e7ad4242db30f956db7310514de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 559450040341021d19676dc1a57fed8cfadc42662ddeea40e7dd684e2dc57dd28735a62c27ea6aa594f3d030254cbd4fde9077cd8e632537e9feb7da51b0d754
|
7
|
+
data.tar.gz: 0af25756fd6504bb2d658fd62788386a57f5b7bea83435a276a0c4472c54f745070eea22f03e2ef8a1e5284e6052131f8173bc5e4b1faa2b54a2c26c168b85f9
|
@@ -5,6 +5,7 @@ require_relative "jekyll-open-sdg-plugins/translate_key"
|
|
5
5
|
require_relative "jekyll-open-sdg-plugins/create_indicators"
|
6
6
|
require_relative "jekyll-open-sdg-plugins/create_goals"
|
7
7
|
require_relative "jekyll-open-sdg-plugins/create_pages"
|
8
|
+
require_relative "jekyll-open-sdg-plugins/get_indicator_name"
|
8
9
|
require_relative "jekyll-open-sdg-plugins/sdg_variables"
|
9
10
|
|
10
11
|
module JekyllOpenSdgPlugins
|
@@ -0,0 +1,143 @@
|
|
1
|
+
require "jekyll"
|
2
|
+
require_relative "helpers"
|
3
|
+
|
4
|
+
module Jekyll
|
5
|
+
module IndicatorName
|
6
|
+
|
7
|
+
# Takes an indicator ID (dot-delimited or dash-delimited) and returns the
|
8
|
+
# translated indicator name (according to the current language). This lookup
|
9
|
+
# is as forgiving as possible, to make sure that something is always there.
|
10
|
+
#
|
11
|
+
# The order of preference in the lookup is:
|
12
|
+
#
|
13
|
+
# 1. "indicator_name_national" in translated metadata - subfolder approach
|
14
|
+
# 2. "indicator_name_national" in translated metadata - translation key approach
|
15
|
+
# 3. If the default language, "indicator_name_national" in non-translated metadata
|
16
|
+
# 4. If a global indicator, translated global indicator name
|
17
|
+
# 5. "indicator_name" in translated metadata - subfolder approach
|
18
|
+
# 6. "indicator_name" in translated metadata - translation key approach
|
19
|
+
# 7. "indicator_name" in non-translated metadata
|
20
|
+
# 8. Finally, fall back to the indicator ID
|
21
|
+
|
22
|
+
def get_indicator_name(inid)
|
23
|
+
|
24
|
+
# Safety code - abort now if id is nil.
|
25
|
+
if inid.nil?
|
26
|
+
return ""
|
27
|
+
end
|
28
|
+
|
29
|
+
# Also make sure it is a string, and otherwise just return it.
|
30
|
+
if not inid.is_a? String
|
31
|
+
return inid
|
32
|
+
end
|
33
|
+
|
34
|
+
# More safety code - abort now if inid is empty.
|
35
|
+
if inid.empty?
|
36
|
+
return ""
|
37
|
+
end
|
38
|
+
|
39
|
+
# Normalize around dash-delimited inids.
|
40
|
+
inid = inid.gsub('.', '-')
|
41
|
+
|
42
|
+
# Some variables to help our lookups later.
|
43
|
+
page = @context.environments.first['page']
|
44
|
+
language = page['language']
|
45
|
+
languages = @context.registers[:site].config['languages']
|
46
|
+
data = @context.registers[:site].data
|
47
|
+
translations = data['translations']
|
48
|
+
meta = data['meta'][inid]
|
49
|
+
|
50
|
+
# The metadata fields that we'll seek, first "override" then "default".
|
51
|
+
override_field = 'indicator_name_national'
|
52
|
+
default_field = 'indicator_name'
|
53
|
+
|
54
|
+
name = false
|
55
|
+
|
56
|
+
# 1. Is there a subfolder translation of the override field?
|
57
|
+
if meta and meta.has_key? language
|
58
|
+
if !name and meta[language].has_key? override_field
|
59
|
+
name = meta[language][override_field]
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# 2. Is the override field actually a "translation key"?
|
64
|
+
if !name
|
65
|
+
if meta and meta.has_key? override_field
|
66
|
+
untranslated = meta[override_field]
|
67
|
+
translated = opensdg_translate_key(untranslated, translations, language)
|
68
|
+
if untranslated != translated
|
69
|
+
# If the opensdg_translate_key() function returned something else,
|
70
|
+
# that means it was an actual "translation key".
|
71
|
+
name = translated
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# 3. If this is the default language, use the non-translated override
|
77
|
+
# field, if available.
|
78
|
+
if !name
|
79
|
+
if language == languages[0]
|
80
|
+
if meta and meta.has_key? override_field
|
81
|
+
name = meta[override_field]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# 4. Is this a global indicator with a translation?
|
87
|
+
if !name
|
88
|
+
title_key = inid + '-title'
|
89
|
+
# For backwards compatibility, look for both dot and dash-delimited keys.
|
90
|
+
title_key_dots = inid.gsub('-', '.') + '-title'
|
91
|
+
if translations.has_key? language
|
92
|
+
if translations[language].has_key? 'global_indicators'
|
93
|
+
if translations[language]['global_indicators'].has_key? title_key
|
94
|
+
name = translations[language]['global_indicators'][title_key]
|
95
|
+
elsif translations[language]['global_indicators'].has_key? title_key_dots
|
96
|
+
name = translations[language]['global_indicators'][title_key_dots]
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# 5. Is there a subfolder translation of the default field?
|
103
|
+
if !name
|
104
|
+
if meta and meta.has_key? language
|
105
|
+
if !name and meta[language].has_key? default_field
|
106
|
+
name = meta[language][default_field]
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
# 6. Is the default field actually a "translation key"?
|
112
|
+
if !name
|
113
|
+
if meta and meta.has_key? default_field
|
114
|
+
untranslated = meta[default_field]
|
115
|
+
translated = opensdg_translate_key(untranslated, translations, language)
|
116
|
+
if untranslated != translated
|
117
|
+
# If the opensdg_translate_key() function returned something else,
|
118
|
+
# that means it was an actual "translation key".
|
119
|
+
name = translated
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
# 7. Use the non-translated default field, if available.
|
125
|
+
if !name
|
126
|
+
if meta and meta.has_key? default_field
|
127
|
+
name = meta[default_field]
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
# 8. Still here? Just return the inid.
|
132
|
+
if !name
|
133
|
+
name = inid
|
134
|
+
end
|
135
|
+
|
136
|
+
# Finally return the name with key translation for good measure.
|
137
|
+
return opensdg_translate_key(name, translations, language)
|
138
|
+
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
Liquid::Template.register_filter(Jekyll::IndicatorName)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-open-sdg-plugins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.rc4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brock Fanning
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- lib/jekyll-open-sdg-plugins/create_indicators.rb
|
56
56
|
- lib/jekyll-open-sdg-plugins/create_pages.rb
|
57
57
|
- lib/jekyll-open-sdg-plugins/fetch_remote_data.rb
|
58
|
+
- lib/jekyll-open-sdg-plugins/get_indicator_name.rb
|
58
59
|
- lib/jekyll-open-sdg-plugins/helpers.rb
|
59
60
|
- lib/jekyll-open-sdg-plugins/multilingual_metadata.rb
|
60
61
|
- lib/jekyll-open-sdg-plugins/sdg_variables.rb
|