- Implement releases collection in content-collections.ts for tracking version updates - Create changelog page with dynamic release rendering for multiple locales - Add ReleaseCard component to display version details and changes - Implement getReleases utility function to fetch and sort release notes - Update internationalization messages for changelog page - Add English and Chinese release notes for v1.0.0, v1.1.0, and v1.2.0
32 lines
936 B
TypeScript
32 lines
936 B
TypeScript
import { allReleases } from 'content-collections';
|
|
|
|
/**
|
|
* Gets all releases for the changelog page
|
|
* @param locale The locale to get releases for
|
|
* @returns An array of releases sorted by date (newest first)
|
|
*/
|
|
export async function getReleases(locale: string) {
|
|
// Find all published releases with matching locale
|
|
const releases = allReleases.filter(
|
|
(release) =>
|
|
release.published &&
|
|
release.locale === locale
|
|
);
|
|
|
|
// If no releases found with the current locale, try to find ones with any locale
|
|
if (releases.length === 0) {
|
|
const defaultReleases = allReleases.filter(
|
|
(release) => release.published
|
|
);
|
|
|
|
// Sort by date (newest first)
|
|
return defaultReleases.sort(
|
|
(a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()
|
|
);
|
|
}
|
|
|
|
// Sort by date (newest first)
|
|
return releases.sort(
|
|
(a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()
|
|
);
|
|
}
|