From e92f6ced66fb25a6730264a7515f76099c540679 Mon Sep 17 00:00:00 2001
From: weru <onewesh@gmail.com>
Date: Mon, 05 Oct 2020 20:12:31 +0000
Subject: [PATCH] refactor

---
 assets/js/index.js |  179 ++---------------------------------------------------------
 1 files changed, 8 insertions(+), 171 deletions(-)

diff --git a/assets/js/index.js b/assets/js/index.js
index ffc8c5d..a7e6b9f 100644
--- a/assets/js/index.js
+++ b/assets/js/index.js
@@ -1,113 +1,7 @@
-function isObj(obj) {
-  return (obj && typeof obj === 'object' && obj !== null) ? true : false;
-}
-
-function createEl(element = 'div') {
-  return document.createElement(element);
-}
-
-function emptyEl(el) {
-  while(el.firstChild)
-  el.removeChild(el.firstChild);
-}
-
-function elem(selector, parent = document){
-  let elem = isObj(parent) ? parent.querySelector(selector) : false;
-  return elem ? elem : false;
-}
-
-function elems(selector, parent = document) {
-  let elems = isObj(parent) ?parent.querySelectorAll(selector) : [];
-  return elems.length ? elems : false;
-}
-
-function pushClass(el, targetClass) {
-  if (isObj(el) && targetClass) {
-    let elClass = el.classList;
-    elClass.contains(targetClass) ? false : elClass.add(targetClass);
-  }
-}
-
-function deleteClass(el, targetClass) {
-  if (isObj(el) && targetClass) {
-    let elClass = el.classList;
-    elClass.contains(targetClass) ? elClass.remove(targetClass) : false;
-  }
-}
-
-function modifyClass(el, targetClass) {
-  if (isObj(el) && targetClass) {
-    const elClass = el.classList;
-    elClass.contains(targetClass) ? elClass.remove(targetClass) : elClass.add(targetClass);
-  }
-}
-
-function containsClass(el, targetClass) {
-  if (isObj(el) && targetClass && el !== document ) {
-    return el.classList.contains(targetClass) ? true : false;
-  }
-}
-
-function isChild(node, parentClass) {
-  let objectsAreValid = isObj(node) && parentClass && typeof parentClass == 'string';
-  return (objectsAreValid && node.closest(parentClass)) ? true : false;
-}
-
-function elemAttribute(elem, attr, value = null) {
-  if (value) {
-    elem.setAttribute(attr, value);
-  } else {
-    value = elem.getAttribute(attr);
-    return value ? value : false;
-  }
-}
-
-function deleteChars(str, subs) {
-  let newStr = str;
-  if (Array.isArray(subs)) {
-    for (let i = 0; i < subs.length; i++) {
-      newStr = newStr.replace(subs[i], '');
-    }
-  } else {
-    newStr = newStr.replace(subs, '');
-  }
-  return newStr;
-}
-
-function isBlank(str) {
-  return (!str || str.trim().length === 0);
-}
-
-function isMatch(element, selectors) {
-  if(isObj(element)) {
-    if(selectors.isArray) {
-      let matching = selectors.map(function(selector){
-        return element.matches(selector)
-      })
-      return matching.includes(true);
-    }
-    return element.matches(selectors)
-  }
-}
-
-function closestInt(goal, collection) {
-  const closest = collection.reduce(function(prev, curr) {
-    return (Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev);
-  });
-  return closest;
-}
-
-function hasClasses(el) {
-  if(isObj(el)) {
-    const classes = el.classList;
-    return classes.length
-  }
-}
-
 (function calcNavHeight(){
   const nav = elem('.nav_header');
   const navHeight = nav.offsetHeight + 25;
-  const docContent = elem('main'); 
+  const docContent = elem('main');
   docContent.style.paddingTop = `${navHeight}px`;
   return navHeight;
 })();
@@ -118,7 +12,7 @@
     codeBlocks.forEach(function(codeBlock){
       if(!hasClasses(codeBlock)) {
         codeBlock.children.length ? false : pushClass(codeBlock, 'noClass');
-      } 
+      }
     });
   }
 })();
