diff --git a/lib/rewrite-local-links.js b/lib/rewrite-local-links.js index 2cd18221c076..889ca92e521a 100644 --- a/lib/rewrite-local-links.js +++ b/lib/rewrite-local-links.js @@ -2,7 +2,9 @@ const externalRedirects = Object.keys(require('./redirects/external-sites')) const pathUtils = require('./path-utils') const assert = require('assert') const nonEnterpriseDefaultVersion = require('./non-enterprise-default-version') -const supportedPlans = Object.values(require('./all-versions')).map(v => v.plan) +const allVersions = require('./all-versions') +const supportedVersions = Object.keys(allVersions) +const supportedPlans = Object.values(allVersions).map(v => v.plan) // Content authors write links like `/some/article/path`, but they need to be // rewritten on the fly to match the current language and page version @@ -27,9 +29,13 @@ function getNewHref (link, languageCode, version) { let newHref - // If the link has a hardcoded plan name in it (e.g., /enterprise-server/rest/reference/oauth-authorizations), - // only rewrite it with a language code - if (supportedPlans.includes(href.split('/')[1])) { + // If the link has a hardcoded plan or version in it, do not update the version, just add the language code + // Examples: + // /enterprise-server@2.20/rest/reference/oauth-authorizations + // /enterprise-server/rest/reference/oauth-authorizations (this redirects to the latest version) + // /enterprise-server@latest/rest/reference/oauth-authorizations (this redirects to the latest version) + const firstLinkSegment = href.split('/')[1] + if ([...supportedPlans, ...supportedVersions, 'enterprise-server@latest'].includes(firstLinkSegment)) { newHref = pathUtils.getPathWithLanguage(href, languageCode) }