mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-10 23:36:14 -05:00
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
31 lines
1.3 KiB
JavaScript
31 lines
1.3 KiB
JavaScript
var _ = require('lodash'),
|
|
settingsCache = require('../../settings/cache');
|
|
|
|
function getDescription(data, root) {
|
|
var description = '',
|
|
context = root ? root.context : null,
|
|
blogDescription = settingsCache.get('description');
|
|
|
|
// We only return meta_description if provided. Only exception is the Blog
|
|
// description, which doesn't rely on meta_description.
|
|
if (data.meta_description) {
|
|
description = data.meta_description;
|
|
} else if (_.includes(context, 'paged')) {
|
|
description = '';
|
|
} else if (_.includes(context, 'home')) {
|
|
description = blogDescription;
|
|
} else if (_.includes(context, 'author') && data.author) {
|
|
// The usage of meta data fields for author is currently not implemented.
|
|
// We do have meta_description and meta_title fields
|
|
// in the users table, but there's no UI to populate those.
|
|
description = data.author.meta_description || '';
|
|
} else if (_.includes(context, 'tag') && data.tag) {
|
|
description = data.tag.meta_description || '';
|
|
} else if ((_.includes(context, 'post') || _.includes(context, 'page')) && data.post) {
|
|
description = data.post.meta_description || '';
|
|
}
|
|
|
|
return (description || '').trim();
|
|
}
|
|
|
|
module.exports = getDescription;
|