7845617607
closes #8793 - 1.3 post excerpt migration - add 1.3 migration to add `excerpt` to post schema NOTE: - knex-migrator relies on the package.json safe version - so right now Ghost is on 1.2 - the migration script is for 1.3 - if you pull down the PR (or if we merge this PR into master), you have to run `knex-migrator migrate --v 1.3 --force` - knex-migrator will tell you what you have todo - Bump dependencies - knex-migrator@2.1.3 - Soft limit for custom_excerpt - Extended {{excerpt}} to use custom excerpt - when a `custom_excerpt` field exists, the `{{excerpt}}` helper will output this and fall back to autogenerated excerpt if not. - Refactored behaviour of (meta) description - html tag `<meta name="description" />` for posts, tags and author doesn't get rendered if not provided. - fallback for `author.bio` removed - fallback for `tag.description` removed - structured data and schema.org for `post` context takes the following order to render description fields: 1. custom excerpt 2. meta description 3. automated excerpt (50 words) - updated and added tests to reflect the changes
26 lines
885 B
JavaScript
26 lines
885 B
JavaScript
// # Excerpt Helper
|
|
// Usage: `{{excerpt}}`, `{{excerpt words="50"}}`, `{{excerpt characters="256"}}`
|
|
//
|
|
// Attempts to remove all HTML from the string, and then shortens the result according to the provided option.
|
|
//
|
|
// Defaults to words="50"
|
|
|
|
var proxy = require('./proxy'),
|
|
_ = require('lodash'),
|
|
SafeString = proxy.SafeString,
|
|
getMetaDataExcerpt = proxy.metaData.getMetaDataExcerpt;
|
|
|
|
module.exports = function excerpt(options) {
|
|
var truncateOptions = (options || {}).hash || {},
|
|
excerptText = this.custom_excerpt ? String(this.custom_excerpt) : String(this.html);
|
|
|
|
truncateOptions = _.pick(truncateOptions, ['words', 'characters']);
|
|
_.keys(truncateOptions).map(function (key) {
|
|
truncateOptions[key] = parseInt(truncateOptions[key], 10);
|
|
});
|
|
|
|
return new SafeString(
|
|
getMetaDataExcerpt(excerptText, truncateOptions)
|
|
);
|
|
};
|