radios-comunitarias-jekyll-theme 0.1.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 (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: []