Fork Me

toggle

'use strict';

var _ = require('lodash');
var moment = require('moment');

module.exports = function (site, opts) {
  if (!site) {
    throw 'first parameter {site} missing (required)';
  }

  var Page = function () { };

  Page.prototype = _.create(site, {
    index: true,
    comments: false,
    titlecase: false,
    page_header: true,
    page_meta: true,

    disqus: {
      show: false,
    }
  });

  Object.defineProperty(Page.prototype, 'date', {
    get: function () {
      return this._date && moment(this._date);
    },
    //set: function (value) {
    //  var parsedDate = moment(value);
    //  if (parsedDate.isValid()) {
    //    this._date = parsedDate;
    //  } else {
    //    console.error('INVALID Date: ' + value);
    //    // date not necessary for a page...
    //  }
    //},
    enumerable: true,
    configurable: true
  });

  Object.defineProperty(Page.prototype, 'title', {
    get: function () {
      return this._title;
    },
    set: function (value) {
      this._title = value;
    },
    enumerable: true,
    configurable: true
  });

  var result = _.create(Page.prototype, opts);
  return result;
};