Skip to content

chore: replace RSS and sitemap generation with simplified scripts #43

chore: replace RSS and sitemap generation with simplified scripts

chore: replace RSS and sitemap generation with simplified scripts #43

Workflow file for this run

name: Deploy Next.js to GitHub Pages
on:
push:
branches:
- feature/nextjs
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Generate SEO files (simple)
run: |
mkdir -p public
POSTS=$(find content/posts -type f -name '*.mdx' | sed 's|content/posts/||;s|.mdx||')
echo '<?xml version="1.0" encoding="UTF-8"?>' > public/sitemap.xml
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' >> public/sitemap.xml
for POST in $POSTS; do
echo " <url>" >> public/sitemap.xml
echo " <loc>https://eottabom.github.io/post/$POST</loc>" >> public/sitemap.xml
echo " <changefreq>weekly</changefreq>" >> public/sitemap.xml
echo " <priority>0.7</priority>" >> public/sitemap.xml
echo " </url>" >> public/sitemap.xml
done
echo '</urlset>' >> public/sitemap.xml
echo '<?xml version="1.0" encoding="UTF-8"?>' > public/rss.xml
echo '<rss version="2.0"><channel>' >> public/rss.xml
echo '<title>eottabom.github.io</title>' >> public/rss.xml
echo '<link>https://eottabom.github.io</link>' >> public/rss.xml
echo '<description>Blog RSS Feed</description>' >> public/rss.xml
echo "<lastBuildDate>$(date -u +"%a, %d %b %Y %H:%M:%S +0000")</lastBuildDate>" >> public/rss.xml
for POST in $POSTS; do
echo "<item>" >> public/feed.xml
echo "<title>$POST</title>" >> public/feed.xml
echo "<link>https://eottabom.github.io/post/$POST</link>" >> public/rss.xml
echo "<guid>https://eottabom.github.io/post/$POST</guid>" >> public/rss.xml
echo "<pubDate>$(date -u +"%a, %d %b %Y %H:%M:%S +0000")</pubDate>" >> public/rss.xml
echo "</item>" >> public/rss.xml
done
echo '</channel></rss>' >> public/rss.xml
- name: Build and Export
run: |
npm run build
- name: Deploy to GitHub Pages
if: success() && (hashFiles('out/index.html') != '')
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./out