3
0
mirror of https://github.com/larvit/adf-codec.git synced 2026-11-12 19:58:28 +01:00
Files
adf-codec/release-tooling/tagline.mjs
T

13 lines
848 B
JavaScript

const markup = /[`[\]*_<>~]/
// The README's first paragraph after the title and the badges.
export function readmeTagline(readme) {
const lines = readme.split('\n').filter((line, index, all) => index !== all.findIndex((first) => first.startsWith('# ')) && !line.startsWith('[!['))
const start = lines.findIndex((line) => line.trim() !== '')
if (start === -1 || lines[start].startsWith('#')) return { error: 'README.md has no tagline paragraph before its first section', ok: false }
const end = lines.findIndex((line, index) => index > start && line.trim() === '')
const tagline = lines.slice(start, end === -1 ? undefined : end).map((line) => line.trim()).join(' ')
if (markup.test(tagline)) return { error: `the README tagline is plain text, since npm shows it as is: ${tagline}`, ok: false }
return { ok: true, value: tagline }
}