jekyll-geolexica 1.0.0

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.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +6 -0
  3. data/README.adoc +102 -0
  4. data/_config.yml +88 -0
  5. data/_data/lang.yaml +96 -0
  6. data/_includes/_title.html +5 -0
  7. data/_includes/head.html +48 -0
  8. data/_includes/localized-concept.html +99 -0
  9. data/_includes/newsroll-entry.html +17 -0
  10. data/_includes/page-header.html +31 -0
  11. data/_includes/resource-tree-item.html +49 -0
  12. data/_includes/script.html +0 -0
  13. data/_layouts/base-page.html +7 -0
  14. data/_layouts/concept.html +154 -0
  15. data/_layouts/concept.jsonld.html +152 -0
  16. data/_layouts/concept.ttl.html +83 -0
  17. data/_layouts/custom-home.html +33 -0
  18. data/_layouts/custom-post.html +7 -0
  19. data/_layouts/default.html +176 -0
  20. data/_layouts/home.html +6 -0
  21. data/_layouts/page.html +6 -0
  22. data/_layouts/post.html +13 -0
  23. data/_layouts/posts.html +10 -0
  24. data/_layouts/resource-index.html +14 -0
  25. data/_layouts/resource-page.html +25 -0
  26. data/_pages/404.adoc +12 -0
  27. data/_pages/api/rdf-profile.ttl +225 -0
  28. data/_pages/concepts-index-list.json +24 -0
  29. data/_pages/concepts-index.json +14 -0
  30. data/_pages/concepts.adoc +38 -0
  31. data/_pages/index.adoc +8 -0
  32. data/_pages/posts.adoc +6 -0
  33. data/_pages/stats.adoc +18 -0
  34. data/_pages/stats.json +5 -0
  35. data/_sass/adoc-markup.scss +197 -0
  36. data/_sass/concept.scss +171 -0
  37. data/_sass/concepts.scss +18 -0
  38. data/_sass/expandable-nav.scss +187 -0
  39. data/_sass/geolexica_home.scss +174 -0
  40. data/_sass/home.scss +87 -0
  41. data/_sass/jekyll-theme-isotc211.scss +146 -0
  42. data/_sass/legacy-crossbrowser.scss +67 -0
  43. data/_sass/main.scss +413 -0
  44. data/_sass/mixins.scss +39 -0
  45. data/_sass/normalize.scss +424 -0
  46. data/_sass/offsets.scss +59 -0
  47. data/_sass/post.scss +16 -0
  48. data/_sass/posts.scss +18 -0
  49. data/assets/algolia-search.js +28 -0
  50. data/assets/js/concept-search-worker.js +103 -0
  51. data/assets/js/concept-search.js +293 -0
  52. data/assets/js/ga.js +15 -0
  53. data/assets/js/nav.js +125 -0
  54. data/assets/js/resource-browser.js +79 -0
  55. data/assets/logo-ribose.svg +1 -0
  56. data/assets/resource-viewer-placeholder.html +11 -0
  57. data/assets/style.scss +11 -0
  58. data/babel.config.js +16 -0
  59. data/browserconfig.xml +12 -0
  60. data/fonts/MetaWebPro-Normal.woff +0 -0
  61. data/fonts/MetaWebPro-Thin.woff +0 -0
  62. data/jekyll-geolexica.gemspec +45 -0
  63. data/lib/jekyll-geolexica.rb +5 -0
  64. data/lib/jekyll/geolexica.rb +19 -0
  65. data/lib/jekyll/geolexica/concept_page.rb +169 -0
  66. data/lib/jekyll/geolexica/concept_serializer.rb +44 -0
  67. data/lib/jekyll/geolexica/concepts_generator.rb +64 -0
  68. data/lib/jekyll/geolexica/configuration.rb +47 -0
  69. data/lib/jekyll/geolexica/glossary.rb +95 -0
  70. data/lib/jekyll/geolexica/hooks.rb +33 -0
  71. data/lib/jekyll/geolexica/meta_pages_generator.rb +58 -0
  72. data/lib/jekyll/geolexica/version.rb +8 -0
  73. data/package-lock.json +2921 -0
  74. data/package.json +10 -0
  75. metadata +209 -0
