text: module.exports = {
    /**
     * Returns back some attributes based on wether the
     * link is active or a parent of an active item
     *
     * @param {String} itemUrl The link in question
     * @param {String} pageUrl The page context
     * @returns {String} The attributes or empty
     */
    getLinkActiveState(itemUrl, pageUrl) {
      let response = '';
  
      if (itemUrl === pageUrl) {
        response = ' aria-current="page"';
      }
  
      if (itemUrl.length > 1 && pageUrl.indexOf(itemUrl) === 0) {
        response += ' data-state="active"';
      }
  
      return response;
    },
    /**
     * Filters out the passed item from the passed collection
     * and randomises and limits them based on flags
     *
     * @param {Array} collection The 11ty collection we want to take from
     * @param {Object} item The item we want to exclude (often current page)
     * @param {Number} limit=3 How many items we want back
     * @param {Boolean} random=true Wether or not this should be randomised
     * @returns {Array} The resulting collection
     */
    getSiblingContent(collection, item, limit = 3, random = true) {
      let filteredItems = collection.filter(x => x.url !== item.url);
  
      if (random) {
        let counter = filteredItems.length;
  
        while (counter > 0) {
          // Pick a random index
          let index = Math.floor(Math.random() * counter);
  
          counter--;
  
          let temp = filteredItems[counter];
  
          // Swap the last element with the random one
          filteredItems[counter] = filteredItems[index];
          filteredItems[index] = temp;
        }
      }
  
      // Lastly, trim to length
      if (limit > 0) {
        filteredItems = filteredItems.slice(0, limit);
      }
  
      return filteredItems;
    },
  
    /**
     * Take an array of keys and return back items that match.
     * Note: items in the collection must have a key attribute in
     * Front Matter
     *
     * @param {Array} collection 11ty collection
     * @param {Array} keys collection of keys
     * @returns {Array} result collection or empty
     */
    filterCollectionByKeys(collection, keys) {
      return collection.filter(x => keys.includes(x.data.key));
    },
  
    /**
     * Returns the current year to keep the Copyright up-to-date.
     *
     * @returns {Date} current year
     */
     currentYear() {
       const today = new Date();
       return today.getFullYear();
     }
  };
  