diff --git a/middleware/render-page.js b/middleware/render-page.js index 54580a791f..d78bc5122c 100644 --- a/middleware/render-page.js +++ b/middleware/render-page.js @@ -4,6 +4,7 @@ import patterns from '../lib/patterns.js' import getMiniTocItems from '../lib/get-mini-toc-items.js' import Page from '../lib/page.js' import statsd from '../lib/statsd.js' +import { allVersions } from '../lib/all-versions.js' import { isConnectionDropped } from './halt-on-dropped-connection.js' import { nextApp, nextHandleRequest } from './next.js' @@ -92,7 +93,22 @@ export default async function renderPage(req, res, next) { // add localized ` - GitHub Docs` suffix to tag (except for the homepage) if (!patterns.homepagePath.test(path)) { - page.fullTitle = page.fullTitle + ' - ' + context.site.data.ui.header.github_docs + if ( + req.context.currentVersion === 'free-pro-team@latest' || + !allVersions[req.context.currentVersion] + ) { + page.fullTitle += ' - ' + context.site.data.ui.header.github_docs + } else { + const { versionTitle } = allVersions[req.context.currentVersion] + page.fullTitle += ' - ' + // Some plans don't have the word "GitHub" in them. + // E.g. "Enterprise Server 3.5" + // In those cases manually prefix the word "GitHub" before it. + if (!versionTitle.includes('GitHub')) { + page.fullTitle += 'GitHub ' + } + page.fullTitle += versionTitle + ' Docs' + } } // Is the request for JSON debugging info? diff --git a/tests/rendering/page-titles.js b/tests/rendering/page-titles.js index 8126587dbe..ac87defb08 100644 --- a/tests/rendering/page-titles.js +++ b/tests/rendering/page-titles.js @@ -20,7 +20,9 @@ describe('page titles', () => { const $ = await getDOM( `/en/enterprise/${enterpriseServerReleases.latest}/user/github/authenticating-to-github/authorizing-oauth-apps` ) - expect($('title').text()).toBe('Authorizing OAuth Apps - GitHub Docs') + expect($('title').text()).toBe( + `Authorizing OAuth Apps - GitHub Enterprise Server ${enterpriseServerReleases.latest} Docs` + ) }) test('dotcom English map topic page', async () => { @@ -35,13 +37,19 @@ describe('page titles', () => { test('dynamically parses liquid in page titles (even on subsequent requests)', async () => { let $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`) - expect($('title').text()).toBe('GitHub Enterprise Server Help Documentation - GitHub Docs') + expect($('title').text()).toBe( + `GitHub Enterprise Server Help Documentation - GitHub Enterprise Server ${enterpriseServerReleases.latest} Docs` + ) $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) - expect($('title').text()).toBe('GitHub Enterprise Server Help Documentation - GitHub Docs') + expect($('title').text()).toBe( + `GitHub Enterprise Server Help Documentation - GitHub Enterprise Server ${enterpriseServerReleases.oldestSupported} Docs` + ) $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`) - expect($('title').text()).toBe('GitHub Enterprise Server Help Documentation - GitHub Docs') + expect($('title').text()).toBe( + `GitHub Enterprise Server Help Documentation - GitHub Enterprise Server ${enterpriseServerReleases.latest} Docs` + ) }) // TODO enable this once translated content has synced with the versioning changes