You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
1.1 KiB

'use strict';
const { Schema } = require('warehouse');
const { join } = require('path');
const Moment = require('./types/moment');
const moment = require('moment');
const { full_url_for } = require('hexo-util');
module.exports = ctx => {
const Page = new Schema({
title: {type: String, default: ''},
date: {
type: Moment,
default: moment,
language: ctx.config.languages,
timezone: ctx.config.timezone
},
updated: {
type: Moment,
language: ctx.config.languages,
timezone: ctx.config.timezone
},
comments: {type: Boolean, default: true},
layout: {type: String, default: 'page'},
_content: {type: String, default: ''},
source: {type: String, required: true},
path: {type: String, required: true},
raw: {type: String, default: ''},
content: {type: String},
excerpt: {type: String},
more: {type: String}
});
Page.virtual('permalink').get(function() {
return full_url_for.call(ctx, this.path);
});
Page.virtual('full_source').get(function() {
return join(ctx.source_dir, this.source || '');
});
return Page;
};