chulapa-jekyll 1.0.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 (204) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +27 -0
  3. data/LICENSE +21 -0
  4. data/README.md +126 -0
  5. data/_includes/components/author.html +40 -0
  6. data/_includes/components/breadcrumbdatesocial.html +63 -0
  7. data/_includes/components/categories.html +15 -0
  8. data/_includes/components/disqus.html +24 -0
  9. data/_includes/components/headers.html +124 -0
  10. data/_includes/components/indexcards.html +48 -0
  11. data/_includes/components/navbeforeafter.html +22 -0
  12. data/_includes/components/tags.html +15 -0
  13. data/_includes/components/toc.html +112 -0
  14. data/_includes/custom/custom_bottomscripts.html +5 -0
  15. data/_includes/custom/custom_head.html +8 -0
  16. data/_includes/custom/custom_head_before_css.html +5 -0
  17. data/_includes/custom/giscus.html +1 -0
  18. data/_includes/footer.html +129 -0
  19. data/_includes/head.html +309 -0
  20. data/_includes/navbar.html +205 -0
  21. data/_includes/search/algolia.html +3 -0
  22. data/_includes/search/google.html +11 -0
  23. data/_includes/search/lunr.html +7 -0
  24. data/_includes/snippets/bootstrapdemo.html +1390 -0
  25. data/_includes/snippets/carousel.html +61 -0
  26. data/_includes/snippets/datetranslate.html +48 -0
  27. data/_includes/snippets/masonry.html +23 -0
  28. data/_includes/snippets/video.html +26 -0
  29. data/_includes/snippets/youtube.html +6 -0
  30. data/_layouts/archive.html +82 -0
  31. data/_layouts/cloudcategory.html +89 -0
  32. data/_layouts/cloudtag.html +86 -0
  33. data/_layouts/compress.html +10 -0
  34. data/_layouts/default.html +39 -0
  35. data/_layouts/indexcategory.html +36 -0
  36. data/_layouts/landingpage.html +51 -0
  37. data/_layouts/minimal.html +21 -0
  38. data/_layouts/search.html +59 -0
  39. data/_sass/bootstrap/_alert.scss +51 -0
  40. data/_sass/bootstrap/_badge.scss +54 -0
  41. data/_sass/bootstrap/_breadcrumb.scss +44 -0
  42. data/_sass/bootstrap/_button-group.scss +163 -0
  43. data/_sass/bootstrap/_buttons.scss +142 -0
  44. data/_sass/bootstrap/_card.scss +282 -0
  45. data/_sass/bootstrap/_carousel.scss +197 -0
  46. data/_sass/bootstrap/_close.scss +40 -0
  47. data/_sass/bootstrap/_code.scss +48 -0
  48. data/_sass/bootstrap/_custom-forms.scss +522 -0
  49. data/_sass/bootstrap/_dropdown.scss +192 -0
  50. data/_sass/bootstrap/_forms.scss +347 -0
  51. data/_sass/bootstrap/_functions.scss +141 -0
  52. data/_sass/bootstrap/_grid.scss +77 -0
  53. data/_sass/bootstrap/_images.scss +42 -0
  54. data/_sass/bootstrap/_input-group.scss +192 -0
  55. data/_sass/bootstrap/_jumbotron.scss +17 -0
  56. data/_sass/bootstrap/_list-group.scss +154 -0
  57. data/_sass/bootstrap/_media.scss +8 -0
  58. data/_sass/bootstrap/_mixins.scss +47 -0
  59. data/_sass/bootstrap/_modal.scss +241 -0
  60. data/_sass/bootstrap/_nav.scss +121 -0
  61. data/_sass/bootstrap/_navbar.scss +324 -0
  62. data/_sass/bootstrap/_pagination.scss +74 -0
  63. data/_sass/bootstrap/_popover.scss +170 -0
  64. data/_sass/bootstrap/_print.scss +141 -0
  65. data/_sass/bootstrap/_progress.scss +47 -0
  66. data/_sass/bootstrap/_reboot.scss +480 -0
  67. data/_sass/bootstrap/_root.scss +20 -0
  68. data/_sass/bootstrap/_spinners.scss +56 -0
  69. data/_sass/bootstrap/_tables.scss +185 -0
  70. data/_sass/bootstrap/_toasts.scss +44 -0
  71. data/_sass/bootstrap/_tooltip.scss +115 -0
  72. data/_sass/bootstrap/_transitions.scss +20 -0
  73. data/_sass/bootstrap/_type.scss +125 -0
  74. data/_sass/bootstrap/_utilities.scss +18 -0
  75. data/_sass/bootstrap/_variables.scss +1147 -0
  76. data/_sass/bootstrap/bootstrap-grid.scss +29 -0
  77. data/_sass/bootstrap/bootstrap-reboot.scss +12 -0
  78. data/_sass/bootstrap/bootstrap.scss +44 -0
  79. data/_sass/bootstrap/mixins/_alert.scss +13 -0
  80. data/_sass/bootstrap/mixins/_background-variant.scss +23 -0
  81. data/_sass/bootstrap/mixins/_badge.scss +17 -0
  82. data/_sass/bootstrap/mixins/_border-radius.scss +76 -0
  83. data/_sass/bootstrap/mixins/_box-shadow.scss +20 -0
  84. data/_sass/bootstrap/mixins/_breakpoints.scss +123 -0
  85. data/_sass/bootstrap/mixins/_buttons.scss +110 -0
  86. data/_sass/bootstrap/mixins/_caret.scss +62 -0
  87. data/_sass/bootstrap/mixins/_clearfix.scss +7 -0
  88. data/_sass/bootstrap/mixins/_deprecate.scss +10 -0
  89. data/_sass/bootstrap/mixins/_float.scss +14 -0
  90. data/_sass/bootstrap/mixins/_forms.scss +177 -0
  91. data/_sass/bootstrap/mixins/_gradients.scss +45 -0
  92. data/_sass/bootstrap/mixins/_grid-framework.scss +81 -0
  93. data/_sass/bootstrap/mixins/_grid.scss +69 -0
  94. data/_sass/bootstrap/mixins/_hover.scss +37 -0
  95. data/_sass/bootstrap/mixins/_image.scss +36 -0
  96. data/_sass/bootstrap/mixins/_list-group.scss +21 -0
  97. data/_sass/bootstrap/mixins/_lists.scss +7 -0
  98. data/_sass/bootstrap/mixins/_nav-divider.scss +11 -0
  99. data/_sass/bootstrap/mixins/_pagination.scss +22 -0
  100. data/_sass/bootstrap/mixins/_reset-text.scss +17 -0
  101. data/_sass/bootstrap/mixins/_resize.scss +6 -0
  102. data/_sass/bootstrap/mixins/_screen-reader.scss +34 -0
  103. data/_sass/bootstrap/mixins/_size.scss +7 -0
  104. data/_sass/bootstrap/mixins/_table-row.scss +39 -0
  105. data/_sass/bootstrap/mixins/_text-emphasis.scss +17 -0
  106. data/_sass/bootstrap/mixins/_text-hide.scss +11 -0
  107. data/_sass/bootstrap/mixins/_text-truncate.scss +8 -0
  108. data/_sass/bootstrap/mixins/_transition.scss +26 -0
  109. data/_sass/bootstrap/mixins/_visibility.scss +8 -0
  110. data/_sass/bootstrap/utilities/_align.scss +8 -0
  111. data/_sass/bootstrap/utilities/_background.scss +19 -0
  112. data/_sass/bootstrap/utilities/_borders.scss +75 -0
  113. data/_sass/bootstrap/utilities/_clearfix.scss +3 -0
  114. data/_sass/bootstrap/utilities/_display.scss +26 -0
  115. data/_sass/bootstrap/utilities/_embed.scss +39 -0
  116. data/_sass/bootstrap/utilities/_flex.scss +51 -0
  117. data/_sass/bootstrap/utilities/_float.scss +11 -0
  118. data/_sass/bootstrap/utilities/_interactions.scss +5 -0
  119. data/_sass/bootstrap/utilities/_overflow.scss +5 -0
  120. data/_sass/bootstrap/utilities/_position.scss +32 -0
  121. data/_sass/bootstrap/utilities/_screenreaders.scss +11 -0
  122. data/_sass/bootstrap/utilities/_shadows.scss +6 -0
  123. data/_sass/bootstrap/utilities/_sizing.scss +20 -0
  124. data/_sass/bootstrap/utilities/_spacing.scss +73 -0
  125. data/_sass/bootstrap/utilities/_stretched-link.scss +19 -0
  126. data/_sass/bootstrap/utilities/_text.scss +71 -0
  127. data/_sass/bootstrap/utilities/_visibility.scss +13 -0
  128. data/_sass/bootstrap/vendor/_rfs.scss +204 -0
  129. data/_sass/bootstrapv5-migration.scss +79 -0
  130. data/_sass/chulapa-classes.scss +844 -0
  131. data/_sass/chulapa-master.scss +11 -0
  132. data/_sass/chulapa-misc.scss +105 -0
  133. data/_sass/chulapa-mixins.scss +77 -0
  134. data/_sass/chulapa-vars.scss +48 -0
  135. data/_sass/highlight/README.md +23 -0
  136. data/_sass/highlight/UNLICENSE.txt +24 -0
  137. data/_sass/highlight/autumn.scss +58 -0
  138. data/_sass/highlight/borland.scss +46 -0
  139. data/_sass/highlight/bw.scss +34 -0
  140. data/_sass/highlight/colorful.scss +61 -0
  141. data/_sass/highlight/cran.scss +169 -0
  142. data/_sass/highlight/default.scss +61 -0
  143. data/_sass/highlight/dracula.scss +169 -0
  144. data/_sass/highlight/emacs.scss +61 -0
  145. data/_sass/highlight/friendly.scss +61 -0
  146. data/_sass/highlight/fruity.scss +70 -0
  147. data/_sass/highlight/github.scss +61 -0
  148. data/_sass/highlight/gruvbox.light.scss +84 -0
  149. data/_sass/highlight/manni.scss +61 -0
  150. data/_sass/highlight/monokai.scss +65 -0
  151. data/_sass/highlight/murphy.scss +61 -0
  152. data/_sass/highlight/native.scss +70 -0
  153. data/_sass/highlight/pastie.scss +60 -0
  154. data/_sass/highlight/perldoc.scss +58 -0
  155. data/_sass/highlight/skeletor.scss +140 -0
  156. data/_sass/highlight/tango.scss +69 -0
  157. data/_sass/highlight/thankful_eyes.scss +173 -0
  158. data/_sass/highlight/trac.scss +59 -0
  159. data/_sass/highlight/vim.scss +70 -0
  160. data/_sass/highlight/vs.scss +33 -0
  161. data/_sass/highlight/zenburn.scss +136 -0
  162. data/_sass/reset-algolia.scss +24 -0
  163. data/_sass/skins/academia.scss +26 -0
  164. data/_sass/skins/auto.scss +26 -0
  165. data/_sass/skins/chulapa.scss +52 -0
  166. data/_sass/skins/deeply.scss +89 -0
  167. data/_sass/skins/graymor.scss +26 -0
  168. data/_sass/skins/hootstrap.scss +17 -0
  169. data/_sass/skins/journal.scss +142 -0
  170. data/_sass/skins/lux.scss +377 -0
  171. data/_sass/skins/lymcha.scss +14 -0
  172. data/_sass/skins/minty.scss +165 -0
  173. data/_sass/skins/none.scss +2 -0
  174. data/_sass/skins/pear.scss +21 -0
  175. data/_sass/skins/preptor.scss +19 -0
  176. data/_sass/skins/sketchy.scss +745 -0
  177. data/_sass/skins/sunset.scss +14 -0
  178. data/_sass/skins/twitter-dim.scss +30 -0
  179. data/_sass/skins/twitter-lights-out.scss +31 -0
  180. data/_sass/skins/twitter.scss +30 -0
  181. data/_sass/skins/universal.scss +24 -0
  182. data/_sass/skins/wandoo.scss +15 -0
  183. data/assets/atom.xml +72 -0
  184. data/assets/css/custom.scss +4 -0
  185. data/assets/css/highlighter.scss +5 -0
  186. data/assets/css/main.scss +35 -0
  187. data/assets/fonts/Chulapa/Chulapa-Bold.otf +0 -0
  188. data/assets/fonts/Chulapa/Chulapa-Bold_v2.1.otf +0 -0
  189. data/assets/fonts/Chulapa/Chulapa-Bold_v2.2.otf +0 -0
  190. data/assets/fonts/Chulapa/Chulapa-Bold_v2.otf +0 -0
  191. data/assets/fonts/Chulapa/Chulapa-Bold_vmod.otf +0 -0
  192. data/assets/fonts/Chulapa/Chulapa-Light.otf +0 -0
  193. data/assets/fonts/Chulapa/Chulapa-Regular.otf +0 -0
  194. data/assets/fonts/Chulapa/LICENCIA DE USO.txt +2 -0
  195. data/assets/fonts/Ferpal/Ferpal-Regular.otf +0 -0
  196. data/assets/js/algolia/algolia-search.js +148 -0
  197. data/assets/js/ch_ytdefer/ch_ytdefer.js +81 -0
  198. data/assets/js/ch_ytdefer/ch_ytdefer.min.js +1 -0
  199. data/assets/js/clipboardrouge.js +95 -0
  200. data/assets/js/google/google-search.js +24 -0
  201. data/assets/js/lunr/lunr-search.js +122 -0
  202. data/assets/js/lunr/lunr-store.js +35 -0
  203. data/assets/rss.xml +65 -0
  204. metadata +356 -0
