observatorio-jekyll-theme 0.1.2
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 +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>
|