diff --git a/apps/www/lib/rss.tsx b/apps/www/lib/rss.tsx index 36fb38f5825..c0409f8393d 100644 --- a/apps/www/lib/rss.tsx +++ b/apps/www/lib/rss.tsx @@ -1,3 +1,4 @@ +import authors from 'lib/authors.json' const dayjs = require('dayjs') var utc = require('dayjs/plugin/utc') var advancedFormat = require('dayjs/plugin/advancedFormat') @@ -17,8 +18,29 @@ const generateRssItem = (post: any): string => { ` } -export const generateRss = (posts: any[]): string => { - return ` +// we generate a main rss.xml flie as well as individual files for +// authors who publish under the `planetpg` tag +export const generateRss = (posts: any[], authorID?: string): string => { + const authorInfo = authors.find((item) => item.author_id === authorID) + + if (authorID) { + return ` + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from ${authorInfo?.author} at Supabase + en + ${dayjs(posts[0].date) + .utc() + .format('ddd, DD MMM YYYY HH:hh:mm ZZ')} + + ${posts.map(generateRssItem).join('')} + + +` + } else { + return ` Blog - Supabase @@ -33,4 +55,5 @@ export const generateRss = (posts: any[]): string => { ` + } } diff --git a/apps/www/pages/blog.tsx b/apps/www/pages/blog.tsx index 49eb7c8351f..a14bbd8feef 100644 --- a/apps/www/pages/blog.tsx +++ b/apps/www/pages/blog.tsx @@ -19,16 +19,23 @@ export async function getStaticProps() { const allPostsData = getSortedPosts('_blog', undefined, undefined, '** BLOG PAGE **') const categories = getAllCategories('_blog') const rss = generateRss(allPostsData) - // @ts-ignore - const planetPgPosts = allPostsData.filter((post) => post.tags.includes('planetpg')) - const planetPgrss = generateRss(planetPgPosts) // create a rss feed in public directory // rss feed is added via component in render return fs.writeFileSync('./public/rss.xml', rss) - // create separate feed for just posts promoted in PlanetPG - fs.writeFileSync('./public/planetpg-rss.xml', planetPgrss) + // generate a series of rss feeds for each author (for PlanetPG) + const planetPgPosts = allPostsData.filter((post: any) => post.tags.includes('planetpg')) + const planetPgAuthors = planetPgPosts.map((post: any) => post.author.split(',')) + const uniquePlanetPgAuthors = new Set([].concat(...planetPgAuthors)) + + uniquePlanetPgAuthors.forEach((author) => { + const authorPosts = planetPgPosts.filter((post: any) => post.author.includes(author)) + if (authorPosts.length > 0) { + const authorRss = generateRss(authorPosts, author) + fs.writeFileSync(`./public/planetpg-${author}-rss.xml`, authorRss) + } + }) return { props: { diff --git a/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml b/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml new file mode 100644 index 00000000000..84fe8fab257 --- /dev/null +++ b/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml @@ -0,0 +1,40 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Angelico de los Reyes at Supabase + en + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/postgres-point-in-time-recovery + Point in Time Recovery is now available for Pro projects + https://supabase.com/blog/postgres-point-in-time-recovery + We're making PITR available for more projects, with a new Dashboard UI that makes it simple to use. + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/continuous-postgresql-backup-walg + Continuous PostgreSQL Backups using WAL-G + https://supabase.com/blog/continuous-postgresql-backup-walg + Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G. + Sun, 02 Aug 2020 02:02:30 +0000 + + + https://supabase.com/blog/postgresql-templates + What are PostgreSQL Templates? + https://supabase.com/blog/postgresql-templates + What are PostgreSQL templates and what are they used for? + Thu, 09 Jul 2020 02:02:30 +0000 + + + https://supabase.com/blog/postgresql-physical-logical-backups + Physical vs Logical Backups in PostgreSQL + https://supabase.com/blog/postgresql-physical-logical-backups + What are physical and logical backups in Postgres? + Tue, 07 Jul 2020 02:02:30 +0000 + + + + diff --git a/apps/www/public/planetpg-ant_wilson-rss.xml b/apps/www/public/planetpg-ant_wilson-rss.xml new file mode 100644 index 00000000000..07cfe4056b8 --- /dev/null +++ b/apps/www/public/planetpg-ant_wilson-rss.xml @@ -0,0 +1,19 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Ant Wilson at Supabase + en + Sat, 27 Feb 2021 03:03:30 +0000 + + + https://supabase.com/blog/cracking-postgres-interview + Cracking PostgreSQL Interview Questions + https://supabase.com/blog/cracking-postgres-interview + Understand the top PostgreSQL Interview Questions + Sat, 27 Feb 2021 03:03:30 +0000 + + + + diff --git a/apps/www/public/planetpg-burggraf-rss.xml b/apps/www/public/planetpg-burggraf-rss.xml new file mode 100644 index 00000000000..26233a86f1e --- /dev/null +++ b/apps/www/public/planetpg-burggraf-rss.xml @@ -0,0 +1,26 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Mark Burggraf at Supabase + en + Wed, 23 Nov 2022 03:03:30 +0000 + + + https://supabase.com/blog/sql-or-nosql-both-with-postgresql + SQL or NoSQL? Why not use both (with PostgreSQL)? + https://supabase.com/blog/sql-or-nosql-both-with-postgresql + How to turn Postgres into an easy-to-use NoSQL database that retains all the power of SQL + Wed, 23 Nov 2022 03:03:30 +0000 + + + https://supabase.com/blog/postgres-wasm + Postgres WASM by Snaplet and Supabase + https://supabase.com/blog/postgres-wasm + We're open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet. + Sun, 02 Oct 2022 02:02:30 +0000 + + + + diff --git a/apps/www/public/planetpg-michel-rss.xml b/apps/www/public/planetpg-michel-rss.xml new file mode 100644 index 00000000000..3bcd14a76b8 --- /dev/null +++ b/apps/www/public/planetpg-michel-rss.xml @@ -0,0 +1,26 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Michel Pelletier at Supabase + en + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/vault-now-in-beta + Supabase Vault is now in Beta + https://supabase.com/blog/vault-now-in-beta + A Postgres extension to store encrypted secrets and encrypt data. + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/transparent-column-encryption-with-postgres + Transparent Column Encryption with Postgres + https://supabase.com/blog/transparent-column-encryption-with-postgres + Using pgsodium's Transparent Column Encryption to encrypt data and provide your users with row-level encryption. + Wed, 30 Nov 2022 03:03:30 +0000 + + + + diff --git a/apps/www/public/planetpg-oli_rice-rss.xml b/apps/www/public/planetpg-oli_rice-rss.xml new file mode 100644 index 00000000000..77f01e50bdf --- /dev/null +++ b/apps/www/public/planetpg-oli_rice-rss.xml @@ -0,0 +1,26 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Oliver Rice at Supabase + en + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/pg-graphql-v1 + pg_graphql v1.0 + https://supabase.com/blog/pg-graphql-v1 + Announcing the v1.0 release of pg_graphql + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/audit + Postgres Auditing in 150 lines of SQL + https://supabase.com/blog/audit + PostgreSQL has a robust set of features which we can leverage to create a generic auditing solution in 150 lines of SQL. + Mon, 07 Mar 2022 03:03:30 +0000 + + + + diff --git a/apps/www/public/planetpg-paul_copplestone-rss.xml b/apps/www/public/planetpg-paul_copplestone-rss.xml new file mode 100644 index 00000000000..bc3d31ea3d3 --- /dev/null +++ b/apps/www/public/planetpg-paul_copplestone-rss.xml @@ -0,0 +1,33 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Paul Copplestone at Supabase + en + Mon, 27 Jun 2022 02:02:30 +0000 + + + https://supabase.com/blog/partial-postgresql-data-dumps-with-rls + Partial data dumps using Postgres Row Level Security + https://supabase.com/blog/partial-postgresql-data-dumps-with-rls + Using RLS to create seed files for local PostgreSQL testing. + Mon, 27 Jun 2022 02:02:30 +0000 + + + https://supabase.com/blog/postgres-as-a-cron-server + Postgres as a CRON Server + https://supabase.com/blog/postgres-as-a-cron-server + Running repetitive tasks with your Postgres database. + Fri, 05 Mar 2021 03:03:30 +0000 + + + https://supabase.com/blog/postgresql-views + Postgres Views + https://supabase.com/blog/postgresql-views + Creating and using a view in PostgreSQL. + Wed, 18 Nov 2020 03:03:30 +0000 + + + + diff --git a/apps/www/public/planetpg-pavel-rss.xml b/apps/www/public/planetpg-pavel-rss.xml new file mode 100644 index 00000000000..e6dbbb4c1fe --- /dev/null +++ b/apps/www/public/planetpg-pavel-rss.xml @@ -0,0 +1,26 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Pavel Borisov at Supabase + en + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/new-in-postgres-15 + What's new in Postgres 15? + https://supabase.com/blog/new-in-postgres-15 + Describes the release of Postgres 15, new features and reasons to use it + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/postgresql-commitfest + What is PostgreSQL commitfest and how to contribute + https://supabase.com/blog/postgresql-commitfest + A time-tested method for contributing to the core Postgres code + Wed, 26 Oct 2022 02:02:30 +0000 + + + + diff --git a/apps/www/public/planetpg-rss.xml b/apps/www/public/planetpg-rss.xml deleted file mode 100644 index 9a980d87cea..00000000000 --- a/apps/www/public/planetpg-rss.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - Blog - Supabase - https://supabase.com - Latest news from Supabase - en - Thu, 15 Dec 2022 03:03:30 +0000 - - - https://supabase.com/blog/vault-now-in-beta - Supabase Vault is now in Beta - https://supabase.com/blog/vault-now-in-beta - A Postgres extension to store encrypted secrets and encrypt data. - Thu, 15 Dec 2022 03:03:30 +0000 - - - https://supabase.com/blog/postgrest-11-prerelease - PostgREST 11 pre-release - https://supabase.com/blog/postgrest-11-prerelease - Describes new features of PostgREST 11 pre-release - Thu, 15 Dec 2022 03:03:30 +0000 - - - https://supabase.com/blog/postgres-point-in-time-recovery - Point in Time Recovery is now available for Pro projects - https://supabase.com/blog/postgres-point-in-time-recovery - We're making PITR available for more projects, with a new Dashboard UI that makes it simple to use. - Thu, 15 Dec 2022 03:03:30 +0000 - - - https://supabase.com/blog/pg-graphql-v1 - pg_graphql v1.0 - https://supabase.com/blog/pg-graphql-v1 - Announcing the v1.0 release of pg_graphql - Thu, 15 Dec 2022 03:03:30 +0000 - - - https://supabase.com/blog/new-in-postgres-15 - What's new in Postgres 15? - https://supabase.com/blog/new-in-postgres-15 - Describes the release of Postgres 15, new features and reasons to use it - Thu, 15 Dec 2022 03:03:30 +0000 - - - https://supabase.com/blog/transparent-column-encryption-with-postgres - Transparent Column Encryption with Postgres - https://supabase.com/blog/transparent-column-encryption-with-postgres - Using pgsodium's Transparent Column Encryption to encrypt data and provide your users with row-level encryption. - Wed, 30 Nov 2022 03:03:30 +0000 - - - https://supabase.com/blog/sql-or-nosql-both-with-postgresql - SQL or NoSQL? Why not use both (with PostgreSQL)? - https://supabase.com/blog/sql-or-nosql-both-with-postgresql - How to turn Postgres into an easy-to-use NoSQL database that retains all the power of SQL - Wed, 23 Nov 2022 03:03:30 +0000 - - - https://supabase.com/blog/postgresql-commitfest - What is PostgreSQL commitfest and how to contribute - https://supabase.com/blog/postgresql-commitfest - A time-tested method for contributing to the core Postgres code - Wed, 26 Oct 2022 02:02:30 +0000 - - - https://supabase.com/blog/postgres-full-text-search-vs-the-rest - Postgres Full Text Search vs the rest - https://supabase.com/blog/postgres-full-text-search-vs-the-rest - Comparing one of the most popular Postgres features against alternatives - Thu, 13 Oct 2022 02:02:30 +0000 - - - https://supabase.com/blog/postgres-wasm - Postgres WASM by Snaplet and Supabase - https://supabase.com/blog/postgres-wasm - We're open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet. - Sun, 02 Oct 2022 02:02:30 +0000 - - - https://supabase.com/blog/choosing-a-postgres-primary-key - Choosing a Postgres Primary Key - https://supabase.com/blog/choosing-a-postgres-primary-key - Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out - Wed, 07 Sep 2022 02:02:30 +0000 - - - https://supabase.com/blog/seen-by-in-postgresql - Implementing "seen by" functionality with Postgres - https://supabase.com/blog/seen-by-in-postgresql - Different approaches for tracking visitor counts with PostgreSQL. - Sun, 17 Jul 2022 02:02:30 +0000 - - - https://supabase.com/blog/partial-postgresql-data-dumps-with-rls - Partial data dumps using Postgres Row Level Security - https://supabase.com/blog/partial-postgresql-data-dumps-with-rls - Using RLS to create seed files for local PostgreSQL testing. - Mon, 27 Jun 2022 02:02:30 +0000 - - - https://supabase.com/blog/audit - Postgres Auditing in 150 lines of SQL - https://supabase.com/blog/audit - PostgreSQL has a robust set of features which we can leverage to create a generic auditing solution in 150 lines of SQL. - Mon, 07 Mar 2022 03:03:30 +0000 - - - https://supabase.com/blog/roles-postgres-hooks - Protecting reserved roles with PostgreSQL Hooks - https://supabase.com/blog/roles-postgres-hooks - Using Postgres Hooks to protect functionality in your Postgres database. - Thu, 01 Jul 2021 02:02:30 +0000 - - - https://supabase.com/blog/postgres-as-a-cron-server - Postgres as a CRON Server - https://supabase.com/blog/postgres-as-a-cron-server - Running repetitive tasks with your Postgres database. - Fri, 05 Mar 2021 03:03:30 +0000 - - - https://supabase.com/blog/cracking-postgres-interview - Cracking PostgreSQL Interview Questions - https://supabase.com/blog/cracking-postgres-interview - Understand the top PostgreSQL Interview Questions - Sat, 27 Feb 2021 03:03:30 +0000 - - - https://supabase.com/blog/postgresql-views - Postgres Views - https://supabase.com/blog/postgresql-views - Creating and using a view in PostgreSQL. - Wed, 18 Nov 2020 03:03:30 +0000 - - - https://supabase.com/blog/continuous-postgresql-backup-walg - Continuous PostgreSQL Backups using WAL-G - https://supabase.com/blog/continuous-postgresql-backup-walg - Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G. - Sun, 02 Aug 2020 02:02:30 +0000 - - - https://supabase.com/blog/postgresql-templates - What are PostgreSQL Templates? - https://supabase.com/blog/postgresql-templates - What are PostgreSQL templates and what are they used for? - Thu, 09 Jul 2020 02:02:30 +0000 - - - https://supabase.com/blog/postgresql-physical-logical-backups - Physical vs Logical Backups in PostgreSQL - https://supabase.com/blog/postgresql-physical-logical-backups - What are physical and logical backups in Postgres? - Tue, 07 Jul 2020 02:02:30 +0000 - - - - diff --git a/apps/www/public/planetpg-steve_chavez-rss.xml b/apps/www/public/planetpg-steve_chavez-rss.xml new file mode 100644 index 00000000000..575cafb6b06 --- /dev/null +++ b/apps/www/public/planetpg-steve_chavez-rss.xml @@ -0,0 +1,26 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Steve Chavez at Supabase + en + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/postgrest-11-prerelease + PostgREST 11 pre-release + https://supabase.com/blog/postgrest-11-prerelease + Describes new features of PostgREST 11 pre-release + Thu, 15 Dec 2022 03:03:30 +0000 + + + https://supabase.com/blog/roles-postgres-hooks + Protecting reserved roles with PostgreSQL Hooks + https://supabase.com/blog/roles-postgres-hooks + Using Postgres Hooks to protect functionality in your Postgres database. + Thu, 01 Jul 2021 02:02:30 +0000 + + + + diff --git a/apps/www/public/planetpg-victor-rss.xml b/apps/www/public/planetpg-victor-rss.xml new file mode 100644 index 00000000000..e742fb6eec8 --- /dev/null +++ b/apps/www/public/planetpg-victor-rss.xml @@ -0,0 +1,33 @@ + + + + 'Postgres | Supabase Blog + https://supabase.com/blog + Latest Postgres news from Victor at Supabase + en + Thu, 13 Oct 2022 02:02:30 +0000 + + + https://supabase.com/blog/postgres-full-text-search-vs-the-rest + Postgres Full Text Search vs the rest + https://supabase.com/blog/postgres-full-text-search-vs-the-rest + Comparing one of the most popular Postgres features against alternatives + Thu, 13 Oct 2022 02:02:30 +0000 + + + https://supabase.com/blog/choosing-a-postgres-primary-key + Choosing a Postgres Primary Key + https://supabase.com/blog/choosing-a-postgres-primary-key + Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out + Wed, 07 Sep 2022 02:02:30 +0000 + + + https://supabase.com/blog/seen-by-in-postgresql + Implementing "seen by" functionality with Postgres + https://supabase.com/blog/seen-by-in-postgresql + Different approaches for tracking visitor counts with PostgreSQL. + Sun, 17 Jul 2022 02:02:30 +0000 + + + +