Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 23x 23x 23x 23x 23x 23x | /**
* @module scripts/validators/executive-brief-translations/extractors/urls
* @description Extract bare URLs (`https?://...`) plus markdown link
* targets for parity comparison between source and
* translation.
*
* Rule census: extracted from
* `scripts/validate-executive-brief-translations.ts` lines
* 178–187. Logic is byte-identical to the original.
*
* @author Hack23 AB
* @license Apache-2.0
*/
/** Extract bare URLs (https?://...). */
export function extractUrls(md: string): Set<string> {
// Capture URL inside Markdown link target `(...)` and bare URLs in text.
const urls = new Set<string>();
const linkTargets = md.match(/\((https?:\/\/[^\s)]+)\)/g) ?? [];
for (const t of linkTargets) urls.add(t.slice(1, -1));
const bare = md.match(/(?<![("])https?:\/\/[^\s)<]+/g) ?? [];
for (const u of bare) urls.add(u);
return urls;
}
|