recursero-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 +113 -0
- data/_data/en.yml +38 -0
- data/_data/es.yml +49 -0
- data/_data/forms/contacto.yml +40 -0
- data/_data/layouts/about.yml +109 -0
- data/_data/layouts/category.yml +106 -0
- data/_data/layouts/page.yml +124 -0
- data/_data/layouts/place.yml +186 -0
- data/_data/layouts/post.yml +124 -0
- data/_includes/boolean.html +30 -0
- data/_includes/burger.svg +1 -0
- data/_includes/contact.html +19 -0
- data/_includes/content.html +1 -0
- data/_includes/email.html +1 -0
- data/_includes/file.html +35 -0
- data/_includes/footer.html +14 -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 +33 -0
- data/_includes/logo.svg +5 -0
- data/_includes/markdown_content.html +1 -0
- data/_includes/navbar.html +53 -0
- data/_includes/number.html +1 -0
- data/_includes/predefined_array.html +39 -0
- data/_includes/search.html +15 -0
- data/_includes/section.html +1 -0
- data/_includes/separator.html +1 -0
- data/_includes/share.html +21 -0
- data/_includes/share_box.html +16 -0
- data/_includes/string.html +3 -0
- data/_includes/submit.html +1 -0
- data/_includes/tel.html +1 -0
- data/_includes/text.html +32 -0
- data/_includes/url.html +1 -0
- data/_includes/x.svg +1 -0
- data/_layouts/about.html +71 -0
- data/_layouts/archive.html +21 -0
- data/_layouts/category.html +70 -0
- data/_layouts/default.html +28 -0
- data/_layouts/home.html +23 -0
- data/_layouts/page.html +71 -0
- data/_layouts/place.html +133 -0
- data/_layouts/post.html +84 -0
- data/_sass/accessibility.scss +13 -0
- data/_sass/embed.scss +5 -0
- data/_sass/helpers.scss +54 -0
- data/_sass/navbar.scss +56 -0
- data/_sass/share.html +12 -0
- data/_sass/share_box.html +16 -0
- data/_sass/share_box.scss +26 -0
- data/_sass/toggler.scss +39 -0
- data/assets/css/styles.scss +42 -0
- data/assets/css/styles.scss.orig +45 -0
- data/assets/fonts/forkawesome-webfont.woff2 +0 -0
- data/assets/js/entry.js +8 -0
- data/assets/js/script.js +65 -0
- data/assets/js/script.js.orig +72 -0
- data/assets/js/search.js +3 -0
- data/assets/templates/result.html +9 -0
- metadata +400 -0
data/_sass/embed.scss
ADDED
data/_sass/helpers.scss
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
$bezier: cubic-bezier(0.75, 0, 0.25, 1);
|
2
|
+
|
3
|
+
/*
|
4
|
+
* Crea una propiedad con prefijos de navegador
|
5
|
+
*/
|
6
|
+
$vendor-prefixes: ("", "-webkit-", "-ms-", "-o-", "-moz-");
|
7
|
+
@mixin vendor-prefix($property, $definition...) {
|
8
|
+
@each $prefix in $vendor-prefixes {
|
9
|
+
#{$prefix}$property: $definition;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
/*
|
14
|
+
* Crea clases para asignar colores según la lista de colores.
|
15
|
+
*/
|
16
|
+
@each $color, $_ in $colors {
|
17
|
+
.background-#{$color} {
|
18
|
+
background-color: var(--#{$color});
|
19
|
+
}
|
20
|
+
|
21
|
+
.#{$color} {
|
22
|
+
color: var(--#{$color});
|
23
|
+
|
24
|
+
::-moz-selection,
|
25
|
+
::selection {
|
26
|
+
background: var(--#{$color});
|
27
|
+
color: white;
|
28
|
+
}
|
29
|
+
|
30
|
+
svg {
|
31
|
+
* {
|
32
|
+
fill: var(--#{$color});
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
.form-control {
|
37
|
+
border-color: var(--#{$color});
|
38
|
+
}
|
39
|
+
|
40
|
+
.btn {
|
41
|
+
background-color: var(--#{$color});
|
42
|
+
color: white;
|
43
|
+
border-color: var(--#{$color});
|
44
|
+
}
|
45
|
+
|
46
|
+
hr {
|
47
|
+
border-color: var(--#{$color});
|
48
|
+
}
|
49
|
+
|
50
|
+
a {
|
51
|
+
color: var(--#{$color});
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
data/_sass/navbar.scss
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
.navbar {
|
2
|
+
.navbar-brand {
|
3
|
+
svg {
|
4
|
+
height: 30px;
|
5
|
+
}
|
6
|
+
}
|
7
|
+
|
8
|
+
.toggler {
|
9
|
+
& + label {
|
10
|
+
.icon-open {
|
11
|
+
display: block;
|
12
|
+
}
|
13
|
+
|
14
|
+
.icon-close {
|
15
|
+
display: none;
|
16
|
+
}
|
17
|
+
|
18
|
+
@include media-breakpoint-down('md') {
|
19
|
+
.toggled {
|
20
|
+
display: none;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
@include media-breakpoint-up('md') {
|
25
|
+
.toggled {
|
26
|
+
visibility: visible !important;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
&:checked + label {
|
32
|
+
@include media-breakpoint-down('md') {
|
33
|
+
z-index: 2;
|
34
|
+
width: 100vw;
|
35
|
+
height: 100vh;
|
36
|
+
position: fixed;
|
37
|
+
top: 0;
|
38
|
+
left: 0;
|
39
|
+
background-color: white;
|
40
|
+
|
41
|
+
.icon-open {
|
42
|
+
display: none;
|
43
|
+
}
|
44
|
+
|
45
|
+
.icon-close {
|
46
|
+
display: block;
|
47
|
+
}
|
48
|
+
|
49
|
+
.toggled {
|
50
|
+
display: block !important;
|
51
|
+
z-index: 1;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
data/_sass/share.html
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
{% assign url = site.url | append: include.url | uri_escape %}
|
2
|
+
{% assign title = include.title | default: site.title | uri_escape %}
|
3
|
+
{% assign description = include.description | default: '' | uri_escape %}
|
4
|
+
|
5
|
+
<a
|
6
|
+
target="_blank"
|
7
|
+
title="{{ include.share.title }}"
|
8
|
+
class="d-flex flex-column align-items-center p-3"
|
9
|
+
href="{{ include.share.url | replace: '%url', url | replace: '%title', title | replace: '%description', description }}">
|
10
|
+
<i class="fa fa-fw fa-2x fa-{{ include.share.icon }}"></i>
|
11
|
+
<span>{{ include.share.title }}</span>
|
12
|
+
</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,26 @@
|
|
1
|
+
input[type="checkbox"].toggler {
|
2
|
+
&:focus + label {
|
3
|
+
outline: none;
|
4
|
+
}
|
5
|
+
}
|
6
|
+
|
7
|
+
.share-box {
|
8
|
+
position: fixed;
|
9
|
+
top: 0;
|
10
|
+
left: 0;
|
11
|
+
width: 100vw;
|
12
|
+
height: 100vh;
|
13
|
+
background-color: rgba(0,0,0,.5);
|
14
|
+
|
15
|
+
@include vendor-prefix(transition, all 0.2s $bezier);
|
16
|
+
|
17
|
+
a {
|
18
|
+
border: $border-width solid transparent;
|
19
|
+
|
20
|
+
&:focus,
|
21
|
+
&:hover {
|
22
|
+
text-decoration: none;
|
23
|
+
border: $border-width solid $border-color;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
data/_sass/toggler.scss
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
/*
|
2
|
+
* Desplegar menúes sin javascript!
|
3
|
+
*
|
4
|
+
* Inspirado en https://dev.to/cydstumpel/creating-a-fold-out-navigation-with-css-only-4g9k
|
5
|
+
*/
|
6
|
+
|
7
|
+
// Comenzamos con un input checkbox con la clase toggler
|
8
|
+
input[type="checkbox"].toggler {
|
9
|
+
// Lo ocultamos pero todavía queremos que se le pueda dar foco con el
|
10
|
+
// teclado
|
11
|
+
opacity: 0;
|
12
|
+
position: absolute;
|
13
|
+
|
14
|
+
// Ocultamos el elemento colapsable
|
15
|
+
& + label {
|
16
|
+
.toggled {
|
17
|
+
z-index: 10;
|
18
|
+
visibility: hidden;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
// Al tildar el input, mostramos el elemento
|
23
|
+
&:checked + label {
|
24
|
+
.toggled {
|
25
|
+
visibility: visible;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
& + label {
|
30
|
+
border: none;
|
31
|
+
outline: none;
|
32
|
+
z-index: 11;
|
33
|
+
}
|
34
|
+
|
35
|
+
// Dar una guía visual de que estamos enfocando el input
|
36
|
+
&:focus + label {
|
37
|
+
outline: 1px dotted grey ;
|
38
|
+
}
|
39
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
# Ponemos un frontmatter porque queremos que Jekyll procese este archivo
|
3
|
+
---
|
4
|
+
|
5
|
+
$navbar-height: 86px;
|
6
|
+
$enable-rounded: false;
|
7
|
+
$theme-colors: (
|
8
|
+
"recursero": mediumorchid
|
9
|
+
);
|
10
|
+
|
11
|
+
/*
|
12
|
+
* XXX: Solo importar los archivos necesarios de bootstrap para
|
13
|
+
* facilitar la reducción de CSS. Por ahora pedimos todo para poder
|
14
|
+
* empezar a trabajar en el HTML sin pensar en CSS.
|
15
|
+
*
|
16
|
+
* Los archivos se encuentran en node_modules/bootstrap/scss
|
17
|
+
*/
|
18
|
+
@import "bootstrap/scss/bootstrap";
|
19
|
+
@import "fork-awesome/scss/fork-awesome";
|
20
|
+
@import "accessibility";
|
21
|
+
@import "helpers";
|
22
|
+
@import "toggler";
|
23
|
+
@import "share_box";
|
24
|
+
@import "navbar";
|
25
|
+
@import "embed";
|
26
|
+
|
27
|
+
.navbar {
|
28
|
+
margin-bottom: -$navbar-height; /* El alto del navbar */
|
29
|
+
}
|
30
|
+
|
31
|
+
.jumbotron {
|
32
|
+
background: #ffc0cb;
|
33
|
+
background: linear-gradient(135deg,#ffc0cb -10%, #ffffff 50%, #00ffff 110%);
|
34
|
+
background: -webkit-linear-gradient(135deg,#ffc0cb -10%, #ffffff 50%, #00ffff 110%);
|
35
|
+
background: -moz-linear-gradient(135deg,#ffc0cb -10%, #ffffff 50%, #00ffff 110%);
|
36
|
+
|
37
|
+
/* Tomar en cuenta el alto del navbar */
|
38
|
+
padding-top: calc(#{$jumbotron-padding} + #{$navbar-height});
|
39
|
+
@include media-breakpoint-up(sm) {
|
40
|
+
padding-top: calc(#{($jumbotron-padding * 2)} + #{$navbar-height});
|
41
|
+
}
|
42
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
---
|
2
|
+
# Ponemos un frontmatter porque queremos que Jekyll procese este archivo
|
3
|
+
---
|
4
|
+
|
5
|
+
$navbar-height: 86px;
|
6
|
+
$enable-rounded: false;
|
7
|
+
$theme-colors: (
|
8
|
+
"recursero": mediumorchid
|
9
|
+
);
|
10
|
+
|
11
|
+
/*
|
12
|
+
* XXX: Solo importar los archivos necesarios de bootstrap para
|
13
|
+
* facilitar la reducción de CSS. Por ahora pedimos todo para poder
|
14
|
+
* empezar a trabajar en el HTML sin pensar en CSS.
|
15
|
+
*
|
16
|
+
* Los archivos se encuentran en node_modules/bootstrap/scss
|
17
|
+
*/
|
18
|
+
@import "bootstrap/scss/bootstrap";
|
19
|
+
@import "fork-awesome/scss/fork-awesome";
|
20
|
+
@import "accessibility";
|
21
|
+
@import "helpers";
|
22
|
+
@import "toggler";
|
23
|
+
@import "share_box";
|
24
|
+
<<<<<<< HEAD
|
25
|
+
@import "navbar";
|
26
|
+
|
27
|
+
.navbar {
|
28
|
+
margin-bottom: -$navbar-height; /* El alto del navbar */
|
29
|
+
}
|
30
|
+
|
31
|
+
.jumbotron {
|
32
|
+
background: #ffc0cb;
|
33
|
+
background: linear-gradient(135deg,#ffc0cb -10%, #ffffff 50%, #00ffff 110%);
|
34
|
+
background: -webkit-linear-gradient(135deg,#ffc0cb -10%, #ffffff 50%, #00ffff 110%);
|
35
|
+
background: -moz-linear-gradient(135deg,#ffc0cb -10%, #ffffff 50%, #00ffff 110%);
|
36
|
+
|
37
|
+
/* Tomar en cuenta el alto del navbar */
|
38
|
+
padding-top: calc(#{$jumbotron-padding} + #{$navbar-height});
|
39
|
+
@include media-breakpoint-up(sm) {
|
40
|
+
padding-top: calc(#{($jumbotron-padding * 2)} + #{$navbar-height});
|
41
|
+
}
|
42
|
+
}
|
43
|
+
=======
|
44
|
+
@import "embed";
|
45
|
+
>>>>>>> ae133915c865b686fcb7071e1cd2c8c580cb3b8c
|
Binary file
|
data/assets/js/entry.js
ADDED
data/assets/js/script.js
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
|
4
|
+
{% node_module lunr/lunr.js %}
|
5
|
+
{% node_module lunr-languages/min/lunr.stemmer.support.min.js %}
|
6
|
+
{% node_module lunr-languages/min/lunr.es.min.js %}
|
7
|
+
{% node_module liquidjs/dist/liquid.browser.min.js %}
|
8
|
+
|
9
|
+
const loadEvent = () => {
|
10
|
+
try {
|
11
|
+
if (Turbolinks) return 'turbolinks:load'
|
12
|
+
} catch {
|
13
|
+
return 'DOMContentLoaded'
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
const renderer = new window.liquidjs.Liquid();
|
18
|
+
|
19
|
+
/*
|
20
|
+
* Buscar y mostrar los resultados
|
21
|
+
*/
|
22
|
+
const q = (_q) => {
|
23
|
+
if (!_q || _q === '') return;
|
24
|
+
|
25
|
+
const _results = document.querySelector('main');
|
26
|
+
|
27
|
+
document.querySelector('form.search')
|
28
|
+
.querySelector('input[name=q]')
|
29
|
+
.value = _q;
|
30
|
+
|
31
|
+
renderer.parseAndRender(
|
32
|
+
window.template,
|
33
|
+
{ results: window.index.search(`${_q}~2`).map(r => window.data.find(a => a.id == r.ref)) })
|
34
|
+
.then(html => _results.innerHTML = html);
|
35
|
+
}
|
36
|
+
|
37
|
+
document.addEventListener(loadEvent(), () => {
|
38
|
+
/*
|
39
|
+
* Solo descargar los datos de búsqueda una vez
|
40
|
+
*/
|
41
|
+
if (!window.data) {
|
42
|
+
fetch('data.json').then(res => {
|
43
|
+
res.json().then(data => window.data = data);
|
44
|
+
fetch('results.liquid').then(r => r.text()).then(t => window.template = t);
|
45
|
+
fetch('idx.json').then(res => res.json()).then(idx => window.index = lunr.Index.load(idx));
|
46
|
+
});
|
47
|
+
}
|
48
|
+
|
49
|
+
/*
|
50
|
+
* Buscar
|
51
|
+
*/
|
52
|
+
document.querySelectorAll('form.search').forEach(form => {
|
53
|
+
form.addEventListener('submit', event => {
|
54
|
+
event.preventDefault();
|
55
|
+
event.stopPropagation();
|
56
|
+
|
57
|
+
q(form.querySelector('input[name=q]').value);
|
58
|
+
});
|
59
|
+
});
|
60
|
+
|
61
|
+
document.querySelectorAll("a[href^='http://'],a[href^='https://'],a[href^='//']").forEach(a => {
|
62
|
+
a.rel = "noopener";
|
63
|
+
a.target = "_blank";
|
64
|
+
});
|
65
|
+
});
|
@@ -0,0 +1,72 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
|
4
|
+
<<<<<<< HEAD
|
5
|
+
{% node_module lunr/lunr.js %}
|
6
|
+
{% node_module lunr-languages/min/lunr.stemmer.support.min.js %}
|
7
|
+
{% node_module lunr-languages/min/lunr.es.min.js %}
|
8
|
+
{% node_module liquidjs/dist/liquid.browser.min.js %}
|
9
|
+
=======
|
10
|
+
const loadEvent = () => {
|
11
|
+
try {
|
12
|
+
if (Turbolinks) return 'turbolinks:load'
|
13
|
+
} catch {
|
14
|
+
return 'DOMContentLoaded'
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
document.addEventListener(loadEvent(), () => {
|
19
|
+
document.querySelectorAll('.share').forEach(share => {
|
20
|
+
share.addEventListener('click', event => {
|
21
|
+
if (!Navigator.share) return;
|
22
|
+
>>>>>>> ae133915c865b686fcb7071e1cd2c8c580cb3b8c
|
23
|
+
|
24
|
+
const renderer = new window.liquidjs.Liquid();
|
25
|
+
|
26
|
+
/*
|
27
|
+
* Buscar y mostrar los resultados
|
28
|
+
*/
|
29
|
+
const q = (_q) => {
|
30
|
+
if (!_q || _q === '') return;
|
31
|
+
|
32
|
+
const _results = document.querySelector('main');
|
33
|
+
|
34
|
+
document.querySelector('form.search')
|
35
|
+
.querySelector('input[name=q]')
|
36
|
+
.value = _q;
|
37
|
+
|
38
|
+
renderer.parseAndRender(
|
39
|
+
window.template,
|
40
|
+
{ results: window.index.search(`${_q}~2`).map(r => window.data.find(a => a.id == r.ref)) })
|
41
|
+
.then(html => _results.innerHTML = html);
|
42
|
+
}
|
43
|
+
|
44
|
+
document.addEventListener('{%- if site.turbolinks.enabled -%}turbolinks:load{%- else -%}DOMContentLoaded{%- endif -%}', () => {
|
45
|
+
/*
|
46
|
+
* Solo descargar los datos de búsqueda una vez
|
47
|
+
*/
|
48
|
+
if (!window.data) {
|
49
|
+
fetch('data.json').then(res => {
|
50
|
+
res.json().then(data => window.data = data);
|
51
|
+
fetch('results.liquid').then(r => r.text()).then(t => window.template = t);
|
52
|
+
fetch('idx.json').then(res => res.json()).then(idx => window.index = lunr.Index.load(idx));
|
53
|
+
});
|
54
|
+
}
|
55
|
+
|
56
|
+
/*
|
57
|
+
* Buscar
|
58
|
+
*/
|
59
|
+
document.querySelectorAll('form.search').forEach(form => {
|
60
|
+
form.addEventListener('submit', event => {
|
61
|
+
event.preventDefault();
|
62
|
+
event.stopPropagation();
|
63
|
+
|
64
|
+
q(form.querySelector('input[name=q]').value);
|
65
|
+
});
|
66
|
+
});
|
67
|
+
|
68
|
+
document.querySelectorAll("a[href^='http://'],a[href^='https://'],a[href^='//']").forEach(a => {
|
69
|
+
a.rel = "noopener";
|
70
|
+
a.target = "_blank";
|
71
|
+
});
|
72
|
+
});
|