imagen-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 (166) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +168 -0
  3. data/README.md +176 -0
  4. data/_config.yml +47 -0
  5. data/_data/components.yml +18 -0
  6. data/_data/en.yml +109 -0
  7. data/_data/es.yml +162 -0
  8. data/_data/fixtures/grilla.yml +37 -0
  9. data/_data/forms/subir_imagen.yml +43 -0
  10. data/_data/full_width_components.yml +4 -0
  11. data/_data/layouts/about.yml +155 -0
  12. data/_data/layouts/code_of_conduct.yml +60 -0
  13. data/_data/layouts/imagen.yml +67 -0
  14. data/_data/layouts/license.yml +60 -0
  15. data/_data/layouts/menu.yml +72 -0
  16. data/_data/layouts/post.yml +100 -0
  17. data/_data/layouts/privacy_policy.yml +60 -0
  18. data/_data/layouts/theme.yml +293 -0
  19. data/_data/manifest.json +14535 -0
  20. data/_data/schema.yml +9 -0
  21. data/_data/sutty.yml +6 -0
  22. data/_data/theme.yml +173 -0
  23. data/_includes/boolean.html +38 -0
  24. data/_includes/buttons/button.html +9 -0
  25. data/_includes/buttons/copy.html +28 -0
  26. data/_includes/buttons/generic.html +15 -0
  27. data/_includes/buttons/link.html +14 -0
  28. data/_includes/contact.html +17 -0
  29. data/_includes/content.html +9 -0
  30. data/_includes/descriptor.html +18 -0
  31. data/_includes/device_detector.html +30 -0
  32. data/_includes/email.html +9 -0
  33. data/_includes/embed_responsive.html +16 -0
  34. data/_includes/file.html +43 -0
  35. data/_includes/floating_alert.html +6 -0
  36. data/_includes/footer.html +5 -0
  37. data/_includes/form/boolean.html +1 -0
  38. data/_includes/form/content.html +1 -0
  39. data/_includes/form/email.html +1 -0
  40. data/_includes/form/file.html +1 -0
  41. data/_includes/form/hidden.html +1 -0
  42. data/_includes/form/image.html +1 -0
  43. data/_includes/form/input.html +1 -0
  44. data/_includes/form/markdown_content.html +1 -0
  45. data/_includes/form/number.html +1 -0
  46. data/_includes/form/predefined_array.html +1 -0
  47. data/_includes/form/section.html +1 -0
  48. data/_includes/form/separator.html +1 -0
  49. data/_includes/form/string.html +1 -0
  50. data/_includes/form/submit.html +1 -0
  51. data/_includes/form/tel.html +1 -0
  52. data/_includes/form/text.html +1 -0
  53. data/_includes/form/url.html +1 -0
  54. data/_includes/grilla.html +21 -0
  55. data/_includes/headings/generic.html +14 -0
  56. data/_includes/headings/h1.html +9 -0
  57. data/_includes/headings/h2.html +9 -0
  58. data/_includes/headings/h3.html +9 -0
  59. data/_includes/headings/with_link.html +15 -0
  60. data/_includes/hidden.html +5 -0
  61. data/_includes/image.html +57 -0
  62. data/_includes/imagen.html +13 -0
  63. data/_includes/imagen_enviada.html +6 -0
  64. data/_includes/imagen_enviada_error.html +9 -0
  65. data/_includes/imagen_grilla.html +31 -0
  66. data/_includes/input.html +61 -0
  67. data/_includes/item.html +38 -0
  68. data/_includes/logo.html +12 -0
  69. data/_includes/markdown_content.html +9 -0
  70. data/_includes/menu.html +69 -0
  71. data/_includes/notification.html +5 -0
  72. data/_includes/number.html +9 -0
  73. data/_includes/pack.html +10 -0
  74. data/_includes/password.html +10 -0
  75. data/_includes/picture.html +25 -0
  76. data/_includes/predefined_array.html +47 -0
  77. data/_includes/preload_font.html +1 -0
  78. data/_includes/question_mark_button.html +6 -0
  79. data/_includes/script.html +5 -0
  80. data/_includes/search.html +25 -0
  81. data/_includes/section.html +1 -0
  82. data/_includes/send_message.html +6 -0
  83. data/_includes/separator.html +1 -0
  84. data/_includes/share.html +22 -0
  85. data/_includes/share_box.html +31 -0
  86. data/_includes/stretched_link.html +15 -0
  87. data/_includes/string.html +12 -0
  88. data/_includes/subir_imagen.html +29 -0
  89. data/_includes/submit.html +18 -0
  90. data/_includes/svg/arrow-left.svg +29 -0
  91. data/_includes/svg/check.svg +1 -0
  92. data/_includes/svg/copy-icon.svg +1 -0
  93. data/_includes/svg/done-icon.svg +1 -0
  94. data/_includes/svg/location.svg +13 -0
  95. data/_includes/svg/menu.svg +8 -0
  96. data/_includes/svg/photo.svg +7 -0
  97. data/_includes/svg/signo-pregunta.svg +16 -0
  98. data/_includes/svg/x.svg +3 -0
  99. data/_includes/tel.html +9 -0
  100. data/_includes/text.html +40 -0
  101. data/_includes/theme/blue_button.html +1 -0
  102. data/_includes/theme/button_with_copy.html +1 -0
  103. data/_includes/theme/button_with_link.html +5 -0
  104. data/_includes/theme/buttons.html +33 -0
  105. data/_includes/theme/colors.html +14 -0
  106. data/_includes/theme/content.html +41 -0
  107. data/_includes/theme/descriptor.html +1 -0
  108. data/_includes/theme/embed_responsive.html +10 -0
  109. data/_includes/theme/font_sizes.html +18 -0
  110. data/_includes/theme/footer.html +1 -0
  111. data/_includes/theme/grilla.html +3 -0
  112. data/_includes/theme/imagen.html +8 -0
  113. data/_includes/theme/imagen_enviada.html +5 -0
  114. data/_includes/theme/imagen_enviada_error.html +7 -0
  115. data/_includes/theme/imagen_grilla.html +8 -0
  116. data/_includes/theme/letter_spacing.html +3 -0
  117. data/_includes/theme/menu.html +1 -0
  118. data/_includes/theme/picture.html +5 -0
  119. data/_includes/theme/question.html +2 -0
  120. data/_includes/theme/subir_imagen.html +1 -0
  121. data/_includes/toggler/toggler.html +21 -0
  122. data/_includes/toggler/toggler_label.html +21 -0
  123. data/_includes/toggler/toggler_related.html +23 -0
  124. data/_includes/toggler.html +19 -0
  125. data/_includes/toggler_label.html +22 -0
  126. data/_includes/toggler_related.html +24 -0
  127. data/_includes/url.html +9 -0
  128. data/_layouts/ayuda.html +40 -0
  129. data/_layouts/code_of_conduct.html +45 -0
  130. data/_layouts/default.html +93 -0
  131. data/_layouts/home.html +49 -0
  132. data/_layouts/imagen.html +45 -0
  133. data/_layouts/imagen_enviada.html +17 -0
  134. data/_layouts/imagenes.html +21 -0
  135. data/_layouts/institucional.html +20 -0
  136. data/_layouts/license.html +45 -0
  137. data/_layouts/login.html +26 -0
  138. data/_layouts/page.html +5 -0
  139. data/_layouts/post.html +71 -0
  140. data/_layouts/privacy_policy.html +45 -0
  141. data/_layouts/subir_imagen.html +19 -0
  142. data/_layouts/theme.html +60 -0
  143. data/_sass/accessibility.scss +46 -0
  144. data/_sass/content.scss +28 -0
  145. data/_sass/editor.scss +17 -0
  146. data/_sass/embed.scss +13 -0
  147. data/_sass/floating_alert.scss +48 -0
  148. data/_sass/fonts.scss +36 -0
  149. data/_sass/menu.scss +36 -0
  150. data/_sass/share_box.scss +26 -0
  151. data/_sass/snap.scss +60 -0
  152. data/_sass/toggler.scss +20 -0
  153. data/_sass/utilities.scss +531 -0
  154. data/assets/css/styles.scss +39 -0
  155. data/assets/data/site.json +10 -0
  156. data/assets/fonts/Helvetica.woff2 +0 -0
  157. data/assets/fonts/forkawesome-webfont.woff2 +0 -0
  158. data/assets/fonts/roboto/v27/KFOjCnqEu92Fr1Mu51TzBhc9-subset.woff2 +0 -0
  159. data/assets/fonts/roboto/v27/KFOkCnqEu92Fr1MmgWxP-subset.woff2 +0 -0
  160. data/assets/fonts/roboto/v27/KFOkCnqEu92Fr1Mu52xP-subset.woff2 +0 -0
  161. data/assets/fonts/roboto/v27/KFOlCnqEu92Fr1MmWUlvAw-subset.woff2 +0 -0
  162. data/assets/fonts/roboto/v27/KFOmCnqEu92Fr1Me5Q-subset.woff2 +0 -0
  163. data/assets/js/env.js +8 -0
  164. data/assets/js/pack.5JQIOXYX.js +48 -0
  165. data/assets/js/pack.5JQIOXYX.js.map +7 -0
  166. metadata +544 -0
