recursero-jekyll-theme 0.1.0

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.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +168 -0
  3. data/README.md +113 -0
  4. data/_data/en.yml +38 -0
  5. data/_data/es.yml +49 -0
  6. data/_data/forms/contacto.yml +40 -0
  7. data/_data/layouts/about.yml +109 -0
  8. data/_data/layouts/category.yml +106 -0
  9. data/_data/layouts/page.yml +124 -0
  10. data/_data/layouts/place.yml +186 -0
  11. data/_data/layouts/post.yml +124 -0
  12. data/_includes/boolean.html +30 -0
  13. data/_includes/burger.svg +1 -0
  14. data/_includes/contact.html +19 -0
  15. data/_includes/content.html +1 -0
  16. data/_includes/email.html +1 -0
  17. data/_includes/file.html +35 -0
  18. data/_includes/footer.html +14 -0
  19. data/_includes/form/boolean.html +1 -0
  20. data/_includes/form/content.html +1 -0
  21. data/_includes/form/email.html +1 -0
  22. data/_includes/form/file.html +1 -0
  23. data/_includes/form/hidden.html +1 -0
  24. data/_includes/form/image.html +1 -0
  25. data/_includes/form/input.html +1 -0
  26. data/_includes/form/markdown_content.html +1 -0
  27. data/_includes/form/number.html +1 -0
  28. data/_includes/form/predefined_array.html +1 -0
  29. data/_includes/form/section.html +1 -0
  30. data/_includes/form/separator.html +1 -0
  31. data/_includes/form/string.html +1 -0
  32. data/_includes/form/submit.html +1 -0
  33. data/_includes/form/tel.html +1 -0
  34. data/_includes/form/text.html +1 -0
  35. data/_includes/form/url.html +1 -0
  36. data/_includes/hidden.html +5 -0
  37. data/_includes/image.html +32 -0
  38. data/_includes/input.html +33 -0
  39. data/_includes/logo.svg +5 -0
  40. data/_includes/markdown_content.html +1 -0
  41. data/_includes/navbar.html +53 -0
  42. data/_includes/number.html +1 -0
  43. data/_includes/predefined_array.html +39 -0
  44. data/_includes/search.html +15 -0
  45. data/_includes/section.html +1 -0
  46. data/_includes/separator.html +1 -0
  47. data/_includes/share.html +21 -0
  48. data/_includes/share_box.html +16 -0
  49. data/_includes/string.html +3 -0
  50. data/_includes/submit.html +1 -0
  51. data/_includes/tel.html +1 -0
  52. data/_includes/text.html +32 -0
  53. data/_includes/url.html +1 -0
  54. data/_includes/x.svg +1 -0
  55. data/_layouts/about.html +71 -0
  56. data/_layouts/archive.html +21 -0
  57. data/_layouts/category.html +70 -0
  58. data/_layouts/default.html +28 -0
  59. data/_layouts/home.html +23 -0
  60. data/_layouts/page.html +71 -0
  61. data/_layouts/place.html +133 -0
  62. data/_layouts/post.html +84 -0
  63. data/_sass/accessibility.scss +13 -0
  64. data/_sass/embed.scss +5 -0
  65. data/_sass/helpers.scss +54 -0
  66. data/_sass/navbar.scss +56 -0
  67. data/_sass/share.html +12 -0
  68. data/_sass/share_box.html +16 -0
  69. data/_sass/share_box.scss +26 -0
  70. data/_sass/toggler.scss +39 -0
  71. data/assets/css/styles.scss +42 -0
  72. data/assets/css/styles.scss.orig +45 -0
  73. data/assets/fonts/forkawesome-webfont.woff2 +0 -0
  74. data/assets/js/entry.js +8 -0
  75. data/assets/js/script.js +65 -0
  76. data/assets/js/script.js.orig +72 -0
  77. data/assets/js/search.js +3 -0
  78. data/assets/templates/result.html +9 -0
  79. metadata +400 -0
