forked from github/docs
-
Notifications
You must be signed in to change notification settings - Fork 1
/
whats-new-changelog.js
29 lines (23 loc) · 1.18 KB
/
whats-new-changelog.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const { getRssFeed, getChangelogItems } = require('../../lib/changelog')
const getApplicableVersions = require('../../lib/get-applicable-versions')
module.exports = async function whatsNewChangelog (req, res, next) {
if (!req.context.page) return next()
if (!req.context.page.changelog) return next()
const label = req.context.page.changelog.label
// If there is no `versions` prop in the changelog frontmatter, assume the changelog should display in all versions.
if (req.context.page.changelog.versions) {
const changelogVersions = getApplicableVersions(req.context.page.changelog.versions)
// If the current version is not included, do not display a changelog.
if (!changelogVersions.includes(req.context.currentVersion)) {
return next()
}
}
const labelUrls = {
education: 'https://github.blog/category/community/education',
enterprise: 'https://github.blog/category/enterprise/'
}
req.context.changelogUrl = labelUrls[label] || `https://github.blog/changelog/label/${label}`
const feed = await getRssFeed(req.context.changelogUrl)
req.context.whatsNewChangelog = await getChangelogItems(req.context.page.changelog.prefix, feed)
return next()
}