feat(rss): configurable RSS feed URL (#1806)
* feat(rss): configurable RSS feed URL * Update docs/features/RSS Feed.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update docs/features/RSS Feed.md --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
This commit is contained in:
parent
b050162f82
commit
c6f10b44f6
3 changed files with 9 additions and 1 deletions
|
@ -1,5 +1,10 @@
|
||||||
Quartz emits an RSS feed for all the content on your site by generating an `index.xml` file that RSS readers can subscribe to. Because of the RSS spec, this requires the `baseUrl` property in your [[configuration]] to be set properly for RSS readers to pick it up properly.
|
Quartz emits an RSS feed for all the content on your site by generating an `index.xml` file that RSS readers can subscribe to. Because of the RSS spec, this requires the `baseUrl` property in your [[configuration]] to be set properly for RSS readers to pick it up properly.
|
||||||
|
|
||||||
|
> [!info]
|
||||||
|
> After deploying, the generated RSS link will be available at `https://${baseUrl}/index.xml` by default.
|
||||||
|
>
|
||||||
|
> The `index.xml` path can be customized by passing the `rssSlug` option to the [[ContentIndex]] plugin.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
This functionality is provided by the [[ContentIndex]] plugin. See the plugin page for customization options.
|
This functionality is provided by the [[ContentIndex]] plugin. See the plugin page for customization options.
|
||||||
|
|
|
@ -17,6 +17,7 @@ This plugin accepts the following configuration options:
|
||||||
- `enableRSS`: If `true` (default), produces an RSS feed (`index.xml`) with recent content updates.
|
- `enableRSS`: If `true` (default), produces an RSS feed (`index.xml`) with recent content updates.
|
||||||
- `rssLimit`: Defines the maximum number of entries to include in the RSS feed, helping to focus on the most recent or relevant content. Defaults to `10`.
|
- `rssLimit`: Defines the maximum number of entries to include in the RSS feed, helping to focus on the most recent or relevant content. Defaults to `10`.
|
||||||
- `rssFullHtml`: If `true`, the RSS feed includes full HTML content. Otherwise it includes just summaries.
|
- `rssFullHtml`: If `true`, the RSS feed includes full HTML content. Otherwise it includes just summaries.
|
||||||
|
- `rssSlug`: Slug to the generated RSS feed XML file. Defaults to `"index"`.
|
||||||
- `includeEmptyFiles`: If `true` (default), content files with no body text are included in the generated index and resources.
|
- `includeEmptyFiles`: If `true` (default), content files with no body text are included in the generated index and resources.
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
|
@ -25,6 +25,7 @@ interface Options {
|
||||||
enableRSS: boolean
|
enableRSS: boolean
|
||||||
rssLimit?: number
|
rssLimit?: number
|
||||||
rssFullHtml: boolean
|
rssFullHtml: boolean
|
||||||
|
rssSlug: string
|
||||||
includeEmptyFiles: boolean
|
includeEmptyFiles: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +34,7 @@ const defaultOptions: Options = {
|
||||||
enableRSS: true,
|
enableRSS: true,
|
||||||
rssLimit: 10,
|
rssLimit: 10,
|
||||||
rssFullHtml: false,
|
rssFullHtml: false,
|
||||||
|
rssSlug: "index",
|
||||||
includeEmptyFiles: true,
|
includeEmptyFiles: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,7 +153,7 @@ export const ContentIndex: QuartzEmitterPlugin<Partial<Options>> = (opts) => {
|
||||||
await write({
|
await write({
|
||||||
ctx,
|
ctx,
|
||||||
content: generateRSSFeed(cfg, linkIndex, opts.rssLimit),
|
content: generateRSSFeed(cfg, linkIndex, opts.rssLimit),
|
||||||
slug: "index" as FullSlug,
|
slug: (opts?.rssSlug ?? "index") as FullSlug,
|
||||||
ext: ".xml",
|
ext: ".xml",
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue