My bad
This commit is contained in:
@ -1,60 +0,0 @@
|
||||
/**
|
||||
* Utils
|
||||
*/
|
||||
|
||||
// Add code-copy buttons using progressive enhancement
|
||||
// © 2019. Tom Spencer
|
||||
// https://www.fiznool.com/blog/2018/09/14/adding-click-to-copy-buttons-to-a-hugo-powered-blog/
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
if(!document.queryCommandSupported('copy')) {
|
||||
return;
|
||||
}
|
||||
|
||||
function flashCopyMessage(el, msg) {
|
||||
el.textContent = msg;
|
||||
setTimeout(function() {
|
||||
el.textContent = "Copy";
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
function selectText(node) {
|
||||
var selection = window.getSelection();
|
||||
var range = document.createRange();
|
||||
range.selectNodeContents(node);
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
return selection;
|
||||
}
|
||||
|
||||
function addCopyButton(containerEl) {
|
||||
var copyBtn = document.createElement("button");
|
||||
copyBtn.className = "highlight-copy-btn";
|
||||
copyBtn.textContent = "Copy";
|
||||
|
||||
var codeEl = containerEl.firstElementChild;
|
||||
copyBtn.addEventListener('click', function() {
|
||||
try {
|
||||
if(codeEl.firstElementChild instanceof HTMLTableElement) {
|
||||
var selection = selectText(codeEl.firstElementChild.firstElementChild.firstElementChild.lastElementChild);
|
||||
} else {
|
||||
var selection = selectText(codeEl);
|
||||
}
|
||||
document.execCommand('copy');
|
||||
selection.removeAllRanges();
|
||||
|
||||
flashCopyMessage(copyBtn, 'Copied!')
|
||||
} catch(e) {
|
||||
console && console.log(e);
|
||||
flashCopyMessage(copyBtn, 'Failed :\'(')
|
||||
}
|
||||
});
|
||||
|
||||
containerEl.appendChild(copyBtn);
|
||||
}
|
||||
|
||||
// Add copy button to code blocks
|
||||
var highlightBlocks = document.getElementsByClassName('highlight');
|
||||
Array.prototype.forEach.call(highlightBlocks, addCopyButton);
|
||||
})();
|
@ -1,7 +0,0 @@
|
||||
async function linkShare(t, u, s){
|
||||
let shd = {title: t,text: s,url: u};
|
||||
if(typeof navigator.canShare === "function" && navigator.canShare(shd)){
|
||||
try {await navigator.share(shd);} catch (er) {console.error(er);}
|
||||
}else if (navigator?.clipboard?.writeText){
|
||||
try {await navigator.clipboard.writeText(u);} catch (err) {console.error(err);}
|
||||
}else{console.log("Neither WebShare API nor CLipboard API is supported")}}
|
@ -1,119 +0,0 @@
|
||||
// Throttle
|
||||
//
|
||||
const throttle = (callback, limit) => {
|
||||
let timeoutHandler = null;
|
||||
return () => {
|
||||
if (timeoutHandler == null) {
|
||||
timeoutHandler = setTimeout(() => {
|
||||
callback();
|
||||
timeoutHandler = null;
|
||||
}, limit);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
// addEventListener Helper
|
||||
//
|
||||
const listen = (ele, e, callback) => {
|
||||
if (document.querySelector(ele) !== null) {
|
||||
document.querySelector(ele).addEventListener(e, callback);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Functions
|
||||
*/
|
||||
|
||||
// Auto Hide Header
|
||||
//
|
||||
let header = document.getElementById('site-header');
|
||||
let lastScrollPosition = window.pageYOffset;
|
||||
|
||||
const autoHideHeader = () => {
|
||||
let currentScrollPosition = Math.max(window.pageYOffset, 0);
|
||||
if (currentScrollPosition > lastScrollPosition) {
|
||||
header.classList.remove('slideInUp');
|
||||
header.classList.add('slideOutDown');
|
||||
} else {
|
||||
header.classList.remove('slideOutDown');
|
||||
header.classList.add('slideInUp');
|
||||
}
|
||||
lastScrollPosition = currentScrollPosition;
|
||||
}
|
||||
|
||||
// Mobile Menu Toggle
|
||||
//
|
||||
let mobileMenuVisible = false;
|
||||
|
||||
const toggleMobileMenu = () => {
|
||||
let mobileMenu = document.getElementById('mobile-menu');
|
||||
if (mobileMenuVisible == false) {
|
||||
mobileMenu.style.animationName = 'bounceInRight';
|
||||
mobileMenu.style.webkitAnimationName = 'bounceInRight';
|
||||
mobileMenu.style.display = 'block';
|
||||
mobileMenuVisible = true;
|
||||
} else {
|
||||
mobileMenu.style.animationName = 'bounceOutRight';
|
||||
mobileMenu.style.webkitAnimationName = 'bounceOutRight'
|
||||
mobileMenuVisible = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Social Share Toggle
|
||||
//
|
||||
let shareMenuVisible = false;
|
||||
const shareMobileMenu = () => {
|
||||
let shareMenu = document.getElementById('share-links');
|
||||
if (shareMenuVisible == false) {
|
||||
shareMenu.style.animationName = 'bounceInRight';
|
||||
shareMenu.style.webkitAnimationName = 'bounceInRight';
|
||||
shareMenu.style.display = 'block';
|
||||
shareMenuVisible = true;
|
||||
} else {
|
||||
shareMenu.style.animationName = 'bounceOutRight';
|
||||
shareMenu.style.webkitAnimationName = 'bounceOutRight'
|
||||
shareMenuVisible = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Featured Image Toggle
|
||||
//
|
||||
const showImg = () => {
|
||||
document.querySelector('.bg-img').classList.add('show-bg-img');
|
||||
}
|
||||
|
||||
const hideImg = () => {
|
||||
document.querySelector('.bg-img').classList.remove('show-bg-img');
|
||||
}
|
||||
|
||||
// ToC Toggle
|
||||
//
|
||||
const toggleToc = () => {
|
||||
document.getElementById('toc').classList.toggle('show-toc');
|
||||
}
|
||||
|
||||
|
||||
if (header !== null) {
|
||||
listen('#menu-btn', "click", toggleMobileMenu);
|
||||
listen('#share-btn', "click", shareMobileMenu);
|
||||
listen('#toc-btn', "click", toggleToc);
|
||||
listen('#img-btn', "click", showImg);
|
||||
listen('.bg-img', "click", hideImg);
|
||||
|
||||
document.querySelectorAll('.post-year').forEach((ele)=> {
|
||||
ele.addEventListener('click', () => {
|
||||
window.location.hash = '#' + ele.id;
|
||||
});
|
||||
});
|
||||
|
||||
window.addEventListener('scroll', throttle(() => {
|
||||
autoHideHeader();
|
||||
|
||||
if (mobileMenuVisible == true) {
|
||||
toggleMobileMenu();
|
||||
}
|
||||
if (shareMenuVisible == true) {
|
||||
shareMobileMenu();
|
||||
}
|
||||
}, 250));
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
MathJax = {
|
||||
tex: {
|
||||
inlineMath: [['$', '$'], ['\\(', '\\)']],
|
||||
displayMath: [['$$', '$$'], ['\\[', '\\]']],
|
||||
processEscapes: true,
|
||||
processEnvironments: true,
|
||||
},
|
||||
options: {
|
||||
skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
|
||||
enableMenu: false
|
||||
},
|
||||
svg: {fontCache: 'global'}
|
||||
};
|
||||
|
||||
window.addEventListener('load', (event) => {
|
||||
document.querySelectorAll("mjx-container").forEach(function (x) {
|
||||
x.parentElement.classList += 'has-jax'
|
||||
})
|
||||
});
|
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
const scroll=document.querySelector(".scroll-up"),rootElement=document.documentElement;function handleScroll(){rootElement.scrollTop/(rootElement.scrollHeight-rootElement.clientHeight)>.4?(scroll.classList.remove("hide"),scroll.classList.add("show")):(scroll.classList.add("hide"),scroll.classList.remove("show"))}document.addEventListener("scroll",handleScroll);
|
Reference in New Issue
Block a user