| 1234567891011121314151617181920212223242526272829303132 |
- '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;
- };
|