@@ -0,0 +1,30 @@
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-check text-left">
8
+ <input
9
+ {% if help %}
10
+ aria-describedby="help-{{ id }}"
11
+ {% endif %}
12
+ {% if include.field[1].required %}
13
+ required
14
+ {% endif %}
15
+ type="checkbox"
16
+ name="{{ name }}"
17
+ id="{{ id }}"
18
+ {% if autocomplete %}
19
+ autocomplete="{{ autocomplete }}"
20
+ {% endif %}
21
+ class="form-check-input" />
22
+
23
+ <label class="form-check-label" for="{{ id }}">{{ label }}</label>
24
+
25
+ {%- if help -%}
26
+ <small id="help-{{ id }}" class="form-text">
27
+ {{ help }}
28
+ </small>
29
+ {%- endif -%}
30
+ </div>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 7.9373541 7.937774"><path stroke-miterlimit="10" stroke-width="0.52917" stroke="#000000" fill="none" d="M 0,1.0861064 H 7.937774 M 0,3.9685489 H 7.937774 M 0,6.8516676 h 7.937774" /></svg>
@@ -0,0 +1,19 @@
1
+ {% comment %}
2
+ Esta imagen obtiene una cookie desde la API de Sutty para autorizar el
3
+ envío del formulario.
4
+ {% endcomment %}
5
+ <img class="d-none" src="https://api.sutty.nl/v1/sites/{{ site.hostname }}/contact/cookie.png" />
6
+
7
+ {% comment %}
8
+ El formulario se envía a la API. La definición del formulario se
9
+ encuentra en _data/forms/contacto.yml
10
+ {% endcomment %}
11
+ <form action="https://api.sutty.nl/v1/sites/{{ site.hostname }}/contact/contacto"
12
+ method="post">
13
+ {%- for field in include.form -%}
14
+ {% assign template = field[1].type | append: '.html' %}
15
+ <div class="col{{ field[1].col | default: 12 | prepend: '-' }}">
16
+ {% include {{ template }} field=field %}
17
+ </div>
18
+ {%- endfor -%}
19
+ </form>
@@ -0,0 +1 @@
1
+ {% include text.html field=field %}
@@ -0,0 +1 @@
1
+ {% include input.html field=field %}
@@ -0,0 +1,35 @@
1
+ {%- assign name = include.field[0] -%}
2
+ {%- assign id = include.field[1].id | default: name -%}
3
+ {%- assign label = include.field[1]['path'].label[site.locale] -%}
4
+ {%- assign help = include.field[1]['path'].help[site.locale] -%}
5
+ {%- assign accept = include.field[1].accept -%}
6
+
7
+ <label>{{ label }}</label>
8
+
9
+ <div class="custom-file">
10
+ <input
11
+ {% if help %}
12
+ aria-describedby="help-{{ id }}"
13
+ {% endif %}
14
+ {% if include.field[1].required %}
15
+ required
16
+ {% endif %}
17
+ type="{{ include.field[1].type }}"
18
+ name="{{ name }}[path]"
19
+ id="{{ id }}_path"
20
+ {% if accept %}
21
+ accept="{{ accept }}"
22
+ {% endif %}
23
+ class="custom-file-input" />
24
+
25
+ <label for="{{ id }}_path" class="custom-file-label">
26
+ {{ label }}
27
+ {% if include.field[1].required %}*{% endif %}
28
+ </label>
29
+
30
+ {%- if help -%}
31
+ <small id="help-{{ id }}" class="form-text">
32
+ {{ help }}
33
+ </small>
34
+ {%- endif -%}
35
+ </div>
@@ -0,0 +1,14 @@
1
+ {%- assign about = site.posts | find: 'layout', 'about' -%}
2
+ <footer class="d-flex align-items-center justify-content-center mt-5 pt-3 pb-3 background-gray-dark">
3
+ {%- if about.email -%}
4
+ <a class="gray" href="mailto:{{ about.email }}" rel="me" title="{{ site.title }}">{{ about.email }}</a>
5
+ {%- endif -%}
6
+
7
+ {%- for network in about.social_networks -%}
8
+ {%- assign n = network | social_network -%}
9
+ <a class="gray" href="{{ n.url }}" rel="me" target="_blank" title="{{ n.name | capitalize }}">
10
+ <i class="fa fa-fw fa-lg fa-{{ n.name }}"></i>
11
+ <span class="sr-only">{{ n.name }}</span>
12
+ </a>
13
+ {%- endfor -%}
14
+ </footer>
@@ -0,0 +1 @@
1
+ ../boolean.html
@@ -0,0 +1 @@
1
+ ../content.html
@@ -0,0 +1 @@
1
+ ../email.html
@@ -0,0 +1 @@
1
+ ../file.html
@@ -0,0 +1 @@
1
+ ../hidden.html
@@ -0,0 +1 @@
1
+ ../image.html
@@ -0,0 +1 @@
1
+ ../input.html
@@ -0,0 +1 @@
1
+ ../markdown_content.html
@@ -0,0 +1 @@
1
+ ../number.html
@@ -0,0 +1 @@
1
+ ../predefined_array.html
@@ -0,0 +1 @@
1
+ ../section.html
@@ -0,0 +1 @@
1
+ ../separator.html
@@ -0,0 +1 @@
1
+ ../string.html
@@ -0,0 +1 @@
1
+ ../submit.html
@@ -0,0 +1 @@
1
+ ../tel.html
@@ -0,0 +1 @@
1
+ ../text.html
@@ -0,0 +1 @@
1
+ ../url.html
@@ -0,0 +1,5 @@
1
+ {%- assign name = include.field[0] -%}
2
+ {%- assign id = include.field[1].id | default: name -%}
3
+ {%- assign value = include.field[1].value -%}
4
+
5
+ <input type="hidden" value="{{ value }}" name="{{ name }}" id="{{ id }}" />
@@ -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]['path'].label[site.locale] -%}
4
+ {%- assign help = include.field[1]['path'].help[site.locale] -%}
5
+
6
+ <label>{{ label }}</label>
7
+
8
+ <div class="custom-file">
9
+ <input
10
+ {% if help %}
11
+ aria-describedby="help-{{ id }}"
12
+ {% endif %}
13
+ {% if include.field[1].required %}
14
+ required
15
+ {% endif %}
16
+ type="{{ include.field[1].type }}"
17
+ name="{{ name }}[path]"
18
+ id="{{ id }}_path"
19
+ accept="image/*"
20
+ class="custom-file-input" />
21
+
22
+ <label for="{{ id }}_path" class="custom-file-label">
23
+ {{ label }}
24
+ {% if include.field[1].required %}*{% endif %}
25
+ </label>
26
+
27
+ {%- if help -%}
28
+ <small id="help-{{ id }}" class="form-text">
29
+ {{ help }}
30
+ </small>
31
+ {%- endif -%}
32
+ </div>
@@ -0,0 +1,33 @@
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
+ <input
14
+ {% if help %}
15
+ aria-describedby="help-{{ id }}"
16
+ {% endif %}
17
+ {% if include.field[1].required %}
18
+ required
19
+ {% endif %}
20
+ type="{{ include.field[1].type }}"
21
+ name="{{ name }}"
22
+ id="{{ id }}"
23
+ {% if autocomplete %}
24
+ autocomplete="{{ autocomplete }}"
25
+ {% endif %}
26
+ class="form-control" />
27
+
28
+ {%- if help -%}
29
+ <small id="help-{{ id }}" class="form-text">
30
+ {{ help }}
31
+ </small>
32
+ {%- endif -%}
33
+ </div>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13.662 9.912" aria-labelledby="title desc">
2
+ <title id="title">{{ site.i18n.logo.title | escape }}</title>
3
+ <desc id="desc">{{ site.i18n.logo.desc | escape }}</desc>
4
+ <path d="M.342 3.416c2.472.614 2.823 6.066 6.839 6.157 5.597.126 3.556-8.329.02-7.886-3.922.49-.351 9.137 4.212 5.28 1.717-1.451 3-5.927.555-6.628" stroke-miterlimit="10" fill="none" stroke="#fff" stroke-width=".675" stroke-linecap="round"/>
5
+ </svg>
@@ -0,0 +1 @@
1
+ {% include text.html field=field %}
@@ -0,0 +1,53 @@
1
+ {%- assign menu = site.posts | where: 'layout', 'about' | where: 'menu', true -%}
2
+
3
+ <nav class="navbar navbar-expand-lg d-print-block navbar-light" role="navigation" aria-label="{{ site.i18n.menu.title }}">
4
+ <a class="navbar-brand" href="">
5
+ <img src="{{ menu[0].logo.path | thumbnail: nil, 60 }}" alt="Logo"/>
6
+ </a>
7
+
8
+ {% comment %}
9
+ TODO: Add CSS-only hamburger menu.
10
+ {% endcomment %}
11
+ <input
12
+ type="checkbox"
13
+ id="menu-toggler"
14
+ aria-label="{{ site.i18n.menu.action }}"
15
+ aria-labelledby="menu-label"
16
+ class="toggler"/>
17
+ <label
18
+ for="menu-toggler"
19
+ id="menu-label"
20
+ class="w-lg-100 m-0 p-0 d-print-none"
21
+ aria-controls="menu"
22
+ aria-label="{{ site.i18n.menu.title }}">
23
+ <div class="d-block d-lg-none">
24
+ <div class="icon-open">
25
+ {% include burger.svg %}
26
+ </div>
27
+ <div class="icon-close">
28
+ {% include x.svg %}
29
+ </div>
30
+ </div>
31
+
32
+ <ul class="toggled navbar-nav">
33
+ {%- for item in menu -%}
34
+ {% comment %}
35
+ This makes it hard to just cache the whole navbar, but we prefer
36
+ to mark the active item in code rather than with JS.
37
+ {% endcomment %}
38
+
39
+ <li class="nav-item">
40
+ <a class="nav-link{% if page.url == item.url %} active{% endif %}" href="{{ item.url }}">
41
+ {{ item.title }}
42
+
43
+ {%- if page.url == item.url -%}
44
+ <span class="sr-only">
45
+ {{ site.i18n.menu.active | default: '(current)' }}
46
+ </span>
47
+ {%- endif -%}
48
+ </a>
49
+ </li>
50
+ {%- endfor -%}
51
+ </ul>
52
+ </label>
53
+ </nav>
@@ -0,0 +1 @@
1
+ {% include input.html field=field %}
@@ -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,15 @@
1
+ {%- comment -%}
2
+ Encabezado con buscador
3
+ {%- endcomment -%}
4
+ <section id="{{ site.i18n.search.id }}">
5
+ <div class="jumbotron">
6
+ <form method="get" class="search" action="{{ site.i18n.search.url }}">
7
+ <div class="form-group">
8
+ <label for="search" class="sr-only">{{ site.i18n.search.placeholder }}</label>
9
+ <input class="form-control form-control-lg" autocomplete="off" type="search" name="q" placeholder="{{ site.i18n.search.placeholder }}" />
10
+ </div>
11
+
12
+ <input type="submit" value="{{ site.i18n.search.submit }}" class="sr-only" />
13
+ </form>
14
+ </div>
15
+ </section>
@@ -0,0 +1 @@
1
+ <h2 id="{{ include.field[0] }}">{{ include.field[1].title }}</h2>
@@ -0,0 +1 @@
1
+ <hr/>
@@ -0,0 +1,21 @@
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
+
9
+ <a
10
+ {% if include.share.url == '%url' %}
11
+ download
12
+ {% else %}
13
+ target="_blank"
14
+ {% endif %}
15
+ rel="nofollow"
16
+ title="{{ include.share.title }}"
17
+ class="d-flex flex-column align-items-center p-3"
18
+ href="{{ include.share.url | replace: '%url', url | replace: '%title', title | replace: '%description', description }}">
19
+ <i class="fa fa-fw fa-2x fa-{{ include.share.icon }}"></i>
20
+ <span>{{ include.share.title }}</span>
21
+ </a>
@@ -0,0 +1,16 @@
1
+ <input type="checkbox" id="share" class="toggler" autocomplete="off" />
2
+
3
+ <label class="share btn border btn-block" for="share">
4
+ {{ site.i18n.share.text }}
5
+ <i class="fa fa-{{ site.i18n.share.icon }}"></i>
6
+
7
+ <div class="share-box toggled d-flex align-items-center justify-content-center">
8
+ <div class="box background-white color-redpink row no-gutters align-items-center justify-content-center p-3">
9
+ {% for share in site.i18n.share.items %}
10
+ <div class="col-4">
11
+ {% include_cached share.html share=share url=include.url title=include.title description=include.description %}
12
+ </div>
13
+ {% endfor %}
14
+ </div>
15
+ </div>
16
+ </label>
@@ -0,0 +1,3 @@
1
+ {% assign f = field %}
2
+ {% assign f.type = 'text' %}
3
+ {% include input.html field=f %}
@@ -0,0 +1 @@
1
+ <input type="submit" class="btn btn-success" value="{{ include.field[1].label[site.locale] }}" />
@@ -0,0 +1 @@
1
+ {% include input.html field=field %}
@@ -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
+ {% if include.field[1].required %}*{% endif %}
10
+ {{ label }}
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>