Include flag context in excerpt (#294)

* Added avoid flag text to meta descriptions

* Moved meta description logic to a shortcode

* Fixing nunjucks syntax error in base template head

Co-authored-by: Oscar <ovlb@users.noreply.github.com>
This commit is contained in:
Derek Murr
2020-09-01 15:39:23 -04:00
committed by GitHub
parent 019d80976d
commit 7aed7e3b90
5 changed files with 66 additions and 10 deletions

View File

@ -10,29 +10,23 @@
{# Use title with path, or append a space to the page title to avoid collpasing with the meta title #}
{% set pageTitle = titleWithPath or title + ' ' or '' %}
{% if flag.level == "avoid" %}
{% set alert = flag.level + ": " %}
{% else %}
{% set alert = '' %}
{% endif %}
{% set preview = excerpt or renderData.description or description or metadata.description %}
{% set fullExcerpt = alert + preview %}
<title>{{ pageTitle + metadata.title }}</title>
<meta
name="twitter:description"
content="{{ fullExcerpt }}"
content="{% metaDescriptionWithFlag preview, flag %}"
>
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="{{ pageTitle }}"/>
<meta
name="og:description"
content="{{ fullExcerpt }}"
content="{% metaDescriptionWithFlag preview, flag %}"
>
<meta name="og:title" content="{{ pageTitle }}"/>
<meta
name="description"
content="{{ fullExcerpt }}"
content="{% metaDescriptionWithFlag preview, flag %}"
>
<link rel="stylesheet" href="https://use.typekit.net/qlo3dpu.css">
<link rel="stylesheet" href="{{ '/assets/css/base.css' | url }}">

View File

@ -0,0 +1,43 @@
import test from 'ava';
import metaDescriptionWithFlag from '../metaDescriptionWithFlag';
test('renders with flag.level = avoid and flag.text present', (t) => {
const flag = {
level: 'avoid',
text: 'ableist slur'
};
const preview = 'here is some preview text';
t.is(
metaDescriptionWithFlag(preview, flag),
'Avoid: ableist slur. Here is some preview text'
);
});
test('renders with flag.level = avoid and no flag.text', (t) => {
const flag = {
level: 'avoid'
};
const preview = 'here is some preview text';
t.is(
metaDescriptionWithFlag(preview, flag),
'Avoid: here is some preview text'
);
});
test('renders with flag.level != avoid', (t) => {
const flag = {
level: 'warning'
};
const preview = 'here is some preview text';
t.is(metaDescriptionWithFlag(preview, flag), 'Here is some preview text');
});
test('renders with no flag present', (t) => {
const preview = 'here is some preview text';
t.is(metaDescriptionWithFlag(preview), 'Here is some preview text');
});

View File

@ -0,0 +1,16 @@
module.exports = function(preview, flag = {}) {
const initialCap = function(text) {
return `${text[0].toUpperCase()}${text.slice(1)}`;
};
if (flag && flag.level === 'avoid') {
if (flag.text) {
return `${initialCap(
flag.level
)}: ${flag.text.toLowerCase()}. ${initialCap(preview)}`;
}
return `${initialCap(flag.level)}: ${preview}`;
}
return initialCap(preview);
};