radios-comunitarias-jekyll-theme 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +168 -0
  3. data/README.md +113 -0
  4. data/_data/en.yml +38 -0
  5. data/_data/es.yml +61 -0
  6. data/_data/forms/contacto.yml +40 -0
  7. data/_data/layouts/post.yml +112 -0
  8. data/_data/layouts/radio.yml +165 -0
  9. data/_includes/boolean.html +30 -0
  10. data/_includes/contact.html +19 -0
  11. data/_includes/content.html +1 -0
  12. data/_includes/email.html +1 -0
  13. data/_includes/file.html +35 -0
  14. data/_includes/footer.html +28 -0
  15. data/_includes/form/boolean.html +1 -0
  16. data/_includes/form/content.html +1 -0
  17. data/_includes/form/email.html +1 -0
  18. data/_includes/form/file.html +1 -0
  19. data/_includes/form/hidden.html +1 -0
  20. data/_includes/form/image.html +1 -0
  21. data/_includes/form/input.html +1 -0
  22. data/_includes/form/markdown_content.html +1 -0
  23. data/_includes/form/number.html +1 -0
  24. data/_includes/form/predefined_array.html +1 -0
  25. data/_includes/form/section.html +1 -0
  26. data/_includes/form/separator.html +1 -0
  27. data/_includes/form/string.html +1 -0
  28. data/_includes/form/submit.html +1 -0
  29. data/_includes/form/tel.html +1 -0
  30. data/_includes/form/text.html +1 -0
  31. data/_includes/form/url.html +1 -0
  32. data/_includes/hidden.html +5 -0
  33. data/_includes/image.html +32 -0
  34. data/_includes/input.html +33 -0
  35. data/_includes/logo.html +5 -0
  36. data/_includes/markdown_content.html +1 -0
  37. data/_includes/navbar.html +78 -0
  38. data/_includes/number.html +1 -0
  39. data/_includes/post.html +118 -0
  40. data/_includes/predefined_array.html +39 -0
  41. data/_includes/reproductor.html +20 -0
  42. data/_includes/section.html +1 -0
  43. data/_includes/separator.html +1 -0
  44. data/_includes/share.html +28 -0
  45. data/_includes/share_box.html +13 -0
  46. data/_includes/string.html +3 -0
  47. data/_includes/submit.html +1 -0
  48. data/_includes/tel.html +1 -0
  49. data/_includes/text.html +32 -0
  50. data/_includes/url.html +1 -0
  51. data/_layouts/default.html +40 -0
  52. data/_layouts/home.html +30 -0
  53. data/_layouts/post.html +5 -0
  54. data/_layouts/radio.html +49 -0
  55. data/_sass/accessibility.scss +13 -0
  56. data/_sass/helpers.scss +54 -0
  57. data/_sass/share.html +12 -0
  58. data/_sass/share_box.html +16 -0
  59. data/_sass/share_box.scss +26 -0
  60. data/_sass/toggler.scss +39 -0
  61. data/assets/css/styles.scss +66 -0
  62. data/assets/fonts/forkawesome-webfont.woff2 +0 -0
  63. data/assets/js/script.js +50 -0
  64. metadata +279 -0
