From 29c7928e45ccf7ba936b27bc795867dc66d1d491 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 23 May 2026 21:11:55 -0300 Subject: content, language: guard formatExternalLink, related upd7 --- src/data/things/Language.js | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) (limited to 'src/data') diff --git a/src/data/things/Language.js b/src/data/things/Language.js index f51894f1..8b8c78b7 100644 --- a/src/data/things/Language.js +++ b/src/data/things/Language.js @@ -732,31 +732,49 @@ export class Language extends Thing { : duration; } - formatExternalLink(url, { + formatExternalLink(urlEntry, { style = 'platform', context = 'generic', } = {}) { // Null or undefined url is blank content. - if (url === null || url === undefined) { + if (urlEntry === null || urlEntry === undefined) { return html.blank(); } + // String means we're probably receiving a URL, not a URL entry. + // Just fill in blanks like from a mock/dummy entry. + if (typeof urlEntry === 'string') { + return this.formatExternalLink( + { + url: urlEntry, + annotation: null, + }, + {style, context}); + } + isExternalLinkContext(context); if (style === 'all') { - return getExternalLinkStringsFromDescriptors(url, externalLinkSpec, { - language: this, - context, - }); + return getExternalLinkStringsFromDescriptors( + urlEntry, + externalLinkSpec, + { + language: this, + context, + }); } isExternalLinkStyle(style); const result = - getExternalLinkStringOfStyleFromDescriptors(url, style, externalLinkSpec, { - language: this, - context, - }); + getExternalLinkStringOfStyleFromDescriptors( + urlEntry, + style, + externalLinkSpec, + { + language: this, + context, + }); // It's possible for there to not actually be any string available for the // given URL, style, and context, and we want this to be detectable via -- cgit 1.3.0-6-gf8a5