radios-comunitarias-jekyll-theme 0.1.3 → 0.1.4

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: 8a9aed2d78ae61090965d804a47ea0ce07eb0fd3c8510c776f856d45cae41db8
4
- data.tar.gz: 8df37c35e78e689e0a88b87a7f466ddfb02bef646af90d350cfd2a3e599b24a7
3
+ metadata.gz: c615225045f2989ac6cd59026cf6ce39bcd0e1b4d482e34ee23fdaa6d0fac1ff
4
+ data.tar.gz: f3472621b2a2b7aded835a03bb7a9e3362fcb1354163b46f3740e0bc14098164
5
5
  SHA512:
6
- metadata.gz: 87c05406243fce5c9db30c01003987620dbfed479c508b2a55a0086ca2beb66ed29d48987e5ded0598431b705ac80c53b9827c78e9a115300e30f51e0c6d0474
7
- data.tar.gz: 5249d7170531139d34e347cf0f039f1f1550d0ae376edee93767a64c1e615c44e67ca884513ad662393ad8f7b254fcfc0d43ee25e6acf125ff574401f73b776c
6
+ metadata.gz: 4d3c6a0695901bacf2c8b1b74b71b797db4c4faeb2cd963aa8aa6dc7f4f1d3fa49a8c001aa9cf9415f0509b0383244ad6373f36d896175842e4b3e323ecdd9c3
7
+ data.tar.gz: e60811bf3f8f8873928e48481c92782c75eef36ed8e2265d56d2ec71c382e949ba51c6ee46327d0b285b9d49e199eb83759fb97cac738acb205fb84247abdfa7
@@ -7,6 +7,7 @@
7
7
  <meta content="width=device-width, initial-scale=1.0" name="viewport">
8
8
  <meta name="theme-color" content="white"/>
9
9
  <meta name="color-scheme" content="light"/>
10
+ <meta name="referrer" content="strict-origin-when-cross-origin"/>
10
11
 
11
12
  <link href="assets/css/styles.css" rel="stylesheet">
12
13
  <script defer type="text/javascript" src="assets/js/script.js"></script>
@@ -0,0 +1,62 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ site.lang }}" dir="{{ site.dir }}">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <base href="{% base %}" />
6
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
7
+ <meta content="width=device-width, initial-scale=1.0" name="viewport">
8
+ <meta name="theme-color" content="white"/>
9
+ <meta name="color-scheme" content="light"/>
10
+ <<<<<<< HEAD
11
+ <meta name="referrer" content="strict-origin-when-cross-origin">
12
+ =======
13
+ <meta name="referrer" content="strict-origin-when-cross-origin"/>
14
+ >>>>>>> ae133915c865b686fcb7071e1cd2c8c580cb3b8c
15
+
16
+ <link href="assets/css/styles.css" rel="stylesheet">
17
+ <script defer type="text/javascript" src="assets/js/script.js"></script>
18
+
19
+ {% seo %}
20
+ {% feed_meta %}
21
+
22
+ {%- if page.locales -%}
23
+ {% for locale in page.locales %}
24
+ <link
25
+ rel="alternate"
26
+ hreflang="{{ locale.collection }}"
27
+ href="{{ site.url }}{{ locale.collection }}/{{ locale.url }}" />
28
+ {% endfor %}
29
+ {%- else -%}
30
+ {% for locale in site.locales %}
31
+ {% if locale == site.locale %}{% continue %}{% endif %}
32
+ <link
33
+ rel="alternate"
34
+ hreflang="{{ locale }}"
35
+ href="{{ site.url }}{{ locale }}/" />
36
+ {% endfor %}
37
+ {%- endif -%}
38
+ </head>
39
+ {% comment %}
40
+ El sitio es una columna grande y el pie está siempre al final, para
41
+ imprimirlo lo mostramos como un bloque.
42
+
43
+ El alto mínimo del sitio es el alto de la pantalla.
44
+ {% endcomment %}
45
+ <body class="d-flex flex-column justify-content-between d-print-block min-vh-100">
46
+ {% include_cached navbar.html %}
47
+
48
+ {% comment %}
49
+ El espacio principal se expande para ocupar todo el alto
50
+ disponible y empuja el pie al fondo.
51
+ {% endcomment %}
52
+ <main class="flex-grow-1">
53
+ <div class="row no-gutters align-items-center justify-content-center d-print-block">
54
+ <div class="col-10">
55
+ {{ content }}
56
+ </div>
57
+ </div>
58
+ </main>
59
+
60
+ {% include_cached footer.html %}
61
+ </body>
62
+ </html>
@@ -8,7 +8,9 @@ layout: default
8
8
  {% endcomment %}