@@ -0,0 +1,12 @@
1
+ {% assign url = site.url | append: include.url | uri_escape %}
2
+ {% assign title = include.title | default: site.title | uri_escape %}
3
+ {% assign description = include.description | default: '' | uri_escape %}
4
+
5
+ <a
6
+ target="_blank"
7
+ title="{{ include.share.title }}"
8
+ class="d-flex flex-column align-items-center p-3"
9
+ href="{{ include.share.url | replace: '%url', url | replace: '%title', title | replace: '%description', description }}">
10
+ <i class="fa fa-fw fa-2x fa-{{ include.share.icon }}"></i>
11
+ <span>{{ include.share.title }}</span>
12
+ </a>
@@ -0,0 +1,16 @@
1
+ <input type="checkbox" id="share" class="toggler" autocomplete="off" />
2
+
3
+ <label class="share btn border btn-block" for="share">
4
+ {{ site.i18n.share.text }}
5
+ <i class="fa fa-{{ site.i18n.share.icon }}"></i>
6
+
7
+ <div class="share-box toggled d-flex align-items-center justify-content-center">
8
+ <div class="box background-white color-redpink row no-gutters align-items-center justify-content-center p-3">
9
+ {% for share in site.i18n.share.items %}
10
+ <div class="col-4">
11
+ {% include_cached share.html share=share url=include.url title=include.title description=include.description %}
12
+ </div>
13
+ {% endfor %}
14
+ </div>
15
+ </div>
16
+ </label>
@@ -0,0 +1,26 @@
1
+ input[type="checkbox"].toggler {
2
+ &:focus + label {
3
+ outline: none;
4
+ }
5
+ }
6
+
7
+ .share-box {
8
+ position: fixed;
9
+ top: 0;
10
+ left: 0;
11
+ width: 100vw;
12
+ height: 100vh;
13
+ background-color: rgba(0,0,0,.5);
14
+
15
+ @include vendor-prefix(transition, all 0.2s $bezier);
16
+
17
+ a {
18
+ border: $border-width solid transparent;
19
+
20
+ &:focus,
21
+ &:hover {
22
+ text-decoration: none;
23
+ border: $border-width solid $border-color;
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Desplegar menúes sin javascript!
3
+ *
4
+ * Inspirado en https://dev.to/cydstumpel/creating-a-fold-out-navigation-with-css-only-4g9k
5
+ */
6
+
7
+ // Comenzamos con un input checkbox con la clase toggler
8
+ input[type="checkbox"].toggler {
9
+ // Lo ocultamos pero todavía queremos que se le pueda dar foco con el
10
+ // teclado
11
+ opacity: 0;
12
+ position: absolute;
13
+
14
+ // Ocultamos el elemento colapsable
15
+ & ~ label {
16
+ .toggled {
17
+ z-index: 10;
18
+ visibility: hidden;
19
+ }
20
+ }
21
+
22
+ // Al tildar el input, mostramos el elemento
23
+ &:checked ~ label {
24
+ .toggled {
25
+ visibility: visible;
26
+ }
27
+ }
28
+
29
+ & + label {
30
+ border: none;
31
+ outline: none;
32
+ z-index: 11;
33
+ }
34
+
35
+ // Dar una guía visual de que estamos enfocando el input
36
+ &:focus + label {
37
+ outline: 1px dotted grey ;
38
+ }
39
+ }
@@ -0,0 +1,66 @@
1
+ ---
2
+ # Ponemos un frontmatter porque queremos que Jekyll procese este archivo
3
+ ---
4
+
5
+ // El primer artículo que sea de tipo radio
6
+ {%- assign radio = site.posts | find: 'layout', 'radio' -%}
7
+
8
+ // Pasar variables de Liquid a SASS
9
+ $navbar-background: {{ radio.navbar_background_color | default: '#6dc381' }};
10
+ $navbar-foreground: {{ radio.navbar_foreground_color | default: '#241f31' }};
11
+ $social-foreground: {{ radio.social_foreground_color | default: 'white' }};
12
+
13
+ // Redefinir los colores de Bootstrap en base a los elegidos, esto
14
+ // cambia recursivamente algunas sombras y todo
15
+ $body-bg: {{ radio.background_color | default: 'white' }};
16
+ $body-color: {{ radio.foreground_color | default: '#241f31' }};
17
+ $link-color: $navbar-background;
18
+
19
+ // Tamaño del nombre de la radio
20
+ $navbar-brand-font-size: 1rem;
21
+
22
+ /*
23
+ * XXX: Solo importar los archivos necesarios de bootstrap para
24
+ * facilitar la reducción de CSS. Por ahora pedimos todo para poder
25
+ * empezar a trabajar en el HTML sin pensar en CSS.
26
+ *
27
+ * Los archivos se encuentran en node_modules/bootstrap/scss
28
+ */
29
+ @import "bootstrap/scss/bootstrap";
30
+ @import "fork-awesome/scss/fork-awesome";
31
+ @import "accessibility";
32
+ @import "helpers";
33
+ @import "toggler";
34
+ @import "share_box";
35
+
36
+ // Lo que vaya a llevar los colores de la barra de navegación
37
+ .navbar-theme {
38
+ background-color: $navbar-background !important;
39
+ color: $navbar-foreground !important;
40
+
41
+ a {
42
+ color: $navbar-foreground;
43
+
44
+ @include hover() {
45
+ color: darken($navbar-foreground, 15%) !important;
46
+ }
47
+ }
48
+
49
+ // Define la clase que va a llevar el color de los botones de redes sociales
50
+ // XXX: Va dentro de navbar-theme porque es el único lugar donde los
51
+ // vamos a usar por ahora.
52
+ .social-theme {
53
+ color: $social-foreground !important;
54
+
55
+ // Cambiar de color los botones al pasar por encima
56
+ // XXX: La función viene de Bootstrap, por eso está la definición
57
+ // después de incluirlo.
58
+ @include hover() {
59
+ color: darken($social-foreground, 15%) !important;
60
+ }
61
+ }
62
+ }
63
+
64
+ .turbolinks-progress-bar {
65
+ background-color: $navbar-foreground;
66
+ }
@@ -0,0 +1,50 @@
1
+ ---
2
+ ---
3
+
4
+ {% comment %}
5
+ TODO: Asignar esta variable una sola vez!
6
+ {% endcomment %}
7
+ {%- assign radio = site.posts | find: 'layout', 'radio' -%}
8
+
9
+ {% turbolinks %}
10
+
11
+ // Inicia y gestiona el stream
12
+ const streaming = (element) => {
13
+ // Cambiar el src para que incluya un timestamp, esto engaña a Firefox
14
+ // a recargar el video cuando se corta en lugar de pensar que terminó
15
+ // la descarga y empezar a reproducir desde el principio.
16
+ element.querySelectorAll('source').forEach(source => {
17
+ // Obtener la URL completa hasta el ?
18
+ source.src = source.src.split('?')[0]+'?'+Date.now().toString()
19
+ })
20
+
21
+ // Empezar la reproducción
22
+ element.load()
23
+ element.play()
24
+ }
25
+
26
+ // Este es el evento que espera a que cargue todo el sitio
27
+ document.addEventListener('turbolinks:load', () => {
28
+ const transmission = document.querySelector('#transmission')
29
+
30
+ if ('mediaSession' in navigator) {
31
+ navigator.mediaSession.metadata = new MediaMetadata({
32
+ title: "{{ radio.description | escape }}",
33
+ artist: "{{ radio.title | escape }}",
34
+ artwork: [
35
+ {
36
+ src: '{{ radio.logo.path | thumbnail: 192 }}',
37
+ sizes: '192x192',
38
+ type: 'image/{{ radio.logo.path | split: '.' | last }}'
39
+ },
40
+ ],
41
+ })
42
+
43
+ navigator.mediaSession.setActionHandler('play', () => transmission.play())
44
+ navigator.mediaSession.setActionHandler('pause', () => transmission.pause())
45
+ }
46
+
47
+ // Volver a reproducir cuando se corte
48
+ // TODO: Agregar los tracks
49
+ transmission.addEventListener('ended', event => streaming(transmission))
50
+ })
metadata ADDED
@@ -0,0 +1,279 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: radios-comunitarias-jekyll-theme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - f
8
+ - e
9
+ - librenauta
10
+ - void
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2020-08-29 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: jekyll
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '4.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '4.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: jekyll-relative-urls
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '0.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.0'
44
+ - !ruby/object:Gem::Dependency
45
+ name: jekyll-feed
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '0.9'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '0.9'
58
+ - !ruby/object:Gem::Dependency
59
+ name: jekyll-seo-tag
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '2.1'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '2.1'
72
+ - !ruby/object:Gem::Dependency
73
+ name: jekyll-images
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '0.2'
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '0.2'
86
+ - !ruby/object:Gem::Dependency
87
+ name: jekyll-include-cache
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ - !ruby/object:Gem::Dependency
101
+ name: jekyll-data
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: '1.1'
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '1.1'
114
+ - !ruby/object:Gem::Dependency
115
+ name: jekyll-locales
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '0.1'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '0.1'
128
+ - !ruby/object:Gem::Dependency
129
+ name: jekyll-turbolinks
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: bundler
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '2.1'
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '2.1'
156
+ - !ruby/object:Gem::Dependency
157
+ name: rake
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '12.0'
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '12.0'
170
+ description:
171
+ email:
172
+ - f@sutty.nl
173
+ - e@sutty.nl
174
+ - librenauta@riseup.net
175
+ - v0id@riseup.net
176
+ executables: []
177
+ extensions: []
178
+ extra_rdoc_files:
179
+ - README.md
180
+ - LICENSE.txt
181
+ files:
182
+ - LICENSE.txt
183
+ - README.md
184
+ - _data/en.yml
185
+ - _data/es.yml
186
+ - _data/forms/contacto.yml
187
+ - _data/layouts/post.yml
188
+ - _data/layouts/radio.yml
189
+ - _includes/boolean.html
190
+ - _includes/contact.html
191
+ - _includes/content.html
192
+ - _includes/email.html
193
+ - _includes/file.html
194
+ - _includes/footer.html
195
+ - _includes/form/boolean.html
196
+ - _includes/form/content.html
197
+ - _includes/form/email.html
198
+ - _includes/form/file.html
199
+ - _includes/form/hidden.html
200
+ - _includes/form/image.html
201
+ - _includes/form/input.html
202
+ - _includes/form/markdown_content.html
203
+ - _includes/form/number.html
204
+ - _includes/form/predefined_array.html
205
+ - _includes/form/section.html
206
+ - _includes/form/separator.html
207
+ - _includes/form/string.html
208
+ - _includes/form/submit.html
209
+ - _includes/form/tel.html
210
+ - _includes/form/text.html
211
+ - _includes/form/url.html
212
+ - _includes/hidden.html
213
+ - _includes/image.html
214
+ - _includes/input.html
215
+ - _includes/logo.html
216
+ - _includes/markdown_content.html
217
+ - _includes/navbar.html
218
+ - _includes/number.html
219
+ - _includes/post.html
220
+ - _includes/predefined_array.html
221
+ - _includes/reproductor.html
222
+ - _includes/section.html
223
+ - _includes/separator.html
224
+ - _includes/share.html
225
+ - _includes/share_box.html
226
+ - _includes/string.html
227
+ - _includes/submit.html
228
+ - _includes/tel.html
229
+ - _includes/text.html
230
+ - _includes/url.html
231
+ - _layouts/default.html
232
+ - _layouts/home.html
233
+ - _layouts/post.html
234
+ - _layouts/radio.html
235
+ - _sass/accessibility.scss
236
+ - _sass/helpers.scss
237
+ - _sass/share.html
238
+ - _sass/share_box.html
239
+ - _sass/share_box.scss
240
+ - _sass/toggler.scss
241
+ - assets/css/styles.scss
242
+ - assets/fonts/forkawesome-webfont.woff2
243
+ - assets/js/script.js
244
+ homepage: https://0xacab.org/sutty/jekyll/radios-comunitarias-jekyll-theme
245
+ licenses:
246
+ - Nonstandard
247
+ metadata:
248
+ bug_tracker_uri: https://0xacab.org/sutty/jekyll/radios-comunitarias-jekyll-theme/issues
249
+ homepage_uri: https://0xacab.org/sutty/jekyll/radios-comunitarias-jekyll-theme
250
+ source_code_uri: https://0xacab.org/sutty/jekyll/radios-comunitarias-jekyll-theme
251
+ changelog_uri: https://0xacab.org/sutty/jekyll/radios-comunitarias-jekyll-theme/-/blob/master/CHANGELOG.md
252
+ documentation_uri: https://rubydoc.info/gems/radios-comunitarias-jekyll-theme
253
+ post_install_message:
254
+ rdoc_options:
255
+ - "--title"
256
+ - radios-comunitarias-jekyll-theme - Theme for community radio
257
+ - "--main"
258
+ - README.md
259
+ - "--line-numbers"
260
+ - "--inline-source"
261
+ - "--quiet"
262
+ require_paths:
263
+ - lib
264
+ required_ruby_version: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
269
+ required_rubygems_version: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - ">="
272
+ - !ruby/object:Gem::Version
273
+ version: '0'
274
+ requirements: []
275
+ rubygems_version: 3.0.3
276
+ signing_key:
277
+ specification_version: 4
278
+ summary: Theme for community radio
279
+ test_files: []