* Move article from github directory as a top-level product * Update article titles * Remove old -ing article titles * Use older format for this PR * Finish updating links for retitled articles * Remove sponsors topic * Add sponsors to index.md * Create folder for map topic for sponsors * Add integrating folder/category with super basic graphql article * Add get started category/folder * Update index.md * Add articles to category folders and update all the links and check it out locally 🙏 * Fix space * Fix set of broken links * Update link in resuable * Add the quickstart * Add USD * Add matching donations caveat * fix ci failures * Bringing back `-ing` to Sponsors titles, categories, & links (#18817) * Bringing back -ing * The one that got away * Apply @ethanpalm's input Co-authored-by: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Co-authored-by: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> * Apply product input * Apply suggestions from code review Co-authored-by: Emily Gould <4822039+emilyistoofunky@users.noreply.github.com> * Apply @emilyistoofunky's input * Sponsors landing page design (#18774) * Add sponsors to index.md as a top-level product * Revamp the GitHub Sponsors landing page with article links * remove merge tags * add community section * add sponsor descriptions * swap repo for user * remove prefix tag * lint * remove topic fix landing page * Tweak articles on landing page * Drop "account" * Add quickstart * Bigger, brighter, and shorter intro * Possibly too long of an intro? * fix quickstart link * add guides page * fix error for mismatch between title and filename * use link over guid * remove HTML from layout file (aligns to #18811) * use variable for section title * Add intro * Remove beta * Apply suggestions from code review Co-authored-by: Emily Gould <4822039+emilyistoofunky@users.noreply.github.com> * Apply suggestions from code review * Integrate article changes and remove old TOC * Fixing the commented out text to match other landing pages 👓 * Apply suggestions from code review Co-authored-by: Emily Gould <4822039+emilyistoofunky@users.noreply.github.com> * Switch up order of sidebar categories * Add new text to landing page button * Add topics and types * Add the underscore * Add some more topics * fix `type:` * Fix topics * plural ftw * hide learning paths when not defined * lint * Add quickstart to guides page * remove unused sidebar links * hide subsection title when learning tracks are not present * Apply @emilyistoofunky's topics input * Remove duplicated topics * Events ftw * typo * Remove obsolete topics for now * add some temporary duplicate topics * Resolve Linter error Co-authored-by: Rachael Sewell <rachmari@github.com> Co-authored-by: Emily Gould <4822039+emilyistoofunky@users.noreply.github.com> Co-authored-by: Rachael Sewell <rachmari@github.com> Co-authored-by: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Co-authored-by: Kevin Heis <heiskr@users.noreply.github.com> Co-authored-by: Emily Gould <4822039+emilyistoofunky@users.noreply.github.com>
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
const Parser = require('rss-parser')
|
|
|
|
async function getRssFeed (url) {
|
|
const parser = new Parser({ timeout: 5000 })
|
|
const feedUrl = `${url}/feed`
|
|
let feed
|
|
|
|
try {
|
|
feed = await parser.parseURL(feedUrl)
|
|
} catch (err) {
|
|
console.error(`cannot get ${feedUrl}: ${err.message}`)
|
|
return
|
|
}
|
|
|
|
return feed
|
|
}
|
|
|
|
async function getChangelogItems (prefix, feed) {
|
|
if (!feed || !feed.items) {
|
|
console.log(feed)
|
|
console.error('feed is not valid or has no items')
|
|
return
|
|
}
|
|
|
|
// only show the first 3 posts
|
|
const changelog = feed.items
|
|
.slice(0, 3)
|
|
.map(item => {
|
|
// remove the prefix if it exists (Ex: 'GitHub Actions: '), where the colon and expected whitespace should be hardcoded.
|
|
const title = prefix ? item.title.replace(new RegExp(`^${prefix}`), '') : item.title
|
|
return {
|
|
// capitalize the first letter of the title
|
|
title: title.trim().charAt(0).toUpperCase() + title.slice(1),
|
|
date: item.isoDate,
|
|
href: item.link
|
|
}
|
|
})
|
|
|
|
return changelog
|
|
}
|
|
|
|
module.exports = { getRssFeed, getChangelogItems }
|