radios-comunitarias-jekyll-theme 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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