diff options
Diffstat (limited to 'src')
| -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 |