9
9
 
10
10
  <section>
11
- {%- assign post = site.posts | find: 'layout', 'post' -%}
11
+ {%- assign posts = site.posts | where: 'layout', 'post' -%}
12
+ {%- assign post = posts | first -%}
13
+
12
14
  {% include_cached post.html page=post %}
13
15
 
14
16
  <footer>
@@ -16,7 +18,7 @@ layout: default
16
18
  <div class="col-12 col-md-6">
17
19
  <h2>{{ site.i18n.other_posts }}</h2>
18
20
  <div>
19
- {% for post in site.posts offset: 2 %}
21
+ {% for post in posts offset: 2 %}
20
22
  <h3>
21
23
  <a href="{{ post.url }}">{{ post.title }}</a>
22
24
  </h3>
@@ -0,0 +1,5 @@
1
+ iframe {
2
+ border: 0;
3
+ width: 100%;
4
+ min-height: 480px;
5
+ }
@@ -32,6 +32,7 @@ $navbar-brand-font-size: 1rem;
32
32
  @import "helpers";
33
33
  @import "toggler";
34
34
  @import "share_box";
35
+ @import "embed";
35
36
 
36
37
  // Lo que vaya a llevar los colores de la barra de navegación
37
38
  .navbar-theme {
@@ -0,0 +1,76 @@
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
+ <<<<<<< HEAD
36
+
37
+ // Lo que vaya a llevar los colores de la barra de navegación
38
+ .navbar-theme {
39
+ background-color: $navbar-background !important;
40
+ color: $navbar-foreground !important;
41
+
42
+ a {
43
+ color: $navbar-foreground;
44
+
45
+ @include hover() {
46
+ color: darken($navbar-foreground, 15%) !important;
47
+ }
48
+ }
49
+
50
+ // Define la clase que va a llevar el color de los botones de redes sociales
51
+ // XXX: Va dentro de navbar-theme porque es el único lugar donde los
52
+ // vamos a usar por ahora.
53
+ .social-theme {
54
+ color: $social-foreground !important;
55
+
56
+ // Cambiar de color los botones al pasar por encima
57
+ // XXX: La función viene de Bootstrap, por eso está la definición
58
+ // después de incluirlo.
59
+ @include hover() {
60
+ color: darken($social-foreground, 15%) !important;
61
+ }
62
+ }
63
+ }
64
+
65
+ .turbolinks-progress-bar {
66
+ background-color: $navbar-foreground;
67
+ }
68
+
69
+ iframe {
70
+ border: 0;
71
+ width: 100%;
72
+ min-height: 480px;
73
+ }
74
+ =======
75
+ @import "embed";
76
+ >>>>>>> ae133915c865b686fcb7071e1cd2c8c580cb3b8c
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  ---
3
3
 
4
- {% comment %}
5
- TODO: Asignar esta variable una sola vez!
6
- {% endcomment %}
7
- {%- assign radio = site.posts | find: 'layout', 'radio' -%}
8
-
9
- {% turbolinks %}
4
+ const loadEvent = () => {
5
+ try {
6
+ if (Turbolinks) return 'turbolinks:load'
7
+ } catch {
8
+ return 'DOMContentLoaded'
9
+ }
10
+ }
10
11
 
11
12
  // Inicia y gestiona el stream
12
13
  const streaming = (element) => {
@@ -23,8 +24,7 @@ const streaming = (element) => {
23
24
  element.play()
24
25
  }
25
26
 
26
- // Este es el evento que espera a que cargue todo el sitio
27
- document.addEventListener('turbolinks:load', () => {
27
+ document.addEventListener(loadEvent(), () => {
28
28
  const transmission = document.querySelector('#transmission')
29
29
 
30
30
  if ('mediaSession' in navigator) {
@@ -48,5 +48,35 @@ document.addEventListener('turbolinks:load', () => {
48
48
  // TODO: Agregar los tracks
49
49
  transmission.addEventListener('ended', event => streaming(transmission))
50
50
 
51
- document.querySelectorAll("a[href^='http://'],a[href^='https://'],a[href^='//']").forEach(a => a.target = "_blank")
52
- })
51
+ document.querySelectorAll('.share').forEach(share => {
52
+ share.addEventListener('click', event => {
53
+ if (!Navigator.share) return;
54
+
55
+ event.preventDefault();
56
+ event.stopPropagation();
57
+
58
+ const title = document.querySelector('title').text;
59
+
60
+ try {
61
+ const text = document.querySelector('meta[property="og:description"]').content;
62
+ } catch {
63
+ const text = '';
64
+ }
65
+
66
+ try {
67
+ const url = document.querySelector('link[rel=canonical]').href;
68
+ } catch {
69
+ const url = document.location.href;
70
+ }
71
+
72
+ const data = { title: title, text: text, url: url };
73
+
74
+ if (Navigator.canShare(data)) Navigator.share(data).then();
75
+ });
76
+ });
77
+
78
+ document.querySelectorAll("a[href^='http://'],a[href^='https://'],a[href^='//']").forEach(a => {
79
+ a.rel = "noopener";
80
+ a.target = "_blank";
81
+ });
82
+ });
@@ -0,0 +1,99 @@
1
+ ---
2
+ ---
3
+
4
+ <<<<<<< HEAD
5
+ {% comment %}
6
+ TODO: Asignar esta variable una sola vez!
7
+ {% endcomment %}
8
+ {%- assign radio = site.posts | find: 'layout', 'radio' -%}
9
+
10
+ {% turbolinks %}
11
+
12
+ // Inicia y gestiona el stream
13
+ const streaming = (element) => {
14
+ // Cambiar el src para que incluya un timestamp, esto engaña a Firefox
15
+ // a recargar el video cuando se corta en lugar de pensar que terminó
16
+ // la descarga y empezar a reproducir desde el principio.
17
+ element.querySelectorAll('source').forEach(source => {
18
+ // Obtener la URL completa hasta el ?
19
+ source.src = source.src.split('?')[0]+'?'+Date.now().toString()
20
+ })
21
+
22
+ // Empezar la reproducción
23
+ element.load()
24
+ element.play()
25
+ }
26
+
27
+ // Este es el evento que espera a que cargue todo el sitio
28
+ document.addEventListener('turbolinks:load', () => {
29
+ const transmission = document.querySelector('#transmission')
30
+
31
+ if ('mediaSession' in navigator) {
32
+ navigator.mediaSession.metadata = new MediaMetadata({
33
+ title: "{{ radio.description | escape }}",
34
+ artist: "{{ radio.title | escape }}",
35
+ artwork: [
36
+ {
37
+ src: '{{ radio.logo.path | thumbnail: 192 }}',
38
+ sizes: '192x192',
39
+ type: 'image/{{ radio.logo.path | split: '.' | last }}'
40
+ },
41
+ ],
42
+ })
43
+
44
+ navigator.mediaSession.setActionHandler('play', () => transmission.play())
45
+ navigator.mediaSession.setActionHandler('pause', () => transmission.pause())
46
+ }
47
+
48
+ // Volver a reproducir cuando se corte
49
+ // TODO: Agregar los tracks
50
+ transmission.addEventListener('ended', event => streaming(transmission))
51
+
52
+ document.querySelectorAll("a[href^='http://'],a[href^='https://'],a[href^='//']").forEach(a => {
53
+ a.rel = "noopener"
54
+ a.target = "_blank"
55
+ })
56
+ })
57
+ =======
58
+ const loadEvent = () => {
59
+ try {
60
+ if (Turbolinks) return 'turbolinks:load'
61
+ } catch {
62
+ return 'DOMContentLoaded'
63
+ }
64
+ }
65
+
66
+ document.addEventListener(loadEvent(), () => {
67
+ document.querySelectorAll('.share').forEach(share => {
68
+ share.addEventListener('click', event => {
69
+ if (!Navigator.share) return;
70
+
71
+ event.preventDefault();
72
+ event.stopPropagation();
73
+
74
+ const title = document.querySelector('title').text;
75
+
76
+ try {
77
+ const text = document.querySelector('meta[property="og:description"]').content;
78
+ } catch {
79
+ const text = '';
80
+ }
81
+
82
+ try {
83
+ const url = document.querySelector('link[rel=canonical]').href;
84
+ } catch {
85
+ const url = document.location.href;
86
+ }
87
+
88
+ const data = { title: title, text: text, url: url };
89
+
90
+ if (Navigator.canShare(data)) Navigator.share(data).then();
91
+ });
92
+ });
93
+
94
+ document.querySelectorAll("a[href^='http://'],a[href^='https://'],a[href^='//']").forEach(a => {
95
+ a.rel = "noopener";
96
+ a.target = "_blank";
97
+ });
98
+ });
99
+ >>>>>>> ae133915c865b686fcb7071e1cd2c8c580cb3b8c
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radios-comunitarias-jekyll-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - f
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-09-10 00:00:00.000000000 Z
14
+ date: 2020-11-06 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: jekyll
@@ -181,6 +181,34 @@ dependencies:
181
181
  - - "~>"
182
182
  - !ruby/object:Gem::Version
183
183
  version: '12.0'
184
+ - !ruby/object:Gem::Dependency
185
+ name: jekyll-gzip
186
+ requirement: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ - !ruby/object:Gem::Dependency
199
+ name: jekyll-brotli
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
184
212
  description:
185
213
  email:
186
214
  - f@sutty.nl
@@ -243,18 +271,22 @@ files:
243
271
  - _includes/text.html
244
272
  - _includes/url.html
245
273
  - _layouts/default.html
274
+ - _layouts/default.html.orig
246
275
  - _layouts/home.html
247
276
  - _layouts/post.html
248
277
  - _layouts/radio.html
249
278
  - _sass/accessibility.scss
279
+ - _sass/embed.scss
250
280
  - _sass/helpers.scss
251
281
  - _sass/share.html
252
282
  - _sass/share_box.html
253
283
  - _sass/share_box.scss
254
284
  - _sass/toggler.scss
255
285
  - assets/css/styles.scss
286
+ - assets/css/styles.scss.orig
256
287
  - assets/fonts/forkawesome-webfont.woff2
257
288
  - assets/js/script.js
289
+ - assets/js/script.js.orig
258
290
  homepage: https://0xacab.org/sutty/jekyll/radios-comunitarias-jekyll-theme
259
291
  licenses:
260
292
  - Nonstandard
@@ -286,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
318
  - !ruby/object:Gem::Version
287
319
  version: '0'
288
320
  requirements: []
289
- rubygems_version: 3.0.3
321
+ rubygems_version: 3.1.2
290
322
  signing_key:
291
323
  specification_version: 4
292
324
  summary: Theme for community radio