Return the first prose paragraph that immediately follows a ## ๐ฏ BLUF (or ## BLUF, case-insensitive) heading in an executive-brief. This is the paragraph editors already wrote as the article's lede, so it is preferred over the first paragraph of the document (which is often the admin-metadata block).
When lang is supplied, the matcher also accepts the localised BLUF-equivalent H2 heading names from ./brief-extractor.ts#LANG_BLUF_SECTION_NAMES (e.g. ## Sammanfattning for sv, ## ํต์ฌ ์์ฝ for ko, ## ๆง่กๆ่ฆ for zh, ## ุงูุฎูุงุตุฉ ุงูุชูููุฐูุฉ for ar). This is required because roughly half of translated briefs drop the literal BLUF token in favour of a native-language summary heading; without per-language matching, those briefs silently fall back to readFirstParagraph and ship the admin byline as the meta-description.
Returns null if the brief has no recognised BLUF heading.
Return the first prose paragraph that immediately follows a
## ๐ฏ BLUF(or## BLUF, case-insensitive) heading in an executive-brief. This is the paragraph editors already wrote as the article's lede, so it is preferred over the first paragraph of the document (which is often the admin-metadata block).When
langis supplied, the matcher also accepts the localised BLUF-equivalent H2 heading names from ./brief-extractor.ts#LANG_BLUF_SECTION_NAMES (e.g.## Sammanfattningforsv,## ํต์ฌ ์์ฝforko,## ๆง่กๆ่ฆforzh,## ุงูุฎูุงุตุฉ ุงูุชูููุฐูุฉforar). This is required because roughly half of translated briefs drop the literalBLUFtoken in favour of a native-language summary heading; without per-language matching, those briefs silently fall back toreadFirstParagraphand ship the admin byline as the meta-description.Returns
nullif the brief has no recognised BLUF heading.