@@ -0,0 +1,14 @@
1
+ /*! Tophat `Sunset` Bootstrap 4.3.1 theme */
2
+ @import url(https://fonts.googleapis.com/css?family=Voltaire:200,300,400,700);
3
+ $headings-font-family:Voltaire;
4
+
5
+ $primary:#2F414A;
6
+ $secondary:#F47B53;
7
+ $success:#420084;
8
+ $danger:#f2460d;
9
+ $info:#7ebcfa;
10
+ $warning:#ff9933;
11
+ $light:#eef0f2;
12
+ $dark:#000633;
13
+
14
+ // Add SASS theme customizations here..
@@ -0,0 +1,30 @@
1
+ //Twitter dim
2
+ // Some bootstrap variables
3
+ $primary: #1da1f2;
4
+ $secondary:#788995;
5
+ $success: #17bf63;
6
+ $warning: #ffad1f;
7
+ $danger: #e0245e;
8
+ $info: #794bc4;
9
+ $dark: #192734;
10
+ $body-bg:#15202b;
11
+ $body-color: #fff;
12
+ $hero-chulapa-bg-color:#15202b;
13
+ $thead-chulapa-bg-color: $primary;
14
+ $blockquote-chulapa-bg-color: mix(white, $primary, 80%);
15
+ $blockquote-chulapa-text-color: mix(black, $primary, 80%);
16
+
17
+ $navbar-chulapa-bg-color: #15202b;
18
+ $navbar-chulapa-text-color: white;
19
+ $navbar-chulapa-brand-color: white;
20
+ $navbar-chulapa-hover-color: $primary;
21
+ $navbar-chulapa-active-color: $primary;
22
+
23
+ $footer-chulapa-text-color: white;
24
+ $footer-chulapa-hover-color: $primary;
25
+
26
+ $pagination-chulapa-bg-hover-color: $primary;
27
+
28
+ $min-contrast-ratio: 2;
29
+
30
+ $breadcrumb-divider: quote(">");
@@ -0,0 +1,31 @@
1
+ // Some bootstrap variables
2
+ $primary: #1da1f2;
3
+ $secondary:#788995;
4
+ $success: #17bf63;
5
+ $warning: #ffad1f;
6
+ $danger: #e0245e;
7
+ $info: #794bc4;
8
+ $light: #c1c2c2;
9
+ $dark: #15181c;
10
+ $body-bg:#000;
11
+ $body-color: $light;
12
+ $hero-chulapa-bg-color:#000;
13
+ $hero-chulapa-text-color:$light;
14
+ $thead-chulapa-bg-color: $primary;
15
+ $blockquote-chulapa-bg-color: mix(white, $primary, 80%);
16
+ $blockquote-chulapa-text-color: mix(black, $primary, 80%);
17
+
18
+ $navbar-chulapa-bg-color: #000;
19
+ $navbar-chulapa-text-color: $light;
20
+ $navbar-chulapa-brand-color: $light;
21
+ $navbar-chulapa-hover-color: $primary;
22
+ $navbar-chulapa-active-color: $primary;
23
+
24
+ $footer-chulapa-text-color: $light;
25
+ $footer-chulapa-hover-color: $primary;
26
+
27
+ $pagination-chulapa-bg-hover-color: $primary;
28
+
29
+ $min-contrast-ratio: 2;
30
+
31
+ $breadcrumb-divider: quote(">");
@@ -0,0 +1,30 @@
1
+
2
+ // Some bootstrap variables
3
+ $primary: #1da1f2;
4
+ $secondary:#788995;
5
+ $success: #17bf63;
6
+ $warning: #ffad1f;
7
+ $danger: #e0245e;
8
+ $info: #794bc4;
9
+ $light: #f5f8fa;
10
+ $body-bg:#fff;
11
+ $body-color: #14171a;
12
+ $hero-chulapa-bg-color:#fff;
13
+ $thead-chulapa-bg-color: $primary;
14
+ $blockquote-chulapa-bg-color: mix(white, $primary, 80%);
15
+ $blockquote-chulapa-text-color: mix(black, $primary, 80%);
16
+ $navbar-chulapa-bg-color: #fff;
17
+ $navbar-chulapa-text-color: $body-color;
18
+ $navbar-chulapa-brand-color:$body-color;
19
+ $navbar-chulapa-hover-color: $primary;
20
+ $navbar-chulapa-active-color: $primary;
21
+
22
+ $footer-chulapa-text-color: $body-color;
23
+ $footer-chulapa-hover-color: $primary;
24
+
25
+ $pagination-chulapa-bg-hover-color: $primary;
26
+
27
+ $min-contrast-ratio: 2;
28
+
29
+
30
+ $breadcrumb-divider: quote(">");
@@ -0,0 +1,24 @@
1
+ // Adapted from Bootstrapius
2
+ @import url("https://fonts.googleapis.com/css2?family=Roboto+Mono&family=Roboto:wght@100;300;400;500;700&display=swap");
3
+
4
+ $font-family-base: "Roboto";
5
+ $font-family-monospace: "Roboto Mono";
6
+ $headings-font-weight: 700;
7
+ $body-bg: #fff;
8
+ $primary: #986dbd;
9
+ $green: #97bf13;
10
+ $red: #dc3545;
11
+ $orange: #fd7e14;
12
+ $yellow: #ffc107;
13
+ $headings-color: #333;
14
+ $link-color: #986dbd;
15
+ $navbar-chulapa-brand-color: #000;
16
+ $navbar-chulapa-bg-color: white;
17
+ $navbar-chulapa-toggler-color: #986dbd;
18
+ $navbar-chulapa-active-color: #986dbd;
19
+ $hero-chulapa-bg-color: #986dbd;
20
+ $hero-chulapa-text-color: black;
21
+ $footer-chulapa-bg-color: #333;
22
+ $footer-chulapa-text-color: #ccc;
23
+ $footer-chulapa-icon-color: #ccc;
24
+ $footer-chulapa-icon-hover-color: #724599;
@@ -0,0 +1,15 @@
1
+ /*! Tophat `Wandoo` Bootstrap 4.3.1 theme */
2
+ @import url(https://fonts.googleapis.com/css?family=Nunito:200,300,400,700);
3
+ $font-family-base:Nunito;
4
+ @import url(https://fonts.googleapis.com/css?family=Comfortaa:200,300,400,700);
5
+ $headings-font-family:Comfortaa;
6
+
7
+ $primary:#FF304F;
8
+ $secondary:#CACACA;
9
+ $success:#015668;
10
+ $danger:#06648C;
11
+ $info:#0F81C7;
12
+ $warning:#0DE2EA;
13
+ $light:#ececec;
14
+ $dark:#222222;
15
+ $gray-300:#e0e0e0;
data/assets/atom.xml ADDED
@@ -0,0 +1,72 @@
1
+ ---
2
+ layout: null
3
+ permalink: ./atom.xml
4
+ ---
5
+ {%- assign og_image = site.og_image | default: site.author.avatar | default: site.github.owner_gravatar_url | absolute_url -%}
6
+ <?xml version="1.0" encoding="utf-8"?>
7
+ <feed xmlns="http://www.w3.org/2005/Atom" >
8
+ <generator uri="https://dieghernan.github.io/chulapa" version="1.0.0">Chulapa</generator>
9
+ <link href="{{ page.url | absolute_url }}" rel="self" type="application/atom+xml" />
10
+ <link href="{{ "" | absolute_url }}" rel="alternate" type="text/html" />
11
+ <updated>{{ site.time | date_to_xmlschema }}</updated>
12
+ <id>{{ page.url | absolute_url }}</id>
13
+ <title>{{ site.title | strip_html }}{% if site.subtitle %}{{ " | " | append: site.subtitle | strip_html }}{% endif %}</title>
14
+ {% if site.subtitle -%}
15
+ <subtitle>{{- site.subtitle | strip_html -}}</subtitle>
16
+ {%- endif %}
17
+ <author>
18
+ <name>{{ site.author.name | default: site.github.owner_name }}</name>
19
+ {% assign authorlink = site.author.links | where_exp: "item", "item.url contains 'http'" -%}
20
+ {% for link in authorlink limit: 1 -%}
21
+ <uri>{{ link.url | absolute_url }}</uri>
22
+ {%- endfor %}
23
+ </author>
24
+ <rights>(c) {{ site.time | date: '%Y' }}, {{ site.author.name | default: site.github.owner_name }}</rights>
25
+ {% if site.navbar.brand.img -%}
26
+ <icon>{{- site.navbar.brand.img | absolute_url -}}</icon>
27
+ {%- endif %}
28
+ <logo>{{- og_image -}}</logo>
29
+ {%- assign wpm = words_per_minute | default: 200 -%}
30
+ {%- assign alldocs = site.documents |
31
+ where_exp: "item", "item.include_on_feed == true" |
32
+ where_exp: "item", "item.date != nil" |
33
+ sort: 'date' | reverse -%}
34
+ {%- for document in alldocs -%}
35
+ {%- assign entryimg = document.og_image | default: document.header_img | absolute_url -%}
36
+ {%- assign words = document.content | strip_html | number_of_words -%}
37
+ {%- assign minutes = words | divided_by: wpm | ceil | at_least: 1 -%}
38
+ <entry>
39
+ <title>{{ document.title | strip_html | escape }}</title>
40
+ <link href="{{ document.url | replace: "index.html", "" | absolute_url | uri_escape }}" rel="alternate" type="text/html" title="{{ document.title | strip_html | escape }}"/>
41
+ <published>{{ document.date | date_to_xmlschema }}</published>
42
+ <updated>{{ document.last_modified_at | default: document.date | date_to_xmlschema }}</updated>
43
+ <id>{{ document.url | replace: "index.html", "" | absolute_url | uri_escape }}</id>
44
+ <content type="html" xml:base="{{ document.url | replace: "index.html", "" | absolute_url | uri_escape }}">
45
+ {% if document.subtitle %}
46
+ {{ '<h3>' | append: document.subtitle |
47
+ append: '</h3>' | escape }}
48
+
49
+ {% endif %}
50
+ {% if entryimg %}
51
+ {{ "<img src='" | append: entryimg | append: "' >" | escape }}
52
+ {% endif %}
53
+ {{ "<p>" | append: minutes |
54
+ append: " min.</p>" | escape }}
55
+ {{ document.content | markdownify | escape }}
56
+ </content>
57
+ {% assign entryauthor = document.author | default: site.author %}
58
+ <author>
59
+ <name>{{ entryauthor.name | default: site.github.owner_name }}</name>
60
+ {%- for link in entryauthor.links limit: 1 -%}
61
+ <uri>{{ link.url | absolute_url }}</uri>
62
+ {%- endfor -%}
63
+ </author>
64
+ <summary type="html">{{ document.excerpt | escape }}</summary>
65
+ <category term="{{ document.collection }}"/>
66
+ {% assign tagrss = document.tags | join: ',' | split: ',' | sort -%}
67
+ {% for tag in tagrss -%}
68
+ <category term="{{ tag }}"/>
69
+ {%- endfor %}
70
+ </entry>
71
+ {%- endfor -%}
72
+ </feed>
@@ -0,0 +1,4 @@
1
+ ---
2
+ ---
3
+ @charset "utf-8";
4
+ // Your custom css /scss here
@@ -0,0 +1,5 @@
1
+ ---
2
+ ---
3
+ @charset "utf-8";
4
+ // Syntax highlighter
5
+ @import "highlight/{{- site.chulapa-skin.highlight | downcase | default: "default" -}}";
@@ -0,0 +1,35 @@
1
+ ---
2
+ ---
3
+ @charset "utf-8";
4
+ // Custom free font: see https://diario.madrid.es/chulapa/
5
+ @font-face {
6
+ font-family: chulapa;
7
+ src: url({{ "/assets/fonts/Chulapa/Chulapa-Bold_vmod.otf" | absolute_url }});
8
+ font-display: fallback;
9
+ }
10
+
11
+ //Theming Bootstrap from config
12
+
13
+ //Theme
14
+ @import "skins/{{- site.chulapa-skin.skin | default: "none" -}}";
15
+
16
+ //Theming Bootstrap from config // overrides
17
+ {% for var in site.chulapa-skin.vars %}
18
+ {% if var[1] != nil %}
19
+ ${{ var[0] }}: {{ var[1] }};
20
+ {% endif %}
21
+ {% endfor%}
22
+
23
+
24
+ {% if site.chulapa-skin.autothemer %}
25
+ // Autothemer: No overrides
26
+ @import "skins/auto";
27
+ {% endif %}
28
+
29
+ // Import bootstrap
30
+ @import "bootstrap/bootstrap";
31
+ //B. Chulapa specifics
32
+ @import "chulapa-master";
33
+ {% if site.search.provider == "algolia" %}
34
+ @import "reset-algolia";
35
+ {% endif %}
@@ -0,0 +1,2 @@
1
+ Chulapa es una tipografía del Ayuntamiento de Madrid diseñada y producida por Joancarles Casasín y Pablo Gámez sobre una idea de Silvia Fernández Palomar licenciada bajo Creative Commons CC BY, Versión 4.0:
2
+ https://creativecommons.org/licenses/by/4.0/deed.es_ES
@@ -0,0 +1,148 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+
5
+ const algoliaClient = algoliasearch(
6
+ '{{ site.algolia.application_id }}',
7
+ '{{ site.algolia.search_only_api_key }}'
8
+ );
9
+
10
+ const searchClient = {
11
+ search(requests) {
12
+ if (requests.every(({ params }) => !params.query)) {
13
+ return Promise.resolve({
14
+ results: requests.map(() => ({
15
+ hits: [],
16
+ nbHits: 0,
17
+ nbPages: 0,
18
+ })),
19
+ });
20
+ }
21
+
22
+ return algoliaClient.search(requests);
23
+ },
24
+ };
25
+
26
+ const search = instantsearch({
27
+ indexName: '{{ site.algolia.index_name }}',
28
+ searchClient,
29
+ });
30
+
31
+
32
+ function imgurl(p1) {
33
+ if (p1 === undefined){
34
+ return " "
35
+ } else if (p1.indexOf("./") === 0) {
36
+ return p1.replace("./", "{{ '/' | absolute_url }}");
37
+ } else if (p1.indexOf("/") === 0) {
38
+ return p1.replace("/", "{{ '/' | absolute_url }}");
39
+ } else {
40
+ return p1
41
+ }
42
+ }
43
+
44
+ function parsecontent(hit) {
45
+ if (hit.html === undefined){
46
+ return " "
47
+ } else {
48
+ return hit._highlightResult.html.value
49
+ }
50
+ }
51
+ function parsetitle(hit) {
52
+ if (hit.title === undefined){
53
+ return "---------"
54
+ } else {
55
+ return hit._highlightResult.title.value
56
+ }
57
+ }
58
+
59
+ function parseimg(img1, img2){
60
+ if (img1 === undefined){
61
+ return img2;
62
+ } else {
63
+ return img1;
64
+ }
65
+ }
66
+
67
+ const hitTemplate = function(hit) {
68
+ const url = hit.url;
69
+ const title = parsetitle(hit);
70
+ const content = parsecontent(hit);
71
+ const img = parseimg(hit.og_image, hit.header_img);
72
+ const imglink = imgurl(img);
73
+ if (img === undefined){
74
+ return `
75
+ <article class="my-2 text-left">
76
+ <div class="row">
77
+ <div class="col">
78
+ <h5 class="chulapa-links-hover-only"><a href="{{ '' | absolute_url }}${url}">${title}</a></h5>
79
+ </div>
80
+ </div>
81
+ <div class="row mt-2">
82
+ <div class="col">
83
+ <p>${content}</p>
84
+ </div>
85
+ </div>
86
+ <hr>
87
+ </article>
88
+ `;
89
+ } else {
90
+ return `
91
+ <article class="my-2 text-left">
92
+ <div class="row">
93
+ <div class="col">
94
+ <h5 class="chulapa-links-hover-only"><a href="{{ '' | absolute_url }}${url}">${title}</a></h5>
95
+ </div>
96
+ <div class="col-4 col-md-3">
97
+ <a href="{{ '' | absolute_url }}${url}">
98
+ <div class="rounded-lg chulapa-overlay-img chulapa-gradient chulapa-min-h-10" style="background-image: url('${imglink}')" ></div>
99
+ </a>
100
+ </div>
101
+ </div>
102
+ <div class="row mt-2">
103
+ <div class="col">
104
+ <p>${content}</p>
105
+ </div>
106
+ </div>
107
+ <hr>
108
+ </article>
109
+ `;
110
+ }
111
+ }
112
+
113
+
114
+
115
+ search.addWidgets([
116
+ instantsearch.widgets.searchBox({
117
+ container: '#searchbox',
118
+ placeholder: '{{ site.search.label | default: "Search" }}...',
119
+ showReset: false,
120
+ showSubmit: false,
121
+ showLoadingIndicator: false,
122
+ cssClasses: {
123
+ root: ['input-group'],
124
+ form: ['input-group'],
125
+ input: ['form-control', 'rounded'],
126
+ },
127
+ }),
128
+ {% if site.search.algolia_logo %}
129
+ instantsearch.widgets.poweredBy({
130
+ container: '#powered-by',
131
+ }),
132
+ {% endif %}
133
+ {% raw %}
134
+ instantsearch.widgets.hits({
135
+ container: '#hits',
136
+ escapeHTML: false,
137
+ templates: {
138
+ empty: `
139
+ {{#query}}
140
+ <h6 class="text-center">No results found</h6>
141
+ {{/query}}
142
+ `,
143
+ item: hitTemplate
144
+ },
145
+ }),
146
+ {% endraw %}
147
+ ]);
148
+ search.start();
@@ -0,0 +1,81 @@
1
+ var ytdefer_ic_w = 73;
2
+ var ytdefer_ic_h = 52;
3
+ var yt_icon =
4
+ '<svg height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#eb3223"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg>';
5
+ var yt_dark_icon =
6
+ '<svg height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#212121" fill-opacity="0.8"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg>';
7
+
8
+ function ch_ytdefer_setup() {
9
+ var d = document;
10
+ var els = d.getElementsByClassName("ch_ytdefer");
11
+ for (var i = 0; i < els.length; i++) {
12
+ var im = els[i];
13
+ var ds = im.getAttribute("data-src");
14
+ if (!ds) {
15
+ alert("data-src missing for video");
16
+ return;
17
+ }
18
+ // Add ids and clicks
19
+ im.setAttribute('id', "ch_ytdefer" + i);
20
+ //im.id= ;
21
+ im.onclick = gen_ytdefer_clk(i);
22
+ //e.appendChild(im);
23
+
24
+ // Add id to button
25
+ var bt = im.getElementsByClassName("ch_ytdefer_btn")[0];
26
+ bt.setAttribute("id", "ch_ytdefer_icon" + i);
27
+
28
+ // Hover button
29
+ im.onmouseover = gen_mouseover(bt);
30
+ im.onmouseout = gen_mouseout(bt);
31
+
32
+ }
33
+ if (typeof YT == "undefined") {
34
+ var js = d.createElement("script");
35
+ js.type = "text/javascript";
36
+ js.src = "https://www.youtube.com/player_api";
37
+ d.body.appendChild(js);
38
+ }
39
+ }
40
+
41
+ function gen_mouseout(bt) {
42
+ return function() {
43
+ bt.style.backgroundImage = "url(data:image/svg+xml;base64," + window.btoa(yt_dark_icon) + ")";
44
+ };
45
+ }
46
+
47
+ function gen_mouseover(bt) {
48
+ return function() {
49
+ bt.style.backgroundImage = "url(data:image/svg+xml;base64," + window.btoa(yt_icon) + ")";
50
+ };
51
+ }
52
+
53
+ function gen_ytdefer_clk(i) {
54
+ return function() {
55
+ var d = document;
56
+ var im = d.getElementById("ch_ytdefer" + i);
57
+ // Get video id from source
58
+ var vid_id = im.getAttribute("data-src");
59
+
60
+
61
+ // Create an iframe with the responsive class and append it as a child
62
+ var ifr = d.createElement("div");
63
+ ifr.id = "ch_ytdefer_frame" + i;
64
+ ifr.classList.add("embed-responsive-item");
65
+ im.appendChild(ifr);
66
+
67
+ //Remove attributes
68
+ //im.removeAttribute('style');
69
+
70
+ // Add player
71
+ var player = new YT.Player(ifr.id, {
72
+ videoId: vid_id,
73
+ events: {
74
+ onReady: function(ev) {
75
+ ev.target.playVideo();
76
+ },
77
+ },
78
+ });
79
+
80
+ };
81
+ }
@@ -0,0 +1 @@
1
+ var ytdefer_ic_w=73,ytdefer_ic_h=52,yt_icon='<svg height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#eb3223"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg>',yt_dark_icon='<svg height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#212121" fill-opacity="0.8"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg>';function ch_ytdefer_setup(){for(var e=document,t=e.getElementsByClassName("ch_ytdefer"),n=0;n<t.length;n++){var a=t[n];if(!a.getAttribute("data-src")){alert("data-src missing for video");return}a.setAttribute("id","ch_ytdefer"+n),a.onclick=gen_ytdefer_clk(n);var i=a.getElementsByClassName("ch_ytdefer_btn")[0];i.setAttribute("id","ch_ytdefer_icon"+n),a.onmouseover=gen_mouseover(i),a.onmouseout=gen_mouseout(i)}if("undefined"==typeof YT){var r=e.createElement("script");r.type="text/javascript",r.src="https://www.youtube.com/player_api",e.body.appendChild(r)}}function gen_mouseout(e){return function(){e.style.backgroundImage="url(data:image/svg+xml;base64,"+window.btoa(yt_dark_icon)+")"}}function gen_mouseover(e){return function(){e.style.backgroundImage="url(data:image/svg+xml;base64,"+window.btoa(yt_icon)+")"}}function gen_ytdefer_clk(e){return function(){var t=document,n=t.getElementById("ch_ytdefer"+e),a=n.getAttribute("data-src"),i=t.createElement("div");i.id="ch_ytdefer_frame"+e,i.classList.add("embed-responsive-item"),n.appendChild(i),new YT.Player(i.id,{videoId:a,events:{onReady:function(e){e.target.playVideo()}}})}}
@@ -0,0 +1,95 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+
5
+ // Clipboard
6
+ // Uses Bootstrap 4 + JQuery
7
+
8
+ // Initialize tooltips BST4 - Fancy displaying
9
+ // CSS btn-copy-code: Visibility controls that the button is shown only when hovering the code container
10
+ //.btn-copy-code{position:absolute;right:30px;visibility:hidden} NOTE: visibilty optional
11
+ //.highlighter-rouge:hover button.btn-copy-code{visibility:visible} NOTE: Skip if btn_copy_code not hidden
12
+
13
+ $(function () {
14
+ $('[data-toggle="tooltip"]').tooltip()
15
+ })
16
+
17
+ function showTooltip(btn, message) {
18
+ btn.tooltip('hide')
19
+ .attr('data-original-title', message)
20
+ .tooltip('show');
21
+ }
22
+
23
+ function hideTooltip(btn) {
24
+ setTimeout(function() {
25
+ btn.tooltip('hide');
26
+ }, 1000);
27
+ }
28
+
29
+ function sleep(ms) {
30
+ return new Promise(resolve => setTimeout(resolve, ms));
31
+ }
32
+ //
33
+ async function setTooltip(btn, message) {
34
+ btn.classList.remove('btn-light');
35
+ btn.classList.add('btn-success');
36
+ btn.setAttribute('aria-label', message);
37
+ await sleep(1000);
38
+ btn.removeAttribute('aria-label');
39
+ btn.removeAttribute('data-original-title');
40
+ btn.classList.add('btn-light');
41
+ btn.classList.remove('btn-success');
42
+ }
43
+
44
+ async function warningTooltip(btn, message) {
45
+ btn.classList.remove('btn-light');
46
+ btn.classList.add('btn-danger');
47
+ await sleep(500);
48
+ btn.removeAttribute('aria-label');
49
+ btn.removeAttribute('data-original-title');
50
+ btn.classList.add('btn-light');
51
+ btn.classList.remove('btn-danger');
52
+ }
53
+
54
+ // End helpers tooltip
55
+
56
+ // Insert buttons
57
+ $(document).ready(function() {
58
+ // HTML Button styled with BST4
59
+ var copyButton = "<button class='btn btn-light btn-sm btn-chulapa-copy-code' " +
60
+ "type = 'button' " +
61
+ "data-toggle='tooltip'" +
62
+ "data-placement='left'" +
63
+ "data-clipboard-copy>" + //Keyword
64
+ "<i class='far fa-copy'></i>" +
65
+ "</button>";
66
+
67
+ // Insert copy buttons between pre and code on Rouge:
68
+ $(copyButton).prependTo("pre.highlight");
69
+
70
+ });
71
+
72
+ // Copy next Sibling - code part
73
+ var clipboard = new ClipboardJS('[data-clipboard-copy]', { // Keyword
74
+ target: function(trigger) {
75
+ return trigger.nextElementSibling;
76
+ }
77
+ });
78
+ // Fancy displaying using BST4
79
+ clipboard.on('success', function(e) {
80
+ e.clearSelection();
81
+ setTooltip(e.trigger, 'Copied!');
82
+ var btn = $(e.trigger);
83
+ showTooltip(btn, 'Copied!');
84
+ hideTooltip(btn);
85
+ // Console
86
+ console.info('Text:', e.text);
87
+ });
88
+
89
+ clipboard.on('error', function(e) {
90
+ e.clearSelection();
91
+ warningTooltip(e.trigger, 'Error!');
92
+ var btn = $(e.trigger);
93
+ showTooltip(btn, 'Error!');
94
+ hideTooltip(btn);
95
+ });
@@ -0,0 +1,24 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+
5
+ (function() {
6
+ var cx = '{{ site.google_cse_id }}';
7
+ var gcse = document.createElement('script');
8
+ gcse.type = 'text/javascript';
9
+ gcse.async = true;
10
+ gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
11
+ var s = document.getElementsByTagName('script')[0];
12
+ s.parentNode.insertBefore(gcse, s);
13
+ })();
14
+
15
+ function googleCustomSearchExecute() {
16
+ var input = document.getElementById('cse-search-input-box-id');
17
+ var element = google.search.cse.element.getElement('searchresults-only0');
18
+ if (input.value == '') {
19
+ element.clearAllResults();
20
+ } else {
21
+ element.execute(input.value);
22
+ }
23
+ return false;
24
+ }