@@ -144,10 +38,6 @@
 };
 
 function loadActions() {
-
-  const parentURL = '{{ absURL "" }}';
-  const doc = document.documentElement;
-
   (function updateDate() {
     const date = new Date();
     const year = date.getFullYear();
@@ -165,10 +55,10 @@
         pushClass(toc, 'toc');
         if(toc.children.length >= 1) {
           const tocItems = Array.from(toc.children[0].children);
-  
+
           const previousHeading = toc.previousElementSibling;
           previousHeading.matches('.active') ? pushClass(toc, tocActive) : false;
-    
+
           tocItems.forEach(function(item){
             pushClass(item, 'toc_item');
             pushClass(item.firstElementChild, 'toc_link');
@@ -184,13 +74,13 @@
         const pageIds = pageInternalLinks.map(function(link){
           return link.hash;
         });
-        
+
         const linkPositions = pageIds.map(function(id){
           const heading = elem(id);
           const position = heading.offsetTop;
           return position;
         });
-        
+
         pageInternalLinks.forEach(function(link, index){
           link.dataset.position = linkPositions[index]
         });
@@ -206,57 +96,6 @@
     }
   })();
 
-  function searchResults(results=[], order =[]) {
-    let resultsFragment = new DocumentFragment();
-    let showResults = elem('.search_results');
-    emptyEl(showResults);
-    let index = 0
-    results.forEach(function(result){
-      let item = createEl('a');
-      item.href = result.link;
-      item.className = 'search_result';
-      item.textContent = result.title;
-      item.style.order = order[index];
-      resultsFragment.appendChild(item);
-      index += 1
-    });
-    
-    showResults.appendChild(resultsFragment);
-  }
-  
-  (function search(){
-    const searchField = elem('.search_field');
-    
-    if (searchField) {
-      searchField.addEventListener('input', function() {
-        let rawResults = idx.search(`${ this.value }`).slice(0,6);
-        let refs = rawResults.map(function(ref){
-          // return id and score in a single string
-          return `${ref.ref}:${ref.score}`;
-        });
-        
-        let ids = refs.map(function(id){
-          let positionOfSeparator = id.indexOf(":");
-          id = id.substring(0,positionOfSeparator)
-          return Number(id);
-        });
-        
-        let scores = refs.map(function(score){
-          let positionOfSeparator = score.indexOf(":");
-          score = score.substring((positionOfSeparator + 1), (score.length - 1));
-          return (parseFloat(score) * 50).toFixed(0);
-        });
-        
-        let matchedDocuments = simpleIndex.filter(function(doc){
-          return ids.includes(doc.id);
-        });
-        
-        matchedDocuments.length >= 1 ? searchResults(matchedDocuments, scores) : false;
-      });
-    }
-    
-  })();
-
   (function markExternalLinks(){
     let links = elems('a');
     const contentWrapperClass = '.content';
@@ -265,7 +104,6 @@
         let target, rel, blank, noopener, attr1, attr2, url, isExternal;
         url = elemAttribute(link, 'href');
         isExternal = (url && typeof url == 'string' && url.startsWith('http')) && !url.startsWith(parentURL) && link.closest(contentWrapperClass);
-        index === 1 ? console.log(parentURL) : false;
         if(isExternal) {
           target = 'target';
           rel = 'rel';
@@ -290,7 +128,7 @@
     results = document.getElementsByTagName(tag);
     Array.prototype.push.apply(headingNodes, results);
   });
-  
+
   function sanitizeURL(url) {
     // removes any existing id on url
     const hash = '#';
@@ -372,11 +210,10 @@
   (function lazyLoadImages() {
     const images = elems('img');
     images.forEach(function(image){
-      // supported natively by most modern browsers. 
+      // supported natively by most modern browsers.
       image.loading = "lazy";
     });
  })();
-
 }
 
 window.addEventListener('load', loadActions());

--
Gitblit v1.10.0