chulapa-jekyll 1.0.1 → 2.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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +68 -9
  3. data/README.md +106 -66
  4. data/_data/version.yml +2 -0
  5. data/_data/welcomments/01_install/01H35P308R2G2YMW849CK7V1VP.json +9 -0
  6. data/_data/welcomments/02_config/01GMBNMYVQS6NCQ45S7KP1TK80.json +10 -0
  7. data/_data/welcomments/02_config/01GMBNP7RB0CBQNKKXKWG5CHJN.json +10 -0
  8. data/_data/welcomments/02_config/01GMBNX1CNV06WN12XR72CNN8D.json +11 -0
  9. data/_data/welcomments/02_config/01GME95BGP5HDQWAWFXT49FDB5.json +10 -0
  10. data/_data/welcomments/02_config/01GME9BZ4N0K0RT3WEPM397VP1.json +10 -0
  11. data/_data/welcomments/02_config/01HAH50GMY2SEESXQNR9D3V44R.json +9 -0
  12. data/_data/welcomments/welcome/01GMDMF77D4VZ7VQX9JAK0RMT5.json +10 -0
  13. data/_data/welcomments/welcome/01H1QVV3C210ND4XY30H0BZHQP.json +9 -0
  14. data/_includes/components/author.html +12 -7
  15. data/_includes/components/breadcrumbdatesocial.html +27 -12
  16. data/_includes/components/cactus.html +18 -0
  17. data/_includes/components/categories.html +1 -1
  18. data/_includes/components/cusdis.html +18 -0
  19. data/_includes/components/disqus.html +1 -1
  20. data/_includes/components/headers.html +10 -10
  21. data/_includes/components/indexcards.html +1 -1
  22. data/_includes/components/navbeforeafter.html +23 -4
  23. data/_includes/components/related.html +72 -0
  24. data/_includes/components/sidetoc.html +15 -0
  25. data/_includes/components/tags.html +1 -1
  26. data/_includes/components/toc.html +120 -50
  27. data/_includes/components/welcomments.html +10 -0
  28. data/_includes/footer.html +63 -17
  29. data/_includes/head.html +41 -31
  30. data/_includes/navbar.html +4 -4
  31. data/_includes/snippets/bootstrapdemo.html +3 -0
  32. data/_includes/snippets/carousel.html +3 -3
  33. data/_includes/snippets/masonry.html +3 -1
  34. data/_includes/snippets/video.html +20 -10
  35. data/_includes/snippets/youtube.html +10 -1
  36. data/_includes/welcomments/comment_form.html +26 -0
  37. data/_includes/welcomments/comments.html +109 -0
  38. data/_includes/welcomments/single_comment.html +57 -0
  39. data/_includes/welcomments/template.html +46 -0
  40. data/_layouts/cloudcategory.html +4 -4
  41. data/_layouts/cloudcategory2.html +89 -0
  42. data/_layouts/cloudtag2.html +86 -0
  43. data/_layouts/compress.html +2 -2
  44. data/_layouts/default.html +17 -3
  45. data/_layouts/landingpage.html +21 -3
  46. data/_layouts/minimal.html +5 -6
  47. data/_layouts/search.html +8 -7
  48. data/_sass/chulapa/_classes.scss +1270 -0
  49. data/_sass/{chulapa-misc.scss → chulapa/_reboot.scss} +24 -4
  50. data/_sass/{chulapa-vars.scss → chulapa/_variables.scss} +25 -5
  51. data/_sass/chulapa-master.scss +5 -5
  52. data/_sass/highlight/monokai.scss +1 -1
  53. data/_sass/reset-algolia.scss +1 -1
  54. data/_sass/skins/academia.scss +24 -18
  55. data/_sass/skins/auto.scss +2 -1
  56. data/_sass/skins/chulapa.scss +14 -12
  57. data/_sass/skins/dark-bg.scss +62 -0
  58. data/_sass/skins/deeply.scss +4 -3
  59. data/_sass/skins/electro.scss +20 -0
  60. data/_sass/skins/focal.scss +52 -0
  61. data/_sass/skins/gitdev-dark.scss +97 -0
  62. data/_sass/skins/gitdev.scss +86 -0
  63. data/_sass/skins/graymor.scss +17 -18
  64. data/_sass/skins/hootstrap.scss +12 -12
  65. data/_sass/skins/journal.scss +6 -5
  66. data/_sass/skins/lux.scss +9 -10
  67. data/_sass/skins/lymcha.scss +10 -10
  68. data/_sass/skins/media.scss +54 -0
  69. data/_sass/skins/mickie.scss +13 -0
  70. data/_sass/skins/minco.scss +12 -0
  71. data/_sass/skins/minty.scss +14 -11
  72. data/_sass/skins/monotone.scss +14 -0
  73. data/_sass/skins/pear.scss +19 -20
  74. data/_sass/skins/preptor.scss +13 -14
  75. data/_sass/skins/skeeblu.scss +20 -0
  76. data/_sass/skins/sketchy.scss +5 -4
  77. data/_sass/skins/sunset.scss +10 -10
  78. data/_sass/skins/towards.scss +21 -0
  79. data/_sass/skins/twitter-dim.scss +38 -28
  80. data/_sass/skins/twitter-lights-out.scss +38 -30
  81. data/_sass/skins/twitter.scss +25 -25
  82. data/_sass/skins/universal.scss +79 -21
  83. data/_sass/skins/wandoo.scss +12 -13
  84. data/assets/css/main.scss +1 -1
  85. data/assets/css/welcomments.scss +572 -0
  86. data/assets/fonts/Hubot-Sans/Hubot-Sans.woff2 +0 -0
  87. data/assets/fonts/Hubot-Sans/LICENSE.txt +93 -0
  88. data/assets/fonts/Mona-Sans/LICENSE.txt +93 -0
  89. data/assets/fonts/Mona-Sans/Mona-Sans.woff2 +0 -0
  90. data/assets/js/ch_ytdefer/ch_ytdefer.js +3 -1
  91. data/assets/js/chulapa_script.js +175 -0
  92. data/assets/js/clipboard/chulapa_clipboard.js +109 -0
  93. data/assets/js/cusdis/chulapa_cusdis.js +1 -0
  94. data/assets/js/google/google-search.js +0 -1
  95. metadata +75 -15
  96. data/_sass/chulapa-classes.scss +0 -844
  97. data/assets/fonts/Chulapa/Chulapa-Bold.otf +0 -0
  98. data/assets/fonts/Chulapa/Chulapa-Bold_v2.1.otf +0 -0
  99. data/assets/fonts/Chulapa/Chulapa-Bold_v2.2.otf +0 -0
  100. data/assets/fonts/Chulapa/Chulapa-Bold_v2.otf +0 -0
  101. data/assets/fonts/Chulapa/Chulapa-Light.otf +0 -0
  102. data/assets/fonts/Chulapa/Chulapa-Regular.otf +0 -0
  103. data/assets/js/ch_ytdefer/ch_ytdefer.min.js +0 -1
  104. data/assets/js/clipboardrouge.js +0 -95
  105. /data/_sass/{bootstrapv5-migration.scss → chulapa/_bootstrapv5.scss} +0 -0
  106. /data/_sass/{chulapa-mixins.scss → chulapa/_mixins.scss} +0 -0
@@ -0,0 +1,93 @@
1
+ Copyright (c) 2022, GitHub https://github.com/github/hubot-sans
2
+ with Reserved Font Name "Hubot Sans"
3
+
4
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
5
+ This license is copied below, and is also available with a FAQ at:
6
+ http://scripts.sil.org/OFL
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting — in part or in whole — any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,93 @@
1
+ Copyright (c) 2022, GitHub https://github.com/github/mona-sans
2
+ with Reserved Font Name "Mona Sans"
3
+
4
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
5
+ This license is copied below, and is also available with a FAQ at:
6
+ http://scripts.sil.org/OFL
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting — in part or in whole — any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -32,7 +32,6 @@ function ch_ytdefer_setup() {
32
32
  }
33
33
  if (typeof YT == "undefined") {
34
34
  var js = d.createElement("script");
35
- js.type = "text/javascript";
36
35
  js.src = "https://www.youtube.com/player_api";
37
36
  d.body.appendChild(js);
38
37
  }
@@ -62,6 +61,7 @@ function gen_ytdefer_clk(i) {
62
61
  var ifr = d.createElement("div");
63
62
  ifr.id = "ch_ytdefer_frame" + i;
64
63
  ifr.classList.add("embed-responsive-item");
64
+ ifr.setAttribute("itemprop", "embedUrl");
65
65
  im.appendChild(ifr);
66
66
 
67
67
  //Remove attributes
@@ -79,3 +79,5 @@ function gen_ytdefer_clk(i) {
79
79
 
80
80
  };
81
81
  }
82
+
83
+ window.addEventListener('load', ch_ytdefer_setup);
@@ -0,0 +1,175 @@
1
+ var sT = document.getElementById("sidetoc");
2
+ var btn = document.getElementById("demo");
3
+ var body = document.getElementById("body");
4
+ var main = document.getElementById("maincontent");
5
+ var heads = main.querySelectorAll("h1, h2, h3, h4, h5 , h6");
6
+ var els = main.querySelectorAll("pre");
7
+
8
+ // First load sidebar
9
+ // Create hidden overlay
10
+ var iDiv = document.createElement("div");
11
+ if (sT) {
12
+ btn.style.marginLeft = "0";
13
+ iDiv.classList.add("bs-canvas-overlay", "bg-dark", "position-fixed",
14
+ "w-100", "h-100");
15
+ iDiv.setAttribute("id", "sideBarOverlay");
16
+ iDiv.setAttribute("onclick", "closeSideBar()");
17
+ body.prepend(iDiv);
18
+ } else if (btn) {
19
+ // ToC was requested but no toc produced
20
+ // Clean up DOM
21
+ btn.remove();
22
+ document.getElementById("sideBar")
23
+ .remove();
24
+ }
25
+
26
+ function openSideBar() {
27
+ btn.removeAttribute("style");
28
+ btn.setAttribute("aria-expanded", "true");
29
+ document.getElementById("sideBarOverlay")
30
+ .classList.add("show");
31
+ document.getElementById("sideBar")
32
+ .style.marginLeft = "0";
33
+ }
34
+
35
+ function closeSideBar() {
36
+ document.getElementById("sideBar")
37
+ .removeAttribute("style");
38
+ document.getElementById("sideBarOverlay")
39
+ .classList.remove("show");
40
+ btn.style.marginLeft = "0";
41
+ btn.setAttribute("aria-expanded", "false");
42
+ }
43
+
44
+ // Put anchors on headings
45
+ heads.forEach(function (currentValue) {
46
+ thish = currentValue;
47
+ id = thish.id;
48
+ if (id) {
49
+ anchor = document.createElement("a");
50
+ sp = document.createElement("span");
51
+ ic = document.createElement("i");
52
+ anchor.classList.add("chulapa-header-link", "ml-2",
53
+ "chulapaDateSocial");
54
+ anchor.href = "#" + id;
55
+ sp.innerHTML = "Permalink";
56
+ sp.classList.add("sr-only");
57
+ ic.classList.add("fas", "fa-link", "fa-2xs", "align-middle");
58
+ anchor.append(sp, ic);
59
+ anchor.title = "Permalink";
60
+ thish.append(anchor);
61
+ } else {
62
+ console.log("Heading :" + thish.innerHTML +
63
+ " does not have id. Can't place anchor here");
64
+ }
65
+ });
66
+
67
+ // Copy Clipboard
68
+ // Insert buttons
69
+
70
+ els.forEach(function (currentValue, currentIndex) {
71
+ preBlock = currentValue;
72
+ i = currentIndex;
73
+ // Select first child
74
+ codeBlock = preBlock.firstChild;
75
+ // If first child is code
76
+ if (codeBlock.tagName.toLowerCase() == "code") {
77
+ // Add br is no native
78
+ hashigh = preBlock.classList.contains("highlight");
79
+ if (hashigh === false){
80
+ preBlock.classList.add("highlight");
81
+ brk = document.createElement("br");
82
+ codeBlock.prepend(brk);
83
+ }
84
+ // Add id to code block
85
+ codeBlock.setAttribute("id", "clipboard_code" + i);
86
+ // Create button
87
+ copybtn = document.createElement("button");
88
+ copybtn.classList.add("btn", "text-muted", "btn-sm",
89
+ "btn-chulapa-copy-code");
90
+ copybtn.innerHTML = "<i class='far fa-copy'></i>";
91
+ copybtn.id = "clipboard_btn" + i;
92
+ copybtn.type = "button";
93
+ copybtn.setAttribute("data-toggle", "tooltip");
94
+ copybtn.setAttribute("data-placement", "left");
95
+ copybtn.setAttribute("aria-label", "Copy code to clipboard");
96
+ //Function to copy to clipboard
97
+ copybtn.onclick = ch_copy_cliboard(i);
98
+ preBlock.prepend(copybtn);
99
+ } else {
100
+ console.log("No code block for\n" + preBlock.innerHTML);
101
+ }
102
+
103
+ });
104
+
105
+ // Initialize Bootstrap tooltip
106
+ $(function () {
107
+ $("[data-toggle='tooltip']")
108
+ .tooltip();
109
+ })
110
+
111
+ function showTooltip(thisbtn, message) {
112
+ thisbtn.tooltip("hide")
113
+ .attr("data-original-title", message)
114
+ .tooltip("show");
115
+ }
116
+
117
+ function hideTooltip(thisbtn) {
118
+ setTimeout(function () {
119
+ thisbtn.tooltip("hide");
120
+ }, 1000);
121
+ }
122
+
123
+ function sleep(ms) {
124
+ return new Promise(resolve => setTimeout(resolve, ms));
125
+ }
126
+
127
+ async function setTooltip(thisbtn, tooltip, style) {
128
+ thisbtn.classList.remove("text-muted");
129
+ thisbtn.classList.add(style);
130
+ thisbtn.setAttribute("aria-label", tooltip);
131
+ await sleep(1000);
132
+ thisbtn.classList.add("text-muted");
133
+ thisbtn.setAttribute("aria-label", "Copy code to clipboard");
134
+ thisbtn.removeAttribute("data-original-title");
135
+ thisbtn.classList.remove(style);
136
+ }
137
+
138
+ function ch_copy_cliboard(i) {
139
+ return function () {
140
+ // Select code content and strip HTML
141
+ let thisCodeBlock = document.getElementById("clipboard_code" + i)
142
+ .innerHTML;
143
+ codeBlockStripped = stripHtml(thisCodeBlock);
144
+
145
+ // Reset clipboard
146
+ navigator.clipboard.writeText("");
147
+
148
+ thiscopybtn = document.getElementById("clipboard_btn" + i);
149
+ btnTrigger = $(thiscopybtn);
150
+
151
+ // Set initial values
152
+
153
+ style = "text-success";
154
+ msg = "Copied on the clipboard:\n" + codeBlockStripped;
155
+ tooltip = "Copied!";
156
+ try {
157
+ navigator.clipboard.writeText(codeBlockStripped);
158
+ } catch {
159
+ // Modify on error
160
+ style = "text-danger";
161
+ tooltip = "Error!";
162
+ msg = "Error when copying the code";
163
+ }
164
+ setTooltip(thiscopybtn, tooltip, style);
165
+ showTooltip(btnTrigger, tooltip);
166
+ hideTooltip(btnTrigger);
167
+ console.log(msg);
168
+ }
169
+ }
170
+ // stripHtml safely
171
+ function stripHtml(html) {
172
+ let tmp = document.createElement("DIV");
173
+ tmp.innerHTML = html;
174
+ return tmp.textContent || tmp.innerText || "";
175
+ }
@@ -0,0 +1,109 @@
1
+ // Initialize Bootstrap tooltip
2
+ $(function() {
3
+ $('[data-toggle="tooltip"]')
4
+ .tooltip()
5
+ })
6
+
7
+ function showTooltip(btn, message) {
8
+ btn.tooltip('hide')
9
+ .attr('data-original-title', message)
10
+ .tooltip('show');
11
+ }
12
+
13
+ function hideTooltip(btn) {
14
+ setTimeout(function() {
15
+ btn.tooltip('hide');
16
+ }, 1000);
17
+ }
18
+
19
+ function sleep(ms) {
20
+ return new Promise(resolve => setTimeout(resolve, ms));
21
+ }
22
+
23
+ async function setTooltip(btn, tooltip, style) {
24
+ btn.classList.remove('text-muted');
25
+ btn.classList.add(style);
26
+ btn.setAttribute('aria-label', tooltip);
27
+ await sleep(1000);
28
+ btn.classList.add('text-muted');
29
+ btn.setAttribute('aria-label', 'Copy code to clipboard');
30
+ btn.removeAttribute('data-original-title');
31
+ btn.classList.remove(style);
32
+ }
33
+
34
+ // End helpers tooltip
35
+
36
+
37
+ // Insert buttons
38
+ function ch_clipboard_setup() {
39
+ var d = document;
40
+ var els = d.querySelectorAll('pre');
41
+ for (var i = 0; i < els.length; i++) {
42
+ // Select all pre codes
43
+ var preBlock = els[i];
44
+ // Select first child
45
+ let codeBlock = preBlock.firstChild;
46
+
47
+ // If first child is code
48
+ if (codeBlock.tagName.toLowerCase() == 'code') {
49
+ // Add id to code block
50
+ codeBlock.setAttribute('id', 'clipboard_code' + i);
51
+ // Create button
52
+ var btn = d.createElement('button');
53
+ btn.classList.add('btn', 'text-muted', 'btn-sm', 'btn-chulapa-copy-code');
54
+ btn.innerHTML = "<i class='far fa-copy'></i>";
55
+ btn.id = 'clipboard_btn' + i;
56
+ btn.type = 'button';
57
+ btn.setAttribute('data-toggle', 'tooltip');
58
+ btn.setAttribute('data-placement', 'left');
59
+ btn.setAttribute('aria-label', 'Copy code to clipboard');
60
+ //Function to copy to clipboard
61
+ btn.onclick = ch_copy_cliboard(i);
62
+ preBlock.prepend(btn);
63
+ } else {
64
+ console.log('No code block for\n' + preBlock.innerHTML);
65
+ }
66
+ }
67
+ }
68
+
69
+ function ch_copy_cliboard(i) {
70
+ return function() {
71
+ var d = document;
72
+ // Select code content and strip HTML
73
+ var codeBlock = d.getElementById('clipboard_code' + i)
74
+ .innerHTML;
75
+ codeBlockStripped = stripHtml(codeBlock);
76
+
77
+ // Reset clipboard
78
+ navigator.clipboard.writeText('');
79
+
80
+ var btn = d.getElementById('clipboard_btn' + i);
81
+ var btnTrigger = $(btn);
82
+
83
+ // Set initial values
84
+
85
+ let style = 'text-success';
86
+ let msg = 'Copied on the clipboard:\n' + codeBlockStripped;
87
+ let tooltip = 'Copied!';
88
+ try {
89
+ navigator.clipboard.writeText(codeBlockStripped);
90
+ } catch {
91
+ // Modify on error
92
+ style = 'text-danger';
93
+ tooltip = 'Error!';
94
+ msg = 'Error when copying the code';
95
+ }
96
+ setTooltip(btn, tooltip, style);
97
+ showTooltip(btnTrigger, tooltip);
98
+ hideTooltip(btnTrigger);
99
+ console.log(msg);
100
+ }
101
+ }
102
+ // stripHtml safely
103
+ function stripHtml(html){
104
+ let tmp = document.createElement('DIV');
105
+ tmp.innerHTML = html;
106
+ return tmp.textContent || tmp.innerText || '';
107
+ }
108
+
109
+ window.addEventListener('load', ch_clipboard_setup);
@@ -0,0 +1 @@
1
+ window.CUSDIS={};let e;function t(t){return e||(e=document.createElement("iframe"),function(e,t){const s=window.matchMedia("(prefers-color-scheme: dark)"),d=d=>{try{const i=JSON.parse(d.data);if("cusdis"===i.from)switch(i.event){case"onload":"auto"===t.dataset.theme&&n("setTheme",s.matches?"dark":"light");break;case"resize":e.style.height=i.data+"px"}}catch(i){}};function i(e){const s=e.matches;"auto"===t.dataset.theme&&n("setTheme",s?"dark":"light")}window.addEventListener("message",d),s.addEventListener("change",i)}(e,t)),e.srcdoc=(e=>{const t=e.dataset.host||"https://cusdis.com",n=e.dataset.iframe||`${t}/js/iframe.umd.js`,cch=document.getElementById("maincss").href;return`<!DOCTYPE html>\n<html>\n <head>\n <link rel="stylesheet" href="${t}/js/style.css">\n <link rel="stylesheet" href="${cch}">\n <base target="_parent" />\n <link>\n <script>\n window.CUSDIS_LOCALE = ${JSON.stringify(window.CUSDIS_LOCALE)}\n window.__DATA__ = ${JSON.stringify(e.dataset)}\n <\/script>\n <style>\n :root {\n color-scheme: light;\n }\n </style>\n </head>\n <body id="ch-cusdis">\n <div id="root"></div>\n <script src="${n}" type="module">\n \n <\/script>\n </body>\n</html>`})(t),e.style.width="100%",e.style.border="0",e}function n(t,n){e&&e.contentWindow.postMessage(JSON.stringify({from:"cusdis",event:t,data:n}))}function s(e){if(e){e.innerHTML="";const n=t(e);e.appendChild(n)}}function d(){let e;window.cusdisElementId?e=document.querySelector(`#${window.cusdisElementId}`):document.querySelector("#cusdis_thread")?e=document.querySelector("#cusdis_thread"):document.querySelector("#cusdis")&&(console.warn("id `cusdis` is deprecated. Please use `cusdis_thread` instead"),e=document.querySelector("#cusdis")),!0===window.CUSDIS_PREVENT_INITIAL_RENDER||e&&s(e)}window.renderCusdis=s,window.CUSDIS.renderTo=s,window.CUSDIS.setTheme=function(e){n("setTheme",e)},window.CUSDIS.initial=d,d();
@@ -5,7 +5,6 @@ layout: null
5
5
  (function() {
6
6
  var cx = '{{ site.google_cse_id }}';
7
7
  var gcse = document.createElement('script');
8
- gcse.type = 'text/javascript';
9
8
  gcse.async = true;
10
9
  gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
11
10
  var s = document.getElementsByTagName('script')[0];
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chulapa-jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego H.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-25 00:00:00.000000000 Z
11
+ date: 2025-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -72,6 +72,34 @@ dependencies:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '1.3'
75
+ - !ruby/object:Gem::Dependency
76
+ name: jekyll-github-metadata
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '2.13'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '2.13'
89
+ - !ruby/object:Gem::Dependency
90
+ name: kramdown-parser-gfm
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.1'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.1'
75
103
  description:
76
104
  email:
77
105
  - diego.hernangomezherrero@gmail.com
@@ -82,15 +110,30 @@ files:
82
110
  - CHANGELOG.md
83
111
  - LICENSE
84
112
  - README.md
113
+ - _data/version.yml
114
+ - _data/welcomments/01_install/01H35P308R2G2YMW849CK7V1VP.json
115
+ - _data/welcomments/02_config/01GMBNMYVQS6NCQ45S7KP1TK80.json
116
+ - _data/welcomments/02_config/01GMBNP7RB0CBQNKKXKWG5CHJN.json
117
+ - _data/welcomments/02_config/01GMBNX1CNV06WN12XR72CNN8D.json
118
+ - _data/welcomments/02_config/01GME95BGP5HDQWAWFXT49FDB5.json
119
+ - _data/welcomments/02_config/01GME9BZ4N0K0RT3WEPM397VP1.json
120
+ - _data/welcomments/02_config/01HAH50GMY2SEESXQNR9D3V44R.json
121
+ - _data/welcomments/welcome/01GMDMF77D4VZ7VQX9JAK0RMT5.json
122
+ - _data/welcomments/welcome/01H1QVV3C210ND4XY30H0BZHQP.json
85
123
  - _includes/components/author.html
86
124
  - _includes/components/breadcrumbdatesocial.html
125
+ - _includes/components/cactus.html
87
126
  - _includes/components/categories.html
127
+ - _includes/components/cusdis.html
88
128
  - _includes/components/disqus.html
89
129
  - _includes/components/headers.html
90
130
  - _includes/components/indexcards.html
91
131
  - _includes/components/navbeforeafter.html
132
+ - _includes/components/related.html
133
+ - _includes/components/sidetoc.html
92
134
  - _includes/components/tags.html
93
135
  - _includes/components/toc.html
136
+ - _includes/components/welcomments.html
94
137
  - _includes/custom/custom_bottomscripts.html
95
138
  - _includes/custom/custom_head.html
96
139
  - _includes/custom/custom_head_before_css.html
@@ -107,9 +150,15 @@ files:
107
150
  - _includes/snippets/masonry.html
108
151
  - _includes/snippets/video.html
109
152
  - _includes/snippets/youtube.html
153
+ - _includes/welcomments/comment_form.html
154
+ - _includes/welcomments/comments.html
155
+ - _includes/welcomments/single_comment.html
156
+ - _includes/welcomments/template.html
110
157
  - _layouts/archive.html
111
158
  - _layouts/cloudcategory.html
159
+ - _layouts/cloudcategory2.html
112
160
  - _layouts/cloudtag.html
161
+ - _layouts/cloudtag2.html
113
162
  - _layouts/compress.html
114
163
  - _layouts/default.html
115
164
  - _layouts/indexcategory.html
@@ -206,12 +255,12 @@ files:
206
255
  - _sass/bootstrap/utilities/_text.scss
207
256
  - _sass/bootstrap/utilities/_visibility.scss
208
257
  - _sass/bootstrap/vendor/_rfs.scss
209
- - _sass/bootstrapv5-migration.scss
210
- - _sass/chulapa-classes.scss
211
258
  - _sass/chulapa-master.scss
212
- - _sass/chulapa-misc.scss
213
- - _sass/chulapa-mixins.scss
214
- - _sass/chulapa-vars.scss
259
+ - _sass/chulapa/_bootstrapv5.scss
260
+ - _sass/chulapa/_classes.scss
261
+ - _sass/chulapa/_mixins.scss
262
+ - _sass/chulapa/_reboot.scss
263
+ - _sass/chulapa/_variables.scss
215
264
  - _sass/highlight/README.md
216
265
  - _sass/highlight/UNLICENSE.txt
217
266
  - _sass/highlight/autumn.scss
@@ -243,18 +292,29 @@ files:
243
292
  - _sass/skins/academia.scss
244
293
  - _sass/skins/auto.scss
245
294
  - _sass/skins/chulapa.scss
295
+ - _sass/skins/dark-bg.scss
246
296
  - _sass/skins/deeply.scss
297
+ - _sass/skins/electro.scss
298
+ - _sass/skins/focal.scss
299
+ - _sass/skins/gitdev-dark.scss
300
+ - _sass/skins/gitdev.scss
247
301
  - _sass/skins/graymor.scss
248
302
  - _sass/skins/hootstrap.scss
249
303
  - _sass/skins/journal.scss
250
304
  - _sass/skins/lux.scss
251
305
  - _sass/skins/lymcha.scss
306
+ - _sass/skins/media.scss
307
+ - _sass/skins/mickie.scss
308
+ - _sass/skins/minco.scss
252
309
  - _sass/skins/minty.scss
310
+ - _sass/skins/monotone.scss
253
311
  - _sass/skins/none.scss
254
312
  - _sass/skins/pear.scss
255
313
  - _sass/skins/preptor.scss
314
+ - _sass/skins/skeeblu.scss
256
315
  - _sass/skins/sketchy.scss
257
316
  - _sass/skins/sunset.scss
317
+ - _sass/skins/towards.scss
258
318
  - _sass/skins/twitter-dim.scss
259
319
  - _sass/skins/twitter-lights-out.scss
260
320
  - _sass/skins/twitter.scss
@@ -264,19 +324,19 @@ files:
264
324
  - assets/css/custom.scss
265
325
  - assets/css/highlighter.scss
266
326
  - assets/css/main.scss
267
- - assets/fonts/Chulapa/Chulapa-Bold.otf
268
- - assets/fonts/Chulapa/Chulapa-Bold_v2.1.otf
269
- - assets/fonts/Chulapa/Chulapa-Bold_v2.2.otf
270
- - assets/fonts/Chulapa/Chulapa-Bold_v2.otf
327
+ - assets/css/welcomments.scss
271
328
  - assets/fonts/Chulapa/Chulapa-Bold_vmod.otf
272
- - assets/fonts/Chulapa/Chulapa-Light.otf
273
- - assets/fonts/Chulapa/Chulapa-Regular.otf
274
329
  - assets/fonts/Chulapa/LICENCIA DE USO.txt
275
330
  - assets/fonts/Ferpal/Ferpal-Regular.otf
331
+ - assets/fonts/Hubot-Sans/Hubot-Sans.woff2
332
+ - assets/fonts/Hubot-Sans/LICENSE.txt
333
+ - assets/fonts/Mona-Sans/LICENSE.txt
334
+ - assets/fonts/Mona-Sans/Mona-Sans.woff2
276
335
  - assets/js/algolia/algolia-search.js
277
336
  - assets/js/ch_ytdefer/ch_ytdefer.js
278
- - assets/js/ch_ytdefer/ch_ytdefer.min.js
279
- - assets/js/clipboardrouge.js
337
+ - assets/js/chulapa_script.js
338
+ - assets/js/clipboard/chulapa_clipboard.js
339
+ - assets/js/cusdis/chulapa_cusdis.js
280
340
  - assets/js/google/google-search.js
281
341
  - assets/js/lunr/lunr-search.js
282
342
  - assets/js/lunr/lunr-store.js