This commit is contained in:
rzen
2019-07-21 22:16:23 -04:00
commit 8853b7c668
48 changed files with 1682 additions and 0 deletions

28
assets/js/clipboard.js Normal file
View File

@ -0,0 +1,28 @@
// by github.com/rzen
// attach to code blocks, copy to clipboard on click
window.addEventListener('load', function () {
// TODO: move to a js module
let showSnackbar = text => {
let sbEl = document.getElementById("snackbar");
sbEl.className = 'show';
sbEl.innerText = text;
setTimeout(_ => sbEl.className = sbEl.className.replace('show', ''), 3000);
}
let getCodeEl = el => el.querySelector('.rouge-code pre');
let makeClipboardCopyFn = el => ev => {
navigator.clipboard.writeText((getCodeEl(el) || el).innerText)
.finally(_ => showSnackbar('Copied to clipboard!'));
}
let configCodeBlock = (el) => {
if (!getCodeEl(el)) return; // skip inline code (TODO: should we?)
el.title = 'Click to copy';
el.style.cursor = 'pointer';
el.addEventListener('click', makeClipboardCopyFn(el));
}
document.querySelectorAll('.highlighter-rouge').forEach(el => configCodeBlock(el));
});

40
assets/js/slides.js Normal file
View File

@ -0,0 +1,40 @@
window.addEventListener('load', function () {
var slideIndex = 1;
showSlides(slideIndex);
// Next/previous controls
function plusSlides(n) {
showSlides(slideIndex += n);
}
// Thumbnail image controls
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("slide");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
// for (i = 0; i < dots.length; i++) {
// dots[i].className = dots[i].className.replace(" active", "");
// }
slides[slideIndex-1].style.display = "block";
// dots[slideIndex-1].className += " active";
}
var slides = document.getElementsByClassName("slide");
for (i = 0; i < slides.length; i++) {
slides[i].style.cursor = 'pointer';
slides[i].addEventListener('click', function (el) {
plusSlides(1);
console.log(el)
});
}
});

19
assets/js/snackbar.js Normal file
View File

@ -0,0 +1,19 @@
// WIP
Snackbar = {
snackBar: null,
init: function () {
this.snackBar = document.createElement('div');
this.snackBar.id = 'snackbar';
},
showSnackbar: function (text) {
let sbEl = document.getElementById("snackbar");
sbEl.className = 'show';
sbEl.innerText = text;
setTimeout(_ => sbEl.className = sbEl.className.replace('show', ''), 3000);
}
}
document.addEventListener('load', Snackbar.init);