observatorio-jekyll-theme 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +168 -0
- data/README.md +164 -0
- data/_config.yml +112 -0
- data/_data/assets.json +4 -0
- data/_data/en.yml +106 -0
- data/_data/es.yml +131 -0
- data/_data/forms/asociate.yml +55 -0
- data/_data/forms/contacto.yml +59 -0
- data/_data/forms/dona.yml +60 -0
- data/_data/forms/newsletter.yml +18 -0
- data/_data/forms/shipping_address.yml +94 -0
- data/_data/forms/sumate.yml +46 -0
- data/_data/forms/user.yml +13 -0
- data/_data/layouts/about.yml +112 -0
- data/_data/layouts/banner_1.yml +65 -0
- data/_data/layouts/banner_2.yml +89 -0
- data/_data/layouts/biblioteca.yml +110 -0
- data/_data/layouts/cart.yml +222 -0
- data/_data/layouts/confirmation.yml +68 -0
- data/_data/layouts/contacto.yml +82 -0
- data/_data/layouts/email.yml +56 -0
- data/_data/layouts/integrante.yml +60 -0
- data/_data/layouts/menu.yml +73 -0
- data/_data/layouts/payment.yml +126 -0
- data/_data/layouts/peticiones.yml +87 -0
- data/_data/layouts/post.yml +135 -0
- data/_data/layouts/product.yml +142 -0
- data/_data/layouts/shipment.yml +126 -0
- data/_data/layouts/theme.yml +266 -0
- data/_includes/5b0263ea6cfc4dab9f3d3fcec87a8337.webp +0 -0
- data/_includes/archive.html +14 -0
- data/_includes/archive_layout_about.html +0 -0
- data/_includes/archive_layout_articulos.html +14 -0
- data/_includes/archive_layout_banner-1.html +0 -0
- data/_includes/archive_layout_banner-2.html +0 -0
- data/_includes/archive_layout_banner_1.html +0 -0
- data/_includes/archive_layout_banner_2.html +0 -0
- data/_includes/archive_layout_biblioteca.html +16 -0
- data/_includes/archive_layout_contacto.html +0 -0
- data/_includes/archive_layout_integrantes.html +26 -0
- data/_includes/archive_layout_layout.html +0 -0
- data/_includes/archive_layout_menu.html +0 -0
- data/_includes/archive_layout_theme.html +0 -0
- data/_includes/archive_post.html +0 -0
- data/_includes/boolean.html +30 -0
- data/_includes/cart_add.html +8 -0
- data/_includes/cart_controller.html +11 -0
- data/_includes/contact.html +23 -0
- data/_includes/content.html +1 -0
- data/_includes/country.html +53 -0
- data/_includes/device_detector.html +15 -0
- data/_includes/donacion.html +125 -0
- data/_includes/email.html +1 -0
- data/_includes/file.html +35 -0
- data/_includes/floating_alert.html +6 -0
- data/_includes/footer.html +11 -0
- data/_includes/form/boolean.html +1 -0
- data/_includes/form/content.html +1 -0
- data/_includes/form/email.html +1 -0
- data/_includes/form/file.html +1 -0
- data/_includes/form/hidden.html +1 -0
- data/_includes/form/image.html +1 -0
- data/_includes/form/input.html +1 -0
- data/_includes/form/markdown_content.html +1 -0
- data/_includes/form/number.html +1 -0
- data/_includes/form/predefined_array.html +1 -0
- data/_includes/form/section.html +1 -0
- data/_includes/form/separator.html +1 -0
- data/_includes/form/string.html +1 -0
- data/_includes/form/submit.html +1 -0
- data/_includes/form/tel.html +1 -0
- data/_includes/form/text.html +1 -0
- data/_includes/form/url.html +1 -0
- data/_includes/hidden.html +5 -0
- data/_includes/image.html +32 -0
- data/_includes/input.html +49 -0
- data/_includes/intento%20logo%20b_edited.webp +0 -0
- data/_includes/item.html +38 -0
- data/_includes/logo.png +0 -0
- data/_includes/logo.svg +1560 -0
- data/_includes/markdown_content.html +1 -0
- data/_includes/matomo.html +15 -0
- data/_includes/menu.html +27 -0
- data/_includes/navbar.html +32 -0
- data/_includes/newsletter.html +10 -0
- data/_includes/notification.html +5 -0
- data/_includes/number.html +1 -0
- data/_includes/pack.html +1 -0
- data/_includes/password.html +1 -0
- data/_includes/pay_what_you_can_controller.html +13 -0
- data/_includes/picture.html +23 -0
- data/_includes/post.html +48 -0
- data/_includes/postal_code.html +45 -0
- data/_includes/predefined_array.html +39 -0
- data/_includes/preload_font.html +1 -0
- data/_includes/product.html +38 -0
- data/_includes/search.html +25 -0
- data/_includes/section.html +1 -0
- data/_includes/separator.html +1 -0
- data/_includes/share.html +22 -0
- data/_includes/share_box.html +29 -0
- data/_includes/social_networks.html +8 -0
- data/_includes/state.html +52 -0
- data/_includes/string.html +3 -0
- data/_includes/subitem.html +7 -0
- data/_includes/submit.html +5 -0
- data/_includes/tel.html +1 -0
- data/_includes/text.html +32 -0
- data/_includes/url.html +1 -0
- data/_includes/video.html +7 -0
- data/_layouts/about.html +52 -0
- data/_layouts/acciones.html +21 -0
- data/_layouts/archive.html +5 -0
- data/_layouts/asociate.html +20 -0
- data/_layouts/biblioteca.html +85 -0
- data/_layouts/cart.html +72 -0
- data/_layouts/confirmation.html +23 -0
- data/_layouts/contacto.html +47 -0
- data/_layouts/default.html +72 -0
- data/_layouts/dona.html +20 -0
- data/_layouts/home.html +142 -0
- data/_layouts/integrante.html +26 -0
- data/_layouts/layout-categories.html +5 -0
- data/_layouts/layout.html +6 -0
- data/_layouts/page.html +5 -0
- data/_layouts/participa.html +12 -0
- data/_layouts/payment.html +21 -0
- data/_layouts/peticiones.html +24 -0
- data/_layouts/post.html +91 -0
- data/_layouts/product.html +110 -0
- data/_layouts/shipment.html +52 -0
- data/_layouts/sumate.html +20 -0
- data/_sass/accessibility.scss +54 -0
- data/_sass/content.scss +11 -0
- data/_sass/editor.scss +29 -0
- data/_sass/embed.scss +13 -0
- data/_sass/floating_alert.scss +48 -0
- data/_sass/fonts.scss +29 -0
- data/_sass/helpers.scss +379 -0
- data/_sass/menu.scss +36 -0
- data/_sass/share_box.scss +26 -0
- data/_sass/slider.scss +29 -0
- data/_sass/snap.scss +60 -0
- data/_sass/toggler.scss +62 -0
- data/assets/css/styles.scss +173 -0
- data/assets/data/site.json +10 -0
- data/assets/fonts/forkawesome-webfont.woff2 +0 -0
- data/assets/fonts/roboto/v27/KFOjCnqEu92Fr1Mu51TzBhc9-subset.woff2 +0 -0
- data/assets/fonts/roboto/v27/KFOkCnqEu92Fr1MmgWxP-subset.woff2 +0 -0
- data/assets/fonts/roboto/v27/KFOkCnqEu92Fr1Mu52xP-subset.woff2 +0 -0
- data/assets/fonts/roboto/v27/KFOlCnqEu92Fr1MmWUlvAw-subset.woff2 +0 -0
- data/assets/fonts/roboto/v27/KFOmCnqEu92Fr1Me5Q-subset.woff2 +0 -0
- data/assets/js/pack.9dc6883564ec9354c89d.js +114 -0
- data/assets/js/pack.9dc6883564ec9354c89d.js.map +1 -0
- data/assets/templates/alert.html +9 -0
- data/assets/templates/cart.html +67 -0
- data/assets/templates/confirmation.html +67 -0
- data/assets/templates/payment_methods.html +64 -0
- data/assets/templates/recover_order.html +13 -0
- data/assets/templates/results.html +53 -0
- data/assets/templates/shipping_methods.html +38 -0
- metadata +568 -0
@@ -0,0 +1 @@
|
|
1
|
+
{% include text.html field=field %}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<!-- Matomo -->
|
2
|
+
<script defer type="text/javascript">
|
3
|
+
var _paq = _paq || [];
|
4
|
+
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
5
|
+
_paq.push(['trackPageView']);
|
6
|
+
_paq.push(['enableLinkTracking']);
|
7
|
+
(function() {
|
8
|
+
var u="{{ site.env.MATOMO_URL }}";
|
9
|
+
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
10
|
+
_paq.push(['setSiteId', '{{ site.env.MATOMO_ID }}']);
|
11
|
+
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
12
|
+
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
13
|
+
})();
|
14
|
+
</script>
|
15
|
+
<!-- End Matomo Code -->
|
data/_includes/menu.html
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
{%- comment -%}
|
2
|
+
Empezamos con los ítems que no dependen de otros e implementamos
|
3
|
+
recursivamente.
|
4
|
+
{%- endcomment -%}
|
5
|
+
{%- assign items = site.posts | where: 'layout', 'menu' | where: 'item', nil -%}
|
6
|
+
|
7
|
+
<nav class="navbar navbar-expand-lg navbar-light">
|
8
|
+
<button class="navbar-toggler"
|
9
|
+
type="button"
|
10
|
+
data-toggle="collapse"
|
11
|
+
data-target="#menu"
|
12
|
+
aria-label="{{ site.i18n.menu.title }}">
|
13
|
+
<span class="navbar-toggler-icon"></span>
|
14
|
+
</button>
|
15
|
+
|
16
|
+
<div class="collapse navbar-collapse" id="menu">
|
17
|
+
<div class="navbar-nav w-100 d-flex align-items-start justify-content-center">
|
18
|
+
{% for item in items %}
|
19
|
+
{%- include_cached item.html item=item -%}
|
20
|
+
{% endfor %}
|
21
|
+
|
22
|
+
<div class="nav-item w-100 w-lg-auto">
|
23
|
+
{%- include_cached search.html -%}
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</nav>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
{%- assign about = site.posts | find: 'layout', 'about' -%}
|
2
|
+
{%- for sn in about.social_networks -%}
|
3
|
+
{%- if sn contains 'https://chat.whatsapp.com/' -%}
|
4
|
+
{%- assign whatsapp = sn -%}
|
5
|
+
{%- endif -%}
|
6
|
+
{%- endfor -%}
|
7
|
+
|
8
|
+
<nav class="w-100 d-flex align-items-center justify-content-end flex-wrap pt-1 pt-md-3 pr-2 pr-md-3">
|
9
|
+
<div class="flex-grow-md-1 d-flex align-items-center">
|
10
|
+
{%- include_cached social_networks.html social_networks=about.social_networks -%}
|
11
|
+
</div>
|
12
|
+
|
13
|
+
{%- if whatsapp -%}
|
14
|
+
<a class="btn btn-primary mr-md-3" href="{{ whatsapp }}" target="_blank" rel="noopener">
|
15
|
+
{{ site.i18n.whatsapp }}
|
16
|
+
</a>
|
17
|
+
{%- endif -%}
|
18
|
+
|
19
|
+
{%- include_cached newsletter.html -%}
|
20
|
+
</nav>
|
21
|
+
|
22
|
+
<header class="d-flex flex-column w-100 align-items-center justify-content-center pt-3 pt-md-5 pb-3 pt-md-5 pl-3 pr-3">
|
23
|
+
<div class="max-w-15 mb-2 mb-md-3">
|
24
|
+
<a href="?">
|
25
|
+
{%- include_cached picture.html image=about.logo default_description=about.title height='auto' cover=false -%}
|
26
|
+
</a>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<h1 class="f-4 text-uppercase text-center">{{ about.title }}</h1>
|
30
|
+
</header>
|
31
|
+
|
32
|
+
{% include menu.html %}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<img class="d-none invisible" src="https://api.sutty.nl/v1/sites/{{ site.hostname }}/contact/cookie.png" />
|
2
|
+
|
3
|
+
<form action="https://api.sutty.nl/v1/sites/{{ site.hostname }}/contact/newsletter"
|
4
|
+
method="post"
|
5
|
+
class="form-inline">
|
6
|
+
{%- for field in site.data.forms.newsletter -%}
|
7
|
+
{% assign template = field[1].type | append: '.html' %}
|
8
|
+
{% include {{ template }} field=field %}
|
9
|
+
{%- endfor -%}
|
10
|
+
</form>
|
@@ -0,0 +1 @@
|
|
1
|
+
{% include input.html field=field %}
|
data/_includes/pack.html
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
<script defer src="{{ jekyll.environment | equals: 'production' | ternary: site.data.assets['assets/js/pack.js'], 'assets/js/pack.js' }}"></script>
|
@@ -0,0 +1 @@
|
|
1
|
+
{% include input.html field=include.field form=include.form %}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
data-controller="pay-what-you-can"
|
2
|
+
data-pay-what-you-can-download-value="{{ include.product.url | present }}"
|
3
|
+
data-pay-what-you-can-url-value="{{ include.url | default: include.product.url }}"
|
4
|
+
data-pay-what-you-can-variant-id-value="{{ include.product.variant_id }}"
|
5
|
+
data-pay-what-you-can-firstname-value="{{ include.product.title }}"
|
6
|
+
data-pay-what-you-can-currency-value="ARS"
|
7
|
+
data-pay-what-you-can-price-value="1"
|
8
|
+
data-image="{{ include.product.image.path | thumbnail: 300 }}"
|
9
|
+
data-title="{{ include.product.title }}"
|
10
|
+
data-price="{{ include.product.price }}"
|
11
|
+
data-in-stock="{{ include.product.in_stock }}"
|
12
|
+
data-stock="{{ include.product.stock }}"
|
13
|
+
data-extra="{{ include.extra | join: '|' }}"
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Imágenes responsive. Esto logra que solo se carguen las versiones de
|
3
|
+
las imágenes con el ancho máximo de la pantalla.
|
4
|
+
|
5
|
+
TODO: Las imágenes en md y superior nunca llegan al ancho máximo así
|
6
|
+
que tienen una resolución de más.
|
7
|
+
{% endcomment %}
|
8
|
+
{%- assign image = include.image.path | default: 'public/placeholder.png' %}
|
9
|
+
{%- assign height = include.height | default: site.i18n.post.height -%}
|
10
|
+
{%- assign width = include.width | default: '100' -%}
|
11
|
+
|
12
|
+
<picture>
|
13
|
+
{% for size in site.images.sizes %}
|
14
|
+
<source srcset="{{ image | thumbnail: size }}" media="(max-width: {{ size }}px)" />
|
15
|
+
{% endfor %}
|
16
|
+
|
17
|
+
<img
|
18
|
+
class="u-photo w-{{ width }} {{ include.cover | equals: false | value_unless: 'fit-cover' }} h-{{ height }} {{ include.extra }}"
|
19
|
+
loading="lazy"
|
20
|
+
itemprop="image"
|
21
|
+
src="{{ image | thumbnail: 1140 }}"
|
22
|
+
alt="{{ include.image.description | include.default_description }}" />
|
23
|
+
</picture>
|
data/_includes/post.html
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
{%- assign height = include.height | default: site.i18n.post.height -%}
|
2
|
+
{%- assign overlap = include.overlap | default: false -%}
|
3
|
+
|
4
|
+
<article class="col d-flex flex-column mb-3">
|
5
|
+
{%- if include.post.video -%}
|
6
|
+
<div class="h-{{ height }}">
|
7
|
+
{%- include_cached video.html video=include.post.video class='min-h-100' -%}
|
8
|
+
</div>
|
9
|
+
{%- else -%}
|
10
|
+
<a href="{{ include.post.url }}">
|
11
|
+
{%- include_cached picture.html image=include.post.image default_description=include.post.title height=height -%}
|
12
|
+
</a>
|
13
|
+
{%- endif -%}
|
14
|
+
|
15
|
+
{% comment %}
|
16
|
+
El margen negativo al 100% hace que se solape el div sobre el img.
|
17
|
+
{% endcomment %}
|
18
|
+
<div class="{% if overlap %}h-{{ height }} mt-n{{ height }} justify-content-end{% endif %} pl-3 pr-3 pb-3 d-flex flex-column">
|
19
|
+
<header class="position-relative">
|
20
|
+
<h1 class="h4 {{ overlap | value_unless: 'mt-3' }}">
|
21
|
+
<a
|
22
|
+
class="{{ overlap | ternary: 'white', 'black' }} line-clamp-5"
|
23
|
+
href="{{ include.post.url }}">
|
24
|
+
<span class="{{ overlap | value_if: 'background-blue-t4' }}">{{ include.post.title }}</span>
|
25
|
+
</a>
|
26
|
+
</h1>
|
27
|
+
|
28
|
+
<p class="{{ overlap | value_if: 'background-blue-t4 white d-inline' }}">
|
29
|
+
{% comment %}
|
30
|
+
El fondo está repetido porque el line-clamp lo deshabilita (?)
|
31
|
+
{% endcomment %}
|
32
|
+
<span class="line-clamp-1 {{ overlap | value_if: 'background-blue-t4' }}">
|
33
|
+
{{ include.post.author | join: ', ' }}
|
34
|
+
</span>
|
35
|
+
|
36
|
+
<time datetime="{{ include.post.date }}">
|
37
|
+
{{ include.post.date | date_local: site.i18n.date.format }}
|
38
|
+
</time>
|
39
|
+
</p>
|
40
|
+
|
41
|
+
<p>
|
42
|
+
{% for category in include.post.categories %}
|
43
|
+
<a href="{{ category.url }}" class="badge badge-primary">{{ category.title }}</a>
|
44
|
+
{% endfor %}
|
45
|
+
</p>
|
46
|
+
</header>
|
47
|
+
</div>
|
48
|
+
</article>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
{% if include.form %}
|
2
|
+
{%- assign name = include.field[0] | append: ']' | prepend: '[' | prepend: include.form -%}
|
3
|
+
{%- assign id = include.field[1].id | default: name | replace: '[', '_' | remove: ']' -%}
|
4
|
+
{% else %}
|
5
|
+
{%- assign name = include.field[0] -%}
|
6
|
+
{%- assign id = include.field[1].id | default: name %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{%- assign label = include.field[1].label[site.locale] -%}
|
10
|
+
{%- assign help = include.field[1].help[site.locale] -%}
|
11
|
+
{%- assign error = include.field[1].error[site.locale] -%}
|
12
|
+
{%- assign autocomplete = include.field[1].autocomplete -%}
|
13
|
+
|
14
|
+
<div class="form-group" data-controller="postal-code" data-postal-code-group="{{ include.field[1].group }}">
|
15
|
+
<label for="{{ id }}">
|
16
|
+
{{ label }}
|
17
|
+
{% if include.field[1].required %}*{% endif %}
|
18
|
+
</label>
|
19
|
+
|
20
|
+
<input
|
21
|
+
name="{{ name }}"
|
22
|
+
id="{{ id }}"
|
23
|
+
data-target="postal-code.code"
|
24
|
+
{% if help %}
|
25
|
+
aria-describedby="help-{{ id }}"
|
26
|
+
{% endif %}
|
27
|
+
{% if include.field[1].required %}
|
28
|
+
required
|
29
|
+
{% endif %}
|
30
|
+
type="{{ include.field[1].type }}"
|
31
|
+
{% if autocomplete %}
|
32
|
+
autocomplete="{{ autocomplete }}"
|
33
|
+
{% endif %}
|
34
|
+
class="form-control" />
|
35
|
+
|
36
|
+
{%- if error -%}
|
37
|
+
<div class="invalid-feedback">{{ error }}</div>
|
38
|
+
{%- endif -%}
|
39
|
+
|
40
|
+
{%- if help -%}
|
41
|
+
<small id="help-{{ id }}" class="form-text">
|
42
|
+
{{ help }}
|
43
|
+
</small>
|
44
|
+
{%- endif -%}
|
45
|
+
</div>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{%- assign name = include.field[0] -%}
|
2
|
+
{%- assign id = include.field[1].id | default: name -%}
|
3
|
+
{%- assign label = include.field[1].label[site.locale] -%}
|
4
|
+
{%- assign help = include.field[1].help[site.locale] -%}
|
5
|
+
{%- assign autocomplete = include.field[1].autocomplete -%}
|
6
|
+
|
7
|
+
<div class="form-group">
|
8
|
+
<label for="{{ id }}">
|
9
|
+
{{ label }}
|
10
|
+
{% if include.field[1].required %}*{% endif %}
|
11
|
+
</label>
|
12
|
+
|
13
|
+
<select
|
14
|
+
{% if help %}
|
15
|
+
aria-describedby="help-{{ id }}"
|
16
|
+
{% endif %}
|
17
|
+
{% if include.field[1].required %}
|
18
|
+
required
|
19
|
+
{% endif %}
|
20
|
+
name="{{ name }}"
|
21
|
+
id="{{ id }}"
|
22
|
+
{% if autocomplete %}
|
23
|
+
autocomplete="{{ autocomplete }}"
|
24
|
+
{% endif %}
|
25
|
+
class="form-control">
|
26
|
+
|
27
|
+
<option value="" selected></option>
|
28
|
+
|
29
|
+
{%- for option in include.field[1].values -%}
|
30
|
+
<option value="{{ option }}">{{ option }}</option>
|
31
|
+
{%- endfor -%}
|
32
|
+
</select>
|
33
|
+
|
34
|
+
{%- if help -%}
|
35
|
+
<small id="help-{{ id }}" class="form-text">
|
36
|
+
{{ help }}
|
37
|
+
</small>
|
38
|
+
{%- endif -%}
|
39
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ include.font }}?{{ site.time | date: '%s' }}" />
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<article
|
2
|
+
{% if include.product.in_stock %}
|
3
|
+
{% include_cached cart_controller.html product=include.product %}
|
4
|
+
{% endif %}
|
5
|
+
class="d-flex flex-column align-items-center flex-grow-1 {{ include.class }}">
|
6
|
+
<div class="d-flex flex-column align-items-center justify-content-between flex-grow-1 position-relative">
|
7
|
+
<a href="{{ include.product.url }}">
|
8
|
+
<picture>
|
9
|
+
<source srcset="{{ include.product.image.path | thumbnail: nil, 370 }}" media="(max-width: 767px)" />
|
10
|
+
|
11
|
+
<img class="shadow" src="{{ include.product.image.path | thumbnail: nil, 300 }}" loading="lazy" />
|
12
|
+
</picture>
|
13
|
+
</a>
|
14
|
+
|
15
|
+
<div class="">
|
16
|
+
<div class="flex-fill mt-4 mb-4 black">
|
17
|
+
<p class="font-weight-bold m-0 mb-3">
|
18
|
+
<a href="{{ include.product.url }}">
|
19
|
+
{{ include.product.title }}
|
20
|
+
</a>
|
21
|
+
</p>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<p class="font-weight-bold mb-0">
|
25
|
+
<span data-stock-price>{{ include.product.price }}</span>
|
26
|
+
<span data-stock-currency>{{ site.cart.currency }}</span>
|
27
|
+
</p>
|
28
|
+
|
29
|
+
<button
|
30
|
+
class="btn btn-lp text-lowercase p-1 font-weight-bold"
|
31
|
+
{% unless include.product.in_stock %}disabled{% endunless %}
|
32
|
+
{% include cart_add.html %}>
|
33
|
+
<span class="hide-when-disabled">{{ site.cart.add }}</span>
|
34
|
+
<span class="show-when-disabled">{{ site.cart.out_of_stock | default: site.data.layouts.cart.out_of_stock.default[site.locale] }}</span>
|
35
|
+
</button>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</article>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{%- assign param = include.param | default: 'search' -%}
|
2
|
+
|
3
|
+
<form method="get" action="" class="form-inline" data-controller="search" data-action="search#search">
|
4
|
+
<div class="form-group">
|
5
|
+
<label for="{{ param }}_q" class="sr-only">{{ site.i18n.search.label }}</label>
|
6
|
+
|
7
|
+
<div class="input-group flex-nowrap">
|
8
|
+
<div class="input-group-prepend">
|
9
|
+
<span class="input-group-text fa fa-search border-0 pt-2"></span>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<input
|
13
|
+
class="border-0 form-control"
|
14
|
+
type="search"
|
15
|
+
required
|
16
|
+
id="{{ param }}_q"
|
17
|
+
name="q"
|
18
|
+
placeholder="{{ site.i18n.search.submit }}"
|
19
|
+
data-search-target="q"
|
20
|
+
autocomplete="off" />
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<input class="sr-only" type="submit" value="{{ site.i18n.search.submit }}" />
|
25
|
+
</form>
|
@@ -0,0 +1 @@
|
|
1
|
+
<h2 id="{{ include.field[0] }}">{{ include.field[1].title }}</h2>
|
@@ -0,0 +1 @@
|
|
1
|
+
<hr/>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{% capture url %}{{ site.url }}{{ include.url }}{% endcapture %}
|
2
|
+
|
3
|
+
{% unless include.share.url == '%url' %}
|
4
|
+
{% assign url = url | default: '' | cgi_escape %}
|
5
|
+
{% endunless %}
|
6
|
+
{% assign title = include.title | default: '' | cgi_escape %}
|
7
|
+
{% assign description = include.description | default: '' | cgi_escape %}
|
8
|
+
{% assign tags = include.tags | join: ',' | default: '' | cgi_escape %}
|
9
|
+
|
10
|
+
<a
|
11
|
+
{% if include.share.url == '%url' %}
|
12
|
+
download
|
13
|
+
{% else %}
|
14
|
+
target="_blank"
|
15
|
+
{% endif %}
|
16
|
+
rel="noopener nofollow"
|
17
|
+
title="{{ include.share.title }}"
|
18
|
+
class="d-flex flex-column align-items-center p-3"
|
19
|
+
href="{{ include.share.url | replace: '%url', url | replace: '%title', title | replace: '%description', description | replace: '%tags', tags }}">
|
20
|
+
<i class="fa fa-fw fa-2x fa-{{ include.share.icon }}"></i>
|
21
|
+
<span>{{ include.share.title }}</span>
|
22
|
+
</a>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
{%- assign title = include.title | escape -%}
|
2
|
+
{%- assign text = include.description | strip_html | escape -%}
|
3
|
+
{%- assign url = site.url | append: include.url | escape -%}
|
4
|
+
|
5
|
+
<input
|
6
|
+
data-controller="share"
|
7
|
+
data-action="share#share"
|
8
|
+
data-share-title-value="{{ title }}"
|
9
|
+
data-share-text-value="{{ text }}"
|
10
|
+
data-share-url-value="{{ url }}"
|
11
|
+
type="checkbox"
|
12
|
+
id="share"
|
13
|
+
class="toggler"
|
14
|
+
autocomplete="off" />
|
15
|
+
|
16
|
+
<label class="share btn border" for="share">
|
17
|
+
{{ site.i18n.share.text }}
|
18
|
+
<i class="fa fa-{{ site.i18n.share.icon }}"></i>
|
19
|
+
|
20
|
+
<div class="share-box toggled d-flex align-items-center justify-content-center">
|
21
|
+
<div class="box background-white color-redpink row no-gutters align-items-center justify-content-center p-3">
|
22
|
+
{% for share in site.i18n.share.items %}
|
23
|
+
<div class="col-4">
|
24
|
+
{% include_cached share.html share=share url=include.url title=include.title description=include.description %}
|
25
|
+
</div>
|
26
|
+
{% endfor %}
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</label>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
{% for social in include.social_networks %}
|
2
|
+
{%- assign network = social | social_network -%}
|
3
|
+
|
4
|
+
<a href="{{ network.url }}" class="primary p-2">
|
5
|
+
<i class="fa fa-fw fa-{{ network.name }}"></i>
|
6
|
+
<span class="sr-only">{{ network.name }}</span>
|
7
|
+
</a>
|
8
|
+
{% endfor %}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
{% if include.form %}
|
2
|
+
{%- assign name = include.field[0] | append: ']' | prepend: '[' | prepend: include.form -%}
|
3
|
+
{%- assign id = include.field[1].id | default: name | replace: '[', '_' | remove: ']' -%}
|
4
|
+
{% else %}
|
5
|
+
{%- assign name = include.field[0] -%}
|
6
|
+
{%- assign id = include.field[1].id | default: name %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{%- assign label = include.field[1].label[site.locale] -%}
|
10
|
+
{%- assign help = include.field[1].help[site.locale] -%}
|
11
|
+
{%- assign error = include.field[1].error[site.locale] -%}
|
12
|
+
{%- assign autocomplete = include.field[1].autocomplete -%}
|
13
|
+
|
14
|
+
<div class="form-group" data-controller="state" data-state-group="{{ include.field[1].group }}">
|
15
|
+
<label for="{{ id }}">
|
16
|
+
{{ label }}
|
17
|
+
{% if include.field[1].required %}*{% endif %}
|
18
|
+
</label>
|
19
|
+
|
20
|
+
<input data-target="state.id" type="hidden" name="{{ name }}" id="{{ id }}" value="" />
|
21
|
+
|
22
|
+
<input
|
23
|
+
data-target="state.name"
|
24
|
+
{% if help %}
|
25
|
+
aria-describedby="help-{{ id }}"
|
26
|
+
{% endif %}
|
27
|
+
{% if include.field[1].required %}
|
28
|
+
required
|
29
|
+
{% endif %}
|
30
|
+
type="{{ include.field[1].type }}"
|
31
|
+
{% if autocomplete %}
|
32
|
+
autocomplete="{{ autocomplete }}"
|
33
|
+
{% endif %}
|
34
|
+
name="{{ include.form }}_ignore_{{ include.field[0] }}"
|
35
|
+
id="{{ include.form }}_ignore_{{ include.field[0] }}"
|
36
|
+
disabled
|
37
|
+
list="list-{{ id }}"
|
38
|
+
class="form-control" />
|
39
|
+
|
40
|
+
{%- if error -%}
|
41
|
+
<div class="invalid-feedback">{{ error }}</div>
|
42
|
+
{%- endif -%}
|
43
|
+
|
44
|
+
{%- if help -%}
|
45
|
+
<small id="help-{{ id }}" class="form-text">
|
46
|
+
{{ help }}
|
47
|
+
</small>
|
48
|
+
{%- endif -%}
|
49
|
+
|
50
|
+
<datalist id="list-{{ id }}" data-target="state.list">
|
51
|
+
</datalist>
|
52
|
+
</div>
|
data/_includes/tel.html
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{% include input.html field=field %}
|
data/_includes/text.html
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
{%- assign name = include.field[0] -%}
|
2
|
+
{%- assign id = include.field[1].id | default: name -%}
|
3
|
+
{%- assign label = include.field[1].label[site.locale] -%}
|
4
|
+
{%- assign help = include.field[1].help[site.locale] -%}
|
5
|
+
{%- assign autocomplete = include.field[1].autocomplete -%}
|
6
|
+
|
7
|
+
<div class="form-group">
|
8
|
+
<label for="{{ id }}">
|
9
|
+
{{ label }}
|
10
|
+
{% if include.field[1].required %}*{% endif %}
|
11
|
+
</label>
|
12
|
+
|
13
|
+
<textarea
|
14
|
+
{% if help %}
|
15
|
+
aria-describedby="help-{{ id }}"
|
16
|
+
{% endif %}
|
17
|
+
{% if include.field[1].required %}
|
18
|
+
required
|
19
|
+
{% endif %}
|
20
|
+
name="{{ name }}"
|
21
|
+
id="{{ id }}"
|
22
|
+
{% if autocomplete %}
|
23
|
+
autocomplete="{{ autocomplete }}"
|
24
|
+
{% endif %}
|
25
|
+
class="form-control"></textarea>
|
26
|
+
|
27
|
+
{%- if .help -%}
|
28
|
+
<small id="help-{{ id }}" class="form-text">
|
29
|
+
{{ help }}
|
30
|
+
</small>
|
31
|
+
{%- endif -%}
|
32
|
+
</div>
|
data/_includes/url.html
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{% include input.html field=field %}
|
data/_layouts/about.html
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<article class="h-entry row no-gutters justify-content-center" itemscope itemtype="http://schema.org/Article">
|
6
|
+
<header class="col-10 col-md-8">
|
7
|
+
<h1 class="p-name f-4 f-md-h1" itemprop="name headline">{{ page.title | default: '' | escape }}</h1>
|
8
|
+
|
9
|
+
{%- if page.description -%}
|
10
|
+
<p class="lead p-summary" itemprop="description">{{ page.description | default: '' | escape }}</p>
|
11
|
+
{%- endif -%}
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
|
15
|
+
{%- assign date_format = site.i18n.date.format | default: "%b %-d, %Y" -%}
|
16
|
+
{{ page.date | default: site.date | date_local: date_format }}
|
17
|
+
</time>
|
18
|
+
</p>
|
19
|
+
|
20
|
+
{%- include share_box.html url=page.url title=page.title description=page.description -%}
|
21
|
+
</header>
|
22
|
+
|
23
|
+
<div class="e-content col-10 col-md-8 content" itemprop="articleBody">
|
24
|
+
{{ content | replace: '<img ', '<img loading="lazy" ' | replace: '<iframe ', '<iframe loading="lazy" ' }}
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<footer class="col-10">
|
28
|
+
<a class="u-url" itemprop="url" href="{{ page.url }}" hidden>
|
29
|
+
{{ site.url }}/{{ page.url }}
|
30
|
+
</a>
|
31
|
+
|
32
|
+
{%- if page.uuid -%}
|
33
|
+
<span hidden itemprop="identifier">{{ page.uuid }}</span>
|
34
|
+
{%- endif -%}
|
35
|
+
|
36
|
+
{%- if page.license.url -%}
|
37
|
+
<p itemprop="license" itemtype="http://schema.org/CreativeWork">
|
38
|
+
<a rel="license" itemprop="url" href="{{ page.license.url }}">
|
39
|
+
<span itemprop="articleBody">
|
40
|
+
{{ page.license.description }}
|
41
|
+
</span>
|
42
|
+
</a>
|
43
|
+
</p>
|
44
|
+
{%- endif -%}
|
45
|
+
|
46
|
+
<div hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
|
47
|
+
<span class="p-author h-card" itemprop="name">
|
48
|
+
{{ page.title }}
|
49
|
+
</span>
|
50
|
+
</div>
|
51
|
+
</footer>
|
52
|
+
</article>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<section id="portada" class="background-blue">
|
6
|
+
<div class="row p-2 justify-content-center">
|
7
|
+
{%- assign entradas = site.posts | where: 'layout', 'acciones' -%}
|
8
|
+
{% for i in entradas limit: 6 %}
|
9
|
+
<div class="col-3 m-2 p-5 d-flex justify-content-between flex-column" style="background-image: url({{ i.foto.path }}); background-size: cover; background-position: center center;">
|
10
|
+
<h3 class="postit"><a href="{{ i.url }}">{{ i.title }}</a></h3>
|
11
|
+
|
12
|
+
<a href="" class="text-left text-uppercase badge badge-danger rounded-0">{{ i.author }} x {{ i.date | date: "%B %d, %Y" }}</a>
|
13
|
+
|
14
|
+
<a href="" class="badge badge-light rounded-0 text-uppercase">{{ site.posts.categories }}</a>
|
15
|
+
{% for cat in post.categories %}
|
16
|
+
<a href="" class="badge badge-light rounded-0 text-uppercase">{{ cat }}</a>
|
17
|
+
{% endfor %}
|
18
|
+
</div>
|
19
|
+
{% endfor %}
|
20
|
+
</div>
|
21
|
+
</section>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{%- assign form = site.data.forms.asociate -%}
|
6
|
+
|
7
|
+
<section id="participa" class="row justify-content-center no-gutters">
|
8
|
+
<div class="col-7 mt-5 mb-5">
|
9
|
+
<form id="{{ name }}" class="update-domain" autocomplete="off" data-attr="action" action="https://api.{{ site.hostname }}/v1/sites/{{ site.hostname }}/contact/{{ name }}" method="post">
|
10
|
+
<div class="row justify-content-center">
|
11
|
+
{%- for field in form -%}
|
12
|
+
{% assign template = field[1].type | append: '.html' %}
|
13
|
+
<div class="col{{ field[1].col | default: 12 | prepend: '-' }}">
|
14
|
+
{% include {{ template }} field=field %}
|
15
|
+
</div>
|
16
|
+
{%- endfor -%}
|
17
|
+
</div>
|
18
|
+
</form>
|
19
|
+
</div>
|
20
|
+
</section>
|