<%
    htmlize = (text) => {
      return (text || '').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    };

    prettyDate = (date) => {
      // January 20, 2017 at 20:26
      const
        month_names = [
            'January', 'February', 'March', 'April', 'May', 'June',
            'July', 'August', 'September', 'October', 'November', 'December'
          ];
      let
        d = new Date(date),
        has_time = d && !(d.getHours() === 0 && d.getMinutes() === 0 && d.getSeconds() === 0),
        dArr = [];
      if (d) {
        dArr = [
            month_names[d.getMonth()],
            ' ',
            (d.getDate() < 10 ? '0' : ''),
            d.getDate(),
            ', ',
            d.getFullYear()
          ];
        if (has_time) {
          dArr = dArr
            .concat([
              ' at ',
              (d.getHours() < 10 ? '0' : ''),
              d.getHours(),
              ':',
              (d.getMinutes() < 10 ? '0' : ''),
              d.getMinutes()
            ]);
        }
      }

      return dArr.join('');

    };
    
    shortDate = (date) => {
      // 2021-06-20 20:26
      const
        d = new Date(date),
        has_time = d && !(d.getHours() === 0 && d.getMinutes() === 0 && d.getSeconds() === 0);
      let dArr = [];

      if (d) {
        dArr = [
          d.getFullYear(),
          '-',
          (d.getMonth() < 9 ? '0' : ''),
          (d.getMonth() + 1),
          '-',
          (d.getDate() < 10 ? '0' : ''),
          d.getDate()
        ];
        if (has_time) {
          dArr = dArr
            .concat([
              ' @ ',
              (d.getHours() < 10 ? '0' : ''),
              d.getHours(),
              ':',
              (d.getMinutes() < 10 ? '0' : ''),
              d.getMinutes()
            ]);
        }

        return dArr.join('');

      }
    };


    snakeCase = (val) => {
      return  val.trim().toLowerCase().replace(/\W/g, '_');
    };

    sortByPath = (p1, p2) => {
      if (p1.path < p2.path) return -1;
      if (p1.path > p2.path) return 1;
      return 0;
    };

    reverseSortByDate = (p1, p2) => {
      if (p1.date_pub && p2.date_pub) {
        let
          p1_dt = (new Date(p1.date_pub)).getTime(),
          p2_dt = (new Date(p2.date_pub)).getTime();
        if (p1_dt < p2_dt) {
          return 1;
        }
        if (p2_dt < p1_dt) {
          return -1;
        }
        return 0;
      }
    };

-%>
