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