editorial-autogestiva-jekyll-theme 0.1.0
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 +69 -0
- data/_data/es.yml +69 -0
- data/_data/layouts/book.yml +174 -0
- data/_data/layouts/editorial.yml +76 -0
- data/_data/layouts/post.yml +113 -0
- data/_includes/contact.html +35 -0
- data/_includes/footer.html +72 -0
- data/_includes/navbar.html +29 -0
- data/_layouts/book.html +140 -0
- data/_layouts/default.html +37 -0
- data/_layouts/editorial.html +100 -0
- data/_layouts/home.html +20 -0
- data/_layouts/post.html +69 -0
- data/_sass/footer.scss +25 -0
- data/_sass/home.scss +18 -0
- data/_sass/navbar.scss +5 -0
- data/_sass/typography.scss +33 -0
- data/assets/css/styles.scss +16 -0
- data/assets/fonts/Inter-Bold-subset.woff2 +0 -0
- data/assets/fonts/Inter-BoldItalic-subset.woff2 +0 -0
- data/assets/fonts/Inter-Italic-subset.woff2 +0 -0
- data/assets/fonts/Inter-Regular-subset.woff2 +0 -0
- metadata +220 -0
@@ -0,0 +1,76 @@
|
|
1
|
+
---
|
2
|
+
title:
|
3
|
+
type: 'string'
|
4
|
+
required: true
|
5
|
+
label:
|
6
|
+
es: 'El nombre del proyecto editorial'
|
7
|
+
en: 'Publisher name'
|
8
|
+
description:
|
9
|
+
type: 'text'
|
10
|
+
required: true
|
11
|
+
label:
|
12
|
+
es: 'Descripción del proyecto'
|
13
|
+
en: 'Publisher description'
|
14
|
+
logo:
|
15
|
+
type: 'image'
|
16
|
+
path:
|
17
|
+
label:
|
18
|
+
es: 'Logo de la editorial'
|
19
|
+
en: 'Publisher logo'
|
20
|
+
help:
|
21
|
+
es: "Resolución recomendada: 1280 pixeles de ancho"
|
22
|
+
en: "Recommended resolution: 1280 pixels width"
|
23
|
+
description:
|
24
|
+
label:
|
25
|
+
es: 'Descripción del logo'
|
26
|
+
en: 'Logo description'
|
27
|
+
help:
|
28
|
+
es: Describe el logo para usuaries no videntes y buscadores
|
29
|
+
en: |
|
30
|
+
Describe the logo for blind or partially sighted users and
|
31
|
+
search engines
|
32
|
+
content:
|
33
|
+
type: 'content'
|
34
|
+
label:
|
35
|
+
es: 'Acerca del proyecto, historia, etc.'
|
36
|
+
en: 'Post content'
|
37
|
+
address:
|
38
|
+
type: 'string'
|
39
|
+
label:
|
40
|
+
es: 'La dirección postal'
|
41
|
+
en: 'Postal address'
|
42
|
+
locality:
|
43
|
+
type: 'string'
|
44
|
+
label:
|
45
|
+
es: 'Localidad'
|
46
|
+
en: 'Locality'
|
47
|
+
country:
|
48
|
+
type: 'string'
|
49
|
+
label:
|
50
|
+
es: 'País'
|
51
|
+
en: 'Country name'
|
52
|
+
social_networks:
|
53
|
+
type: 'array'
|
54
|
+
label:
|
55
|
+
es: 'Redes sociales'
|
56
|
+
en: 'Social networks'
|
57
|
+
help:
|
58
|
+
es: 'Vínculo completo a perfiles en redes sociales, por ejemplo: https://twitter.com/SuttyWeb'
|
59
|
+
en: 'Full link to social network profiles, ie. https://twitter.com/SuttyWeb'
|
60
|
+
draft:
|
61
|
+
type: 'boolean'
|
62
|
+
label:
|
63
|
+
es: 'Borrador'
|
64
|
+
en: 'Draft'
|
65
|
+
help:
|
66
|
+
es: 'Este artículo aun no está listo para publicar'
|
67
|
+
en: "This post isn't ready to be published yet"
|
68
|
+
order:
|
69
|
+
type: 'order'
|
70
|
+
label:
|
71
|
+
es: 'Orden'
|
72
|
+
en: 'Order'
|
73
|
+
help:
|
74
|
+
es: 'La posición del artículo en la lista de artículos'
|
75
|
+
en: 'The post position in the posts list'
|
76
|
+
---
|
@@ -0,0 +1,113 @@
|
|
1
|
+
---
|
2
|
+
title:
|
3
|
+
type: 'string'
|
4
|
+
required: true
|
5
|
+
label:
|
6
|
+
es: 'Título del artículo'
|
7
|
+
en: 'Post title'
|
8
|
+
help:
|
9
|
+
es: '¡Un título que invite a leer el artículo!'
|
10
|
+
en: 'A title that invites people to read the post!'
|
11
|
+
description:
|
12
|
+
type: 'text'
|
13
|
+
required: true
|
14
|
+
label:
|
15
|
+
es: 'Alerta de contenido o descripción del artículo'
|
16
|
+
en: 'Content warning or post description'
|
17
|
+
help:
|
18
|
+
es: |
|
19
|
+
Resumen del contenido del artículo, que también usarán redes
|
20
|
+
sociales y buscadores. Si el artículo trata de violencias y otros
|
21
|
+
temas sensibles, te invitamos a usar este campo como alerta de
|
22
|
+
contenido, para que las personas puedan determinar cuándo quieren
|
23
|
+
abrirlo.
|
24
|
+
en: |
|
25
|
+
Summary of the post contents, also used by social media and search
|
26
|
+
engines. If the post is about violence and other sensitive
|
27
|
+
topics, we invite you to use it as a content warning, so others
|
28
|
+
can decide when they want to read it.
|
29
|
+
author:
|
30
|
+
type: 'array'
|
31
|
+
label:
|
32
|
+
es: 'Autores'
|
33
|
+
en: 'Authors'
|
34
|
+
help:
|
35
|
+
es: 'Quiénes participaron en la escritura de este artículo'
|
36
|
+
en: 'Who collaborated in write this post'
|
37
|
+
image:
|
38
|
+
type: 'image'
|
39
|
+
path:
|
40
|
+
label:
|
41
|
+
es: 'Imagen principal'
|
42
|
+
en: 'Main image'
|
43
|
+
help:
|
44
|
+
es: |
|
45
|
+
Se utiliza para ilustrar el artículo y como previsualización en
|
46
|
+
las redes sociales.
|
47
|
+
en: |
|
48
|
+
It's used to illustrate the article and as preview in social
|
49
|
+
networks.
|
50
|
+
description:
|
51
|
+
label:
|
52
|
+
es: 'Descripción de la imagen principal'
|
53
|
+
en: 'Main image description'
|
54
|
+
help:
|
55
|
+
es: |
|
56
|
+
Describe la imagen principal para usuaries no videntes y
|
57
|
+
buscadores
|
58
|
+
en: |
|
59
|
+
Describe the main image for blind or partially sighted users and
|
60
|
+
search engines
|
61
|
+
content:
|
62
|
+
type: 'content'
|
63
|
+
label:
|
64
|
+
es: 'Contenido del artículo'
|
65
|
+
en: 'Post content'
|
66
|
+
help:
|
67
|
+
es: 'Escribe aquí el artículo'
|
68
|
+
en: 'Write down your post'
|
69
|
+
permalink:
|
70
|
+
type: 'string'
|
71
|
+
label:
|
72
|
+
es: 'Enlace'
|
73
|
+
en: 'Permalink'
|
74
|
+
help:
|
75
|
+
es: |
|
76
|
+
Si no quieres utilizar el formato de enlaces general del sitio
|
77
|
+
para este artículo, especifica uno aquí.
|
78
|
+
en: |
|
79
|
+
If you don't want to follow the site's link format for this
|
80
|
+
post, change it here.
|
81
|
+
categories:
|
82
|
+
type: 'array'
|
83
|
+
label:
|
84
|
+
es: 'Categorías'
|
85
|
+
en: 'Categories'
|
86
|
+
help:
|
87
|
+
es: 'Ayudan a organizar los artículos en temas'
|
88
|
+
en: 'Use categories to organize posts by themes'
|
89
|
+
tags:
|
90
|
+
type: 'array'
|
91
|
+
label:
|
92
|
+
es: 'Etiquetas'
|
93
|
+
en: 'Tags'
|
94
|
+
help:
|
95
|
+
es: 'Usa etiquetas para resaltar palabras clave'
|
96
|
+
en: 'Tags are helpful as keywords'
|
97
|
+
draft:
|
98
|
+
type: 'boolean'
|
99
|
+
label:
|
100
|
+
es: 'Borrador'
|
101
|
+
en: 'Draft'
|
102
|
+
help:
|
103
|
+
es: 'Este artículo aun no está listo para publicar'
|
104
|
+
en: "This post isn't ready to be published yet"
|
105
|
+
order:
|
106
|
+
type: 'order'
|
107
|
+
label:
|
108
|
+
es: 'Orden'
|
109
|
+
en: 'Order'
|
110
|
+
help:
|
111
|
+
es: 'La posición del artículo en la lista de artículos'
|
112
|
+
en: 'The post position in the posts list'
|
113
|
+
---
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<form method="post" action="https://contact.sutty.nl/">
|
2
|
+
<input type="hidden" name="site" value="{{ site.name }}" />
|
3
|
+
<input
|
4
|
+
type="hidden"
|
5
|
+
name="redirect"
|
6
|
+
value="{{ site.url }}/{{ include.url }}?{{ site.i18n.contact.thanks }}" />
|
7
|
+
|
8
|
+
{%- for field in site.i18n.contact.form.fields -%}
|
9
|
+
<div class="form-group">
|
10
|
+
<label for="pronouns">{{ field.label }}</label>
|
11
|
+
<input
|
12
|
+
type="{{ field.type }}"
|
13
|
+
id="{{ field.name }}"
|
14
|
+
name="{{ field.name }}"
|
15
|
+
value=""
|
16
|
+
class="form-control"
|
17
|
+
autocomplete="{{ field.autocomplete }}"
|
18
|
+
placeholder="{{ field.placeholder }}" />
|
19
|
+
</div>
|
20
|
+
{%- endfor -%}
|
21
|
+
|
22
|
+
<div class="form-group">
|
23
|
+
<label for="body">{{ site.i18n.contact.form.body }}</label>
|
24
|
+
<textarea name="body" id="body" required class="form-control"></textarea>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<input type="submit" class="btn btn-success" value="{{ site.i18n.contact.form.submit }}" />
|
28
|
+
|
29
|
+
<div class="form-check form-check-inline">
|
30
|
+
<input type="checkbox" name="gdpr" id="gdpr" value="1" required class="form-check-input" />
|
31
|
+
<label class="form-check-label" for="gdpr">
|
32
|
+
{{ site.i18n.contact.form.gdpr }}
|
33
|
+
</label>
|
34
|
+
</div>
|
35
|
+
</form>
|
@@ -0,0 +1,72 @@
|
|
1
|
+
<footer>
|
2
|
+
<div class="row align-items-end">
|
3
|
+
{% comment %}
|
4
|
+
XXX: Usamos el primer artículo de tipo Editorial. Hacemos esto
|
5
|
+
porque la edición de estos datos desde Sutty solo se puede hacer
|
6
|
+
como artículos.
|
7
|
+
{% endcomment %}
|
8
|
+
{% assign editorial = site.posts | where: 'layout', 'editorial' | first %}
|
9
|
+
|
10
|
+
<div class="col h-card" itemscope itemtype="https://schema.org/Organization">
|
11
|
+
<div class="media">
|
12
|
+
<img
|
13
|
+
itemprop="logo"
|
14
|
+
class="u-photo"
|
15
|
+
src="{{ editorial.logo.path | thumbnail: 100 }}"
|
16
|
+
alt="{{ editorial.logo.description }}" />
|
17
|
+
|
18
|
+
<div class="media-body">
|
19
|
+
<h1 class="p-name" itemprop="name">{{ editorial.title }}</h1>
|
20
|
+
<p class="lead">{{ editorial.description }}</p>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div itemprop="location" itemscope itemtype="https://schema.org/PostalAddress">
|
26
|
+
{%- if editorial.address -%}
|
27
|
+
<p class="p-street-address" itemprop="streetAddress">{{ editorial.address }}</p>
|
28
|
+
{%- endif -%}
|
29
|
+
{%- if editorial.locality -%}
|
30
|
+
<p class="p-locality" itemprop="addressLocality">{{ editorial.locality }}</p>
|
31
|
+
{%- endif -%}
|
32
|
+
{%- if editorial.country -%}
|
33
|
+
<p class="p-country-name" itemprop="addressCountry">{{ editorial.country }}</p>
|
34
|
+
{%- endif -%}
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<ul>
|
38
|
+
{%- for social in editorial.social_networks -%}
|
39
|
+
<li><a rel="me" href="{{ social }}">
|
40
|
+
{% comment %}
|
41
|
+
|
42
|
+
Obtenemos la URL de la red social, eliminamos la www,
|
43
|
+
obtenemos el tercer elemento separando por / y el primero
|
44
|
+
separando por .
|
45
|
+
|
46
|
+
https://www.twitter.com/SuttyWeb
|
47
|
+
https://twitter.com/SuttyWeb
|
48
|
+
twitter.com
|
49
|
+
twitter
|
50
|
+
Twitter
|
51
|
+
{% endcomment %}
|
52
|
+
{% assign s = social | remove: 'www.' | split: '/' %}
|
53
|
+
{{ s[2] | split: '.' | first | capitalize }}
|
54
|
+
</a></li>
|
55
|
+
{%- endfor -%}
|
56
|
+
</ul>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
|
60
|
+
<div class="col text-right">
|
61
|
+
<ul class="">
|
62
|
+
{%- for link in site.i18n.footer.links %}
|
63
|
+
<li>
|
64
|
+
<a href="{{ link.url }}">{{ link.text }}</a>
|
65
|
+
</li>
|
66
|
+
{%- endfor %}
|
67
|
+
</ul>
|
68
|
+
|
69
|
+
{{ site.i18n.footer.made_with_sutty | markdownify }}
|
70
|
+
</div>
|
71
|
+
</div>
|
72
|
+
</footer>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<nav class="navbar navbar-expand-lg navbar-light bg-light d-print-block" role="navigation" aria-label="{{ site.i18n.menu.title }}">
|
2
|
+
<a class="navbar-brand" href="">
|
3
|
+
{{ site.title }}
|
4
|
+
</a>
|
5
|
+
|
6
|
+
{% comment %}
|
7
|
+
TODO: Add CSS-only hamburger menu.
|
8
|
+
{% endcomment %}
|
9
|
+
<ul class="navbar-nav d-print-none">
|
10
|
+
{%- for item in site.i18n.menu.items -%}
|
11
|
+
{% comment %}
|
12
|
+
This makes it hard to just cache the whole navbar, but we prefer
|
13
|
+
to mark the active item in code rather than with JS.
|
14
|
+
{% endcomment %}
|
15
|
+
|
16
|
+
<li class="nav-item">
|
17
|
+
<a class="nav-link{% if page.url == item.url %} active{% endif %}" href="{{ item.url }}">
|
18
|
+
{{ item.text }}
|
19
|
+
|
20
|
+
{%- if page.url == item.url -%}
|
21
|
+
<span class="sr-only">
|
22
|
+
{{ site.i18n.menu.active | default: '(current)' }}
|
23
|
+
</span>
|
24
|
+
{%- endif %}
|
25
|
+
</a>
|
26
|
+
</li>
|
27
|
+
{%- endfor -%}
|
28
|
+
</ul>
|
29
|
+
</nav>
|
data/_layouts/book.html
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<article class="h-entry" itemscope itemtype="http://schema.org/Book">
|
6
|
+
<header>
|
7
|
+
<h1 class="p-name" itemprop="name headline">{{ page.title | escape }}</h1>
|
8
|
+
|
9
|
+
{%- if page.description -%}
|
10
|
+
<p class="lead p-summary" itemprop="description">{{ page.description | escape }}</p>
|
11
|
+
{%- endif -%}
|
12
|
+
|
13
|
+
|
14
|
+
<p>
|
15
|
+
<time
|
16
|
+
class="dt-published"
|
17
|
+
datetime="{{ page.date | date_to_xmlschema }}"
|
18
|
+
itemprop="datePublished">
|
19
|
+
{%- assign date_format = site.i18n.date | default: "%b %-d, %Y" -%}
|
20
|
+
{{ page.date | date: date_format }}
|
21
|
+
</time>
|
22
|
+
|
23
|
+
{%- for author in page.author -%}
|
24
|
+
•
|
25
|
+
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
26
|
+
<span class="p-author h-card" itemprop="name">
|
27
|
+
{{ author | escape }}
|
28
|
+
</span>
|
29
|
+
</span>
|
30
|
+
{%- endfor -%}
|
31
|
+
</p>
|
32
|
+
</header>
|
33
|
+
|
34
|
+
<div class="row">
|
35
|
+
<div class="col">
|
36
|
+
{%- if page.image.path -%}
|
37
|
+
<picture>
|
38
|
+
{% for size in site.images.sizes %}
|
39
|
+
<source
|
40
|
+
srcset="{{ page.image.path | thumbnail: size }}"
|
41
|
+
media="(max-width: {{ size }}px)" />
|
42
|
+
{% endfor %}
|
43
|
+
|
44
|
+
<img
|
45
|
+
class="img-fluid"
|
46
|
+
src="{{ page.image.path | thumbnail: 570 }}"
|
47
|
+
alt="{{ page.image.description }}" />
|
48
|
+
</picture>
|
49
|
+
{%- endif -%}
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<div class="col">
|
53
|
+
{% comment %}
|
54
|
+
La disponibilidad del libro!
|
55
|
+
{% endcomment %}
|
56
|
+
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
|
57
|
+
<h2>
|
58
|
+
<span itemprop="price">{{ page.price }}</span>
|
59
|
+
<span itemprop="priceCurrency">{{ page.currency }}</span>
|
60
|
+
</h2>
|
61
|
+
|
62
|
+
<dl>
|
63
|
+
<dt>{{ site.i18n.book.availability }}</dt>
|
64
|
+
{%- if page.availability -%}
|
65
|
+
<meta itemprop="availability"
|
66
|
+
content="https://schema.org/InStock" />
|
67
|
+
<dd>{{ site.i18n.book.in_stock }}</dd>
|
68
|
+
{%- else -%}
|
69
|
+
<meta itemprop="availability"
|
70
|
+
content="https://schema.org/OutOfStock" />
|
71
|
+
<dd class="out-of-stock">
|
72
|
+
{{ site.i18n.book.out_of_stock }}
|
73
|
+
</dd>
|
74
|
+
{%- endif -%}
|
75
|
+
|
76
|
+
<dt>{{ site.i18n.book.payment_methods }}</dt>
|
77
|
+
{%- for pm in page.payment_methods -%}
|
78
|
+
<dd>{{ site.i18n.book[pm].text }}</dd>
|
79
|
+
<meta
|
80
|
+
itemprop="acceptedPaymentMethod"
|
81
|
+
content="http://purl.org/goodrelations/v1#{{ site.i18n.book[pm].schema }}" />
|
82
|
+
{%- endfor -%}
|
83
|
+
|
84
|
+
<dt>{{ site.i18n.book.delivery_methods }}</dt>
|
85
|
+
{%- for dm in page.delivery_methods -%}
|
86
|
+
<dd>{{ site.i18n.book[dm].text }}</dd>
|
87
|
+
<meta
|
88
|
+
itemprop="acceptedPaymentMethod"
|
89
|
+
content="http://purl.org/goodrelations/v1#{{ site.i18n.book[pm].schema }}" />
|
90
|
+
{%- endfor -%}
|
91
|
+
</dl>
|
92
|
+
</div>
|
93
|
+
|
94
|
+
<dl>
|
95
|
+
<dt>{{ site.i18n.book.pages }}</dt>
|
96
|
+
<dd itemprop="numberOfPages">{{ page.pages }}</dd>
|
97
|
+
|
98
|
+
<dt>{{ site.i18n.book.size }}</dt>
|
99
|
+
<dd>{{ page.size }}</dd>
|
100
|
+
</dl>
|
101
|
+
|
102
|
+
<div class="e-content" itemprop="abstract">
|
103
|
+
{{ content }}
|
104
|
+
</div>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
|
108
|
+
<div class="row">
|
109
|
+
<div class="col">
|
110
|
+
{% include contact.html url=page.url %}
|
111
|
+
</div>
|
112
|
+
</div>
|
113
|
+
|
114
|
+
<footer>
|
115
|
+
<a class="u-url" itemprop="url" href="{{ page.url }}" hidden>
|
116
|
+
{{ site.url }}/{{ page.url }}
|
117
|
+
</a>
|
118
|
+
|
119
|
+
{%- if page.uuid -%}
|
120
|
+
<span hidden itemprop="identifier">{{ page.uuid }}</span>
|
121
|
+
{%- endif -%}
|
122
|
+
|
123
|
+
{%- if page.license.url -%}
|
124
|
+
<p itemprop="license" itemtype="http://schema.org/CreativeWork">
|
125
|
+
<a rel="license" itemprop="url" href="{{ page.license.url }}">
|
126
|
+
<span itemprop="articleBody">
|
127
|
+
{{ page.license.description }}
|
128
|
+
</span>
|
129
|
+
</a>
|
130
|
+
</p>
|
131
|
+
{%- endif -%}
|
132
|
+
|
133
|
+
{%- if page.tags %}
|
134
|
+
<span itemprop="keywords" hidden>{{ page.tags | join: ', ' }}</span>
|
135
|
+
{%- for tag in page.tags -%}
|
136
|
+
<span hidden class="h-category">{{ tag }}</span>
|
137
|
+
{%- endfor -%}
|
138
|
+
{%- endif -%}
|
139
|
+
</footer>
|
140
|
+
</article>
|