devsite/node_modules/gray-matter/lib/excerpt.js
2024-07-07 18:49:38 -07:00

33 lines
741 B
JavaScript

'use strict';
const defaults = require('./defaults');
module.exports = function(file, options) {
const opts = defaults(options);
if (file.data == null) {
file.data = {};
}
if (typeof opts.excerpt === 'function') {
return opts.excerpt(file, opts);
}
const sep = file.data.excerpt_separator || opts.excerpt_separator;
if (sep == null && (opts.excerpt === false || opts.excerpt == null)) {
return file;
}
const delimiter = typeof opts.excerpt === 'string'
? opts.excerpt
: (sep || opts.delimiters[0]);
// if enabled, get the excerpt defined after front-matter
const idx = file.content.indexOf(delimiter);
if (idx !== -1) {
file.excerpt = file.content.slice(0, idx);
}
return file;
};