@@ -0,0 +1,18 @@
1
+ body.concepts {
2
+ > main > header > h1 {
3
+ font-weight: normal;
4
+ }
5
+
6
+ .all-concepts {
7
+ table {
8
+ @include concept-table();
9
+ }
10
+ }
11
+ }
12
+
13
+ body.concepts > main {
14
+ > * {
15
+ padding-left: $sideOffsetBase;
16
+ padding-right: $sideOffsetBase;
17
+ }
18
+ }
@@ -0,0 +1,187 @@
1
+ // This style is enabled by nav.js.
2
+
3
+ $expandTransitionTime: .08s;
4
+ $expandTransitionFunc: ease-out;
5
+
6
+ body.with-expandable-nav {
7
+ > header {
8
+ will-change: background, opacity, box-shadow, height;
9
+ transition:
10
+ color $expandTransitionTime $expandTransitionFunc 0s,
11
+ background $expandTransitionTime $expandTransitionFunc 0s,
12
+ padding-bottom $expandTransitionTime $expandTransitionFunc 0s,
13
+ box-shadow $expandTransitionTime $expandTransitionFunc 0s,
14
+ height $expandTransitionTime $expandTransitionFunc 0s;
15
+
16
+ position: relative;
17
+ overflow: hidden;
18
+
19
+ padding-bottom: 0; // JS relies on this value
20
+
21
+ .committee-widget {
22
+ .widget-item {
23
+ will-change: color, background, border;
24
+ transition:
25
+ color $expandTransitionTime $expandTransitionFunc 0s,
26
+ background $expandTransitionTime $expandTransitionFunc 0s,
27
+ border $expandTransitionTime $expandTransitionFunc 0s;
28
+ }
29
+
30
+ @media screen and (max-width: $bigscreenBreakpoint - 1) {
31
+ .committee-name {
32
+ display: none;
33
+ }
34
+ }
35
+
36
+ .widget-group.committee-menu {
37
+ display: none;
38
+ }
39
+ }
40
+ }
41
+
42
+ > main {
43
+ will-change: transform;
44
+ transition:
45
+ transform $expandTransitionTime $expandTransitionFunc;
46
+ }
47
+
48
+ nav.expandable-nav {
49
+ transition: none;
50
+ opacity: 0;
51
+ display: block;
52
+ position: absolute;
53
+ bottom: 20px;
54
+ display: none;
55
+
56
+ ul {
57
+ padding: 0;
58
+ margin: 0;
59
+ list-style: none;
60
+
61
+ li {
62
+ padding: 0;
63
+ margin-bottom: 1em;
64
+
65
+ &:last-child {
66
+ margin-bottom: 0;
67
+ }
68
+
69
+ p.desc {
70
+ margin: 0;
71
+ font-size: 80%;
72
+ opacity: .8;
73
+ }
74
+
75
+ @media screen and (min-width: $bigscreenBreakpoint) {
76
+ margin-bottom: 0;
77
+ margin-right: 1em;
78
+ margin-left: 2px;
79
+ max-width: 10em;
80
+ padding-left: 1em;
81
+ border-left: 1px solid white;
82
+ }
83
+ }
84
+
85
+ @media screen and (min-width: $bigscreenBreakpoint) {
86
+ display: flex;
87
+ flex-flow: row nowrap;
88
+ align-items: stretch;
89
+ }
90
+ }
91
+
92
+ @media screen and (min-width: $bigscreenBreakpoint) {
93
+ left: 15vw;
94
+ }
95
+ }
96
+
97
+ button.nav-expand-trigger {
98
+ border: none;
99
+ background: none;
100
+ color: white;
101
+
102
+ flex-flow: column nowrap;
103
+ align-items: center;
104
+ justify-content: center;
105
+ height: 1.8em;
106
+ width: $stripeWidth;
107
+ display: flex;
108
+
109
+ position: absolute;
110
+ left: 0;
111
+ top: .5em;
112
+
113
+ @media screen and (min-width: $bigscreenBreakpoint) {
114
+ top: 3.3em;
115
+ }
116
+
117
+ .fa-times { display: none; }
118
+ }
119
+
120
+ &.with-expanded-nav {
121
+ > header {
122
+ box-shadow: 0 5px 50px -20px rgba(black, 0.4);
123
+ background: $isoTCColor;
124
+ color: white;
125
+ padding-bottom: 1.5em;
126
+ z-index: 2;
127
+
128
+ .parent-org-reference {
129
+ .logo-link img {
130
+ -webkit-filter: invert(1);
131
+ filter: invert(1);
132
+ }
133
+ }
134
+
135
+ nav.priority-nav {
136
+ opacity: 0;
137
+ }
138
+ nav.expandable-nav {
139
+ will-change: opacity;
140
+ transition: opacity $expandTransitionTime $expandTransitionFunc;
141
+ transition-delay: 0s;
142
+ display: block;
143
+ opacity: 1;
144
+ }
145
+
146
+ .committee-widget {
147
+ .widget-item {
148
+ background: none;
149
+ box-shadow: none;
150
+ border: 1px solid white;
151
+
152
+ &.committee-id {
153
+ background: white;
154
+ color: $isoTCColor;
155
+ }
156
+ &.parent-org-reference {
157
+ background: #e30b1f;
158
+ border-color: white;
159
+ color: white;
160
+ }
161
+ }
162
+ .committee-name {
163
+ display: inline;
164
+ flex-basis: 100%;
165
+ }
166
+ .widget-group {
167
+ flex-basis: 100%;
168
+ @media screen and (min-width: $bigscreenBreakpoint) {
169
+ flex-basis: unset;
170
+ }
171
+ }
172
+ .widget-group.committee-menu {
173
+ display: flex;
174
+
175
+ .widget-item {
176
+ background: rgba(black, 0.2);
177
+ border-color: rgba(black, 0.2);
178
+ }
179
+ }
180
+ }
181
+ }
182
+ button.nav-expand-trigger {
183
+ .fa-times { display: inline-block; }
184
+ .fa-bars { display: none; }
185
+ }
186
+ }
187
+ }
@@ -0,0 +1,174 @@
1
+ body.home {
2
+ > main {
3
+ > .browse-concepts {
4
+ flex-shrink: 0;
5
+
6
+ display: flex;
7
+ flex-flow: column nowrap;
8
+ align-items: flex-start;
9
+
10
+ input.search-string,
11
+ a.browse-concepts {
12
+ background-color: #f7f7f7;
13
+ padding: .5em .75em;
14
+ border-radius: .5em;
15
+ border: 0;
16
+ cursor: pointer;
17
+ }
18
+
19
+ .section-title {
20
+ span {
21
+ white-space: nowrap;
22
+ margin-right: 1em;
23
+ }
24
+ a {
25
+ white-space: nowrap;
26
+ text-transform: none;
27
+ font-size: 90%;
28
+ }
29
+ }
30
+
31
+ a.browse-concepts {
32
+ text-decoration: none;
33
+ background: $linkColor;
34
+ color: $linkColorInverse;
35
+
36
+ margin-top: 1em;
37
+ margin-bottom: 1.5em;
38
+ }
39
+
40
+ .search-controls {
41
+ flex-shrink: 0;
42
+
43
+ display: flex;
44
+ flex-flow: row wrap;
45
+ align-items: center;
46
+ margin-top: 1em;
47
+ margin-bottom: 1.5em;
48
+
49
+ input.search-string {
50
+ margin-right: 1em;
51
+ margin-left: -.5em;
52
+ }
53
+
54
+ .refine {
55
+ display: flex;
56
+ flex-flow: row wrap;
57
+ align-items: center;
58
+
59
+ > * {
60
+ display: flex;
61
+ flex-flow: row nowrap;
62
+ align-items: center;
63
+ }
64
+
65
+ label {
66
+ padding-left: 1em;
67
+ }
68
+ input[type=checkbox], label {
69
+ cursor: pointer;
70
+ }
71
+ }
72
+ }
73
+
74
+ .search-results {
75
+ flex: 1;
76
+ align-self: stretch;
77
+ overflow: auto;
78
+
79
+ box-shadow: 0 0 20px -10px rgba(black, 0.3);
80
+
81
+ padding-bottom: 1em;
82
+ background: white;
83
+
84
+ table {
85
+ @include concept-table();
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ &.browser-expandable {
92
+ > main {
93
+ > .browse-concepts {
94
+ .section-title {
95
+ display: flex;
96
+ flex-flow: row wrap;
97
+ align-items: center;
98
+
99
+ &:before {
100
+ display: none;
101
+ }
102
+
103
+ button.toggle {
104
+ background: transparent;
105
+ border: 0;
106
+ cursor: pointer;
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ &.browser-expanded {
114
+ > header {
115
+ margin-top: -1em;
116
+ padding-bottom: 0;
117
+
118
+ .site-title .description {
119
+ transition: width .5s linear;
120
+ width: 0;
121
+ height: 0;
122
+ overflow: hidden;
123
+ display: inline-block;
124
+ }
125
+ }
126
+ > main {
127
+ flex-shrink: 1;
128
+ min-height: 300px;
129
+ // ^^ value out of thin air approximating minimally acceptable main height,
130
+ // otherwise on very short viewports footer overlaps main due to its flex-shrink: 1,
131
+ // which we want to restrict main height to viewport so that search results
132
+ // can be scrolled within their own div.
133
+ // Another (better?) solution could be to scope flex-shrink: 1
134
+ // to tall enough viewports with a media query.
135
+
136
+ > section.browse-concepts {
137
+ flex-shrink: 1;
138
+ min-height: 256px;
139
+ padding-bottom: 0;
140
+ }
141
+ > section.news {
142
+ display: none;
143
+ }
144
+ }
145
+ }
146
+ }
147
+
148
+ body.home.browser-expandable > main > section.browse-concepts {
149
+ .section-title {
150
+ margin-left: 15vw;
151
+
152
+ @media screen and (min-width: $bigscreenBreakpoint) {
153
+ margin-left: calc(#{$sideOffsetBase} - #{$logoOffset});
154
+
155
+ button.toggle {
156
+ width: $logoOffset;
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ body.home > main > section.browse-concepts {
163
+ .section-title, .search-controls {
164
+ margin-left: $sideOffsetBase;
165
+ margin-right: $sideOffsetBase;
166
+ }
167
+ > a.browse-concepts {
168
+ margin-left: calc(#{$sideOffsetBase} - .75em);
169
+ display: block;
170
+ }
171
+ .search-results.status-message {
172
+ padding-left: $sideOffsetBase;
173
+ }
174
+ }
data/_sass/home.scss ADDED
@@ -0,0 +1,87 @@
1
+ body.home {
2
+ > footer {
3
+ box-shadow: none;
4
+ }
5
+
6
+ > main {
7
+ padding-bottom: 0;
8
+
9
+ > .section > h2 {
10
+ @extend .section-title;
11
+ }
12
+
13
+ > .news {
14
+
15
+ // Assuming it goes right before footer
16
+ flex: 1;
17
+ border-bottom: 0;
18
+ background: $headerFooterBackgroundColor;
19
+ box-shadow: 0 10px 20px -20px $mainShadowColor inset;
20
+
21
+ .items {
22
+ display: flex;
23
+ flex-flow: row wrap;
24
+ justify-content: flex-start;
25
+ align-items: stretch;
26
+ padding-top: 1em;
27
+ padding-bottom: 1em;
28
+ }
29
+
30
+ .news-item-card {
31
+ max-width: 90vw;
32
+ border-radius: .5em;
33
+ padding: 0 $homeSectionItemSidePadding;
34
+ background: #fff;
35
+ margin-right: 1em;
36
+ margin-bottom: 1em;
37
+ box-shadow: 1px 1px 20px -5px rgba(black, 0.3);
38
+
39
+ min-width: 320px;
40
+ @media screen and (min-width: $bigscreenBreakpoint) {
41
+ min-width: unset;
42
+ flex-basis: 20em;
43
+ }
44
+
45
+ &.news-item--with-illustration {
46
+ position: relative;
47
+
48
+ .title, .excerpt, .meta {
49
+ margin-left: 155px;
50
+ }
51
+
52
+ .illustration-container {
53
+ position: absolute;
54
+ top: 0; left: 0; bottom: 0;
55
+ display: block;
56
+ width: 155px;
57
+ overflow: hidden;
58
+ background-size: cover;
59
+ background-position: center center;
60
+ }
61
+ }
62
+
63
+ .title {
64
+ font-weight: normal;
65
+ margin-top: .75em;
66
+ margin-bottom: .4em;
67
+ font-size: 110%;
68
+ line-height: 1.3;
69
+
70
+ a {
71
+ text-decoration: none;
72
+ }
73
+ }
74
+
75
+ .meta {
76
+ font-size: 80%;
77
+ color: lighten($textColor, 50);
78
+ }
79
+
80
+ div.excerpt p {
81
+ font-size: 90%;
82
+ line-height: 1.6;
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }