chulapa-jekyll 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +45 -9
- data/README.md +139 -81
- data/_data/welcomments/01_install/01H35P308R2G2YMW849CK7V1VP.json +9 -0
- data/_data/welcomments/02_config/01GMBNMYVQS6NCQ45S7KP1TK80.json +10 -0
- data/_data/welcomments/02_config/01GMBNP7RB0CBQNKKXKWG5CHJN.json +10 -0
- data/_data/welcomments/02_config/01GMBNX1CNV06WN12XR72CNN8D.json +11 -0
- data/_data/welcomments/02_config/01GME95BGP5HDQWAWFXT49FDB5.json +10 -0
- data/_data/welcomments/02_config/01GME9BZ4N0K0RT3WEPM397VP1.json +10 -0
- data/_data/welcomments/02_config/01HAH50GMY2SEESXQNR9D3V44R.json +9 -0
- data/_data/welcomments/welcome/01GMDMF77D4VZ7VQX9JAK0RMT5.json +10 -0
- data/_data/welcomments/welcome/01H1QVV3C210ND4XY30H0BZHQP.json +9 -0
- data/_includes/components/author.html +12 -7
- data/_includes/components/breadcrumbdatesocial.html +20 -12
- data/_includes/components/cactus.html +18 -0
- data/_includes/components/categories.html +1 -1
- data/_includes/components/cusdis.html +18 -0
- data/_includes/components/disqus.html +1 -1
- data/_includes/components/headers.html +10 -10
- data/_includes/components/indexcards.html +1 -1
- data/_includes/components/navbeforeafter.html +23 -4
- data/_includes/components/related.html +72 -0
- data/_includes/components/sidetoc.html +15 -0
- data/_includes/components/tags.html +1 -1
- data/_includes/components/toc.html +120 -50
- data/_includes/components/welcomments.html +10 -0
- data/_includes/footer.html +27 -9
- data/_includes/head.html +39 -30
- data/_includes/navbar.html +4 -4
- data/_includes/snippets/bootstrapdemo.html +3 -0
- data/_includes/snippets/carousel.html +3 -3
- data/_includes/snippets/masonry.html +3 -1
- data/_includes/snippets/video.html +20 -10
- data/_includes/snippets/youtube.html +10 -1
- data/_includes/welcomments/comment_form.html +26 -0
- data/_includes/welcomments/comments.html +109 -0
- data/_includes/welcomments/single_comment.html +57 -0
- data/_includes/welcomments/template.html +46 -0
- data/_layouts/cloudcategory.html +4 -4
- data/_layouts/compress.html +2 -2
- data/_layouts/default.html +17 -3
- data/_layouts/landingpage.html +21 -3
- data/_layouts/minimal.html +5 -6
- data/_layouts/search.html +8 -7
- data/_sass/chulapa/_classes.scss +1270 -0
- data/_sass/{chulapa-misc.scss → chulapa/_reboot.scss} +24 -4
- data/_sass/{chulapa-vars.scss → chulapa/_variables.scss} +25 -5
- data/_sass/chulapa-master.scss +5 -5
- data/_sass/highlight/monokai.scss +1 -1
- data/_sass/reset-algolia.scss +1 -1
- data/_sass/skins/academia.scss +23 -17
- data/_sass/skins/auto.scss +2 -1
- data/_sass/skins/chulapa.scss +14 -12
- data/_sass/skins/dark-bg.scss +62 -0
- data/_sass/skins/deeply.scss +4 -3
- data/_sass/skins/gitdev-dark.scss +97 -0
- data/_sass/skins/gitdev.scss +86 -0
- data/_sass/skins/graymor.scss +17 -18
- data/_sass/skins/hootstrap.scss +12 -12
- data/_sass/skins/journal.scss +6 -5
- data/_sass/skins/lux.scss +9 -10
- data/_sass/skins/lymcha.scss +10 -10
- data/_sass/skins/minty.scss +14 -11
- data/_sass/skins/pear.scss +18 -18
- data/_sass/skins/preptor.scss +13 -14
- data/_sass/skins/sketchy.scss +5 -4
- data/_sass/skins/sunset.scss +10 -10
- data/_sass/skins/towards.scss +50 -0
- data/_sass/skins/twitter-dim.scss +38 -28
- data/_sass/skins/twitter-lights-out.scss +38 -30
- data/_sass/skins/twitter.scss +25 -25
- data/_sass/skins/universal.scss +79 -21
- data/_sass/skins/wandoo.scss +12 -13
- data/assets/css/main.scss +1 -1
- data/assets/css/welcomments.scss +572 -0
- data/assets/fonts/Hubot-Sans/Hubot-Sans.woff2 +0 -0
- data/assets/fonts/Hubot-Sans/LICENSE.txt +93 -0
- data/assets/fonts/Mona-Sans/LICENSE.txt +93 -0
- data/assets/fonts/Mona-Sans/Mona-Sans.woff2 +0 -0
- data/assets/js/ch_ytdefer/ch_ytdefer.js +3 -1
- data/assets/js/chulapa_script.js +175 -0
- data/assets/js/clipboard/chulapa_clipboard.js +109 -0
- data/assets/js/cusdis/chulapa_cusdis.js +1 -0
- data/assets/js/google/google-search.js +0 -1
- metadata +37 -63
- data/_sass/chulapa-classes.scss +0 -844
- data/assets/fonts/Chulapa/Chulapa-Bold.otf +0 -0
- data/assets/fonts/Chulapa/Chulapa-Bold_v2.1.otf +0 -0
- data/assets/fonts/Chulapa/Chulapa-Bold_v2.2.otf +0 -0
- data/assets/fonts/Chulapa/Chulapa-Bold_v2.otf +0 -0
- data/assets/fonts/Chulapa/Chulapa-Light.otf +0 -0
- data/assets/fonts/Chulapa/Chulapa-Regular.otf +0 -0
- data/assets/js/ch_ytdefer/ch_ytdefer.min.js +0 -1
- data/assets/js/clipboardrouge.js +0 -95
- /data/_sass/{bootstrapv5-migration.scss → chulapa/_bootstrapv5.scss} +0 -0
- /data/_sass/{chulapa-mixins.scss → chulapa/_mixins.scss} +0 -0
@@ -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.
|
Binary file
|
@@ -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.
|
4
|
+
version: 1.1.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:
|
11
|
+
date: 2023-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -30,20 +30,6 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '5.0'
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: jekyll-github-metadata
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '2.0'
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '2.0'
|
47
33
|
- !ruby/object:Gem::Dependency
|
48
34
|
name: jekyll-paginate
|
49
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,40 +72,6 @@ dependencies:
|
|
86
72
|
- - "~>"
|
87
73
|
- !ruby/object:Gem::Version
|
88
74
|
version: '1.3'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: jekyll-redirect-from
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '0.16'
|
96
|
-
type: :runtime
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0.16'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: github-pages
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - ">="
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '1.0'
|
110
|
-
- - "<"
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: '99999.0'
|
113
|
-
type: :runtime
|
114
|
-
prerelease: false
|
115
|
-
version_requirements: !ruby/object:Gem::Requirement
|
116
|
-
requirements:
|
117
|
-
- - ">="
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
version: '1.0'
|
120
|
-
- - "<"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '99999.0'
|
123
75
|
description:
|
124
76
|
email:
|
125
77
|
- diego.hernangomezherrero@gmail.com
|
@@ -130,15 +82,29 @@ files:
|
|
130
82
|
- CHANGELOG.md
|
131
83
|
- LICENSE
|
132
84
|
- README.md
|
85
|
+
- _data/welcomments/01_install/01H35P308R2G2YMW849CK7V1VP.json
|
86
|
+
- _data/welcomments/02_config/01GMBNMYVQS6NCQ45S7KP1TK80.json
|
87
|
+
- _data/welcomments/02_config/01GMBNP7RB0CBQNKKXKWG5CHJN.json
|
88
|
+
- _data/welcomments/02_config/01GMBNX1CNV06WN12XR72CNN8D.json
|
89
|
+
- _data/welcomments/02_config/01GME95BGP5HDQWAWFXT49FDB5.json
|
90
|
+
- _data/welcomments/02_config/01GME9BZ4N0K0RT3WEPM397VP1.json
|
91
|
+
- _data/welcomments/02_config/01HAH50GMY2SEESXQNR9D3V44R.json
|
92
|
+
- _data/welcomments/welcome/01GMDMF77D4VZ7VQX9JAK0RMT5.json
|
93
|
+
- _data/welcomments/welcome/01H1QVV3C210ND4XY30H0BZHQP.json
|
133
94
|
- _includes/components/author.html
|
134
95
|
- _includes/components/breadcrumbdatesocial.html
|
96
|
+
- _includes/components/cactus.html
|
135
97
|
- _includes/components/categories.html
|
98
|
+
- _includes/components/cusdis.html
|
136
99
|
- _includes/components/disqus.html
|
137
100
|
- _includes/components/headers.html
|
138
101
|
- _includes/components/indexcards.html
|
139
102
|
- _includes/components/navbeforeafter.html
|
103
|
+
- _includes/components/related.html
|
104
|
+
- _includes/components/sidetoc.html
|
140
105
|
- _includes/components/tags.html
|
141
106
|
- _includes/components/toc.html
|
107
|
+
- _includes/components/welcomments.html
|
142
108
|
- _includes/custom/custom_bottomscripts.html
|
143
109
|
- _includes/custom/custom_head.html
|
144
110
|
- _includes/custom/custom_head_before_css.html
|
@@ -155,6 +121,10 @@ files:
|
|
155
121
|
- _includes/snippets/masonry.html
|
156
122
|
- _includes/snippets/video.html
|
157
123
|
- _includes/snippets/youtube.html
|
124
|
+
- _includes/welcomments/comment_form.html
|
125
|
+
- _includes/welcomments/comments.html
|
126
|
+
- _includes/welcomments/single_comment.html
|
127
|
+
- _includes/welcomments/template.html
|
158
128
|
- _layouts/archive.html
|
159
129
|
- _layouts/cloudcategory.html
|
160
130
|
- _layouts/cloudtag.html
|
@@ -254,12 +224,12 @@ files:
|
|
254
224
|
- _sass/bootstrap/utilities/_text.scss
|
255
225
|
- _sass/bootstrap/utilities/_visibility.scss
|
256
226
|
- _sass/bootstrap/vendor/_rfs.scss
|
257
|
-
- _sass/bootstrapv5-migration.scss
|
258
|
-
- _sass/chulapa-classes.scss
|
259
227
|
- _sass/chulapa-master.scss
|
260
|
-
- _sass/chulapa
|
261
|
-
- _sass/chulapa
|
262
|
-
- _sass/chulapa
|
228
|
+
- _sass/chulapa/_bootstrapv5.scss
|
229
|
+
- _sass/chulapa/_classes.scss
|
230
|
+
- _sass/chulapa/_mixins.scss
|
231
|
+
- _sass/chulapa/_reboot.scss
|
232
|
+
- _sass/chulapa/_variables.scss
|
263
233
|
- _sass/highlight/README.md
|
264
234
|
- _sass/highlight/UNLICENSE.txt
|
265
235
|
- _sass/highlight/autumn.scss
|
@@ -291,7 +261,10 @@ files:
|
|
291
261
|
- _sass/skins/academia.scss
|
292
262
|
- _sass/skins/auto.scss
|
293
263
|
- _sass/skins/chulapa.scss
|
264
|
+
- _sass/skins/dark-bg.scss
|
294
265
|
- _sass/skins/deeply.scss
|
266
|
+
- _sass/skins/gitdev-dark.scss
|
267
|
+
- _sass/skins/gitdev.scss
|
295
268
|
- _sass/skins/graymor.scss
|
296
269
|
- _sass/skins/hootstrap.scss
|
297
270
|
- _sass/skins/journal.scss
|
@@ -303,6 +276,7 @@ files:
|
|
303
276
|
- _sass/skins/preptor.scss
|
304
277
|
- _sass/skins/sketchy.scss
|
305
278
|
- _sass/skins/sunset.scss
|
279
|
+
- _sass/skins/towards.scss
|
306
280
|
- _sass/skins/twitter-dim.scss
|
307
281
|
- _sass/skins/twitter-lights-out.scss
|
308
282
|
- _sass/skins/twitter.scss
|
@@ -312,19 +286,19 @@ files:
|
|
312
286
|
- assets/css/custom.scss
|
313
287
|
- assets/css/highlighter.scss
|
314
288
|
- assets/css/main.scss
|
315
|
-
- assets/
|
316
|
-
- assets/fonts/Chulapa/Chulapa-Bold_v2.1.otf
|
317
|
-
- assets/fonts/Chulapa/Chulapa-Bold_v2.2.otf
|
318
|
-
- assets/fonts/Chulapa/Chulapa-Bold_v2.otf
|
289
|
+
- assets/css/welcomments.scss
|
319
290
|
- assets/fonts/Chulapa/Chulapa-Bold_vmod.otf
|
320
|
-
- assets/fonts/Chulapa/Chulapa-Light.otf
|
321
|
-
- assets/fonts/Chulapa/Chulapa-Regular.otf
|
322
291
|
- assets/fonts/Chulapa/LICENCIA DE USO.txt
|
323
292
|
- assets/fonts/Ferpal/Ferpal-Regular.otf
|
293
|
+
- assets/fonts/Hubot-Sans/Hubot-Sans.woff2
|
294
|
+
- assets/fonts/Hubot-Sans/LICENSE.txt
|
295
|
+
- assets/fonts/Mona-Sans/LICENSE.txt
|
296
|
+
- assets/fonts/Mona-Sans/Mona-Sans.woff2
|
324
297
|
- assets/js/algolia/algolia-search.js
|
325
298
|
- assets/js/ch_ytdefer/ch_ytdefer.js
|
326
|
-
- assets/js/
|
327
|
-
- assets/js/
|
299
|
+
- assets/js/chulapa_script.js
|
300
|
+
- assets/js/clipboard/chulapa_clipboard.js
|
301
|
+
- assets/js/cusdis/chulapa_cusdis.js
|
328
302
|
- assets/js/google/google-search.js
|
329
303
|
- assets/js/lunr/lunr-search.js
|
330
304
|
- assets/js/lunr/lunr-store.js
|