data/_data/schema.yml ADDED
@@ -0,0 +1,9 @@
1
+ ---
2
+ organization:
3
+ imagen: []
4
+ theme:
5
+ - "menu"
6
+ about:
7
+ - "code_of_conduct"
8
+ - "license"
9
+ - "privacy_policy"
data/_data/sutty.yml ADDED
@@ -0,0 +1,6 @@
1
+ ---
2
+ colaboracion_anonima: true
3
+ contact: false
4
+ acepta_invitades: true
5
+ slugify_mode: "default"
6
+ pagination: false
data/_data/theme.yml ADDED
@@ -0,0 +1,173 @@
1
+ ---
2
+ vendor_prefixes:
3
+ - ""
4
+ - "-webkit-"
5
+ - "-ms-"
6
+ - "-o-"
7
+ - "-moz-"
8
+ bezier: "cubic-bezier(0.75, 0, 0.25, 1);"
9
+ colors:
10
+ black: "#000000"
11
+ white: "#ffffff"
12
+ transparent: "transparent"
13
+ blue: "#155aa8"
14
+ gray: "#E4E4E4"
15
+ input_form: "#e4e4e4"
16
+ primary: "$primary"
17
+ secondary: "$secondary"
18
+ theme_colors: "$colors"
19
+ spacer: "1rem"
20
+ spacers:
21
+ 10: "($spacer * 0.625)"
22
+ 12: "($spacer * 0.75)"
23
+ 15: "($spacer * 0.9375)"
24
+ 20: "($spacer * 1.25)"
25
+ 24: "($spacer * 1.5)"
26
+ 26: "($spacer * 1.625)"
27
+ 34: "($spacer * 2.125)"
28
+ 38: "($spacer * 2.375)"
29
+ 50: "($spacer * 3.125)"
30
+ 64: "($spacer * 4)"
31
+ 150: "9.375rem"
32
+ paragraph_margin_bottom: "0"
33
+ headings_margin_bottom: "0"
34
+ label_margin_bottom: "0"
35
+ sizes:
36
+ 20px: "1.25rem"
37
+ 35px: "35px"
38
+ 50vh: "50vh"
39
+ 90px: "90px"
40
+ 100vh: "100vh"
41
+ 117px: "117px"
42
+ 140px: "140px"
43
+ opacities:
44
+ 0: "-100%"
45
+ 1: "-80%"
46
+ 2: "-60%"
47
+ 3: "-40%"
48
+ 4: "-20%"
49
+ 5: "0%"
50
+ paragraph_margin_bottom: 0
51
+ headings_margin_bottom: 0
52
+ label_margin_bottom: 0
53
+ enable_responsive_font_sizes: true
54
+ directions:
55
+ - "top"
56
+ - "right"
57
+ - "bottom"
58
+ - "left"
59
+ font_sizes:
60
+ 12: "0.75"
61
+ 13: "0.8125"
62
+ 16: "1"
63
+ 17: "1.0625"
64
+ 18: "1.125"
65
+ 20: "1.25"
66
+ 22: "1.375"
67
+ 24: "1.5"
68
+ 25: "1.5625"
69
+ 26: "1.625"
70
+ 40: "2.5"
71
+ display1_size: "6rem"
72
+ display2_size: "5.55rem"
73
+ display3_size: "5rem"
74
+ display4_size: "4.5rem"
75
+ lead_font_size: "1.25rem"
76
+ font_weight_bolder: "700 !default"
77
+ letter_spacings:
78
+ 1: "0.1rem"
79
+ 2: "0.16rem"
80
+ text_decoration_lines:
81
+ - "none"
82
+ - "underline"
83
+ - "overline"
84
+ - "line-through"
85
+ text_decoration_styles:
86
+ - "solid"
87
+ - "double"
88
+ - "dotted"
89
+ - "dashed"
90
+ - "wavy"
91
+ hyphens:
92
+ - "none"
93
+ - "auto"
94
+ - "manual"
95
+ cursors:
96
+ - "pointer"
97
+ - "none"
98
+ - "help"
99
+ - "not-allowed"
100
+ - "progress"
101
+ - "text"
102
+ - "wait"
103
+ events:
104
+ - "none"
105
+ - "auto"
106
+ objects:
107
+ - "contain"
108
+ - "cover"
109
+ - "fill"
110
+ - "none"
111
+ - "scale-down"
112
+ overflows:
113
+ - "auto"
114
+ - "hidden"
115
+ - "scroll"
116
+ overflow_axis:
117
+ - "x"
118
+ - "y"
119
+ scrolls:
120
+ - "auto"
121
+ - "smooth"
122
+ svg_attributes:
123
+ - "fill"
124
+ - "stroke"
125
+ embed_responsive_aspect_ratios:
126
+ - "(1 1)"
127
+ - "(4 3)"
128
+ - "(16 9)"
129
+ - "(21 9)"
130
+ aligns:
131
+ - "left"
132
+ - "center"
133
+ - "right"
134
+ svg_attributes:
135
+ - "stroke"
136
+ - "fill"
137
+ pixel_densities:
138
+ - "1"
139
+ - "1.5"
140
+ - "2"
141
+ background_sizes:
142
+ cover: "cover"
143
+ auto: "auto"
144
+ contain: "contain"
145
+ background_positions_x:
146
+ - "center"
147
+ - "top"
148
+ background_positions_y:
149
+ - "center"
150
+ - "left"
151
+ - "right"
152
+ background_images:
153
+ example: "$background-example"
154
+ grid_breakpoints:
155
+ xs: "0"
156
+ sm: "576px"
157
+ md: "768px"
158
+ lg: "992px"
159
+ xl: "1200px"
160
+ border_width: "1px"
161
+ border_widths:
162
+ 1: "1px"
163
+ 2: "2px"
164
+ 3: "3px"
165
+ 4: "4px"
166
+ 5: "5px"
167
+ transform_scales:
168
+ - "1"
169
+ input_border_radius: "30px"
170
+ submit_border_radius: "30px"
171
+ form_group_margin_bottom: "1.5em"
172
+ resizes:
173
+ - "none"
@@ -0,0 +1,38 @@
1
+ {%- comment -%}
2
+
3
+ Form: type boolean
4
+
5
+ @param :field [Integer] El campo del formulario
6
+ @param :boolean_class [String] Las clases del componente
7
+ {%- endcomment -%}
8
+
9
+ {%- assign name = include.field[0] -%}
10
+ {%- assign id = include.field[1].id | default: name -%}
11
+ {%- assign label = include.field[1].label[site.locale] -%}
12
+ {%- assign help = include.field[1].help[site.locale] -%}
13
+ {%- assign autocomplete = include.field[1].autocomplete -%}
14
+
15
+ <div class="form-check text-left">
16
+ <input
17
+ {% if help %}
18
+ aria-describedby="help-{{ id }}"
19
+ {% endif %}
20
+ {% if include.field[1].required %}
21
+ required
22
+ {% endif %}
23
+ type="checkbox"
24
+ name="{{ name }}"
25
+ id="{{ id }}"
26
+ {% if autocomplete %}
27
+ autocomplete="{{ autocomplete }}"
28
+ {% endif %}
29
+ class="form-check-input {{ include.boolean_class }}" />
30
+
31
+ <label class="form-check-label" for="{{ id }}">{{ label }}</label>
32
+
33
+ {%- if help -%}
34
+ <small id="help-{{ id }}" class="form-text">
35
+ {{ help }}
36
+ </small>
37
+ {%- endif -%}
38
+ </div>
@@ -0,0 +1,9 @@
1
+ {%- comment -%}
2
+ Un botón interactivo. Utiliza la etiqueta `<button>`
3
+
4
+ @param :class [String] Las clases del componente aparte de btn (colores, tipografía, etc)
5
+ @param :content [String,HTML] El contenido del botón
6
+ @param :extra [HTML] Atributos extra
7
+ {%- endcomment -%}
8
+
9
+ {%- include buttons/generic.html element="button" class=include.class content=include.content extra=include.extra -%}
@@ -0,0 +1,28 @@
1
+ {%- comment -%}
2
+
3
+ Un botón con contenido copiable. Si el
4
+ link es externo, agregar el parámetro de seguridad noopener.
5
+
6
+ @param :copy [String] El texto copiable
7
+ @param :text [String] El contenido
8
+
9
+ {%- endcomment -%}
10
+
11
+ {% capture content %}
12
+ <span data-button-copy-target="text">{{- include.text -}}</span>
13
+ <span data-button-copy-target="icon" class="pl-2">
14
+ {%- include svg/copy-icon.svg -%}
15
+ </span>
16
+ <span data-button-copy-target="confirmationIcon" class="d-none pl-2">
17
+ {%- include svg/done-icon.svg -%}
18
+ </span>
19
+ {% endcapture %}
20
+
21
+ {% capture extra %}
22
+ data-controller="button-copy"
23
+ data-button-copy-text-value="{{ include.copy | escape_once }}"
24
+ data-button-copy-confirmation-value="{{ site.i18n.button_copy.confirmation | replace: "%s", include.copy | escape_once }}"
25
+ data-action="button-copy#copy"
26
+ {% endcapture %}
27
+
28
+ {% include buttons/button.html class="btn btn-primary" content=content extra=extra %}
@@ -0,0 +1,15 @@
1
+ {%- comment -%}
2
+ Un botón genérico. Se usa como base para crear los demás
3
+ botones con distintas funcionalidades.
4
+
5
+ @param :element [String] El elemento (p.e. `a` `button`)
6
+ @param :class [String] Las clases del componente aparte de btn (colores, tipografía, etc)
7
+ @param :content [String,HTML] El contenido del botón
8
+ @param :extra [HTML] Atributos extra
9
+ {%- endcomment -%}
10
+
11
+ {%- assign element = include.element | default: "button" -%}
12
+
13
+ <{{ element }} {{ include.extra }} class="btn {{ include.class }}">
14
+ {{- include.content -}}
15
+ </{{ element }}>
@@ -0,0 +1,14 @@
1
+ {%- comment -%}
2
+ Un botón con link. Utiliza la etiqueta `<a>`
3
+
4
+ @param :href [String] La URL destino
5
+ @param :class [String] Las clases del componente aparte de btn (colores, tipografía, etc)
6
+ @param :content [String,HTML] El contenido del botón
7
+ @param :extra [HTML] Atributos extra
8
+ {%- endcomment -%}
9
+
10
+ {%- assign extra = include.href | start_with: "http://" | value_if: 'rel="noopener" target="_blank"' -%}
11
+ {%- assign extra = include.href | start_with: "https://" | value_if: 'rel="noopener" target="_blank"' -%}
12
+ {%- assign extra = include.href | uri_escape | prepend: 'href="' | append: '" ' | append: extra | append: " " | append: include.extra -%}
13
+
14
+ {%- include buttons/generic.html element="a" class=include.class content=include.content extra=extra -%}
@@ -0,0 +1,17 @@
1
+ {% comment %}
2
+ El formulario se envía a la API. La definición del formulario se
3
+ encuentra en _data/forms/contacto.yml
4
+ {% endcomment %}
5
+ <form
6
+ data-turbo="false"
7
+ data-controller="contact"
8
+ data-delay="60"
9
+ action="https://api.{{ site.hostname }}/v1/sites/{{ site.hostname }}/contact/{{ include.name }}"
10
+ method="post">
11
+ {%- for field in include.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
+ </form>
@@ -0,0 +1,9 @@
1
+ {%- comment -%}
2
+
3
+ Form: type content
4
+
5
+ @param :field [Integer] El campo del formulario
6
+ @param :text_class [String] Las clases del componente
7
+ {%- endcomment -%}
8
+
9
+ {% include text.html field=field text_class=include.text_class %}
@@ -0,0 +1,18 @@
1
+ {%- comment -%}
2
+
3
+ Descriptor. La caja de datos que se encuentra debajo de cada imagen.
4
+
5
+ @param :title [String] El título
6
+ @param :estudiante [String] Nombre estudiantx
7
+ @param :description [String] La descripción de la imagen
8
+ @param :class [String] Las clases del componente
9
+ @param :title_class [String] Las clases del título
10
+ {%- endcomment -%}
11
+
12
+ <div class="background-blue white {{ include.class }}">
13
+ <p class="{{ include.title_class }}"><span class="font-weight-bold">{{ site.i18n.titulo }}</span> {{include.title}}</p>
14
+ <p><span class="font-weight-bold">{{ site.i18n.de }}</span> {{include.estudiante}} </p>
15
+ {% if include.description %}
16
+ <p><span class="font-weight-bold">{{ site.i18n.descripcion }}</span> {{include.description}}</p>
17
+ {% endif %}
18
+ </div>
@@ -0,0 +1,30 @@
1
+ <div
2
+ data-controller="device-detector"
3
+ data-action="resize@window->device-detector#resized"
4
+ class="position-fixed top-0 right-0 background-pink-t3 z-index-2050 pointer-event-none">
5
+ <div>
6
+ <button class="pointer-event-auto btn btn-sm" data-action="device-detector#toggleHelp">
7
+ {{ site.i18n.device_detector.get_help }}
8
+ </button>
9
+ <button class="pointer-event-auto btn btn-sm" data-action="device-detector#outline">
10
+ {{ site.i18n.device_detector.outline }}
11
+ </button>
12
+ <span data-device-detector-target="clientName"></span>
13
+ &nbsp;
14
+ <span data-device-detector-target="clientVersion"></span>
15
+ &nbsp;
16
+ (<span data-device-detector-target="deviceType"></span>)
17
+ &nbsp;
18
+ <span data-device-detector-target="osName"></span>
19
+ &nbsp;
20
+ <span data-device-detector-target="osVersion"></span>
21
+ &nbsp;
22
+ <span data-device-detector-target="viewportWidth"></span>
23
+ x <span data-device-detector-target="viewportHeight"></span>
24
+ x <span data-device-detector-target="devicePixelRatio"></span>
25
+ </div>
26
+
27
+ <div data-device-detector-target="help" hidden class="background-pink">
28
+ {{ site.i18n.device_detector.help | allow_inclusive_language_in_markdown | markdownify }}
29
+ </div>
30
+ </div>
@@ -0,0 +1,9 @@
1
+ {%- comment -%}
2
+
3
+ Form: type email
4
+
5
+ @param :field [Integer] El campo del formulario
6
+ @param :input_class [String] Las clases del componente
7
+ {%- endcomment -%}
8
+
9
+ {% include input.html field=field input_class=include.input_class %}
@@ -0,0 +1,16 @@
1
+ {%- comment -%}
2
+
3
+ Embed responsive. Para imágenes con relación de aspecto.
4
+ Se suele usar para las imágenes de grillas.
5
+
6
+ @param :x [Integer] El ancho
7
+ @param :y [Integer] El alto
8
+ @param :src [String] La url de la imagen
9
+ @param :alt [String] La descripción de la imagen
10
+ @param :width [Integer] El ancho
11
+ @param :component_class [String] Las clases del componente embed_responsive
12
+ {%- endcomment -%}
13
+
14
+ <div class="embed-responsive embed-responsive-{{ include.x }}by{{ include.y }} {{ include.component_class }}">
15
+ {%- include picture.html class="embed-responsive-item" img_class="w-100 h-100 fit-cover" src=include.src alt=include.alt width=include.width -%}
16
+ </div>
@@ -0,0 +1,43 @@
1
+ {%- comment -%}
2
+
3
+ Form: type file
4
+
5
+ @param :field [Integer] El campo del formulario
6
+ @param :file_class [String] Las clases del componente
7
+ {%- endcomment -%}
8
+
9
+ {%- assign name = include.field[0] -%}
10
+ {%- assign id = include.field[1].id | default: name -%}
11
+ {%- assign label = include.field[1]['path'].label[site.locale] -%}
12
+ {%- assign help = include.field[1]['path'].help[site.locale] -%}
13
+ {%- assign accept = include.field[1].accept -%}
14
+
15
+ <label>{{ label }}</label>
16
+
17
+ <div class="custom-file">
18
+ <input
19
+ {% if help %}
20
+ aria-describedby="help-{{ id }}"
21
+ {% endif %}
22
+ {% if include.field[1].required %}
23
+ required
24
+ {% endif %}
25
+ type="{{ include.field[1].type }}"
26
+ name="{{ name }}[path]"
27
+ id="{{ id }}_path"
28
+ {% if accept %}
29
+ accept="{{ accept }}"
30
+ {% endif %}
31
+ class="custom-file-input {{ include.file_class }}" />
32
+
33
+ <label for="{{ id }}_path" class="custom-file-label">
34
+ {{ label }}
35
+ {% if include.field[1].required %}*{% endif %}
36
+ </label>
37
+
38
+ {%- if help -%}
39
+ <small id="help-{{ id }}" class="form-text">
40
+ {{ help }}
41
+ </small>
42
+ {%- endif -%}
43
+ </div>
@@ -0,0 +1,6 @@
1
+ <div
2
+ data-controller="floating-alert"
3
+ class="floating-alert floating-alert-bottom floating-alert-default hide"
4
+ role="status" aria-live="polite" aria-atomic="true">
5
+ <div data-floating-alert-target="content" class="floating-alert-content white background-black-t4"></div>
6
+ </div>
@@ -0,0 +1,5 @@
1
+ <footer class="position-fixed bottom-0 w-100">
2
+ <div class="mt-2 background-blue white text-center py-2">
3
+ {{ include.credits | markdownify | replace: '<a', '<a class="text-white"' }}
4
+ </div>
5
+ </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,21 @@
1
+ {%- comment -%}
2
+
3
+ Imagen de la grilla con descriptor
4
+
5
+ @param :imagenes [String] Las imágenes
6
+ {%- endcomment -%}
7
+
8
+ {%- assign imagenes = include.imagenes -%}
9
+
10
+ <div class="row row-cols-2">
11
+ {% for imagen in imagenes %}
12
+ {%- include_cached imagen_grilla.html
13
+ href=imagen.url
14
+ alt=imagen.image.description
15
+ src=imagen.image.path
16
+ width=164
17
+ title=imagen.title
18
+ estudiante=imagen.estudiante
19
+ -%}
20
+ {% endfor %}
21
+ </div>
@@ -0,0 +1,14 @@
1
+ {%- comment -%}
2
+
3
+ La base para un encabezado
4
+
5
+ @param :level [Integer] El nivel
6
+ @param :text [String] El contenido
7
+ @param :class [String] Clases para aplicar a títulos
8
+ {%- endcomment -%}
9
+
10
+ {%- assign slug = include.text | slugify -%}
11
+
12
+ <h{{ include.level }} id="{{ slug }}" class="{{ include.class }}">
13
+ {{- include.text -}}
14
+ </h{{ include.level }}>
@@ -0,0 +1,9 @@
1
+ {%- comment -%}
2
+
3
+ Encabezado de primer nivel
4
+
5
+ @param :text [String] El contenido
6
+ @param :class [String] Clases para aplicar a títulos
7
+ {%- endcomment -%}
8
+
9
+ {%- include headings/generic.html level=1 text=include.text class=include.class -%}
@@ -0,0 +1,9 @@
1
+ {%- comment -%}
2
+
3
+ Encabezado de segundo nivel
4
+
5
+ @param :text [String] El contenido
6
+ @param :class [String] Clases para aplicar a títulos
7
+ {%- endcomment -%}
8
+
9
+ {%- include headings/generic.html level=2 text=include.text class=include.class -%}
@@ -0,0 +1,9 @@
1
+ {%- comment -%}
2
+
3
+ Encabezado de tercer nivel
4
+
5
+ @param :text [String] El contenido
6
+ @param :class [String] Clases para aplicar a títulos
7
+ {%- endcomment -%}
8
+
9
+ {%- include headings/generic.html level=3 text=include.text class=include.class -%}
@@ -0,0 +1,15 @@
1
+ {%- comment -%}
2
+
3
+ La base para un encabezado con enlace
4
+
5
+ @param :level [Integer] El nivel
6
+ @param :text [String] El contenido
7
+ @param :class [String] Clases para aplicar a títulos
8
+ {%- endcomment -%}
9
+
10
+ {%- assign slug = include.text | slugify -%}
11
+ <h{{ include.level }} id="{{ slug }}">
12
+ <a class="{{ include.class }}" href="#{{ slug }}" data-turbo="false">
13
+ {{- include.text -}}
14
+ </a>
15
+ </h{{ include.level }}>
@@ -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 }}" />