From 80b6656e38462fa32a2c2a2acbe9f25a29854a83 Mon Sep 17 00:00:00 2001 From: developomp Date: Mon, 20 Jan 2025 20:21:01 +0900 Subject: [PATCH] feat: add RSS feed --- apps/blog/.gitignore | 1 + apps/blog/package.json | 2 +- apps/blog/src/components/Footer/Footer.tsx | 12 ++++++- apps/blog/src/components/GithubLinkIcon.tsx | 2 +- packages/content/package.json | 2 ++ packages/content/src/config.ts | 1 + packages/content/src/index.ts | 4 ++- packages/content/src/rss.ts | 26 ++++++++++++++ pnpm-lock.yaml | 38 +++++++++++++++++++++ 9 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 packages/content/src/rss.ts diff --git a/apps/blog/.gitignore b/apps/blog/.gitignore index 26ea289..47dd77d 100644 --- a/apps/blog/.gitignore +++ b/apps/blog/.gitignore @@ -1,4 +1,5 @@ public/robots.txt +public/rss.xml public/sitemap*.xml # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. diff --git a/apps/blog/package.json b/apps/blog/package.json index cc407bd..9696bd3 100644 --- a/apps/blog/package.json +++ b/apps/blog/package.json @@ -6,7 +6,7 @@ "dev": "open-cli http://localhost:3000 && pnpm dev:headless", "dev:headless": "next dev", "build": "next build", - "postbuild": "next-sitemap", + "postbuild": "next-sitemap && cp ../../packages/content/dist/rss.xml public/rss.xml", "lint": "next lint", "test:e2e": "playwright test", "i_am_sure_i_want_to_nuke_gitignored_files": "rm -rf .next .turbo build node_modules test-results" diff --git a/apps/blog/src/components/Footer/Footer.tsx b/apps/blog/src/components/Footer/Footer.tsx index fddb2d2..82d06e4 100644 --- a/apps/blog/src/components/Footer/Footer.tsx +++ b/apps/blog/src/components/Footer/Footer.tsx @@ -1,4 +1,6 @@ import GithubLinkIcon from "../GithubLinkIcon" +import { faRss } from "@fortawesome/free-solid-svg-icons" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" export default function Footer() { return ( @@ -7,7 +9,15 @@ export default function Footer() {
Created by developomp
- +
+ + + + +
) diff --git a/apps/blog/src/components/GithubLinkIcon.tsx b/apps/blog/src/components/GithubLinkIcon.tsx index 6b27487..d7e0628 100644 --- a/apps/blog/src/components/GithubLinkIcon.tsx +++ b/apps/blog/src/components/GithubLinkIcon.tsx @@ -9,7 +9,7 @@ interface Props { export default function GithubLinkIcon({ href }: Props) { return ( =8.6'} + mime-db@1.25.0: + resolution: {integrity: sha512-5k547tI4Cy+Lddr/hdjNbBEWBwSl8EBc5aSdKvedav8DReADgWJzcYiktaRIw3GtGC1jjwldXtTzvqJZmtvC7w==} + engines: {node: '>= 0.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-types@2.1.13: + resolution: {integrity: sha512-ryBDp1Z/6X90UvjUK3RksH0IBPM137T7cmg4OgD5wQBojlAiUwuok0QeELkim/72EtcYuNlmbkrcGuxj3Kl0YQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -4265,6 +4282,9 @@ packages: rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + rss@1.2.2: + resolution: {integrity: sha512-xUhRTgslHeCBeHAqaWSbOYTydN2f0tAzNXvzh3stjz7QDhQMzdgHf3pfgNIngeytQflrFPfy6axHilTETr6gDg==} + run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -5084,6 +5104,9 @@ packages: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + xml@1.0.1: + resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -6183,6 +6206,8 @@ snapshots: '@types/read-time-estimate@0.0.2': {} + '@types/rss@0.0.32': {} + '@types/semver@7.5.0': {} '@types/stack-utils@2.0.1': {} @@ -9015,8 +9040,14 @@ snapshots: braces: 3.0.2 picomatch: 2.3.1 + mime-db@1.25.0: {} + mime-db@1.52.0: {} + mime-types@2.1.13: + dependencies: + mime-db: 1.25.0 + mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -9730,6 +9761,11 @@ snapshots: rrweb-cssom@0.6.0: {} + rss@1.2.2: + dependencies: + mime-types: 2.1.13 + xml: 1.0.1 + run-applescript@7.0.0: {} run-parallel@1.2.0: @@ -10611,6 +10647,8 @@ snapshots: xml-name-validator@5.0.0: {} + xml@1.0.1: {} + xmlchars@2.2.0: {} xtend@4.0.2: {}