You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
580 B
JavaScript
19 lines
580 B
JavaScript
import { stripTags } from 'utils/dom';
|
|
|
|
import { TEXT_LINK_RE } from './constants';
|
|
|
|
// Take a dek HTML fragment, and return the cleaned version of it.
|
|
// Return None if the dek wasn't good enough.
|
|
export default function cleanDek(dek, { $ }) {
|
|
// Sanity check that we didn't get too short or long of a dek.
|
|
if (dek.length > 1000 || dek.length < 5) return null;
|
|
|
|
const dekText = stripTags(dek, $);
|
|
|
|
// Plain text links shouldn't exist in the dek. If we have some, it's
|
|
// not a good dek - bail.
|
|
if (TEXT_LINK_RE.test(dekText)) return null;
|
|
|
|
return dekText.trim();
|
|
}
|