This plugin generates changelog pages for your Rspress documentation site, fetching release information from GitHub and GitLab repositories.
npm install rspress-plugin-changelog
Add the plugin to your Rspress configuration file:
import { defineConfig } from 'rspress/config';
import { pluginChangelog } from 'rspress-plugin-changelog';
export default defineConfig({
plugins: [
pluginChangelog({
fetchOnDev: true,
items: [
{
type: 'github-releases',
routePath: '/github-changelog',
repo: 'owner/repo',
title: 'GitHub Changelog',
},
{
type: 'gitlab-releases',
routePath: '/gitlab-changelog',
repo: 'owner/repo',
title: 'GitLab Changelog',
},
],
routePrefix: 'changelog',
addSidebar: 'auto',
}),
],
});
- Fetches release information from GitHub and GitLab repositories.
- Generates changelog pages with customizable routes.
- Supports custom templates for rendering changelogs.
- Automatically adds changelog links to the sidebar (configurable).
- Allows fetching data in both production and development environments.
The pluginChangelog
function accepts an options object with the following properties:
-
fetchOnDev
(boolean, default:true
): Whether to fetch changelog data in development environment. -
items
(array): An array of changelog items to fetch and display. -
routePrefix
(string, default:'changelog'
): The prefix for changelog routes. -
addSidebar
(boolean | 'auto', default:'auto'
): Whether to add changelog links to the sidebar.
Each item in the items
array can have the following properties:
-
type
: 'github-releases' -
routePath
(string): The route path for this changelog. -
repo
(string): The GitHub repository in the format'owner/repo'
. -
title
(string, optional): The title for the changelog page. -
templatePath
(string, optional): Custom template path for rendering the changelog.
-
type
: 'gitlab-releases' -
routePath
(string): The route path for this changelog. -
repo
(string): The GitLab repository in the format'owner/repo'
. -
baseUrl
(string, optional): The GitLab domain. Defaults to 'https://gitlab.com'. -
headers
(object, optional): Additional headers for GitLab API requests. -
title
(string, optional): The title for the changelog page. -
templatePath
(string, optional): Custom template path for rendering the changelog.
This plugin supports custom templates for rendering changelogs. Templates use Handlebars syntax and have access to two main variables:
-
title
: The title of the changelog (either specified in the configuration or defaulting to the repository name). -
releases
: An array of release objects from GitHub or GitLab.
To use a custom template, specify the templatePath
in your changelog item configuration.