refactored notes.js, search.js, single.js into application.js

This commit is contained in:
Aaron Qian 2022-11-11 01:15:50 -08:00 committed by Aaron Qian
parent dd344a0262
commit 97d60b44d9
No known key found for this signature in database
GPG key ID: BF1A987C395B5B0E
40 changed files with 275 additions and 270 deletions

View file

@ -0,0 +1,58 @@
import $ from 'jquery';
window.addEventListener('DOMContentLoaded', () => {
// =========== Add anchor to the headers ================
function addAnchor(element) {
element.innerHTML = `<a href="#${element.id}" class="header-anchor">${element.innerHTML}<sup><i class="fas fa-link fa-sm"></i></sup></a>`;
}
var postContent = document.getElementById("post-content");
if (postContent != null) {
var headerTypes = ["h1", "h2", "h3", "h4", "h5", "h6"];
for (var i = 0; i < headerTypes.length; i++) {
var headers = postContent.querySelectorAll(headerTypes[i]);
if (headers) {
headers.forEach(addAnchor);
}
}
}
// =============== Make TOC Compatible wit Bootstrap Scroll Spy ========
// add "navbar" class to the "nav" element
let toc = document.getElementById("TableOfContents");
if (toc) {
toc.classList.add("navbar");
// add "nav-pills" class to the "ul" elements
let elems = toc.getElementsByTagName("ul");
for (let i = 0; i < elems.length; i++) {
elems[i].classList.add("nav-pills");
}
// add "nav-item" class to the "li" elements
elems = toc.getElementsByTagName("li");
for (let i = 0; i < elems.length; i++) {
elems[i].classList.add("nav-item");
}
// add "nav-link" class to the "a" elements
elems = toc.getElementsByTagName("a");
for (let i = 0; i < elems.length; i++) {
elems[i].classList.add("nav-link");
}
}
// add scroll to top button
var btn = $('#scroll-to-top');
$(window).scroll(function () {
if ($(window).scrollTop() > 300) {
btn.addClass('show');
} else {
btn.removeClass('show');
}
});
btn.on('click', function (e) {
e.preventDefault();
$('html, body').animate({ scrollTop: 0 }, '300');
});
});