diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-05-23 21:11:55 -0300 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-05-23 21:11:55 -0300 |
| commit | 29c7928e45ccf7ba936b27bc795867dc66d1d491 (patch) | |
| tree | fa5db4e57a67855bca75190279a26681b955738c | |
| parent | e11711bfe7f37190d082198a57862d700074f36d (diff) | |
content, language: guard formatExternalLink, related upd7
| -rw-r--r-- | src/content/dependencies/transformContent.js | 5 | ||||
| -rw-r--r-- | src/data/things/Language.js | 38 |
2 files changed, 29 insertions, 14 deletions
diff --git a/src/content/dependencies/transformContent.js b/src/content/dependencies/transformContent.js index 62a547e4..b2d878ac 100644 --- a/src/content/dependencies/transformContent.js +++ b/src/content/dependencies/transformContent.js @@ -465,13 +465,10 @@ export default { {title: language.encapsulate('misc.external.opensInNewTab', capsule => language.$(capsule, { - link: + platform: language.formatExternalLink(link, { style: 'platform', }), - - annotation: - language.$(capsule, 'annotation'), }).toString())}, content); 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 |