Files
vercel__next.js/examples/blog/scripts/gen-rss.js
Steven 4466ba436b chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00

39 lines
1.0 KiB
JavaScript

const { promises: fs } = require("fs");
const path = require("path");
const RSS = require("rss");
const matter = require("gray-matter");
async function generate() {
const feed = new RSS({
title: "Your Name",
site_url: "https://yoursite.com",
feed_url: "https://yoursite.com/feed.xml",
});
const posts = await fs.readdir(path.join(__dirname, "..", "pages", "posts"));
await Promise.all(
posts.map(async (name) => {
if (name.startsWith("index.")) return;
const content = await fs.readFile(
path.join(__dirname, "..", "pages", "posts", name),
);
const frontmatter = matter(content);
feed.item({
title: frontmatter.data.title,
url: "/posts/" + name.replace(/\.mdx?/, ""),
date: frontmatter.data.date,
description: frontmatter.data.description,
categories: frontmatter.data.tag.split(", "),
author: frontmatter.data.author,
});
}),
);
await fs.writeFile("./public/feed.xml", feed.xml({ indent: true }));
}
generate();